Blender Git Loki
Git Commits -> Revision 09e11ad
Revision 09e11ad by Campbell Barton (master) May 30, 2013, 17:36 (GMT) |
modifier stack: lazy initialize normals many modifiers were calculating normals, when those normals were ignored by the next modifier. now flag normals as dirty and recalculate for modifiers that set use `dependsOnNormals()` callback. Quick test on mesh with 12 modifiers (mostly build type), calculated normals 6 times, now it only runs once - so this will give some speedup too. |
Commit Details:
Full Hash: 09e11ad6ef1187d581b64a9ac6ebbbb6f056f7d9
SVN Revision: 57145
Parent Commit: 1be2936
Lines Changed: +149, -77
23 Modified Paths:
/source/blender/blenkernel/BKE_DerivedMesh.h (+5, -1) (Diff)
/source/blender/blenkernel/intern/cdderivedmesh.c (+11, -0) (Diff)
/source/blender/blenkernel/intern/DerivedMesh.c (+103, -46) (Diff)
/source/blender/blenkernel/intern/editderivedmesh.c (+2, -1) (Diff)
/source/blender/blenkernel/intern/modifiers_bmesh.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/smoke.c (+1, -0) (Diff)
/source/blender/blenkernel/intern/subsurf_ccg.c (+2, -1) (Diff)
/source/blender/editors/space_view3d/drawobject.c (+5, -0) (Diff)
/source/blender/modifiers/intern/MOD_array.c (+1, -8) (Diff)
/source/blender/modifiers/intern/MOD_bevel.c (+2, -2) (Diff)
/source/blender/modifiers/intern/MOD_boolean_util.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_edgesplit.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_explode.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_mask.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_mirror.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_ocean.c (+3, -1) (Diff)
/source/blender/modifiers/intern/MOD_particleinstance.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_remesh.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_screw.c (+1, -2) (Diff)
/source/blender/modifiers/intern/MOD_skin.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_solidify.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_triangulate.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_util.c (+2, -4) (Diff)
/source/blender/blenkernel/intern/cdderivedmesh.c (+11, -0) (Diff)
/source/blender/blenkernel/intern/DerivedMesh.c (+103, -46) (Diff)
/source/blender/blenkernel/intern/editderivedmesh.c (+2, -1) (Diff)
/source/blender/blenkernel/intern/modifiers_bmesh.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/smoke.c (+1, -0) (Diff)
/source/blender/blenkernel/intern/subsurf_ccg.c (+2, -1) (Diff)
/source/blender/editors/space_view3d/drawobject.c (+5, -0) (Diff)
/source/blender/modifiers/intern/MOD_array.c (+1, -8) (Diff)
/source/blender/modifiers/intern/MOD_bevel.c (+2, -2) (Diff)
/source/blender/modifiers/intern/MOD_boolean_util.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_edgesplit.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_explode.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_mask.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_mirror.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_ocean.c (+3, -1) (Diff)
/source/blender/modifiers/intern/MOD_particleinstance.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_remesh.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_screw.c (+1, -2) (Diff)
/source/blender/modifiers/intern/MOD_skin.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_solidify.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_triangulate.c (+1, -1) (Diff)
/source/blender/modifiers/intern/MOD_util.c (+2, -4) (Diff)