1

我正在寻找任何允许我获得直线和多面体/球体之间的 3D 碰撞点的 C++ 库(其中直线由两个 3D 点和有限数量的 3D 点组成的多面体)

令我惊讶的是,我似乎找不到这样的库(或者我不知道要搜索哪些短语)。

此外,我见过的大多数碰撞库都是从 2005/2006 年开始的(但没有人说如何获得命中点坐标,其中大部分是用于可视化事物和检查边界,或两个 3d 对象之间的碰撞等。对我来说太矫枉过正了 -我只想要一条线和一个 3D 对象 [polyhedron / sphere] 之间的 3D 碰撞点)

那么.. 哪些库是 2013 年最新的并利用新技术来实现最佳性能?

或者我的案例有代码示例吗?

有时我喜欢重新发明轮子,但在这种情况下,我希望将其用于游戏的插件 - 所以首选可靠且快速的东西。

4

2 回答 2

3

什么是快速和有效的取决于有多少对象等等。如果您只打算测试几个对象,那么构建八叉树或其他一些空间分区没有多大意义。您可能会考虑尝试找到包围多面体的(边界)球体(原点+半径),并测试它是否首先相交。或轴对齐边界框 (AABB)。

然后,您可以进行更昂贵的多面体测试——这可能需要针对每个“正面”三角形进行测试。如果对象不是凸面的,比如网格,就会出现问题,在这种情况下,您需要距离最短的光线。

参见:CGAL几何工具

于 2013-07-08T13:18:55.223 回答
1

你检查过http://clb.demon.fi/MathGeoLib/nightly/usermanual.html#features

这似乎是一组高效的 3D 交集算法的副本

于 2013-07-08T11:09:09.763 回答