【问题标题】:Cannon.js complex shapesCannon.js 复杂形状
【发布时间】:2015-08-20 22:23:42
【问题描述】:

我需要知道如何利用 Cannon.js 物理特性生成复杂的形状以集成到我的 Three.js 场景中。

我从这个例子开始:http://schteppe.github.io/cannon.js/demos/bunny.html

查看代码,我注意到兔子是用数组中的面和顶点来描述的。看起来很强大,但是如果我想动态生成这些数组怎么办?

例如,仅使用 Three.js,可以将 Blender 模型导出为 json 格式,并以编程方式将其加载到场景中。我需要为 Cannon.js 做同样的事情,但它似乎与使用 Blender 模型的 Three.js 的工作方式不同。

提前致谢

【问题讨论】:

    标签: 3d three.js cannon.js


    【解决方案1】:

    兔子是由使用名为HACD 的凸分解软件预先计算的凸形状制成的。凸分解是指将凹网格转换为凸子形状。

    一种解决方案是自己做同样的事情:使用工具从更复杂的网格中制作凸子形状。 另一种解决方案是使用简单的内置基元(例如球体和盒子)来构建您的物理形状。由多个子形状组成的形状称为复合形状(请参阅Cannon.js compound demo)。许多游戏开发人员使用这种方法,因为它的工作流程更简单,并且提供更好的物理性能。

    (图片来自Unity manual

    【讨论】:

    • 非常有趣的答案,谢谢。我会尝试复合形状的方法。
    【解决方案2】:

    对于未来的读者,有一个将自定义网格转换为大炮体的示例。

    希望这个答案对您有用。

    【讨论】:

      猜你喜欢
      • 2011-12-28
      • 2019-07-23
      • 2016-01-21
      • 1970-01-01
      • 2012-12-17
      • 2013-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多