Game Development Reference
Figure 13.1. With 0 . 5 weighting to two bones and a rotation approaching 180 degrees, the
resulting vertex collapses to the center. The error between the desired position (along the
arc) and the actual position is quite noticeable. This error starts off negligible, but increases
significantly as the rotation approaches 180 degrees.
joint that is left at its rest pose). This line passes through the axis of rotation,
which means our point has completely collapsed.
But long before we get to 180 ◦ (an arguably extreme rotation), the point has
already begun to deviate from the natural arc we would prefer it to take. So
limiting rotations to within some safe range is not really a solution.
This natural arc has been the subject of a lot of research. It is clear that the
naive way in which we blend matrices with the smooth skinning algorithm results
in a transformation that is no longer rigid, even if the input transformations were
themselves rigid. The loss of rigidity means that we are left with a transforma-
tion that includes some amount of scaling, when what we really wanted was an
orthonormal matrix. This would give us a nice arc under twisting motions, rather
than an ugly linear interpolation (resulting in the candy wrapper).
13.3.4 Alternatives to Smooth Skinning
So the question becomes, how do we blend rigid transformations without in-
troducing scaling? There have been several proposed methods in academic pa-
pers, including log-matrix blending, decomposition into quaternions (and blend-
ing them instead), and most recently, a promising technique based on geometric
algebra called dual quaternions (DQ). I will refer interested readers to the excel-
lent treatment of this problem found in [Kavan et al. 07].
All of these methods have their own pitfalls; some require a computation-
ally expensive singular value decomposition, while others result in unacceptable
skinning artifacts under certain conditions.
Undoubtedly, the one that has received the most attention from real develop-
ers is the dual quaternion approach. This one has the advantage of maintaining