Frage

Ich habe mich gefragt, war der beste Weg, um die Farbpixel in dem Bildpuffer zu invertieren ist. Ich weiß, es ist möglich, mit glReadPixels() und glDrawPixels() aber die Leistung Hit dieser Anrufe zu tun, ist ziemlich groß.

Im Grunde, was ich versuche zu tun haben, eine umgekehrte Farbe Quer Haar, das ganz gleich immer sichtbar ist, was dahinter steckt. Zum Beispiel würde ich einen beliebigen Alpha-Maske Bitmap oder Textur habe, haben sie ohne Tiefentest machen, nachdem die Szene gezeichnet wird, und alle Bildspeicherpixel unter den maskierten (Voll alpha) Pixel der Textur würden invertiert werden.

Ich habe versucht, dies mit einer Textur zu tun, aber ich habe einige seltsame Ergebnisse zu erzielen, auch alle Fülloptionen ich noch verwirrend finden.

War es hilfreich?

Lösung

Geben Sie so etwas wie diesen einen Versuch:

glEnable(GL_COLOR_LOGIC_OP);
glLogicOp(GL_XOR);
// render geometry
glDisable(GL_COLOR_LOGIC_OP);

Andere Tipps

, wie etwa:

glEnable (GL_BLEND); 
glBlend (GL_ONE_MINUS_DST_COLOR, GL_ZERO);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top