我正在进行光线追踪,并希望通过一些加速结构(kd-tree、BVH 等)来加速它。我不想自己编码。到目前为止我尝试过的:
将 kd 树从 pbrt 中拉出。有如此多的内部依赖关系,如果不将所有 pbrt 拉入我的代码中,我就无法成功。
CGAL 的 AABB 树。令人沮丧的是,这似乎只返回交点。在不知道该点来自哪个三角形的情况下,我无法有效地在三角形上插入颜色。我很想用颜色来扩展“点”的概念,但如果不从头开始编写大量模板代码,这似乎是不可能的。
我自己写的。好吧,我编写了自己的网格加速类,它可以工作,但它很糟糕且效率低下。
因此,如果有人可以建议一个我可以用于此目的的简单库,我将非常感激!我所需要的只是给定一个三角形汤和射线,找到最近的交点并返回该三角形的索引。
最佳答案
Jaco Bikker 编写了本系列教程:http://www.devmaster.net/articles/raytracing_series/part7.php
它们非常有帮助,他在末尾包含了使用 kd 树的光线追踪器的代码。
你也许可以使用它。
关于geometry - 用于三角形交叉加速结构的简单 C/C++ 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3085096/