Re: [程式] 遊戲數學:Sterp - 物件旋轉擺扭解構

看板GameDesign作者 (3d)時間5年前 (2018/09/04 18:12), 5年前編輯推噓5(502)
留言7則, 3人參與, 5年前最新討論串2/2 (看更多)
※ 引述《cjcat2266 (CJ Cat)》之銘言: : 最近在看一個GDC影片的時候講者提到 : 旋轉的 "擺扭解構" (swing-twist decomposition) : 只是一語帶過,但勾起了我的好奇心,所以就開始研究 : 研究後覺得算蠻有用的工具,所以就寫了一篇文來整理和分享心得 : 一般從一個旋轉漸變到另外一個旋轉 : 是用球線性內插 (slerp, spherical linear interpolation) : 數學上的意義是,代表旋轉的四元數沿著4D球體表面的最短大圓路徑移動 : 雖然在4D定義上是"最短路徑",不過在某些情況下,slerp的效果不是最理想的 : 例如一個長竿在slerp的時候,兩端視覺上並不是沿著3D球體表面的最短大圓路徑 : 理想上兩端應該要沿著大圓路徑"擺動" (swing),然後本身沿著長軸"扭動" (twist) : 這個時候就需要用擺扭解構把旋轉分成擺動和扭動兩個部分 : 後兩部分各自內插後再組合,就可以達到理想的效果 : 詳細解釋(含插圖動畫)、推導、Unity中的實作和證明,請見: : http://allenchou.net/2018/05/game-math-swing-twist-interpolation-sterp/ : 好棒。好久沒在想quaternion的東東,雖然還是在用。 nlerp不知你聽過嗎? http://number-none.com/product/Understanding%20Slerp,%20Then%20Not%20Using%20It/ 遊戲上來講,其實比較好用。nlerp是commutative,也cheaper to compute. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.231.146.94 ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1536055935.A.2E0.html

09/05 00:27, 5年前 , 1F
有啊,沒有特別需求就是用nlerp
09/05 00:27, 1F
好棒。可惜厲害的人才都必須離開台灣。

09/05 15:32, 5年前 , 2F
我認為不能這麼說,在台灣的人才不少吧
09/05 15:32, 2F

09/05 15:35, 5年前 , 3F
在一些國內業界論壇出入,其實可以看到頂標水準不輸國
09/05 15:35, 3F

09/05 15:35, 5年前 , 4F
外的
09/05 15:35, 4F
台灣還是有神人

09/06 02:39, 5年前 , 5F
其實Unity3d的Quaternion.Lerp就是nlerp
09/06 02:39, 5F
謝謝,之前不太確定lerp就是nlerp,沒研究遊戲engine太久了。 不過還是Jonathan Blow解釋清楚。google "lerp vs slerp"那個unity forum看了,沒講到重點。 ※ 編輯: oopFoo (36.231.129.217), 09/06/2018 10:40:24

09/06 13:32, 5年前 , 6F
官方文件上有寫Quaternion.Lerp就是Nlerp
09/06 13:32, 6F

09/15 00:14, 5年前 , 7F
其實我不太用 slerp,都是用 lerp 再搭配 Curve 使用
09/15 00:14, 7F
文章代碼(AID): #1RZbf_BW (GameDesign)
文章代碼(AID): #1RZbf_BW (GameDesign)