我有一种情况,即(由于浮点误差),一条射线由于浮点错误而被击中包围框失败。(1 E-8左右)
在我的特定用例中,扩展盒子不是一个可接受的解决方案。然而,如果我能“拍”到盒子上的射线,那就很好了。
为了做到这一点,我需要找到从给定射线到包围盒的最短向量。在二维中,它看起来是这样的:

如果我能得到红色矢量,我可以把它加到原点,光线就会被移到包围框上。
在2D中,这显然是相对容易的,因为您可以获得两行之间的距离,如这里,然后找到最小的4条线,并使用它。
但在3D领域,我不知道如何做到这一点。有没有人知道有没有办法?
发布于 2020-02-18 23:24:27
如果你知道四舍五入的错误,你可以从你的向量中减去这个误差,这样光线就会重叠在包围框上。这可以在你的交叉测试中完成。
在3D中,计算一个向量和一个包围盒的面之间的最短距离将是另一种将向量移动到重叠包围盒的方法。但我怀疑这种方法能否奏效,因为它基本上是试图解决一个四舍五入的问题。
https://computergraphics.stackexchange.com/questions/9587
复制相似问题