OpenGL es 2.0 Lectura de búfer de profundidad

Hasta donde sé, no podemos leer el valor Z (profundidad) en OpenGL ES 2.0. Entonces, me pregunto cómo podemos obtener las coordenadas del mundo 3D desde un punto en la pantalla 2D.

En realidad, tengo algunos pensamientos aleatorios que podrían funcionar. Como podemos leer el valor RGBA usando glReadPixels, ¿qué tal si duplicamos el búfer de profundidad y lo almacenamos en un búfer de color (digamos ColorforDepth). Por supuesto, debe haber alguna convención agradable para que no perdamos ninguna información del búfer de profundidad. Y luego, cuando necesitamos las coordenadas mundiales de un punto, adjuntamos este búfer de color ColorforDepth al framebuffer y luego lo renderizamos. Entonces, cuando usamos glReadPixels para leer la información de profundidad en este marco.

Sin embargo, esto conducirá a un destello de 1 cuadro ya que el colorbuffer es un búfer extraño traducido del búfer de profundidad. Todavía me pregunto si hay alguna forma estándar de obtener la profundidad en OpenGL es 2.0.

Gracias de antemano! :)

Respuestas a la pregunta(3)

Su respuesta a la pregunta