Need suggestion why not working for me. What i did i created a cylinder and given rigid body and drop in the bowl. Then i shift+d and made several copies to side and a stack also and drop into the bowl to make a shape. Then i deleted all they frame and got the shape and the cylinder.
Two problems in your methodology:
-You used Shift-D before setting your LOD, thus all your copies currently don’t have any LOD set up.
-you might want to use alt+D for this case. i’d advise to learn the difference between making duplicates and copies.
I may need a file sample in order to understand your problem more deeply if the two advices here above didn’t help
I tried object Data. With 1 cylinder selected shift selected ctrl+L object Data. Converted all the mesh to single Data. Still not not working. Will plz you can try with my file link given below.
No It’s working correctly
It’s just that you did a bit weird stuff with first of all duplicating the model instead of instancing it, doing the LOD set up after duplicating everything and hoping that it would apply to all copies somehow & also there was error in transforms, where the high transforms wasn’t the same as the proxy transform
I’ve used this addon and its literally my salvation, i make rigs and stuff and i used it for a complex one with a lot of tiny high quality objects, works amazingly nice after linking to another scene
exept when the addon is not installed, is there a way to link the script within a rig to force this kind of action when the addon is not present?
You will note that, although it’s working with rigs, the blender team designed their own pipeline based solution
As for non-scripting solution, you will need to disable lodify on all your model when sending the file to a render farm for example. No other solutions unfortunately
Hey, i’d like to know if proxify would work with linked assets.
For example, if i have a .blend containing only the reference of heavy assets, as collection intance for example, would it be possible to load only the LOD version in the current scene, and load the HD version in render or if i click on a button ?
This is for example some Imeshh assets, the creator is from architecture modeling and add 12 surburf on every mesh, and they are very heavy and not to scale.
As there is no working asset manager yet, it’s easier to make a python script to link all to the scene, and use the scene to get inspiration of what to use. But if i link all imeshh collection the scene would take years to load all geometry to my ram, until the swap as i only have 64gigs.
What would be great is to have a collection of .blend, each having LOD generated per object or per collection, and linking only the simplified one to block out the scene, and use the HD version when needed (or LOD1, LOD2, LOD3 depending on object size relative to camera).
I’ll update lodify for blender 3.0
I should be able to port lodify principle to a geometry node modifier, that should work well with linked assets
i still need to do some research about it but it looks promising
It actually works. In the attached example I have an asset with three lods. in the proxy lod I active lodify setting the other two lod. In the scene file I link the proxy object, I make it local (only object) and everything works without any mesh being loaded into the scene (all linked).
if you have to send your file to a render farm it’s better to enable the lod system in the lod0 object, so without the addon it will work just the same.
why not? Exactly what doesn’t work for you if you link the asset object? I have been using this system for a long time and have never had any problems. Did you try the example I gave before?
I also think that using geonode is better, so you don’t need an external addon and there is greater compatibility. I’m just waiting for the “is render preview” node.
However, to solve the problem of blocked settings I have written an addon that changes the settings via python and it works. Obviously these are temporary changes because when the file is reopened the settings of the original asset will be reloaded, but sometimes I just need to temporarily see the lod0 in viewport. If I have to “permanently” change the settings of an asset (eg change from lod0 to lod 1 in the final render) I use another operator of my addon that saves the “local settings” state in some custom properties of the object (which is local). When the file is reopened with another operator, I restore the saved state for each object that has it.
In case you forgot to apply the scale of your objects + LOD here’s a script to apply the scale of all your LOD without the CTRL-A operator. as you may know, we can’t apply stuff in blender if a mesh have multiple users wich is the case with Lodify.
#THIS SCRIPT WILL APPLY SCALE OF ALL LOD IN LOD LIST
#->OF SELECTED OBJECTS
import bpy, bmesh
def bmesh_apply_scale(me, xyzscale):
if xyzscale==(1,1,1):
return None
bm = bmesh.new()
bm.from_mesh(me)
for v in bm.verts:
v.co.x *= xyzscale[0]
v.co.y *= xyzscale[1]
v.co.z *= xyzscale[2]
bm.to_mesh(me)
bm.free()
return None
for o in bpy.context.selected_objects: #bpy.context.scene.objects:
if not o.lod_original:
continue
if o.scale==(1,1,1):
continue
print("")
print(f"New object: {o.name}")
xyzscale = o.scale
for l in o.data.lod_list:
me = l.ui_lod
print(f"Applying Scale: {me.name}")
bmesh_apply_scale(me, xyzscale)
continue
o.scale=(1,1,1)
continue
ps
as you may know, we can’t apply stuff in blender if a mesh have multiple users
I really don’t understand why there is such limitation in blender… i did the job easily with bmesh …
note that the script may be slow if you have a lot of assets selected or a lot of vertices, so i put prints statement, just open the console to see the status.
Perhaps a special operator could be made which sets all low LOD items to non render and the high details to render only. They could even get a driver. This could be an special operator of some needs to send this file to a farm. It will be destructive as it will ruin the file setup, but you could warn a user.
Since everything about which object i using which mesh at what op nt, i think it could be feasible to make this