碰撞真是個麻煩的東西…
最終還是選擇使用現成的Lib來用
之後應該會有一系列ODE的筆記吧~
以下節錄自ODE user guide 3.10 章節。
- 創造動力世界(dynamics world)。
- 創造在世界中的Body。
- 設定所有Body的狀態(座標之類的)。
- 創造在世界中的Joint。
- 將Joint依附在Body上。
- 設定所有Joint的屬性。
- 如果需要,創造碰撞世界(collision world)和碰撞幾何體(collision geometry)物件。
- 創造一個JointGroup來存放接觸點(contact joint)。
- 迴圈:
(a) 如果需要,套用Force到Body上。
(b) 如果需要,調整Joint的參數。
(c) 呼叫碰撞偵測。
(d) 為每個接觸點產生一個接觸點,並將之放進JointGroup。
(e) 推動模擬器(simulation)。
(f) 移除JointGroup裡面所有的接觸點。 - 摧毀動力世界和碰撞世界。
目前不是很確定Joint和Contact Joint是否有差別…
–End