【问题标题】:Check if ray hit cube检查光线是否击中立方体
【发布时间】:2014-06-07 19:42:45
【问题描述】:

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

【问题讨论】:

  • 检查的组织方式是否使立方体与轴对齐?

标签: c# math raycasting


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2019-11-29
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多