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.

Follow

Get every new post delivered to your Inbox.