Slerp or Lerp

Slerp or Lerp

Understanding Slerp, Then Not Using It对Slerp的起源及性能做了详细的讨论。Slerp并不局限于维数,因而不要认为只对Quaternion有效。作者认为Slerp会带来效率问题,即便经过优化也并不能达到理想的速度(与lerp做比较而言),而且优化往往会降低代码的易读性。文章给出了一个结论:如果插值过程中的常量速度不是必须的,那么最好使用线性的lerp。

Jason Gregory在他的引擎架构设计一书中也用“To SLERP or Not to SLERP (That’s Still the Question)”一小节介绍了开发者对Slerp的争论,并介绍他在Naughty Dog的同事针对PS3的优化方法,使Slerp可达到20周期/关节,相比Lerp的16.25周期/关节已经很不错了。

之前确实没对Slerp的效率问题作过多的考虑,引擎的Slerp直接使用的是D3DXQuaternionSlerp,MS应该对其做了优化,效率怎么样要测一下才知道了。

你可能感兴趣的:(Slerp or Lerp)