gpt4 book ai didi

c++ - 截锥体和球体相交

转载 作者:太空狗 更新时间:2023-10-29 20:59:06 26 4
gpt4 key购买 nike

我正在阅读这篇简洁的文章:Frustum Culling

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

C = center of sphere

N = normal of plane

D = distance of plane along normal from origin

Distance = DotProduct(C, N) + D

但是我不明白变量D指的是什么。特别是,我不明白截锥体的起源是什么。它是摄像头所在的位置吗?

最佳答案

D 是您需要沿着平面的法线行进以通过定义平面的任何空间的原点的垂直距离(我希望这通常是世界坐标系中的原点,但如果您的平面在相机坐标中描述然后使用相机原点。最终,只要您在同一空间中进行计算,这并不重要。换句话说,无论您使用哪个原点作为球体和平面的空间正在比较中。)。

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

请注意在同一个空间中进行所有计算,无论是世界空间、相机空间还是屏幕空间。我怀疑您会想要在世界空间中进行计算。

关于c++ - 截锥体和球体相交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25572337/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com