实际上,我曾经读过这里描述的算法:http ://www.siggraph.org/education/materials/HyperGraph/raytrace/rtinter3.htm 这个算法可以决定光线是否击中轴对齐的盒子。
在算法中,它计算平面的相交距离,即: T1 = (boxmin - o) / d T2 = (boxmax - o) / d boxmin(xl,yl,zl) 是盒子的最小范围, boxmax(xh,yh,zh) 是框的最大范围。o(xo,yo,zo) 是射线的原点,d(xd,yd,zd) 是射线的方向向量。它们都是 vector3 或 float3 变量。
然后算法找到 T1 中的最大分量和 T2 中的最小分量,并将它们分别设置为 Tnear 和 Tfar。如果接近
虽然很优雅,但我不明白为什么这个算法可以做到,有什么数学理论吗?
我不明白为什么他们需要 T1 和 T2 以及为什么要这样计算它们以及 Tfar 和 Tnear 在数学中的含义是什么。也许看起来我们在 3D 空间中有直线方程,即 (x-x0)/xd = (y-y0)yd = (z-z0)/zd,然后将 x,y,z 设置为 boxmin和boxmax。但我不确定。
非常感谢您为我解释这一点。