【问题标题】:Recursive Ray Traversal Algorithm - Traverse k-d Tree递归光线遍历算法 - 遍历 k-d 树
【发布时间】:2011-07-01 19:03:49
【问题描述】:

我选择了一种基于堆栈的遍历算法(递归光线遍历算法),但我在理解它时遇到了一些困难。

这是我的理解。

我需要找到光线进入体素的点(然后计算光线原点和那个点的距离)它在哪里退出(然后计算光线原点和那个点之间的距离),距离在 ray originplane 之间(在一些论文中我看到了公式:

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

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

并且在算法的初始化中,光线原点在主体素中,我如何获得光线进入体素的距离?

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

【问题讨论】:

    标签: tree traversal line-intersection


    【解决方案1】:

    来自《从理论到实现的基于物理的渲染》一书。

    不需要处理节点的两个子节点的两种情况,因为射线 不重叠。

    (a) 顶部光线在光线的 t_max 位置之外与分割平面相交,因此不会进入远子。底部光线背向分割平面,由负 t_split 值指示。

    (b) 射线在射线的t_min值之前与平面相交,表示near child不需要处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-12
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-11
      • 1970-01-01
      相关资源
      最近更新 更多