What is "dual quaternion"?
- Analogue of homogeneous matrices to quaternions
- So can represent a translation also
- Chasles' Theorem
- Every rigid transformation can be expressed as a screw (rotation and translation along the same axis)
- Application of "dual numbers" concept to quaternions
- SLERP in quaternions corresponds to ScLERP(Screw LERP) in dual quaternions that generalizes SLERP to all rigid transformations.
What are its merits?
- Coordinate Invariance
- interpolation of regular quaternion & translation is not coordinate invariant
- always rotates about origin
- ScLERP is coordinate invariant
- Preserves rigidity (top: linear skinning / bottom: DQ skinning)
How about performance?
- Conversions between (regular quaternion + translation) & dual quaternions require just one quaternion product
- Only marginally more expensive than regular quaternion skinning
A pitfall (comes out in regular quaternions also)
- Coping with antipodality
- We have to find the shortest path of rotation among two possible candidates
- One can do this in vertex shader or approximately precompute on CPU
- Not a panacea
- Dual quaternion skinning can have its own share of problems in certain areas
- We can fix it somewhat with additional bones, but definitely not an ideal solution
Reference
Trackback :: http://gl3d.net/trackback/145
top
Recent comment