維尼的蜂巢

RealTime??!! It’s amazing!!!!

該用SSE嗎? 十二月 25, 2006

Filed under: HeartStory — kevinlin @ 10:49 上午

最近在做slerp的算法,這是骨骼動畫裡最關鍵的一個演算法,兩個影格間我們想做間補或者我們想合成兩個動畫,都需要用到slerp這個演算法,其實算是內插法而已,如果看過Alan Watt跟David H. Eberly的書,就知道他們都說slerp可以藉SSE來增加效率,因為計算量大,又最常用到,不過SSE是組語畢竟有點難維護😛

siggraph2003有一篇animation blending 的paper,他們是想做類似鋼彈那種機器人,然後走在不規則的山坡上,要處理腳掌的問題,想想,山坡的角度都不同,不可能叫美術每個角度都算出來吧!!所以舉個例,我們做了一個0度跟一個70度的腳掌(假設最大70度),然後根據當時地形去內插前面那兩個腳掌,就能得到我們要的了。其實這解決方法應該很久以前就有了吧,像是我們玩CS邊射擊邊跑,這也是把射擊跟跑步拿來做合成,還有跳躍,我們遇到的可跳躍平台也許高度都不一樣,但是美術不可能針對每種高度都去輸出一次,(很久以前有一款大唐雙龍傳就是只能對某高度的平台才能跳過去)所以我們可以根據某個部位去做合成,這很直覺的讓我想到,我們可以做左右互搏之術,設計許多武功招式,玩家可以自己設定左邊打什麼右邊打什麼😛

結果有人測試過其實在VC裡Release版就比Debug版效能好大概10倍了,而且測試過SSE,似乎沒有什麼增加效率的感覺,有也是一點點感受不出來,有人說跟編譯器有關,也許VC已經做了最佳化了,我想有空時多花些時間來測試每個fuction用SSE的差異性。

 

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s