Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 04:01

Foren-Übersicht » Programmierung » OpenGL
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: [solved] Farbe aus Szene ausfiltern
BeitragVerfasst: Sa Mai 07, 2011 11:46 
Offline
DGL Member

Registriert: Mo Mär 26, 2007 21:56
Beiträge: 12
Hallo Forum,

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:
Bild

Ohne den grünen Kanal:
Bild


LG

Florian


Zuletzt geändert von pokerpilot am Sa Mai 07, 2011 13:37, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe aus Szene ausfiltern
BeitragVerfasst: Sa Mai 07, 2011 12:52 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
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.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe aus Szene ausfiltern
BeitragVerfasst: Sa Mai 07, 2011 13:20 
Offline
DGL Member

Registriert: Mo Mär 26, 2007 21:56
Beiträge: 12
Hallo Coolcat,

ich meine den Framebuffer. Deinen Vorschlag (Quad + glColorMask) werde ich gleich testen und melde mich dann zurück.

LG

Florian


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe aus Szene ausfiltern
BeitragVerfasst: Sa Mai 07, 2011 13:32 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
P.S. Du kannst glColorMask natürlich auch schon vorher benutzen während du deine GUI renderst.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Farbe aus Szene ausfiltern
BeitragVerfasst: Sa Mai 07, 2011 13:36 
Offline
DGL Member

Registriert: Mo Mär 26, 2007 21:56
Beiträge: 12
Hervorragend! Genau was ich wollte! Vielen herzlichen Dank!

Grün ausfiltern:
Code:
  1. glColorMask(false, true, false, false);
  2. glcolor3f(0, 0, 0);
  3. // Rechteck
  4. 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:
  1. glColorMask(true, false, true, true);
  2. // Szene rendern
  3. glColorMask(true, true, true, true); // Falls danach normal gerendert werden soll
Dabei müssen die Parameter natürlich umgedreht werden.

Florian


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

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.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]