Blender Git Commit Log
Git Commits -> Revision 06e5a10
Revision 06e5a10 by Campbell Barton (asset-browser, asset-browser-poselib, temp-pose-flipping-fix-attempt) June 5, 2021, 16:02 (GMT) |
Edit Mesh: partial updates for normal and face tessellation This patch exposes functionality for performing partial mesh updates for normal calculation and face tessellation while transforming a mesh. The partial update data only needs to be generated once, afterwards the cached connectivity information can be reused (with the exception of changing proportional editing radius). Currently this is only used for transform, in the future it could be used for other operators as well as the transform panel. The best-case overall speedup while transforming geometry is about 1.45x since the time to update a small number of normals and faces is negligible. For an additional speedup partial face tessellation is multi-threaded, this gives ~15x speedup on my system (timing tessellation alone). Exact results depend on the number of CPU cores available. Ref D11494 Reviewed By: mano-wii |
Commit Details:
Full Hash: 06e5a10455ae226d876204adc292ab094b9dd00e
Parent Commit: 8d74213
Committed By: Julian Eisel
Lines Changed: +819, -50
2 Added Paths:
/source/blender/bmesh/intern/bmesh_mesh_partial_update.c (+272, -0) (View)
/source/blender/bmesh/intern/bmesh_mesh_partial_update.h (+69, -0) (View)
/source/blender/bmesh/intern/bmesh_mesh_partial_update.h (+69, -0) (View)
11 Modified Paths:
/source/blender/blenkernel/BKE_editmesh.h (+3, -0) (Diff)
/source/blender/blenkernel/intern/editmesh.c (+8, -0) (Diff)
/source/blender/bmesh/bmesh.h (+1, -0) (Diff)
/source/blender/bmesh/CMakeLists.txt (+2, -0) (Diff)
/source/blender/bmesh/intern/bmesh_mesh.c (+142, -9) (Diff)
/source/blender/bmesh/intern/bmesh_mesh.h (+3, -0) (Diff)
/source/blender/bmesh/intern/bmesh_mesh_tessellate.c (+100, -0) (Diff)
/source/blender/bmesh/intern/bmesh_mesh_tessellate.h (+6, -0) (Diff)
/source/blender/bmesh/intern/bmesh_polygon.h (+1, -0) (Diff)
/source/blender/editors/transform/transform.h (+1, -0) (Diff)
/source/blender/editors/transform/transform_convert_mesh.c (+211, -41) (Diff)
/source/blender/blenkernel/intern/editmesh.c (+8, -0) (Diff)
/source/blender/bmesh/bmesh.h (+1, -0) (Diff)
/source/blender/bmesh/CMakeLists.txt (+2, -0) (Diff)
/source/blender/bmesh/intern/bmesh_mesh.c (+142, -9) (Diff)
/source/blender/bmesh/intern/bmesh_mesh.h (+3, -0) (Diff)
/source/blender/bmesh/intern/bmesh_mesh_tessellate.c (+100, -0) (Diff)
/source/blender/bmesh/intern/bmesh_mesh_tessellate.h (+6, -0) (Diff)
/source/blender/bmesh/intern/bmesh_polygon.h (+1, -0) (Diff)
/source/blender/editors/transform/transform.h (+1, -0) (Diff)
/source/blender/editors/transform/transform_convert_mesh.c (+211, -41) (Diff)