chinedufn / collada-dae-parser

Parse collada .dae 3d animation files into a WebGL friendly JSON format
http://chinedufn.github.io/collada-dae-parser/
MIT License
103 stars 10 forks source link

Add support for Dual Quaternion Blending #4

Closed chinedufn closed 7 years ago

chinedufn commented 7 years ago

Why this PR?

The animated human model would stretch in strange ways while being interpolated in between keyframes. This was due to issues with interpolating and blending matrices (interpolated rigid transform matrices are not guaranteed to be rigid transforms).

We needed to switch to Dual Quaternion Blending, which guarantees that blended keyframes are still rigid transforms

What is this PR?

This PR introduces Dual Quaternion Blending to the animated human demo. It uses dual quaternions on the CPU for keyframe interpolation, as well as on the GPU for blending.

Before and After Screenshots

TODO

TODO

Skinning with Dual Quaternions

A Beginner's Guide to Dual Quaternions

Applications of Dual Quaternions in Three Dimensional Transformation and Interpolation