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

Aktuelle Zeit: Fr Jul 18, 2025 15:52

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: GL_BLEND ohne Hintergundfarbe
BeitragVerfasst: Di Jun 13, 2006 09:00 
Offline
DGL Member

Registriert: Di Jun 13, 2006 08:11
Beiträge: 30
Hallo,

hab gerade versucht 2 Dreiecke zu blenden.
Die Farben sollen bei übereinanderligen 1:1 gemischt werden.

glBlendFunc (GL_DST_COLOR, GL_SRC_COLOR);

hab ich als parameter daher gewählt. Richtig?!
nun wenn ich ein Weissen Hintergrund habe, klappt es auch,
aber bei schwarzem nicht.

Was mach ich falsch?

Danke !


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 13, 2006 09:31 
Offline
DGL Member

Registriert: Sa Okt 22, 2005 20:24
Beiträge: 291
Wohnort: Frauenfeld/CH
versuch mal das erste zu zeichnen und erst dann blending zu aktivieren, vorher soll es inaktiv bleiben. So wie ich das sehe ist es momentan so, dass er den hintergrund halt auch noch zum blending gebraucht.

_________________
bester uo-shard: www.uosigena.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 13, 2006 10:12 
Offline
DGL Member

Registriert: Di Jun 13, 2006 08:11
Beiträge: 30
nee, da werden die Objekte dann einfach gezeichnet und gar nicht mehr geblendet,
weil es ja erst danach eingeschaltet wird.. oder?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 13, 2006 12:21 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Mai 29, 2006 21:13
Beiträge: 142
Wohnort: Ballenstedt/Sachsen-Anhalt
Es wird immer mit dem geblendet was schon da ist, also zum Beispiel mit der Hintergrundfarbe. Wenn du Blending erst danach einschaltest, passiert das:
1. Schwarzer Hintergrund
2. Dreieck A drauf ohne mit Hintergrund zu mischen
3. Blending an
4. Dreieck B gemischt mit Dreieck A.

Kann aber sein dass es trotzdem nicht ganz geht, wegen Blending an den Stellen wo nichts überlappt. Einfach mal was anderes probieren ("rumspielen"), siehe Wiki: glBlendFunc

_________________
Gott sei Dank bin ich Atheist!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 13, 2006 14:30 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 27, 2005 12:44
Beiträge: 393
Wohnort: Berlin
Programmiersprache: Java, C++, Groovy
Hallo,

deine Alpha-Funktion ist glaub ich nicht glücklich gewählt.
Der erste Faktor von glBlendFunc wird mit der Farbe des neuen Fragments multipliziert und der zweite mit dem Wert, der schon im Framebuffer steht.
Demnach würde sich bei dir

GL_SRC_COLOR*GL_DST_COLOR+GL_DST_COLOR*GL_SRC_COLOR
=2*GL_SRC_COLOR*GL_DST_COLOR

ergeben.
Wenn du ein einfaches Mischungsverhältnis von 1:1 haben willst, würde ich glBlendFunc(GL_ONE, GL_ONE) empfehlen.

Falls du nur überblenden willst, wo Überlappungen sind, kannst du folgendes machen :

Das erste Dreieck zeichnest du ganz normal und machst gleichzeitig den Stencil-Buffer schreibbar.

Das zweite Dreieck blendest du dann über das erste, und zwar nur dort, wo Werte im Stencil-Buffer stehen.

Ich hoffe, das hilft dir ein bisschen weiter :wink:


Viele Grüße
dj3hut1


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 13, 2006 14:53 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Nov 13, 2004 11:00
Beiträge: 229
Wohnort: Steinhude
wobei GL_ONE, GL_ONE naütrlich auch stark zu überblendung neigt. Für eine 1:1 Mischung, die die Helligkeit beibehält währe dann glBlendfunc(GL_CONSTANT_COLOR, GL_CONSTANT_COLOR) mit glBlendcolor(0.5,0.5,0.5,0.5) zu empfehlen oder alternativ entweder in der source oder in der destination ein Alphawert von 0.5 der verwendet wird.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jun 13, 2006 21:23 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Da geb ich Grizzly recht. Ich würde vermutlich auch dazu tendieren dem Einkommenden Fragmenten einen 0.5er Alphakanal zu verpassen und dann mit SRC_ALPHA und ONE_MINUS_SRC_ALPHA zu blenden.

_________________
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  [ 7 Beiträge ] 
Foren-Übersicht » Programmierung » OpenGL


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 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.009s | 15 Queries | GZIP : On ]