你能推荐我吗...
- AABB树的经过验证的轻量级C / C ++实现?
- 或者,另一种有效的数据结构,加上轻量级的 C/C++ 实现,来解决大量光线与大量三角形相交的问题?
“大数字”意味着射线和三角形都有几个 100k。
我知道 AABB 树是 CGAL 库的一部分,并且可能是 Bullet 等游戏物理库的一部分。但是,我不希望在我的项目中增加大量额外库的开销。理想情况下,我想使用一个小型的浮点型模板化标头实现。只要它可以轻松集成到我的项目中,我也会使用一堆 CPP 文件。依赖boost
没问题。
是的,我用谷歌搜索过,但没有成功。
我应该提到我的应用程序上下文是网格处理,而不是渲染。简而言之,我将参考网格的拓扑结构从 3D 扫描转换为网格的几何形状。我正在从顶点和沿着参考网格的法线向 3D 扫描拍摄光线,我需要恢复这些光线与扫描的交点。
编辑
几个答案/评论指向最近邻数据结构。我创建了一个关于使用最近邻方法处理光线网格交叉点时出现的问题的小插图。最近邻方法可以用作在许多情况下都有效的启发式方法,但我不相信它们实际上可以系统地解决问题,就像 AABB 树一样。