Skinning & Skeletal Animation

Experimentation with different methods for skinning and skeletal deformation.

Skeletal Animation

Computing Hamonic Skinning Weights on Selected Handles

Handle Selection
Skinning Weights Visualization

Skeletal Animation

Comparison of Animation Methods
Linear Blend Skinning

LBS propagates transformations using absolute translation and rotations. This method does not pay attention to rotation properties, particularly at the joints where edges of distinct rotations meet. This results in the mesh collapsing at the joint, as seen in this angle of the hand’s knuckles. This is a minor case of the candy wrapper effect discussed in lecture. The mesh loses volume at the knuckle, bringing the mesh’s faces unnaturally close to the joint of the skeleton. Though LBS is computationally simple, and its resulting mesh follows the path of the skeleton, it does not necessarily respect the structure defined by the skeleton.

Dual Quaternion Skinning

Dual quaternion skinning provides a smooth transition between poses as a result of using normalized quaternion interpolation. Another advantage is its volume preservation, especially at joints. To show this, I included screenshots from a different angle, and the difference is evident at the knuckle. Dual quaternion skinning preserves the mesh structure at the knuckle joint. This may look better than the LBS mesh collapse; however, when the angle is too acute, the resulting bulge may look unnatural.

Per-Face + Average Quaternions

Per-face blend skinning assigns a blended rotation to each face of the mesh, resulting in a more evenly-distributed movement across faces of the mesh. In other words, all faces contribute to the movement of the mesh with the skeleton; which is observed in the slight shifting of the entire palm as the hand closes. This characteristic creates an extremely smooth and more dynamic/realistic animation, as opposed to the previous two methods, which show no movement at all in certain areas like the center of the palm, creating harsh creases that are not observed in per-face blending. However, as a result of averaging rotations, this method may cause the mesh to stray from the skeleton, which is especially evident as the pinky finger fails keep the skeleton within the mesh.

The implementation of this animation mode references this paper.

Skeletal Animation