ios opengl-es ios6 opengl-es-2.0 glsl

Texturas de punto flotante en OpenGL ES 2.0 en iOS sin sujetarlas a



opengl-es ios6 (2)

Necesito gl_FragColor para "pintar" valores de coma flotante, que también pueden ser negativos (x <0) y> 1.0. Luego quiero usar el adjunto de color del FBO en este valor donde se procesa y lo uso como una textura en otro FBO. Ahora he leído en http://www.khronos.org/opengles/sdk/docs/man/ (en glTexImage2D) que todos los valores están fijados en un rango de [0, 1] y tampoco encontré un glClampColor instrucción. ¿Existe la posibilidad de encontrar una solución alternativa aquí o alguien tiene una idea que podría ayudarme con mi problema? :)

SOLUCIONADO

Es posible y los valores no están fijados a [0, 1] en absoluto, cuando se usan texturas de coma flotante, pero solo funciona usando GL_HALF_FLOAT_OES como el formato interno de la textura. Usar GL_FLOAT en su lugar da como resultado un objeto de framebuffer incompleto, lo cual es realmente triste, porque estaba construyendo una tabla de áreas sumadas (SAT) y tuve un gran problema de precisión aquí. Por lo tanto, en general parece que el iPad2 solo admite números de punto flotante de media precisión (2 bytes, 1 signo de bit + 5 bits exponenciales + 10 fracciones).

Creación de trabajo de la textura del attachement de color del FBO

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_HALF_FLOAT_OES, NULL);

Una cosa más para mencionar: los instrumentos reportarán un mensaje de "Enum inválido para el argumento '''', pero funciona de todos modos. Además, el simulador usará texturas de precisión completa en lugar de la media precisión especificada (creo que porque no hay tal tipo de datos en C). Es por eso que probablemente obtendrá menos problemas de precisión en el simulador.

Pero lo más confuso es que "GL_OES_texture_float" es compatible cuando se imprime glGetString (GL_EXTENSIONS). Sin embargo, como se mencionó anteriormente, no funciona.


No creo que esto sea cierto para las texturas float. Verifique los documentos de extensión:

http://www.khronos.org/registry/gles/extensions/OES/OES_texture_float.txt

Menciona:

"Los grupos seleccionados se procesan como se describe en la sección 3.6.2, deteniéndose después de la expansión final a RGBA. Si el formato interno de la textura es de punto fijo, los componentes se sujetan a [0,1]. De lo contrario, los valores no se modifican. "