[Bf-committers] Please use slerp for quaternion interpolation

Tobias Oelgarte tobias.oelgarte at googlemail.com
Wed Oct 3 14:26:44 CEST 2012


I'm currently working on a larger project which involves a lot of 
rotations and I'm bound to use quaternions for the export (axis angle or 
euler angles aren't supported). The exporter itself uses the current 
(visual) transforms of the bones for every frame. But the current 
interpolation scheme is really bad. It uses curve interpolation for unit 
quaternions which gives wrong results, or better said, no good 
interpolation. Often i have to notice that bones start to rotate a bit 
in the wrong direction and after that it follows more or less the right 
way. (The interpolation scheme don't respect that is has to be a _unit_ 
quaternion as the result)

A good interpolation scheme would use slerp[1] to interpolate between 
keyframes, while a progression curve would define how strong the 
influence of the keys is at given time. I know that in theory it is very 
simple and in implementation it might be a pain, but it would also 
improve overall animation experience. Being able to manipulate the 
curves for quaternion interpolation is also never a good idea.

[1] http://en.wikipedia.org/wiki/Slerp

Greetings from
Tobias Oelgarte

More information about the Bf-committers mailing list