Texturas de ponto flutuante no OpenGL ES 2.0 no iOS sem fixá-las em [0, 1]

Eu preciso gl_FragColor para "pintar" valores de ponto flutuante, que também pode ser negativo (x <0) e> 1,0. Eu então quero usar o attachement de cor do FBO, onde os valores são renderizados e usados ​​como uma textura em outro FBO. Agora eu li sobrehttp://www.khronos.org/opengles/sdk/docs/man/ (sob glTexImage2D) que todos os valores são fixados em um intervalo de [0, 1] e também não encontrei uma instrução glClampColor. Existe a possibilidade de encontrar uma solução alternativa aqui ou alguém tem uma idéia que poderia me ajudar com o meu problema? :)

RESOLVIDO

É possível e os valores não são fixados em [0, 1], ao usar texturas de ponto flutuante, mas funciona apenas usando GL_HALF_FLOAT_OES como o formato interno da textura. O uso de GL_FLOAT resulta em um objeto framebuffer incompleto, o que é muito triste, porque eu estava construindo uma tabela de área somada (SAT) e obtive um grande problema de precisão aqui. Então, em geral, parece que apenas metade da precisão (2 bytes, 1 bit de sinal + 5 bits expoente + 10 frações) números de ponto flutuante são suportados no iPad2.

Criação funcional da textura de fixação de cor do FBO

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

Mais uma coisa a mencionar: o Instruments reportará uma mensagem "Enum inválido para o argumento 'type'", mas funciona de qualquer maneira. Além disso, o simulador usará texturas de precisão completa em vez da meia precisão especificada (acho que não há esse tipo de dados em C). É por isso que você provavelmente terá menos problemas de precisão no simulador.

Mas o mais confuso é que "GL_OES_texture_float" é suportado ao imprimir glGetString (GL_EXTENSIONS). No entanto, como mencionado antes, não funciona.

questionAnswers(2)

yourAnswerToTheQuestion