我需要知道如何利用Cannon.js物理学的优势,生成一个复杂的形状来集成到我的Three.js场景中。
我从这个例子开始:http://schteppe.github.io/cannon.js/demos/bunny.html
看着代码,我注意到兔子是用数组中的面和顶点来描述的。看起来很强大,但是如果我想动态生成这些数组,我该怎么做呢?
例如,仅使用Three.js,就可以以json格式导出搅拌器模型,并以编程方式将其加载到场景中。我需要为Cannon.js做同样的事情,但它的工作方式似乎不同于Three.js的搅拌器模型。
提前感谢
发布于 2015-06-08 01:17:51
这只兔子是由使用名为HACD的凸面分解软件预计算出的凸面形状制成的。凸分解是指将凹面网格转化为凸形子形状。
一种解决方案是自己做同样的事情:使用工具从更复杂的网格生成凸形子形状。另一种解决方案是使用简单的内置基元,如球体和长方体来构建物理形状。由多个子形状组成的形状称为复合形状(请参阅Cannon.js compound demo)。许多游戏开发人员使用这种方法,因为它是一个更简单的工作流程,并提供更好的物理性能。

(图片来自Unity manual)
发布于 2016-12-16 06:11:10
对于将来的读者,有一个将自定义网格转换为炮身的示例。
首先,我使用v-算法将凹面形状转换为多个凸面形状。最后,我使用以下命令解析wrl输出文件:https://gist.github.com/Anthelmed/688499e314122f493a8f1c9d3b299594
我希望这个答案对你有用。
https://stackoverflow.com/questions/30675493
复制相似问题