Is Slerp enough for any case of Quaternion Interpolations?

If comes to Vector3, there are lots of ways to interpolate two Vector3s. For example Lerp, Quadratic, Cubic Interpolations. I tried to find something like Quadratic or Cubic Interpolation for Quaternion, but only what I got was just Slerp.

So here are my questions.

  1. Why it is so hard to find example of Spline interpolation of quaternion? Maybe Slerp just enough for all other cases of quaternion interpolation?

  2. If Spline Interpolation for Quaternion is available, can you describe how to do that?

Thank you.

I’m not sure what you’re exactly looking for because for quadratic interpolation you need at least 3 and for cubic interpolation you need at least 4 points. If you only have 2 points the only possible (spatial) interpolation is linear as no other form giving parameters are available.

Maybe you just meant a non linear time interpolation? This is equivalent between Lerp / Slerp with vectors or quaternions. So maybe you’re just looking for a non linear one dimensional time mapping like one of the Hermite polynomials (often the h01 is used for ease-in/out). This is only applied to the “t” value of your Lerp / Slerp so it does not increase linearly but ease in/out.

There are more complex mappings that include over / under shooting or damping / bouncing. Though the actual interpolation can still be linear. For any mapping that does apply over / under shooting you have to use the unclamped version of Lerp / Slerp.

Yes, it is entirely possible to apply n-th order polynomials to quaternions as a form of interpolation. This is a great way to segway through a chain of rotation angles in a more smooth manner than with a linear interpolation such as slerp. I have used different methods for camera paths on different webGL projects but haven’t played around with Unity enough to implement it here. Someone has actually already created a web page demonstrating different quarternion interpolation methods here.