我有一個基本THREE.js
場景,創建於Blender
,包括立方體和旋轉平面。有沒有什麼辦法可以將這個THREE.js
場景自動轉換成CANNON.js
世界?將THREE.js場景轉換爲CANNON.js世界
感謝
我有一個基本THREE.js
場景,創建於Blender
,包括立方體和旋轉平面。有沒有什麼辦法可以將這個THREE.js
場景自動轉換成CANNON.js
世界?將THREE.js場景轉換爲CANNON.js世界
感謝
望着Three.js Blender exporter,它看起來像只有出口網格數據,沒有關於數學形狀(盒,面,球等)的Cannon.js需要工作的信息。你可以嘗試使用它的Trimesh類將你的網格直接導入到Cannon.js中,但是這會傷心地only work for collisions against spheres and planes。
你需要什麼養活Cannon.js是數學幾何數據,告訴它這在你的網你的三角形代表一箱(或飛機),並在其質量中心的。
用於創建3D WebGL物理的常見(手動)工作流程是將3D模型導入支持WebGL的遊戲引擎(如Unity,Goo Create或PlayCanvas)。在遊戲引擎中,你可以添加碰撞形狀到你的模型(盒子,飛機,球體等),所以物理引擎可以有效地工作。您可以從那裏預覽您的物理模擬並導出完整的WebGL體驗。
去,因爲這裏要考慮一些新的選項後另一個答案...
mesh2shape(...)
幫手,可以轉換(每次一個對象)從THREE.Mesh到CANNON .Shape對象。它不支持某些功能,例如heightmaps/terrain。實施例:
var shape = mesh2shape(object3D, {type: mesh2shape.Type.BOX})
謝謝你的答案,這個偉大的引擎,它幫了我很多關於我的項目!在解決問題的過程中,我遇到了另一個問題:大炮飛機似乎沒有限制。我怎樣才能限制飛機,以便我可以實現某種三角棱鏡? –
很高興聽到它對你有用! 如果你想要一個方形平面,使用一個盒子而不是一個平面。如果你想要一個三角棱鏡,然後構造一個凸面。也許你甚至可以使用一個只有很少部分的Cylinder。 – schteppe