Jason Winnebeck -- Skeletal Animation Project -- May 14, 2003
How Does Skeletal Animation Work?
The skeleton is strictly a hierarchy of transforms, and is affected directly
by its single parent. Each joint has 5 matricies:
- Reference Matrix: the initial starting position for each joint.
- Offset Matrix: transforms mesh coordinate space into joint space.
- Transform Matrix: the current transform of this Bone, in Bone's coordinate
space.
- Combined Matrix: this matrix is equal to this bone's parent's combined transformation
followed by this bone's transform matrix.
- Skinning Matrix: This matrix is the transformation from the combined matrix
followed by the transform of the offset matrx, and it is this matrix that
gets sent to the hardware
Binding Types:
- Rigid Binding - used in Half-Life for speed, used now for mechanical objects.
One bone influcence per vertex.
- Smooth Binding - used now to model biological actors. Each vertex has blend
weights adding to 1.
- FM = M1 * w1 + M2 * w2 + ... + Mn * wn
Rendering in hardware:
- Non-indexed blending : model split up into segment, for each segment, load
small set matrices and render segment.
- indexed blending : each vertex has indices pointing to a large matrix palette
containing all bones' matrices.
back || Implementation Design
All content on this web site is copyright © 1998-2020 by Jason Winnebeck, unless otherwise noted.