Single pass or On demand behaviour for Modifiers (Mask & subdivision surface examples)
Hello, modifiers are a great part of blender workflow, some projects can be entirely made non-procedurally in blender because of them. But they tend to have a downside to them - which is turning the object heavy and slow to process. This can be specially noticeable when playing animations specially for rigged characters.
A few characters for example may have common modifiers applyied to them such as mask (To hide parts depending on clothes) and subdivision modifier.
But for "mask" as well we'd expect it would make the mesh even lighter to compute since it decreases the polycount, or that at least remains the same if they're just hiding but still calculated. However the reality is that it makes the mesh even SLOWER to animate - Unless the modifier is manually "applied" by the user, which is destructive in every sense of the word possible. - This would be a problem that could be fixed by making this modifier single pass, so blender only do this procedure once and then the mesh simply freezes it for the rest of the session, instead of updating every frame - save only if the user applies, remove or turn off the modifier for some reason or if the mask data changed in any way (Which may not happen all the time anyways), otherwise it remains "dormant" in it's last updated state.
The same thing also happens for subdivision surface where the mesh is much heavier to animate with it as active modifier than it is after applied. For cases when the subdivision surface brick is set AFTER the armature brick it's very understandable, since it'll have to recalculate after every armature deformation, but It still is heavy even if the brick comes BEFORE the armature - For these cases On demand behaviour for the modifier would be very useful for this modifier, subdivide the mesh according to the paramenters once, then leave as is until the the mesh is altered in Edit mode (Or in global cases like toggling on/off the modifier, removing or applying it of course).
Probably to avoid workflow or stack ordering problems this could be a dropdown menu on the brick itself (much like local/world space dropdown for the bone constraints that have) that the users could discern themselves when or when not to change its behavior between real time, on demand or single pass.
Thanks everyone.
2 Comments
Add Geometry node Modifer. Add bake node. Bake it!!! Profit
Dude this is HUGE!
I never actually learnt Geometry Nodes so I had no idea this existed as I had no idea it would solve the other modifiers as well... Now I have a solution to many many of my problems plus I know something more about GN lol. Performance will sing now.
Thanks a lot!