检查光线是否击中立方体

时间:2014-04-23 06:25:27

标签: c# math raycasting

是否有一种非常快速的方法来检查光线是否撞到了立方体?我知道我可以简单地检查立方体的每个三角形,但是有很多光线和很多立方体,它必须非常快。那么有没有一种简单快速的方法来检查光线是否撞到了立方体? (现在首先检查球体不是一种选择。)

1 个答案:

答案 0 :(得分:0)

等等,等等,Checking the spheres first is not an option right now?你已经拥有了立方体的中心,你有它的尺寸,你可以做球形检查。

即使您直接使用宽度而不是计算封闭球体的正确半径,您也可以节省大量的检查。

检查光线对多边形很简单。您可以相当容易地将其扩展为四边形而不是三角形,因为您知道多边形对总是平面对齐的,因此您可以将检查数减少两个。

现在,可以直接检查光线 - 立方体交叉点,对于光线跟踪器,它非常必要(尽管首先检查球体可能仍然是一个好主意)。本文提出了一种相对快速的算法 - http://www.cs.utah.edu/~awilliam/box/box.pdf

显然,如果你的立方体是轴对齐的,那么这可以做得更快,如果它们正在形成一个网格,它就变得相当微不足道了。

相关问题