环境:Unity2018.3 语言:C#
总起:
本文主要参考《3D数学基础:图形与游戏开发》。
理论:
幂:
首先我们来看q^1/2,这是说明我们只需要q的一半位移,旋转是由θ来表示的,所以需要将w转换为θ(arccos(θ))后就能对其进行幂运算了。
平滑插值Slerp:
从q1到q2之间的差值为dq=inv(q1)q2,那么如果只需要t份dq,则表示为dq^t=(inv(q1)q2)^t。
最终的公式为:slerp(q0, q1, t) = q0 (inv(q1)q2)^t。
因为四元数可以说成