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

Aktuelle Zeit: Do Jul 17, 2025 21:42

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



Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Transparenzfarbe
BeitragVerfasst: Mi Mai 16, 2007 19:21 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
hi, ich suche nach einer Möglichkeit, eine bestimmte Farbe einer Textur transparent zu machen.
Mit dem Alphatest wird ja lediglich der alpha Kanal (sofern vorhanden) maskiert. Bei der Blending Methode
wüsste ich nur, wie ich schwarze, bzw weiße Teile transparent machen könnte, aber was ist, wenn meine
Farbe zb clFuchsia ist ? (#FF00FF)

mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 16, 2007 19:42 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Das geht nicht. Dazu benötigst du einen zusätzlichen Alphakanal. Mit der glBitmap genügt es, wenn du vor dem Generieren AddAlphaFromColorKey aufrufst.

PS: Das mit dem Blending und Schwarz funktioniert auch nur unter bestimmten Vorraussetzungen, denn die Farbe wird immer verrechnet und nicht nur dann wenn sie schwarz ist. Also bei einem buntem Hintergrund zum Beispiel würde das auch nicht mehr gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 16, 2007 19:50 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
wenn ich addalphafromcolorkey gemacht habe, kann ich den alpha test nutzen ?


mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 16, 2007 21:01 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Du hast dann einen vollwertigen Alphakanal. Natürlich kannst du das benutzen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Mai 16, 2007 21:28 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
dankeschön ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 20, 2007 11:12 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
das klappt noch net so recht.

ich binde die texture und rufe dann
Code:
  1.  
  2.   glEnable(GL_ALPHA_TEST);
  3.   glAlphaFunc(GL_LESS, 0.5);
  4.  

auf, danach wird gezeichnet. allerdings ist so alles schwarz.
wenn ich greater benutze wird alles angezeigt.

Code:
  1. AddAlphaFromColorKey(255, 0, 255);


ist meine transparenzfarbe

mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 20, 2007 11:31 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Mit dem bisschen Code kann ich nichts anfangen. Im Einzelnen sieht das richtig aus aber oftmals ist die Reihenfolge wichtig.

Du musst AddAlphaFromColorKey vor GenTexture aufrufen. Bzw stelle sicher, dass die farbe 100%tig richtig ist. Zur not stelle eine Abweichung ein.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 20, 2007 13:00 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Vielleicht funktioniert glAlphaFunc(GL_GREATER, 0.5); besser.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 20, 2007 15:59 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
ah vor GenTexture, kann ich danach nochmal GenTexture aufrufen um die texture nutzbar zu machen ?

mfg


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 20, 2007 16:20 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Und natürlich musst du das vor GenTexture aufrufen sonst werden die Texturedaten ja nicht verändert. ;)

Also normal werden die Texturdaten verworfen sobald du glBitmap.GenTexture aufrufst. Das kannst du auch unterbinden allerdings ist das unnötiger Mehraufwand. Wenn du FreeDataAfterGenTexture auf False setzt werden die Daten in GenTexture nicht mehr frei gegeben und du kannst GenTexture so häufig aufrufen wie du willst. Allerdings wenn du so etwas machen musst solltest du entweder einen sehr triftigen Grund haben oder aber du solltest etwas an dem Aufbau deines Programmes ändern.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mai 20, 2007 16:30 
Offline
DGL Member

Registriert: Di Mai 24, 2005 16:43
Beiträge: 710
ok werde ich noch umbauen, so schlimm ist das nicht ;)

danke

mfg


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 11 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.008s | 14 Queries | GZIP : On ]