4

我正在进行光线追踪,并希望通过一些加速结构(kd-tree、BVH 等)来加速它。我不想自己编码。到目前为止我已经尝试过:

  • 将 kd-tree 从 pbrt 中拉出。有太多的内部依赖关系,如果不将所有 pbrt 都拉到我的代码中,我就无法成功。

  • CGAL 的 AABB 树。令人沮丧的是,这似乎只返回了交点。在不知道该点来自哪个三角形的情况下,我无法在三角形上有效地插入颜色。我很想用颜色来扩展“点”的概念,但是如果不从头开始编写大量模板代码,这似乎是不可能的。

  • 自己写。好的,所以我编写了自己的网格加速类,它可以工作,但它很讨厌而且效率低下。

因此,如果有人可以建议一个我可以用于此目的的简单库,我将不胜感激!我只需要一个三角形汤和射线,找到最近的交点并返回该三角形的索引。

4

2 回答 2

2

Jaco Bikker 写了这个系列教程: http: //www.devmaster.net/articles/raytracing_series/part7.php

它们非常有帮助,他在最后包含了使用 kd-tree 的光线追踪器的代码。

你也许可以使用它。

于 2010-08-13T17:53:03.593 回答
1

G3D 引擎有一个光线追踪实现。不确定它的效率如何。在没有库的其余部分的情况下使用 Tree 实现应该不会太麻烦。

于 2013-01-17T16:26:31.007 回答