I 的魔力轉圈圈
想你想到心花怒放 黑夜白天 🎶
|
什麼問題讓妳從下午糾結到晚上不睡覺 🤠🤔
|
以下截圖出自
Q1:
keyframe的bone存的是「Local 旋轉值I」
還是「和init pose的Local 旋轉差 dR」
|
上:init bone的local旋轉值I I for initial
下:keyframe的旋轉資料
|
|
「T pose」 VS 「A pose」
|
|
把T pose 的旋轉資料,拿給A pose用
如果keyframe的bone存的是「Local
旋轉值I」 就不會有上面的結果
可見keyframe的bone存的是 「和init
pose的Local 旋轉差dR」
|
Q5:
計算旋轉差dR有2種方式
動畫的過程看起來有什麼不同?
|
想對child沿著它的local x軸(紅色)旋轉90度 用intrinsic對使用者來說比較直觀
對映到的extrinsic就是 繞parent的y軸(綠色)旋轉90度
最終2個方法看起來的結果是一樣的 |
Q2:怎麼處理
直覺就是乘上旋轉差矩陣
補償回來
IB = IB (IA)-1 IA
(這裡的I不是單位矩陣)
這樣就可以繼續使用T pose的旋轉差dR了
|
「bone A」 VS 「bone B」
|
|
R 代表 local 旋轉差dR
|
Q3:
為什麼和教授推導的結果不1樣?
|
pi代表父bone i代表子bone
|
|
Q是Global 旋轉差 dQ R是Local 旋轉差 dR 旋轉矩陣的逆 =
旋轉矩陣的Transpose
|
|
原來是包2層 🙂
就像開車
1開始 方向盤向偏右10度
左轉90度 再右轉90度
結果還是向右偏10度 🙂
等1下
左乘矩陣代表Local旋轉
右乘矩陣代表Global旋轉
只有在2D旋轉的case
上面的黃色(還有水藍)才能互消
在3D旋轉的case
無法保證 ITRI = R 🤠
(這裡的I不是單位矩陣)
|
重新檢視
感覺教授這裡的推導
是在「只有2D旋轉」的前提下進行的
|
使用這張圖可以驗證上圖的做法在3D不成立
intrinsic 正常是 Ip Rp Ic Rc parent沿著local x軸(紅色)轉-45度 child沿著 local z軸(藍色)轉-90度
而Ip Ic Rp Rc則是 把child變換到世界後 child先沿著local x軸(紅色)轉-45度 child再沿著local z軸(藍色)轉-90度
extrinsic 正常是 Rp Ip Rc Ic parent沿著世界y軸(綠色)轉-45度 child沿著parent z軸(藍色)轉-90度
而Rp Rc Ip Ic則是 把child變換到世界後 child先沿著世界z軸(藍色)轉-90度 child再沿著l世界y軸(綠色)轉-45度 |
|
「式1」和「式2」會相等
|
Q4:
這裡Q沒改成I會怎樣
|
還是可以消掉 但結果和Q2的式子不同
而且出現了未知項 做為公式也沒辦法使用
|
妳用了幾張信封背面 🤠
也只有健保局和國民年金會寄信給我 🙂