金属intersection_query到候选基元的距离

Metal intersection_query distance to candidate primitive

提问人:Matt Bierner 提问时间:10/28/2023 更新时间:10/28/2023 访问量:19

问:

我正在使用 Metal 的光线追踪 API 来与轴对齐边界框的加速结构相交。在我的着色器中,我试图找到交叉点发生的距离。示例代码:intersection_query

ray r = ...;
primitive_acceleration_structure accelerationStructure = ...;

intersection_query<> i(r, accelerationStructure);
while (i.next()) {
   float distance = // ???
   ...
}

但是,我找不到如何从 .对于三角形数据,有 ,但没有 .intersection_queryget_candidate_triangle_distance()get_candidate_primitive_distance()

有没有一种快速的内置方法来获得这个距离,或者我必须自己实现这个计算?

IOS 金属

评论


答:

0赞 Spo1ler 10/28/2023 #1

在交集函数或交集查询中都无法获取到边界框的距离。

事实上,您需要自己计算它才能提供给函数或从函数返回函数。commit_bounding_box_intersection()[[intersection(bounding_box)]]

评论

0赞 Matt Bierner 10/28/2023
也许是这样,但这不是很有帮助。即使金属没有暴露它,你也绝对可以自己计算它
0赞 Spo1ler 10/28/2023
不仅可以,还需要这样做才能提交边界框交集。问题是,除了自己计算之外,是否有办法获得这个距离,答案是“否”。