在3D中实现碰撞

时间:2016-05-20 19:47:51

标签: collision-detection lwjgl collision

是否有"容易"检测两个无法接近Cuboid的物体是否相交的方法?

我使用LWJGL库,并希望实现简单的碰撞识别。我不想使用JBullet,因为它对我目前的技能和需求来说太难了,不幸的是我的对象有不规则的形状,所以我不能使用AABB碰撞检测。

我有存储在数组中的对象顶点(从.obj解析) 你知道某种方法来检查它们是否相交吗?

2 个答案:

答案 0 :(得分:0)

您仍然可以使用AABB进行粗略碰撞。如果你真的想要更精确的碰撞,你可以继续检查那些预先过滤的实体,但没有真正“简单”的方法来做到这一点。 如果您不想使用库,则必须检查一个多维数据集是否包含另一个多维数据集的顶点以用于所有可能的形状排列。不过,它应该适用于某些几何体。

答案 1 :(得分:0)

您可以使用AABB,球体和圆柱体的集合来近似每个对象的形状。根据模型的复杂性,可能需要大量工作来手动定义各种碰撞体积。

树可以使用圆柱体作为树干,使用球体作为树叶。一辆卡车可以使用三个立方体,一个用于前部,一个用于驾驶室,第三个用于床。两者之间的碰撞可以通过检查行李箱前部,驾驶室和床上的树干和树叶来解决。