我正在做一个无限跑步游戏,其中涉及三维物体-一个漫游者和一些障碍,在一个地形上移动。游戏使用p5.js WebGL功能制作。我几乎完成了游戏,但游戏应该结束时,漫游者遇到任何障碍。我只想知道我是否能够检测到两种三维物体的碰撞(漫游者是平面,障碍物是自定义加载模型)并结束game...Simply,我想知道WebGL中的碰撞检测是否可行,如果是的话,如何实现?请帮我一个忙。谢谢。
发布于 2022-06-29 23:27:12
实际上,理想情况下,您应该发布一份关于您试图检测碰撞的最低限度的草图:一些可以使其他人更容易做出贡献的东西(而不是代表您进行许多疯狂的猜测)。
一种方法是检查3d模型的边界框(由它定义的minX、minY、minZ、maxX、maxY、maxZ值)是否与平面相交(如果保持一致更简单,则检查平面的边界框)。它不会100%准确,取决于加载的模型(我们甚至不知道是什么),但这是一个不错的第一步。
为了获得更高的精度,凸壳将是方便的。如果在p5.js中从头开始计算可能会很困难,那么也许您可以使用相同的3D编辑器导出模型,生成原始模型的凸包,并导出用作更简单的碰撞网格。
此外,即使通过更高级的方法,您也可以使用物理引擎(如ammo.js )为您处理重碰撞数学(以及更多)。(结帐汽车演示)。
https://stackoverflow.com/questions/72689028
复制相似问题