Rot*_*tan 3 3d three.js cannon.js
我需要知道如何生成一个复杂的形状来集成到我的Three.js场景中,以及Cannon.js物理的好处.
我从这个例子开始:http://schteppe.github.io/cannon.js/demos/bunny.html
看一下代码,我注意到兔子的面和顶点都是用数组来描述的.看起来非常强大但如果我想动态生成这些数组怎么办呢?
例如,仅使用Three.js,可以在json格式上导出Blender模型并以编程方式将其加载到场景中.我需要为Cannon.js做同样的事情,但它似乎与使用Blender模型的Three.js的工作方式不同.
提前致谢
兔子由凸形形状制成,使用名为HACD的Convex分解软件进行预先计算.凸面分解是指采用凹面网格并将其转换为凸形子网格.
一种解决方案是自己做同样的事情:使用工具从更复杂的网格中制作凸形子形状.另一种解决方案是使用简单的内置基元(如球体和框)来构建物理形状.由多个子形状组成的形状称为复合形状(请参阅Cannon.js复合演示).许多游戏开发人员使用这种方法,因为它更简单的工作流程并提供更好的物理性能.

(图片来自Unity手册)
小智 5
对于未来的读者,有一个例子可以将自定义网格转换为加农炮体.
我希望你觉得这个答案很有用.