【发布时间】:2014-04-06 22:43:16
【问题描述】:
我想在我的跟踪管道中有一个碰撞检测模块,检测两个不同的网格何时发生碰撞/相互穿透,或者是否存在关节网格的自穿透。根据渗透的深度,应该对这种现象进行惩罚。为了这样做,我应该得到一个碰撞面/顶点的列表。
在检查了几个选项后,我决定开始使用CGAL。
在this link 中有一个有趣的答案指向一些示例。 (this 和 this)。这些示例使用 AABB(Axis-Aligned Bounding Boxes),这是针对非刚性网格的建议方法,因为需要频繁更新它们。对于自相交情况,这些示例很清楚,但以下对我来说不是很清楚:
- 除了为每个三角形创建一个 B.Box 之外,我想没有在后台创建树结构来加快搜索过程。是这样吗?如果是,有什么提示吗?
- 如果有 2 个单独的网格,我想将所有三角形/框合并到一个向量中并遵循示例并不好(尽管提到了 here 作为解决方案,但听起来并不那么优雅)。有什么好的练习提示吗?是否应该通过创建三角形/框树来混合these 示例?虽然对于 AABB 树有提到:
请注意,此组件不适合查找所有相交对象对的问题。我们引用了组件Intersecting Sequences of dD Iso-oriented Boxes,它可以找到所有相交的等向框对。
【问题讨论】:
标签: 3d collision-detection cgal