3D editor performance improvement: skip invisible modifier dependencies
The 3D editor can get very slow, due to other objects depending on the one currently edited via modifiers.
This alone wouldn't be surprising (for expensive modifiers), but this also happens when the modifier target objects have viewport visibilty turned off, and even when the culprit modifier is disabled.
Check this blend file to see, what I mean: pasteall.org/blend/index.php
What I did there (just to demonstrate the matter) was the following:
- create 2 cubes, named 'Cube Master' and 'Cube Slave'
- finely subdivide Cube Slave and make it depend on Cube Master via a Shrinkwrap Modifier
- disable the visibility of Cube Slave, and disable the Shrinkwrap Modifier
Try to move Cube Master around, rotate it, move vertices, whatever. See how laggy the editor is. Then remove the Shrinkwrap Modifier from 'Cube Slave' and try again. See how fast the editor has become magically.
I wonder whether recalculating such modifiers in real time can be prevented, when they don't have any visible effects. I understand that checking for visibility of the target object is not sufficient, as other visible objects might depend on it in turn. But checking the whole dependency graph should do the trick, I guess.
0 Comments