我有一个带有 3d 轴对齐边界框列表的 3d 空间。让我们将这些边界框之一称为target
. 除了所有这些边界框,我还有一个位置向量,称之为start
。
我想确定是否存在一条射线:
- 开始于
start
- 相交
target
- 在与其他边界框相交之前不与任何其他边界框相交
target
以下是我已经尝试过的方法:
start
测试从到 的所有顶点的光线target
。这不起作用,因为其他边界框可能会阻挡所有顶点,但中间有一个空间。- 测试来自附近边界框顶点的光线
start
,并查看它们是否相交target
。这也不适用于目标被 AABB 阻挡的情况,其中所有角落都会导致光线从目标发散。
有没有一种算法可以找到像上面这样的光线?我实际上并不需要找到实际的射线,只需确定它是否存在。