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應該對其做了優化,效率怎么樣要測一下才知道了。