我正在阅读这篇简洁的文章:Frustum Culling
并且它读取到找到球体和平截头体侧面(平面)之间的距离是:
C = 球心
N = 平面法线
D = 平面沿法线到原点的距离
距离 = 点积(C, N) + D
但我不明白变量 D 指的是什么。特别是,我不明白截锥体的起源是什么。它是相机眼睛的位置吗?
我正在阅读这篇简洁的文章:Frustum Culling
并且它读取到找到球体和平截头体侧面(平面)之间的距离是:
C = 球心
N = 平面法线
D = 平面沿法线到原点的距离
距离 = 点积(C, N) + D
但我不明白变量 D 指的是什么。特别是,我不明白截锥体的起源是什么。它是相机眼睛的位置吗?
D 是您需要沿着平面的法线行进以通过平面定义的任何空间的原点所需的垂直距离(我希望这通常是世界坐标中的原点,但如果您的平面在相机坐标然后使用相机原点。最终,只要您在同一个空间中进行所有计算都没有关系。换句话说,无论您使用哪个原点来比较球体和平面的空间在。)。
这与平面方程中的值相同:Ax + By + Cz + d = 0。d 是您将使用的值 D。您可以通过在平面上取一个已知点并使用它来求解 d 的平面方程来计算 d。(A, B, C) 是平面单位法向量的 X,Y,Z 元素,(x, y, z) 是平面上点的坐标,求解 d 的平面方程,你就有了距离。
请注意在同一个空间中进行所有计算,无论是世界空间还是相机空间或屏幕空间。我怀疑你会想在世界空间中进行计算。