geometry - 用于三角形交叉加速结构的简单 C/C++ 库

标签 geometry raytracing code-reuse kdtree

我正在进行光线追踪,并希望通过一些加速结构(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/

相关文章:

java - 如何计算 3D 圆的切线?

math - 确定多个点的质心

objective-c - C 或 ObjC 用于 iOS 上的实时光线追踪器?

java - 朗伯着色器仍然无法工作

java - 使用哪种模式?

php - 如何在 Zend Framework 中重用代码

javascript - 计算圆度

math - 覆盖表上的点

algorithm - Möller-Trumbore 射线相交是最快的吗?

c# - 在 WinForms 应用程序中利用预先编写的 View 代码