1

我知道这不是 OptiX 的主要目标,但是当光线行进(球体行进)标记距离场时它是相关的,所以我想我会尝试。我最初为此创建了自己的 BVH,但我希望从最近的所有光线追踪工作和​​ RTX 加速中受益。

我假设对 OptiX 7 API 有一些基本的了解。

我最初的尝试涉及将optixTrace光线方向设置为,{0, 0, 0}但这只会触发光线原点位于 AABB 内部的形状的交叉点(有意义)。{inf, inf, inf}然后,我设置似乎触发每个基元的相交调用的光线方向,无论 AABB 距离或报告tMax值如何。

我尝试了其他一些光线方向和tMax/tMin值的组合,我考虑了各种OPTIX_RAY_FLAGS但似乎没有任何效果。

理想情况下,最好只查询tMax距离射线原点不远的边界框。这显然是与 ray-aabb 交叉点不同的检查,但我很好奇是否可能有一些我遗漏的 API 标志/掩码/功能允许这样做。直接访问加速结构层次结构在这里也可以提供帮助,但我在编程指南中没有看到任何相关内容。

4

1 回答 1

1

希望我们中的一个人在 OptiX 论坛上回答了这个问题,但只是为了解决这里的问题:

很好,这是一个常见问题,但不幸的是,目前没有一种方法可以使用 OptiX 7 几何加速结构进行单个最近邻查询或单个 k 最近邻 (KNN) 查询。这些结构目前仅限于有限定向射线查询。

有一篇论文探讨了使用 OptiX 使用多个射线样本进行半径搜索:https ://abasilak.github.io/papers/journals/jcgt2021/paper.pdf

于 2021-04-22T17:34:18.130 回答