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?
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)
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
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 ( ) 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.
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?
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.
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.