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

Aktuelle Zeit: Mo Jul 14, 2025 04:47

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Frage zum Thema Blending
BeitragVerfasst: Do Feb 24, 2005 12:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Feb 21, 2005 21:59
Beiträge: 33
Hey Leute

da bin ich wieder :D

Im moment hab ich das kleine Problem, dass ich zwei Texturen übereinander hab. (einen Hintergrund und eine Textur mit einer Runden Figur)
Der Hintergrund der Textur mit der Figur soll durchsichtig sein, sodass man nur den Runden Körper erkennt und nicht das Rechteck dadrum.
Der Hintergrund ist zwar jetzt durchsichtig aber die figur ist teilweise ausgebleicht bis durchsichtig.
Wie kann ich also OpenGL sagen, dass ich nur eine bestimmte farbe durchsichtig machen möchte?

Danke

Leo


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 24, 2005 12:42 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Habe den Thread verschoben. Bitte poste beim nächsten Mal im korrekten Forum.

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Feb 24, 2005 19:24 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Mal ne kleine Frage dazu: Möchtest du, dass nur(!) der Hintergrund transparent ist, und die Figur ansich voll sichtbar?

Dann musst du mal deinen Alphakanal checken. Eventuell sind da die Pixel deiner Figur auch leicht durchsichtig. Ansonsten solltest du mit der glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA) ganz gut fahren. (Laut unserem Wiki) 8)

Hast du die Datei in Photoshop erstellt? Wenn ja guck mal die Transparenz der Ebene an, die deine Figur enthält. Eventuell ist dort nicht 100% Sichtbar eingestellt.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 25, 2005 12:43 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Feb 21, 2005 21:59
Beiträge: 33
Ok das mit dem Hintergrund hab ich (teilweise) lösen können
Hab mit AddAlphaFromColorKey(255,0,255,10);

meine Rosa (RGB: 255,0,255)
wegbekommen
allesdings wenn ich die Objekte jetzt mit

glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
blenden ( :wink: ) will

Dann geht der zuvor rosa hintergrund nicht weg sondern wird schwarz gezeichnet.
Ich weiß nicht wieso, weil bei nem objekt was ich zuvor mit der selben methode hab zeichnen lassen, funktioniert es und der hintergrund (rosa) ist transparent.

Hat jemand ne ahnung woran das liegen könnte?

Leo


Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 25, 2005 13:09 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Tiger_Leo hat geschrieben:
AddAlphaFromColorKey(255,0,255,10);

Hey. Die Methode kommt mir bekannt vor. ;-)

Du kannst das ganze auch ohne Blending lösen. Und zwar hast du einen Alphakanal der lediglich an oder aus kennzeichnet. Wenn du jetzt eine Alphafunc definierst bekommst du den weg. Wenn du allerdings einen weichen Rand bei den Objekten haben willst dann musst du wohl mit einem Grafikprogramm einen Alphakanl erstellen und das dann blenden.

Zum Thema Rosa durch schwarz ersetzen. Wann zeichenst du deinen Hintergund? Vor oder nach dem Asterioid?

Alphafunc
Code:
  1.   glAlphaFunc(GL_GREATER, 0.1);
  2.   glEnable(GL_ALPHA_TEST);
  3.  


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 25, 2005 13:18 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Feb 21, 2005 21:59
Beiträge: 33
Oh, danke dir!

Klappt jetzt alles so wie ich es wollte.
Hatte zuerst die Asteroiden und dann den hintergrund zeichnen lassen

und nachdem ich das blending abgestellt hatte funktioniert jetzt alles wunderbar!

Danke!

Leo


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr Feb 25, 2005 13:55 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Dachte ich es mir schon fast. Das Problem an deinem Hintergrund ist vollgendes.
Er wurde 100%ig richtig geblendet. Allerdings wurde er in den Tiefenbuffer eingetragen. Was ja auch richtig ist. Und wenn du dann deinen Hintergrund zeichnen wolltest hat OpenGL gesehen, dass sich da etwas befindet. Und hat dann den Hintergrund nicht mehr gezeichnet. Deswegen war das auch Schwarz. Rosa war es nicht weil es ja transparent war. Geblendete Flächen musst du immer tiefensortiert zeichnen! Bei einem Hintergrund ist das recht einfach. Den immer zu erst.


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 » Einsteiger-Fragen


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:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.011s | 15 Queries | GZIP : On ]