Dual quaternion skinning for Unity

before and after

Unity‘s skinned mesh renderer applies linear-based bending, which can result in collapsed volumes and “candy wrapper” twisting in the limbs.

Dual-quaternion skinning is an alternative method that helps preserve the mesh volume. It’s slower than linear-based, and has its own minor artifacts such as a bulging around the joints, but is a big improvement on the collapsed joints.

Constantine Rudenko has created a compute shader and scripts to convert Unity’s skinned meshes to dual quaternion at runtime. Blendshapes are supported.