Understanding Slerp, Then Not Using It對Slerp的起源及性能做了詳細(xì)的討論。Slerp并不局限于維數(shù),因而不要認(rèn)為只對Quaternion有效。作者認(rèn)為Slerp會帶來效率問題,即便經(jīng)過優(yōu)化也并不能達(dá)到理想的速度(與lerp做比較而言),而且優(yōu)化往往會降低代碼的易讀性。文章給出了一個結(jié)論:如果插值過程中的常量速度不是必須的,那么最好使用線性的lerp。
Jason Gregory在他的引擎架構(gòu)設(shè)計一書中也用“To SLERP or Not to SLERP (That’s Still the Question)”一小節(jié)介紹了開發(fā)者對Slerp的爭論,并介紹他在Naughty Dog的同事針對PS3的優(yōu)化方法,使Slerp可達(dá)到20周期/關(guān)節(jié),相比Lerp的16.25周期/關(guān)節(jié)已經(jīng)很不錯了。
之前確實沒對Slerp的效率問題作過多的考慮,引擎的Slerp直接使用的是D3DXQuaternionSlerp,MS應(yīng)該對其做了優(yōu)化,效率怎么樣要測一下才知道了。