基于平板的Ray-box交叉,Tnear和Tfar在算法中的含义是什么?

时间:2012-04-19 08:05:39

标签: math raytracing

实际上,我读过这里描述的算法: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。如果是Tnear

虽然它非常优雅,我不明白为什么这个算法可以这样做,有没有数学理论?

我无法理解为什么他们需要T1和T2以及他们为什么要这样计算,以及Tfar和Tnear在数学中的含义是什么。 也许看起来我们在3D空间中有线的方程,即(x-x0)/ xd =(y-y0)yd =(z-z0)/ zd,然后将x,y,z设置为boxmin和boxmax。但我不确定。

非常感谢您为我解释这一点。

1 个答案:

答案 0 :(得分:2)

在3D几何体中,t通常代表某点上某一线的位置。线通常由x0 + n * t定义,其中x0是线上的点(通常是“原点”),n是线的方向矢量。 t_min和t_max是两个交叉点的t值。当t_min