递归光线遍历算法 - 遍历k-d树

问题描述 投票:3回答:1

我已经选择了基于堆栈的遍历算法(递归光线遍历算法),我在理解它时遇到了一些麻烦。

这是我的理解。

我需要找到光线进入体素的点(然后计算距离光线原点和那个点)它离开的位置(然后计算光线原点和那个点之间的距离),光线原点和平面之间的距离(在某些论文中我看到了公式:

(splitPoint - rayOrigin[currentAxle]) / rayOrientation[currentAxle]

我的射线方向是(0, 0, -1)然后在某些情况下我将分为零(因为x = 0y = 0)。怎么会这样?

在算法的初始化中,射线原点位于主体素中,如何获得射线进入体素的距离?

我能正确理解吗?谁能解释一下?

tree traversal line-intersection
1个回答
0
投票

它来自“从理论到实现的基于物理的渲染”一书。

两种情况,其中节点的两个子节点都不需要处理,因为光线不与它们重叠。

(a)顶部光线与分裂平面相交超出光线的t_max位置,因此不会进入远儿。底部光线背离分裂平面,由负t_split值表示。

(b)射线在射线的t_min值之前与平面相交,表明近处的孩子不需要处理。

© www.soinside.com 2019 - 2024. All rights reserved.