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)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021