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
© 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
|