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)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021