¿Dónde se especifica cómo OpenGL ES 2.0 representa los valores de textura flotante en el fragmento shader?
Estoy intentando hacer algunos GPGPU usando OpenGL ES 2.0.
Me parece que los GL_NV_draw_buffers y las extensiones GL_OES_texture_float son algunos de los elementos esenciales aquí.
Esta pregunta se refiere a la extensión GL_OES_texture_float : Desde el mundo de escritorio estoy acostumbrado a las texturas que están en el rango [0..1] cuando se accede en el shader si el formato es punto fijo (como GL_RGBA).
Consultando la página de extensión OES respectiva, dice:
- Transparencia de OpenGL ES 2.0 mediante pruebas alfa en shader
- Nexus 10 - renderizar a rendertarget externo sólo funciona en paisaje
- Matrices OpenGL - no pueden figurar las correctas
- ¿Por qué mi programa de shader openGL para puntos tiene anillos de artefactos?
- Google Maps Android API V2 no muestra mapas en Emulator
"… Si el formato interno de la textura es de punto fijo, los componentes se fijan a [0..1], de lo contrario, no se modifican los valores".
Ahora he escuchado varias veces en la web (por ejemplo, la respuesta aquí: ¿Los muestreadores OpenGL GLSL siempre devuelven flotantes de 0.0 a 1.0? ) ES 2.0 también admite el acceso a valores desbloqueados en el fragmento shader. ¿Pero dónde se especifica esta funcionalidad? La extensión dice que "de lo contrario, los valores no se modifican", pero como la especificación OpenGL ES sólo conoce formatos de punto fijo, no tiene sentido para mí.
También, según lo entiendo, la extensión sólo especifica que los valores de flotante se pueden leer desde la memoria del cliente en una textura pero no especifica cómo (es decir, cuántos bits por canal) la textura se representa en la memoria gráfica. ¿Hay alguna especificación oficial sobre esto?
Por último, me gustaría escribir valores de punto flotante unclamped a un archivo adjunto de color FBO en mi shader de fragmentos, preferiblemente con 32 bits por canal. es posible?
- Aprenda OpenGL: ¿por dónde empezar o cómo ha aprendido OpenGL?
- Modificación de la salida de la cámara con SurfaceTexture y OpenGL
- Pasando varias texturas a shader en LibGDX
- Cómo pasar los datos correctos a un programa de shader OpenGL-ES 2.0
- Android.grapics.matrix to OpenGL 2.0 ES traducción de la textura
- LibGDX: ¿Cómo determinar si el contexto opengl se perdió?
- Mostrar un texto como textura con OpenGL ES 2.0
- OpenGL ES 2 - un gran vs múltiples texturas pequeñas atlas. ¿Cuál es el mejor rendimiento?
- Menú emergente en ListView personalizado
- Android: No se puede inflar la vista personalizada en la prueba Robolectric