我不是在问如何计算光线与特定图元的交点,我是在问当前的方法是如何尽快确定场景中数百万个图元中的哪一个是光线相交的下一个图元。
我听说 octtrees 和 kd-trees 是常用的。我不知道是否还有其他方法也是当前的竞争者。
如果使用八叉树,是否只允许每个立方体跟踪其 8 个子立方体中的任何一个是否与任何几何形状相交?任何没有得到相应分支的,每个子立方体都有一个分支。因此,一个人沿着树向下直到找到一个最终节点,该节点给出了它相交的有限数量的基元?如果构建这样一个八叉树,则可以通过将光线从其起点移动到每个立方体中下降到可以验证射线在立方体中不与几何体相遇或下降到可以检查的点来跟踪射线少量基元(射线可能会错过,需要一个移动到下一个立方体)?
无论如何,如何找到下一个交叉点的问题看起来是一个巨大的性能因素,那么目前最流行的方法是什么,它们的优缺点是什么?