0

当我们需要在我们指向的女巫上获取相机和 3D 对象之间的距离时,我们使用GL11.GL_DEPTH_COMPONENT. 问题是我想获得相机和离相机最近的物体后面的物体之间的距离。有可能这样做吗?如何?

4

2 回答 2

2

这是我最常写的 OpenGL 说明:

OpenGL 不是场景图。它只是将点、线和三角形绘制到 2D 帧缓冲区。OpenGL 中没有对象或相机之类的东西。只有几何图元,OpenGL 在光栅化它们的那一刻忘记了它,以及这个过程在帧缓冲区中的结果。OpenGL 没有“前面”或“后面”的概念。

您要问的内容完全超出了 OpenGL 的范围。你想要的是一个实现射线 - 三角形交叉点拾取的场景图。

我只能重申尼可波拉斯已经回答的内容:

OpenGL用于渲染;是用来画东西的。它的深度缓冲区就是为此目的而存在的。并且深度缓冲区只存储到相机 Z 平面的距离,而不是三角形上该点到该点的径向距离

于 2012-05-15T04:40:39.007 回答
1

如果您想要两点之间的距离(例如相机和对象的中心点),那么您将不得不使用常规向量数学来计算它:sqrt(dot(pt1 - pt2, pt1 - pt2))

OpenGL用于渲染;是用来画东西的。它的深度缓冲区就是为此目的而存在的。并且深度缓冲区只存储到相机 Z 平面的距离,而不是三角形上该点到该点的径向距离。

于 2012-05-14T23:02:59.933 回答