2009-12-20 15 views
9

Ich habe versucht, herauszufinden, wie Float-Texturen in GLES2 verwenden. Die API-Referenz (http://www.khronos.org/opengles/sdk/docs/man/glTexImage2D.xml) sagt, dass nur nicht-signierte Bytes und Kurzschlüsse verwendet werden können, aber ich habe Leute gesehen, die sagen, dass sie anderswo unterstützt werden.Floating Point Texturen in OpenGL ES 2.0

Ich könnte GL_LUMINANCE als Textur-Format verwenden, aber das bringt mir nur einen Gleitkommawert.

Wenn jemand etwas Einblick hat, würde ich es schätzen.

Antwort

9

In OpenGL ES 2.0 werden Floating-Point-Texturen nur unterstützt, wenn die Implementierung die Erweiterung OES_texture_float exportiert. Beachten Sie, dass diese Erweiterung nur die nächste Filterung innerhalb einer Texturstufe und keine Filterung zwischen den Texturstufen erlaubt. Diese Einschränkung wird durch das Vorhandensein von OES_texture_float_linear gelockert. Ein weiterer möglicher Nachteil ist, dass das Vorhandensein von OES_texture_float es nicht erfordert, dass die Implementierung das Rendern von Fließkommaltexturen mit Framebuffer-Objekten unterstützt.

Was versuchen Sie mit Float-Texturen?

+0

Ich speichere einige Positionsinformationen. Also würde es einen Fragment-Shader geben, der einige Berechnungen (Partikelbewegung) durchführt und zu einem Framebuffer rendert, der in einen anderen Shader (Render) eingespeist wird. Die Sache ist, ich brauche Gleitkomma-Präzision. – notlion

+0

Auf meiner Implementierung (Codierung für iOS) waren die Schlüssel "GL_OES_texture_float" und "GL_OES_texture_half_float_linear" –