我知道这不是OptiX的主要目标,但是当射线行进(球体行进)签下距离场时,它是相关的,所以我想我会尝试。我最初为此创建了自己的BVH,但我希望从最近所有的射线跟踪工作和RTX加速中受益。
我将假定对OptiX 7 API有一些基本的熟悉。
我最初的尝试是将optixTrace射线方向设置为{0, 0, 0},但这只会触发光线起源于AABB内部的形状的交叉点(这很有意义)。然后,我将光线方向设置为{inf, inf, inf},这似乎会触发对每个原语的交叉调用,而不管AABB距离或报告的tMax值如何。
我使用了一些射线方向和tMax/tMin值的其他组合,我考虑了各种OPTIX_RAY_FLAGS,但似乎没有什么可能奏效。
理想情况下,最好只查询距离射线原点在tMax范围内的边界框。这显然是一个与ray交集不同的检查,但我很好奇是否有一些API标志/掩码/功能被我遗漏了,从而允许这样做。直接访问加速结构层次结构在这里也有帮助,但我在编程指南中没有看到任何关于加速结构层次的内容。
发布于 2021-04-22 17:34:18
希望我们中有一个人在OptiX论坛上回答了这个问题,但只想在这里回答这个问题:
这会很好,这是一个常见的问题,但不幸的是,目前还没有一种方法可以使用OptiX 7几何加速结构来执行单个最近邻查询或单个k最近邻查询。这些结构目前仅限于有限的定向射线查询。
有一篇文章探讨了如何使用OptiX使用多个射线样本进行半径搜索:https://abasilak.github.io/papers/journals/jcgt2021/paper.pdf。
https://stackoverflow.com/questions/63332840
复制相似问题