【发布时间】:2011-02-05 12:04:46
【问题描述】:
据我所知,我们无法在 OpenGL ES 2.0 中读取 Z(深度)值。 所以我想知道我们如何从 2D 屏幕上的一个点获取 3D 世界坐标?
其实我有一些随机的想法可能会奏效。由于我们可以使用 glReadPixels 读取 RGBA 值,我们如何复制深度缓冲区并将其存储在颜色缓冲区中(例如 ColorforDepth)。当然需要有一些好的约定,这样我们就不会丢失深度缓冲区的任何信息。然后当我们需要一个点的世界坐标时,我们将这个 ColorforDepth 颜色缓冲区附加到帧缓冲区,然后渲染它。所以当我们使用 glReadPixels 读取这一帧的深度信息时。
但是,这将导致 1 帧闪烁,因为颜色缓冲区是从深度缓冲区转换而来的奇怪缓冲区。我仍然想知道是否有一些标准方法可以在 OpenGL es 2.0 中获得深度?
提前谢谢!:)
【问题讨论】: