ich suche euren Rat. Ich möchte aus einer fertig gerenderten Szene eine Farbkomponente (also reines Rot, Grün oder Blau) ausfiltern. Ich möchte das Ganze am Ende machen, weil ich farbige Texturen verwende.
Hättet ihr da einen Tip für mich? Ich arbeite mit dem dglheader und glbitmap, auf SDL und Shader habe ich bisher verzichtet.
Der Hintergrund ist, dass ich einen Röhren-Monitor "simulieren" möchte, bei dem die entsprechende Kathode defekt ist, und dem Bild diese Farbe fehlt. Siehe Screenshots (der zweite ist photoshopped):
Mit allen Kanälen:
Ohne den grünen Kanal:
LG
Florian
Zuletzt geändert von pokerpilot am Sa Mai 07, 2011 13:37, insgesamt 1-mal geändert.
Ich möchte aus einer fertig gerenderten Szene eine Farbkomponente (also reines Rot, Grün oder Blau) ausfiltern.
Befindet sich diese in einer Textur (bzw. einem FBO) oder meinst du wirklich den Framebuffer?
Im ersten Fall: Rendere die Textur dahin wo du sie haben willst und benutze glColorMask um die Farbkanäle zu deaktivieren. Eine Alternative ggf. noch Blending z.B. mit glBlendFunc(GL_CONSTANT_COLOR , GL_ZERO). Hier kannst du dann über glBlendColor steuern welche Farben du sehen willst. Vorteil des Blending-Ansatzes ist das du ggf. im Buffer befindliche Farbwerte überschreiben kannst, der Buffer muss nicht vorher komplett schwarz sein.
Im zweiten Fall: Rendere ein schwarzes Quad (oder sonstige Geometrie) über den gewünschten Bereich und benutze glColorMask um nur die Farbkanäle auf schwarz zu setzen die du NICHT haben willst.
Hervorragend! Genau was ich wollte! Vielen herzlichen Dank!
Grün ausfiltern:
Code:
glColorMask(false, true, false, false);
glcolor3f(0, 0, 0);
// Rechteck
glColorMask(true, true, true, true);
Dein zweiter Tipp gefällt mir sogar noch besser, ich werde das ganze wohl auf diese Weise lösen und um meine Render-Routine herum glColorMask verwenden:
Code:
glColorMask(true, false, true, true);
// Szene rendern
glColorMask(true, true, true, true); // Falls danach normal gerendert werden soll
Dabei müssen die Parameter natürlich umgedreht werden.
Mitglieder in diesem Forum: 0 Mitglieder und 5 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.