Frustum和球体相交

Frustum and sphere intersection

本文关键字:Frustum      更新时间:2023-10-16

我在这里阅读这篇整洁的文章:Frustum Culling

它读到,找到球体和截头体侧面(平面)之间的距离是:

C=球中心

N=平面的法线

D=平面沿法线与原点的距离

距离=DotProduct(C,N)+D

但我不明白变量D指的是什么。特别是,我不明白截头体的起源是什么。它是相机眼睛的位置吗?

D是沿着平面法线穿过平面定义的任何空间的原点所需的垂直距离(我预计这通常是世界坐标中的原点,但如果你的平面是用相机坐标描述的,那么就使用相机原点。最终,只要你在同一个空间中进行计算,这都无关紧要。换句话说,无论你在哪个空间中使用哪个原点,球体和平面都将在其中进行比较。)

这与平面方程中的值相同:Ax+By+Cz+d=0。d是您将要使用的值d。你可以通过在平面上取一个已知的点来计算d,并用它来求解d的平面方程。(a,B,C)是平面单位法向向量的X,Y,Z元素,(X,Y,Z)是平面上该点的坐标,求解d的平面方程,你就有了距离。

只要注意在同一空间进行所有计算,无论是世界空间、相机空间还是屏幕空间。我怀疑你会想在世界空间里做你的计算。