Blender Git Loki
Git Commits -> Revision 4f8079d
December 5, 2006, 17:42 (GMT) |
Modifier Stack: Limit calculation to required data. This commit upgrades the modifier stack to only calculate the data which is needed, either by modifiers further down the stack or by other functions at the end of the stack (e.g. drawing functions). This speeds up modifier stack recalculation, especially where vertex groups and UV coordinates are concerned. For example, a mesh with an Armature modifier followed by a Subsurf modifier would previously have required the Subsurf modifier to interpolate all the vertex groups in the mesh, slowing down modifier calculations considerably. With this update, vertex group data is not propagated beyond the Armature modifier, so calculations are faster. Note that this depends on the order of modifiers in the stack. If the Armature and Subsurf modifiers were swapped in the above example, the Subsurf modifier would have to interpolate vertex groups, as they are needed by the Armature modifier. |
Commit Details:
Full Hash: 4f8079d49cc0cc037ef429123ee6faf031b5c333
SVN Revision: 9196
Parent Commit: 869eead
Lines Changed: +418, -107
30 Modified Paths:
/source/blender/blenkernel/BKE_customdata.h (+17, -6) (Diff)
/source/blender/blenkernel/BKE_DerivedMesh.h (+29, -9) (Diff)
/source/blender/blenkernel/BKE_displist.h (+2, -1) (Diff)
/source/blender/blenkernel/BKE_modifier.h (+28, -1) (Diff)
/source/blender/blenkernel/intern/anim.c (+4, -4) (Diff)
/source/blender/blenkernel/intern/customdata.c (+29, -9) (Diff)
/source/blender/blenkernel/intern/DerivedMesh.c (+129, -37) (Diff)
/source/blender/blenkernel/intern/displist.c (+5, -3) (Diff)
/source/blender/blenkernel/intern/exotic.c (+2, -2) (Diff)
/source/blender/blenkernel/intern/mesh.c (+2, -2) (Diff)
/source/blender/blenkernel/intern/modifier.c (+113, -0) (Diff)
/source/blender/blenkernel/intern/object.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/softbody.c (+4, -4) (Diff)
/source/blender/blenkernel/intern/subsurf_ccg.c (+2, -2) (Diff)
/source/blender/blenlib/BLI_editVert.h (+4, -0) (Diff)
/source/blender/makesdna/DNA_customdata_types.h (+12, -0) (Diff)
/source/blender/makesdna/DNA_object_types.h (+2, -0) (Diff)
/source/blender/python/api2_2x/Mesh.c (+2, -2) (Diff)
/source/blender/python/api2_2x/NMesh.c (+4, -2) (Diff)
/source/blender/render/intern/source/convertblender.c (+2, -1) (Diff)
/source/blender/src/drawimage.c (+2, -1) (Diff)
/source/blender/src/drawmesh.c (+2, -2) (Diff)
/source/blender/src/drawobject.c (+12, -9) (Diff)
/source/blender/src/editface.c (+1, -1) (Diff)
/source/blender/src/editmesh_mods.c (+1, -1) (Diff)
/source/blender/src/editobject.c (+1, -1) (Diff)
/source/blender/src/poseobject.c (+1, -1) (Diff)
/source/blender/src/transform_conversions.c (+2, -2) (Diff)
/source/blender/src/verse_object.c (+2, -2) (Diff)
/source/blender/src/vpaint.c (+1, -1) (Diff)
/source/blender/blenkernel/BKE_DerivedMesh.h (+29, -9) (Diff)
/source/blender/blenkernel/BKE_displist.h (+2, -1) (Diff)
/source/blender/blenkernel/BKE_modifier.h (+28, -1) (Diff)
/source/blender/blenkernel/intern/anim.c (+4, -4) (Diff)
/source/blender/blenkernel/intern/customdata.c (+29, -9) (Diff)
/source/blender/blenkernel/intern/DerivedMesh.c (+129, -37) (Diff)
/source/blender/blenkernel/intern/displist.c (+5, -3) (Diff)
/source/blender/blenkernel/intern/exotic.c (+2, -2) (Diff)
/source/blender/blenkernel/intern/mesh.c (+2, -2) (Diff)
/source/blender/blenkernel/intern/modifier.c (+113, -0) (Diff)
/source/blender/blenkernel/intern/object.c (+1, -1) (Diff)
/source/blender/blenkernel/intern/softbody.c (+4, -4) (Diff)
/source/blender/blenkernel/intern/subsurf_ccg.c (+2, -2) (Diff)
/source/blender/blenlib/BLI_editVert.h (+4, -0) (Diff)
/source/blender/makesdna/DNA_customdata_types.h (+12, -0) (Diff)
/source/blender/makesdna/DNA_object_types.h (+2, -0) (Diff)
/source/blender/python/api2_2x/Mesh.c (+2, -2) (Diff)
/source/blender/python/api2_2x/NMesh.c (+4, -2) (Diff)
/source/blender/render/intern/source/convertblender.c (+2, -1) (Diff)
/source/blender/src/drawimage.c (+2, -1) (Diff)
/source/blender/src/drawmesh.c (+2, -2) (Diff)
/source/blender/src/drawobject.c (+12, -9) (Diff)
/source/blender/src/editface.c (+1, -1) (Diff)
/source/blender/src/editmesh_mods.c (+1, -1) (Diff)
/source/blender/src/editobject.c (+1, -1) (Diff)
/source/blender/src/poseobject.c (+1, -1) (Diff)
/source/blender/src/transform_conversions.c (+2, -2) (Diff)
/source/blender/src/verse_object.c (+2, -2) (Diff)
/source/blender/src/vpaint.c (+1, -1) (Diff)