2024年7月28日 星期日

質點彈簧模型的微分

希望你我講過的話

放在心肝內 總有擠剛 🎶

BGM

以下截圖出自

Games103 第3講 第5講
Games105 P9

布料模擬一瞥

From 顯示積分 to 隱式積分


顯示積分 vs 隱式積分

先更新質點上的力F
再更新質點的速度V和位置X


求x[1]等同於找出F(x)函數的極值點

這裡M是對稱矩陣,所以M = MT




泥有沒有發現

下面這6張圖

少了某個關鍵的微分 🧐
這是什麼 微分版的威力在那裡嗎 🤠

圖1 圖2
圖3 圖4

圖1放大

圖2放大

圖3放大

圖4放大

圖5

圖6

圖7

1234567

妳說的微分在那裡 🎶


這裡是對Xi微分

這裡是對Xi微分


這裡也是對Xi微分


這裡是對X微分

用鏈式法則打通①和②


我說的微分置叨 🎶
置這 置這 🙂

看起來
多這1層微分可以用來決定力的方向

變數變換改成xji再試1遍
會發現結果還是指向微分的質點

檢驗圖6


圖6


擠在那裡不好吧 🤠🙂 這是法式浪漫

2024年7月20日 星期六

Retarget的疑惑

的魔力轉圈圈 

想你想到心花怒放 黑夜白天 🎶

什麼問題讓妳從下午糾結到晚上不睡覺 🤠🤔

以下截圖出自

Games105 第4講

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個方法看起來的結果是一樣的

以下的推導都是用extrinsic


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
正常是 IRIRc
parent沿著local x軸(紅色)轉-45度
child沿著 local z軸(藍色)轉-90度

而IIRRc則是
把child變換到世界後
child先沿著local x軸(紅色)轉-45度
child再沿著local z軸(藍色)轉-90度

extrinsic
正常是 RIRIc
parent沿著世界y軸(綠色)轉-45度
child沿著parent z軸(藍色)轉-90度

而RRIIc則是
把child變換到世界後
child先沿著世界z軸(藍色)轉-90度
child再沿著l世界y軸(綠色)轉-45度


而使用Q2的式子很容易驗證下圖的

「式1」和「式2」會相等

Q4:

這裡Q沒改成I會怎樣


還是可以消掉
但結果和Q2的式子不同

而且出現了未知項
做為公式也沒辦法使用

妳用了幾張信封背面 🤠
也只有健保局和國民年金會寄信給我 🙂

2024年7月16日 星期二

最小包覆圓 & 反演


最小包覆圓


出處:Games001 第3講

假設在第1層迴圈
發現M不在包覆圓內

就要進入第2層迴圈 j = 1 ~ i - 1
並在必要時建立2點共圓(細框圓)

每次建立2點共圓
就要進入第3層迴圈 k = 1 ~ j - 1
並在必要時建立3點共圓(粗框圓)

3層迴圈看起來像這樣
第1層 ABCDEFGHIJKLM
第2層 ABCDEFGHIJKL
第3層 ABCDEF

時間複雜度為什麼是9N



原來要計算每1層次數的期望值
commonc的博客

第i個點在前i個點集中
屬於邊界點的機率是3/i

反演

穿過O的圓,為什麼反演後會變成直線?

出處

好像沒什麼用


原來如此


投影片的方法


出處:Games001 第3講