1
什么是kd树相交逻辑?
我试图弄清楚如何实现KD树。 在Ericson的“实时冲突检测”的第322页上 如果Google图书预览在您单击链接时看不到它,则下面包含文本部分 文字部分 相关部分: 将光线或直线段与kd树相交的基本原理很简单。将该线与节点的分割平面相交,并计算相交的t值。如果t在直线的区间内,即0 <= t <= tmax,则直线横跨平面,并且树的两个子级都递归下降。如果不是,则仅递归访问包含片段原点的一侧。 所以这就是我所拥有的:(如果看不到字母,请在新标签页中打开图像) 逻辑树 在这里,橙色射线穿过3d场景。x代表与平面的交点。从左侧,射线击中: 场景的封闭立方体的正面, (1)分裂平面 (2.2)分割平面 场景的封闭立方体的右侧 但是,天真地遵循了上面的Ericson的基本描述,这就是会发生的事情: 针对分裂平面(1)进行测试。射线束照射到分裂平面(1),因此下一个测试中将包含分裂平面(1)的左右子级。 针对分裂平面(2.1)进行测试。雷实际上击中了那架飞机(向右偏),所以两个孩子都被包括在下一级别的测试中。(这是违反直觉的-在后续测试中不应仅包括底部节点) 有人可以描述橙色光线正确穿过场景时会发生什么吗?