C# 检查光线是否击中立方体

C# 检查光线是否击中立方体,c#,math,raycasting,C#,Math,Raycasting,有没有一种非常快速的方法来检查光线是否击中立方体?我知道我可以简单地检查立方体的每个三角形,但是有很多光线和很多立方体,而且它必须发生得非常快。那么,有没有一种简单快速的方法来检查光线是否击中立方体?(首先检查球体现在不是选项。)等等,等等,等等,首先检查球体现在不是选项?你有立方体的中心,你有它的尺寸,你可以做球体检查 即使您直接使用宽度,而不是计算封闭球体的适当半径,也将节省大量检查 根据多边形检查光线很简单。您可以很容易地将其扩展到四边形而不是三角形,因为您知道多边形对始终是平面对齐的,因

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

等等,等等,等等,
首先检查球体现在不是选项
?你有立方体的中心,你有它的尺寸,你可以做球体检查

即使您直接使用宽度,而不是计算封闭球体的适当半径,也将节省大量检查

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

现在,直接检查光线立方体相交是可能的,对于光线跟踪器,这是非常必要的(尽管首先检查球体可能仍然是一个好主意)。本文提出了一种相对快速的算法-


显然,如果您的多维数据集是轴对齐的,这可以更快地完成,而且如果它们形成网格,这将变得非常简单。

检查的组织方式是否会使多维数据集是轴对齐的?