实际上,我曾经读过这里描述的算法:http://www.siggraph.org/education/materials/HyperGraph/raytrace/rtinter3.htm这个算法可以决定光线是否击中轴对齐框。
该算法计算平面的相交距离,即: T1 = (boxmin - o) /d T2 = (boxmax - o) / maximum (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在数学上的意义是什么。也许我们有三维空间中的直线方程,即(x-x0)/xd = (y-y0)yd = (z-z0)/zd,然后将x,y,z设为boxmin和boxmax。但我不确定。
非常感谢你为我解释这个问题。
发布于 2012-04-25 15:05:13
在三维几何中,t通常表示某点在直线上的位置。直线通常由x0 + n*t定义,其中x0是直线上的一个点(通常是“原点”),n是直线的方向向量。t_min和t_max是两个交点的t值。当t_min < t_max时,行与框相交,因此它们的名称。
https://stackoverflow.com/questions/10223985
复制相似问题