Ich brauche gl_FragColor, um Fließkommawerte zu "malen", die auch negativ sein können (x < 0) und> 1.0. Ich möchte dann den Farbanhang des FBO verwenden, wo diese Werte gerendert werden und als Textur in einem anderen FBO verwendet werden. Nun habe ich unter http://www.khronos.org/opengles/sdk/docs/man/ (unter glTexImage2D) gelesen, dass alle Werte auf einen Bereich von [0, 1] geklemmt sind und ich auch keinen glClampColor-Befehl gefunden habe. Gibt es eine Möglichkeit, hier einen Workaround zu finden oder hat jemand eine Idee, die mir bei meinem Problem helfen könnte? :)Gleitkommadressuren in OpenGL ES 2.0 auf iOS ohne Klammern auf [0, 1]
GELöST
Es ist möglich, und die Werte werden nicht eingeklemmt auf [0, 1] überhaupt, wenn Gleitkomma-Texturen, aber es funktioniert nur GL_HALF_FLOAT_OES wie die Beschaffenheit der interne Format. Die Verwendung von GL_FLOAT führt stattdessen zu einem unvollständigen Framebuffer-Objekt, was wirklich sehr schade ist, denn ich habe eine sumed area table (SAT) erstellt und hier ein großes Präzisionsproblem bekommen. Im Allgemeinen scheint es so, als ob auf dem iPad2 nur halbe Gleitkommazahlen mit halber Genauigkeit (2 Bytes, 1 Vorzeichenbit + 5 Exponentenbits + 10 Fraktionen) unterstützt werden.
Arbeiten Schaffung der Texturfarbe attachement des FBO
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_HALF_FLOAT_OES, NULL);
Eine weitere Sache zu erwähnen: Instrumente werden ein „Invalid Enum für Argumente‚Typ‘“ melden Nachricht, aber es trotzdem nicht funktioniert. Außerdem wird der Simulator anstelle der angegebenen halben Genauigkeit Texturen mit voller Genauigkeit verwenden (ich denke, da es keinen solchen Datentyp in C gibt). Aus diesem Grund werden Sie wahrscheinlich weniger Präzisionsprobleme am Simulator bekommen.
Aber die verwirrendste Sache ist, dass "GL_OES_texture_float" beim Drucken von glGetString (GL_EXTENSIONS) unterstützt wird. Wie bereits erwähnt, funktioniert es jedoch nicht.
Was ist der interne Texturtyp, den Sie verwenden? –
Sorry Leute, ich hoffe ihr hattet alle tolle Ferien. Vielen Dank bis jetzt. Das werde ich dieses Wochenende testen. – RayDeeA
Das interne Format ist GL_RGB. Deshalb war ich besorgt, weil der Doc sagt, dass nur GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB und GL_RGBA erlaubt sind und dass alle auf [0,1] geklemmt sind. Siehe: http://www.khronos.org/opengles/sdk/docs/man/unter glTexImage2D – RayDeeA