p5.js中3d物体的碰撞检测



我正在制作一款无限奔跑游戏,其中涉及3d对象-漫游器和一些障碍物,在地形上移动。游戏是使用p5.js的WebGL功能制作的。我几乎完成了游戏,但是当漫游者遇到任何障碍时,游戏应该结束。我只是想知道我是否能够检测到这两个3d物体的碰撞(游戏邦注:探测器是一个平面,障碍物是自定义加载的模型)并结束游戏……简单地说,我想知道碰撞检测是否在WebGL是可行的,如果是这样,如何?请同样帮我一把。谢谢你。

理想情况下,您应该张贴您尝试检测碰撞的最小草图:使其他人更容易做出贡献(而不是代表您进行许多大胆的猜测)。

一个想法是检查3d模型的边界框(由它的minX, minY, minZ, maxX, maxY, maxZ值定义)是否与平面相交(或平面的边界框,如果更容易保持一致)。它不会100%准确,这取决于加载的模型(我们甚至不知道那是什么),但这是一个不错的初始步骤。

为了更精确,凸包将是方便的。如果在p5.js中从头开始计算可能很困难,也许您可以使用相同的3D编辑器导出模型,同时生成原始模型的凸壳,并将其导出以用作更简单的碰撞网格。

此外,即使通过更高级的方法,您也可以使用物理引擎(如amo .js)为您处理严重的碰撞数学(以及更多)。(查看车辆演示)。