我需要知道如何利用Cannon.js物理效果生成复杂的形状以集成到我的Three.js场景中。
我从这个例子开始:http://schteppe.github.io/cannon.js/demos/bunny.html
看一下代码,我注意到兔子的面和顶点都在数组中。看起来非常强大但如果我想动态生成这些数组怎么办?
例如,仅使用Three.js,可以在json格式上导出Blender模型并以编程方式将其加载到场景中。我需要为Cannon.js做同样的事情,但它似乎与使用Blender模型的Three.js一样。
提前致谢
答案 0 :(得分:6)
兔子是由凸形状构成的,使用名为HACD的Convex分解软件进行预先计算。凸面分解就是当您采用凹面网格并将其转换为凸形子网格时。
一种解决方案是自己做同样的事情:使用工具从更复杂的网格中制作凸形子形状。 另一种解决方案是使用简单的内置基元(如球体和框)来构建物理形状。由多个子形状组成的形状称为复合形状(请参阅Cannon.js compound demo)。许多游戏开发人员使用这种方法,因为它是一个更简单的工作流程,并提供更好的物理性能。
(图片来自Unity manual)
答案 1 :(得分:5)
对于未来的读者,有一个例子可以将自定义网格转换为加农炮体。
我希望你觉得这个答案很有用。