我了解两个三角形之间的三角形到三角形的碰撞检测。
有人可以解释一下我如何将它与由 1000 个顶点组成的 3D 对象一起使用吗?
如何为每个网格创建三角形列表?
我必须接受顶点的每个排列吗?
这将导致 O(n^3),我觉得这非常糟糕。
我该如何概括这一点?
我需要从某种格式读取数据。如果一切都失败了,有人可以建议一种用三角形制作网格的格式吗?我还需要该格式的网格目录,至少对于初学者来说是这样。
非常感谢。
您可以应用许多优化来检测网格之间的碰撞:
正如詹姆斯所描述的,空间划分。
早期拒绝使用包围体 http://en.wikipedia.org/wiki/Bounding_volume。例如,球体与球体的碰撞成本很低,因此在测试网格体 A 和 B 是否发生碰撞之前,您可能会看看 A 周围的球体是否与 B 周围的球体发生碰撞。如果球体未命中,则显然网格体无法碰撞,因此不会发生碰撞需要测试它们。不同类型的对象可能需要不同类型的包围体:轴对齐的长方体和圆柱体很常见。
缓存见证人。在某些碰撞测试中,您最终会计算碰撞的“见证”,例如当您应用分离轴测试 http://www.geometrictools.com/Documentation/MethodOfSeparatingAxes.pdf您计算一个分离轴。如果轴同时将两个物体分开t,很可能它会继续将它们分开t+ δ,因此可以付费缓存您找到的轴,并在下次首先尝试(请参阅 Rabbitz,“移动凸多面体的快速碰撞检测”)图形宝石 IV).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)