0b891a68b101b9b63d8b9512972ab47263db8f10
Currently node tools always adds a dependency graph update tag. In sculpt mode this causes the paint BVH to be rebuilt, which causes a complete rebuild of the sculpt mode draw data. Both are quite expensive relative to most other operations. Also, node tools currenly always uses the "geometry" sculpt undo type, which causes its own depsgraph update tag. Arguably a depsgraph geometry reevaluation shouldn't cause a rebuild of the BVH and draw data, but that's a limitation that's out of scope for now. Most tools in sculpt mode avoid adding a depsgraph tag when they don't change mesh topology for this reason. This PR gives node tools the ability to check if the output mesh has a different topology than the input. When the topology is the same, we can use one of the specialized sculpt undo types for positions, masks, or face sets. Though when more than one of these attributes changes, we're still forced to still use the geometry undo type because sculpt undo steps can only handle a single type of change. In the end this results in much better performance for most simple node tools that just deform the mesh or change masks or face sets. Pull Request: https://projects.blender.org/blender/blender/pulls/133842
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
