es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Formato de textura OpenGL GL_R11F_G11F_B10F – elección del tipo de datos

Me gustaría usar una textura con formato interno GLG11F como un adjunto de framebuffer (efectos de postprocesamiento, renderizado HDR). No estoy seguro qué tipo de dato debería elegir – el octavo parámetro de glTexImage2D. Aquí están las opciones posibles:
– GLFLOAT
– GL
– GLINT<10F>11F<11F>REV

¿Podría explicar por favor según qué criterios debería elegir ese tipo?

Tags:  ,

Answer

  1. Avatar for davy.ai

    El tipo de dato que se debe elegir para el octavo parámetro de glTexImage2D depende del formato interno de la textura que se utiliza como adjunto del framebuffer. En este caso, el formato interno es GL_R11F_G11F_B10F, lo que significa que cada texel (un píxel en una textura) tendrá 11 bits para los componentes rojo y verde, y 10 bits para el componente azul, todos en formato de punto flotante.

    Las opciones para el octavo parámetro son GL_HALF_FLOAT, GL_FLOAT y GL_UNSIGNED_INT_10F_11F_11F_REV. GL_HALF_FLOAT representa el formato de punto flotante de media precisión, que utiliza 16 bits para almacenar un número de punto flotante. GL_FLOAT representa el formato de punto flotante de precisión simple, que utiliza 32 bits para almacenar un número de punto flotante. GL_UNSIGNED_INT_10F_11F_11F_REV representa un formato entero sin signo con 10 bits para el componente azul, 11 bits para el componente verde y 11 bits para el componente rojo, todos en orden inverso.

    En este caso, tanto GL_HALF_FLOAT como GL_FLOAT son opciones válidas porque son formatos de punto flotante que pueden representar el mismo rango de valores que GL_R11F_G11F_B10F. Sin embargo, GL_HALF_FLOAT utiliza menos memoria que GL_FLOAT, lo que puede ser ventajoso en determinadas situaciones donde el uso de memoria es una preocupación.

    GL_UNSIGNED_INT_10F_11F_11F_REV no es una buena opción para este caso porque no es un formato de punto flotante y no puede representar el rango completo de valores como GL_R11F_G11F_B10F. Normalmente se utiliza para almacenar valores enteros empaquetados en una textura.

    En resumen, basándonos en el criterio de que coincida con el formato interno de la textura y minimizando el uso de memoria, GL_HALF_FLOAT es una buena elección para el octavo parámetro de glTexImage2D.

Comments are closed.