我正在尝试实现一个实时光线跟踪器,我正在阅读这篇关于快速无堆栈kd-tree遍历方法的有趣论文,但对某些概念还不清楚。在第4页,它提出了绳索构造算法,它没有解释“分裂平面”和“分裂轴”究竟是什么,以及“分裂轴”如何平行于左侧但不是右边。
有没有更多编写光线追踪器和/或理解文件中的两个概念的人请向我解释一下?
提前致谢。
论文[PDF]:http://www.johannes-guenther.net/StacklessGPURT/StacklessGPURT.pdf
答案 0 :(得分:0)
我不认为作者意味着分裂轴只与右侧或左侧平行。他们正在优化每一侧的绳索。为了做到这一点,他们需要知道分裂平面是否与那边平行。所以他们测试split-axis(R) || S
。这里,R是当前节点的绳索。 R_L和R_R是该节点的左子树和右子树的绳索。该测试试图查看当前节点是否在正在优化绳索的一侧进行拆分。
例如:如果我们尝试优化左右绳索,我们首先检查当前节点是否有一个分割平面,将世界分成左右两侧(换句话说,分割平面)与YZ平面平行)。如果它不是,那么我们放弃优化左右绳索。