So, I'm working on an animation system in C++, and am trying to blend multiple animations together. A slerp is easy on two quaternions, but is it efficient (or accurate) to chain together for more than two quaternions? I would think there'd be a better way.

I did stumble upon this thread outlining an approach in Unity, but it looks pretty cumbersome, and a lot of it doesn't translate easily into the code base I'm working with. I have actually implemented the eigenvalue-based approach, but it is very slow. There must be a more efficient way!

  • \$\begingroup\$ What are your specific needs? If you don't need the perfectly uniform distribution of slerp, a simple weighted average and renormalization does decently well for many use cases. \$\endgroup\$ – DMGregory Nov 9 '20 at 3:06
  • \$\begingroup\$ See also this past Q&A on the topic \$\endgroup\$ – DMGregory Nov 9 '20 at 3:09
  • \$\begingroup\$ @DMGregory Oh, thanks for that thread! I might have to adapt the approach to weigh each quaternion properly, but it should do the trick. \$\endgroup\$ – Danny Nov 9 '20 at 4:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.