【发布时间】:2011-01-18 00:17:00
【问题描述】:
我了解 2 个三角形之间的三角形到三角形碰撞检测。 有人可以解释我如何将它与由 1000 个顶点组成的 3D 对象一起使用吗? 如何为每个网格创建三角形列表? 我必须接受顶点的每一个排列吗? 这将导致 O(n^3) 我觉得非常糟糕。
我如何概括这一点?
我需要从格式中读取数据。如果一切都失败了,有人可以建议一种从三角形制作网格的格式吗?我还需要格式的网格目录,至少对于初学者来说是这样。
非常感谢。
【问题讨论】:
-
这里面有很多问题,应该单独提出,而不是集中在一个问题中。通常,您要使用的“3d 对象”不仅仅是 point cloud,它通常是 polygon mesh 和/或一组 3D 曲线。如果您真的从点云开始,那么您可能需要查找旨在从点云创建多边形网格的算法,然后再进一步进行网格->网格重叠检测。
-
一旦你有了一个多边形网格,你就会开始应用 Gareth/James 所说的优化,以避免将一个网格中的每个三角形与另一个网格中的每个三角形进行比较。正如您的问题似乎暗示的那样,它永远不会是可以从每个网格的所有顶点创建的每个 possible 三角形。但是网格中的每个三角形 -> 另一个网格中的每个三角形仍然很慢,这就是您进一步优化的原因:)