2009-07-01 7 views
0

Ich entschuldige mich im Voraus, wenn diese Frage verwirrt scheint. Das Verhalten, das ich sehe, ergibt für mich keinen Sinn.Framebuffer, Texturen und glColor Verhalten in OpenGL/OpenGL ES

Ich habe einen Framebuffer Rendering zu einer Textur. Ich mache feste Rechtecke von Rot, Grün, Blau mit unterschiedlicher Opazität für diese Textur. Ich rendere dann die Textur auf dem Bildschirm (Framebuffer 0). Der Framebuffer, der an die Textur angehängt ist, ist persistent, und in jeder Renderschleife zeichne ich mehr Rechtecke in die Textur - und füllt schließlich den Bildschirm.

Ich habe festgestellt, dass Rechtecke bestimmter Farben nicht gerendert werden, wenn ich glColor() nicht vor dem Rendern der Textur auf weiße 100% Deckkraft setze. Das heißt, wenn glColor(1.f, 0.f, 0.f, 1.f) vor dem Rendern der Textur gesetzt wird, werden nur die blauen Rechtecke gezeichnet.

Ich verstehe nicht, warum die aktuelle Farbe einen Einfluss auf die Darstellung der Textur haben würde (die ich wie ein Blit glaube). Ich habe verschiedene texParameter(...) Anrufe vergeblich versucht, aber ich rate nur.

Danke.

+0

Ich denke Funktion glColor() ist nicht verfügbar in OpenGL ES –

Antwort

2

Unter anderem legt glColor() die Farbe fest, die für einen Stützpunkt verwendet wird. Wenn das texturierte Rechteck gezeichnet wird, wird jede Texelprobe mit der Scheitelfarbe multipliziert. Nun, eigentlich eine lineare Interpolation der Eckpunkte des Primitivs, die einfach die Eckpunktfarbe ist, wenn alle Eckpunkte die gleiche Farbe haben.

Dieses Tutorial erklärt die Auswirkungen dies alles ziemlich gut:

http://www.falloutsoftware.com/tutorials/gl/gl4.htm

Der einzige ungerade Teil hier ist Ihre Aussage, dass glColor (1, 0, 0, 1) bewirkt, dass nur blaue Rechtecke gezeichnet werden . Ich würde erwarten, dass das nur rote Rechtecke sind, wenn die Parameter für glColor rot, grün, blau und alpha sind. Hoffentlich gibt es einen Tippfehler oder die Reihenfolge der Parameter ist anders, so dass Rot = 0, Grün = 0, Blau = 1 und Alpha = 1.

Verwandte Themen