Forward Kinematics
October 17, 2009
The video is generated using my own animation controller. The animation is loaded from
a .X file. I load the hierarchy and parse the keyframe data. Once this is done all matrices in
the animation controller are transformed into VQSs. A VQS encapsulates orientation as a
quaternion, scale as a scalar, and translation as a vector. This structure is then interpolated
using Slerp (spherical linear interpolation) for quaternions, eLerp for scale and Lerp (linear
interpolation) for translations.
I am currently working on an animation controller more robust and more flexible that
will use IK and FK along with a real-time tweak-able weight system. The data will be taken
from FBX which seems to be a solid cross platform format for the moment. Again, just like in the IK demo I use an HLSL GPU skinning shader.
Inverse Kinematics
October 17, 2009
For this demo I have built an IK solver. The skeleton and the geometry are extracted
from a .X file. I have attached an XML definition of the bone constraints of my model. This
allowed me to easily adapt the constraints to make the solution look more human-like. The
solver uses CCD (Cyclic Coordinate Descent) to realign the IK chain with the target.
I am not satisfied with the way the constraints are defined. Extracting them directly from
a file exported by a modeling package is the way into which I am looking into using FBX right now. Furthermore I would like to build an animation controller that incorporates IK and FK to achieve more realism. The rendering is done using GPU skinning.