在计算机图形学和机器人学中,SLERP 是一种用于在两个单位四元数之间进行平滑插值的技术,常用于动画和路径规划。
数学定义
给定两个单位四元数 和 ,参数 ,SLERP 定义为:
其中 是两个四元数之间的夹角。当 接近零时,SLERP 退化为线性插值(LERP + 归一化)以避免数值不稳定。
几何意义
SLERP 在四维超球面 上沿大圆弧进行等速运动,对应到三维旋转空间中就是在两个旋转之间走最短路径(测地线),且角速度恒定。这与简单的线性插值后归一化(NLERP)不同,NLERP 的角速度在端点处快、中间慢,不够均匀。
实际使用注意
- 双重覆盖:四元数 和 表示同一旋转。插值前应检查 ,若是则取反其中一个,确保走最短弧
- 小角度:当 时,使用线性插值近似,避免 导致的除零
- 多段插值:对多个旋转关键帧做分段 SLERP 只能保证 连续。若需要更平滑的过渡,可使用 SQUAD(Spherical Quadrangle)等高阶插值方法