2015-06-05 167 views
2

我需要知道如何生成一個複雜的形狀以整合到我的Three.js場景中,以及Cannon.js物理的好處。Cannon.js複雜的形狀

我從這個例子開始:http://schteppe.github.io/cannon.js/demos/bunny.html

綜觀代碼,我注意到,兔子用其面和頂點在陣列描述。看起來很強大,但如果我想動態生成這些陣列,我該怎麼辦?

例如,僅使用Three.js,可以導出JSON格式的Blender模型並以編程方式將其加載到場景中。我需要爲Cannon.js做同樣的事情,但它看起來不像Three.js與Blender模型一樣。

在此先感謝

回答

4

的兔子是做出來的已使用凸分解軟件稱爲HACD預先計算凸形狀。凸分解是當你把一個凹形網格變成凸子體時。

一個解決方案是自己做同樣的事情:使用一個工具從一個更復雜的網格中製作凸面子模型。 另一種解決方案是使用簡單的內置基元(如球體和盒子)來構建物理形狀。由幾個子模組成的形狀稱爲複合形狀(參見Cannon.js compound demo)。許多遊戲開發人員使用這種方法,因爲它是一個更簡單的工作流程並提供更好的物理性能

Compound collider in Unity

(圖片來自Unity manual

+0

非常有趣的答案,謝謝。我會嘗試複合形狀的方法。 – Rotan