我选择了一个基于堆栈的遍历算法(递归射线遍历算法),但我在理解它时遇到了一些麻烦。
这是我的理解。
我需要找到光线进入体素的点(然后计算光线原点和那个点的距离),它在哪里退出(然后计算光线原点和那个点之间的距离),光线原点和平面之间的距离(在一些论文中我看到公式:
(splitPoint - rayOrigin[currentAxle]) / rayOrientation[currentAxle]
我的光线方向是(0, 0, -1)
,然后在某些情况下,我将除以零(因为x = 0
和y = 0
)。怎么会这样?
并且在算法的初始化中,光线原点在主体素中,我如何获得光线进入体素的距离?
我理解正确吗?有人可以解释吗?