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

Aktuelle Zeit: Fr Jul 18, 2025 08:16

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



Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Additives Blending
BeitragVerfasst: Di Jun 09, 2009 09:08 
Offline
DGL Member

Registriert: Fr Jan 16, 2009 13:36
Beiträge: 75
Hallo,

Ich bin momentan dabei mehrere Kugeln(Spheres) hintereinandergereiht darzustellen. Ich habe dabei GLScene verwandt. Nun möchte ich ein Additives Blending durchführen, welches mir die Farbwerte der Kugeln aufaddiert. Wodurch kann es dazu kommen, dass meine Kugeln nur weiss dargestellt werden?

Selbst wenn ich nur eine einzige Kugel darstellen möchte und den Blending Mode auf bmadditive stelle wird mir eine weisse Kugel dargestellt, obwohl meine Backproperties und Frontproperties (Diffuse,Specular und Ambient auf schwarz eingestellt sind).

Vielleicht habe ich einfach bei dem Blending noch nciht ganz durchgesehen. Ich hatte mir mal diese Seite, welche unter anderem auch additives Blending beinhaltet angeschaut:
http://wiki.delphigl.com/index.php/glBlendFunc

,aber irgendwie will das nicht so...


Ich danke Euch schonmal im vorraus,

Heavenssake007


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 09, 2009 21:14 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Beim additiven Blending werden die Farbwerte einfach aufaddiert. Alle werte jenseits 1.0 werden abgeschnitten.

Wenn du einen farbigen Hintergrund hast, sagen wir graublau (0.4,0.4,0.6) und eine Kugel in hell gelb drauf legst (0.7,0.7,0.4) dann erhälst du (1.0,1.0,1.0) = Weiß.

Wenn du allerdings Licht eingeschaltet hast, dann kann es auch daran liegen, dass du vergessen hast GL_COLOR_MATERIAL einzuschalten (glEnable).

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 10, 2009 12:46 
Offline
DGL Member

Registriert: Fr Jan 16, 2009 13:36
Beiträge: 75
Vielen Dank für die schnelle Antwort. Mein Problem war der Hintergrund, welcher auf Weiss eingestellt war.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 10, 2009 13:38 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Einen weißen Hintergrund dahinter zu machen ist kompliziert.
Man müsste dann, wenn man das wirklich will, zuerst den Vordergrund zusammenblenden und das Ergebnis dann in einer Textur/Buffer speichern, danach den Bildschirm mit weiß clearen und den Vordergrund mit normalen Blendingeinstellungen drüber blenden.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 10, 2009 14:06 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Zitat:
Einen weißen Hintergrund dahinter zu machen ist kompliziert.

Eigentlich sollte es reichen nach dem rendern der Szene ein bildschirmfüllendes, weißes Quad zu rendern. Der Z-Wert des Quads muss dabei dem Far-Plane entsprechen. Der Z-Buffer macht dann den Rest.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 10, 2009 18:29 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Öhm... nun gut, solange die Szene im Vordergrund keine Transparenz enthält. Oder habe ich jetzt hier einen Denkfehler...?

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jun 10, 2009 20:56 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 29, 2005 12:28
Beiträge: 2249
Wohnort: Düsseldorf
Programmiersprache: C++, C#, Java
Äh...achso...wenn der Z-Buffer eben ausgeschaltet sein muss kann man das auch über den Stencil-Buffer realisieren.

_________________
Yeah! :mrgreen:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 11, 2009 19:46 
Offline
DGL Member
Benutzeravatar

Registriert: Do Sep 02, 2004 19:42
Beiträge: 4158
Programmiersprache: FreePascal, C++
Flash hat geschrieben:
Öhm... nun gut, solange die Szene im Vordergrund keine Transparenz enthält. Oder habe ich jetzt hier einen Denkfehler...?


Bei Blending braucht man Z-Ordering. Ausnahmsweise ist das hier mal ein Vorteil, weil so das Quad, welches man nachträglich Rendert, nicht mehr mit einbezogen wird. Speziell, wenn man auch noch das Blending ausschaltet.

Gruß Lord Horazont

_________________
If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung.
current projects: ManiacLab; aioxmpp
zombofant networkmy photostream
„Writing code is like writing poetry“ - source unknown


„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Jun 11, 2009 20:46 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Mag sein, aber die Darstellung ist dann irgendwie seltsam, da das additiv zusammengeblendete dann dunkler ist als der Hintergrund.
Müsste man halt sehen. Vielleicht kann heavenssake007 ja mal ein Bild posten inkl. nachträglich geränderten Weißen Quad im Hintergrund.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


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


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 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.008s | 16 Queries | GZIP : On ]