I am using an animated boolean modifier that also has the visible and renderable animated so to switch between preapplied one and animated one. The problem is that there is no easy way to disable the modifier all together and the animated boolean is slowing the scene to a crawl. Also in Houdini there is a no update/always/mouse up switch to handle such situations. Maybe there could be a global/per object modifier switch that enables/disables all modifers.
Open for suggestions if there is a way to handle such situations as is.
Here’s a little script that will toggle the viewport status of all modifiers on all selected objects:
import bpy
selected = bpy.context.selected_objects
def toggleMods(objects):
print (objects)
for obj in objects:
bpy.context.scene.objects.active = obj
for mod in obj.modifiers:
modStatus = bpy.context.object.modifiers[mod.name].show_viewport
bpy.context.object.modifiers[mod.name].show_viewport = not modStatus
return {"FINISHED"}
toggleMods(selected)
Thanks Jonathan thats is quite helpful. However my original problem was that the show_viewport is animated in my scene, so just toggling it wont work. That’s the idea behind the additional ‘active’ toggle i proposed. If that’s implemented you could animate for example ‘active’ status and keep show_viewport and show_render? as a toggle. Global switches would be welcome for previewing scenes etc.
My proposal is kinda like this. Add ‘active’ to modifiers.
Weight hierarchy:
Global active toggle->Object active toggle->Modifier active toggle
Why is this important? If you use modifiers for animation you’ll know.
A very good thread!
About modifiers,
Sometimes you have to wait long for the modifier finish what it has to do anyway.
When applying, you have to wait exactly the same time, again. Not a serious issue but very annoying. It is some kind of waste IMO.
There is a serious issue with Blender boolean modifiers. Even not visible meshes / objects always get their boolean result updated.
That can slow down Blender drastically.
I fully agree with an active button or only update it when it got changed in any way.
Or… you take a different tactic. Have two copies of your scene (one with the modifier and one without)… animate them both in separate linked scenes and switch between them in the VSE (either before or after rendering).
Of course, without knowing the specifics of your animation, there’s a chance that this won’t work exactly as described for you. However, in general, I find that it’s often best to avoid doing an entire complex animation in a single scene. Be willing to make adjustments in post. If you’re not faking it, you’re probably doing it wrong.
I usually fake things if possible also, for this scene I used the mask modifer as a realtime option since the boolean showstopper was the vertex numbering mess the boolean modifier makes (even on non-border vertices) making materials and vertex colors/ weights unusable. I could have used projection textures as material masks but mask modifer was simpler.
Hey Fweeb I also use the modifiers just for modeling and they slow down the workflow dramatically.
Even switching scenes layer visibility everything seems to trigger a re-update of the modifier which
results in series screen refresh lag at one point. Making the modifier not visible does NOT change that outcome
which is why a real freeze function would be useful.