Blender Git Commit Log
Git Commits -> Revision 2cff1de
Revision 2cff1de by Sergey Sharybin (depsgraph_refactor) November 20, 2014, 13:57 (GMT) |
Depsgraph: Initial move towards more granular armatures update Main goal is to be able to do interleaved updates of bones from different armatures, so it'll be possible to drive some bones of armature B with bones of armature B and drive other bones in an opposite direction. This also beans interleaved update of bones from the same armature should be possible. This commit adds an initial support of this but have some limitation still, for example drivers are not supported yet at all. Spline IK is also not supported in the granular update. IK solver is so called "seems to work" state, but might need some extra work. Some technical details of the changes: - Basically just filled in existing callbacks which so far were doing nothing, also needed to fix some typos in the code. - Changed the Bone component a bit, so now it does have "Final Transform" NOOP node which would guarantee Bone component depends on the IK solver if it exists. So now all the external dependencies would use bone transform after the solver, plus bones child which are not in the solver would use solved transform of the bone. This required changes in the relations of the IK solver as well, so now it depends on the bone local transform and optionally on the bone constraint stack. - Currently scene is being passed for the current time, in the future we need to pass time source node instead. This would likely break some setups which used to work before going granular, but even at that time update wasn't finished at all. There are some known TODOs about making code more clean in the change, will be solved later. |
Commit Details:
Full Hash: 2cff1dece0ffa4cfa69cf1e239c89eef14b5133d
Parent Commit: fe55f74
Lines Changed: +278, -60
8 Modified Paths:
/source/blender/blenkernel/BKE_armature.h (+3, -0) (Diff)
/source/blender/blenkernel/intern/armature.c (+5, -0) (Diff)
/source/blender/blenkernel/intern/object_update.c (+1, -0) (Diff)
/source/blender/depsgraph/intern/depsgraph_build.h (+2, -2) (Diff)
/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp (+19, -13) (Diff)
/source/blender/depsgraph/intern/depsgraph_build_relations.cpp (+104, -34) (Diff)
/source/blender/depsgraph/intern/depsgraph_type_defines.cpp (+128, -7) (Diff)
/source/blender/depsgraph/intern/stubs.h (+16, -4) (Diff)
/source/blender/blenkernel/intern/armature.c (+5, -0) (Diff)
/source/blender/blenkernel/intern/object_update.c (+1, -0) (Diff)
/source/blender/depsgraph/intern/depsgraph_build.h (+2, -2) (Diff)
/source/blender/depsgraph/intern/depsgraph_build_nodes.cpp (+19, -13) (Diff)
/source/blender/depsgraph/intern/depsgraph_build_relations.cpp (+104, -34) (Diff)
/source/blender/depsgraph/intern/depsgraph_type_defines.cpp (+128, -7) (Diff)
/source/blender/depsgraph/intern/stubs.h (+16, -4) (Diff)