Direct Delta Mush is a novel skinning deformation technique introduced by Le and Lewis (2019). It generalizes the iterative Delta Mush algorithm of Mancewicz et al (2014), providing a direct solution with improved efficiency and control. Compared to Linear Blend Skinning, Direct Delta Mush offers better quality of deformations and ease of authoring at comparable performance. However, Direct Delta Mush does not handle non-rigid joint transformations correctly which limits its application for most production environments.
This paper presents an extension to Direct Delta Mush that integrates the non-rigid part of joint transformations into the algorithm. In addition, the paper also describes practical considerations for computing the orthogonal component of the transformation and stability issues observed during the implementation and testing.
2. Non-Rigid Transformations
“Squash and stretch” is one of the 12 basic principles of animation. In order to accurately model this behavior, it is often necessary to apply non-uniform scale to joint transformations during animation. Unfortunately, Direct Delta Mush (DDM) (Le and Lewis, 2019) fails to accurately handle non-rigid joint transformations, as shown in Figure 0(a), when compared to similar transformations with Linear Blend Skinning (LBS), shown in Figure 0(b). Not surprisingly, the original Delta Mush (DM) (Mancewicz et al., 2014) technique exhibits the same artifacts under non-rigid transformations.
Conceptually, DM/DDM applies joint transformations to mesh vertices that have undergone Laplacian smoothing , and then restores the surface detail lost through smoothing by applying the delta between the smoothed and non-smoothed vertices at rest pose. However, while displacements of smoothed and non-smoothed vertices under rigid transformation are equivalent, vertex displacements under non-rigid transformation are not, as seen in Figure 2.
The key insight is to compute the displacement of non-smoothed vertices under non-rigid transformation and reintroduce that displacement as a rigid transformation of smoothed vertices.
To that end, the DDM runtime computation is updated as follows. Each joint transformation is factored into a combined scale and shear matrix and a rigid only transformation matrix (Spencer, 1991). Then, for each vertex in the rest pose, a displacement under non-rigid transformations is computed as: , where is applied as a local transformation at each joint. Finally, equation 7 rev. of the DDM algorithm is modified to be:
With this formulation, the non-rigid transformation of each influence joint is then weighted using the precomputed weights, producing the desired deformation seen in Figure 0(c). This solution supports mixed hierarchies of scale-propagating and scale-compensating joints, which are typical of production rigs in Maya and other digital content creation tools.
3. Nearest Orthogonal Matrix
To compute the orthogonal component of the vertex transformation, the full model variant of DDM calls for solving the Singular Value Decomposition (SVD) of amatrix , so that . Performing a full SVD for each vertex comes at a significant computational cost and poses implementation challenges for real-time environments. Instead, we can take advantage of the fact that is a square matrix to consider the Polar Decomposition as a solution to the Procrustes problem. Here, , where
is the nearest orthogonal matrix andis a symmetric matrix. To solve for :
The square root inverse of the symmetric matrix can be efficiently computed using a closed form solution, which can be easily implemented as a compute kernel (Franca, 1989). This formulation provides equivalent results to the full SVD solution at a reduced cost.
4. Practical Observations
While testing with a large range of motion we found instances where the orthogonal matrix contained reflection as well as rotation. This occurs with both the SVD formulation of Le and Lewis, and our square root formulation. These reflections can result in discontinuous motion and undesirable visual artifacts during animation, making it necessary to restrict the solution to rotation matrices. To do so when using SVD, the formula for is modified to be (Higham, 1988):
The same correction can be applied to the square root formulation by negating the smallest eigenvalue when the determinant ofis negative. Note that this requires computing all three eigenvalues using the Stephenson/Sawyers alternative method described by Franca.
Additional testing on more complex geometry revealed that some smoothed vertices were degenerating under the transformation , as seen in Figure 2(a). This issue was also present in the unmodified implementation of DDM. In order to achieve a stable solution we found it necessary to use double precision arithmetic in the calculation of Laplacian cotangent weights.
- An algorithm to compute the square root of a 3 × 3 positive definite matrix. Vol. 18, pp. 459–466. External Links: Cited by: §3.
- Matrix nearness problems and applications. In Proceedings of the IMA Conference on Applications of Matrix Theory, pp. 1–27. Cited by: §4.
- Direct delta mush skinning and variants. ACM Trans. Graph. 38 (4). External Links: Cited by: §2.
- Delta mush: smoothing deformations while preserving detail. pp. 7–14. External Links: Cited by: §2.
- Decomposing a matrix into simple transformations. In Graphics Gems II, pp. 320–323. Cited by: §2.