Skinning with Dual Quaternions

Overview

The common skin deformation technique (linear blend skinning) sometimes produces non-natural results, such as below.


Several more advanced methods exist, but lead to slower run-time performance and require a more expensive character setup. Our approach, based on dual quaternions, removes the skinning artifacts at a small cost in computational efficiency and no cost at all in character setup. The result of our method is pictured below (using the same model files as above).

Benefits

  • eliminates skin collapsing artifacts
  • GPU friendly implementation
  • easy rigging: uses the same model files as standard linear blend skinning
  • very simple update of a 3D engine or similar software

Limitations

  • slightly slower than linear blend skinning (in our implementation: 7 more vertex shader instructions)
  • scale/shear is now supported (via two-phase skinning - extra 29 vertex shader instructions)
  • flipping artifacts (skin always goes the shorter way round)

Code

Note: By downloading the following source code, you agree to be bound by this licence.
  • C source code
    for conversion between regular quaternion with translation and dual quaternion
  • Cg source code
    of our dual quaternion skinning vertex shaders

Reading

Ladislav Kavan, Steven Collins, Jiri Zara, Carol O'Sullivan.
Geometric Skinning with Approximate Dual Quaternion Blending
ACM Transaction on Graphics, 27(4), 2008.
© ACM, 2008. This is the author's version of the work. It is posted here by permission of ACM for your personal use. Not for redistribution. The definitive version was published as indicated above.

Other related papers can be found on Ladislav's homepage

Contact

Email: ladislav.kavan@gmail.com