Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Hä? Du meinst bestimmt, dass eine bestimmte Farbe einer Textur durchsichtig ist! Dafür gibt es das sogenannte AlphaMasking. Dafür musst du allerdings einen Alphakanal für die Textur erstellen. Das ist neben Rot, Grün und Blau die 4te Komponente einer Textur.
Für den Alphakanal hast du 2 Möglichkeiten. Entweder du erstellst ihn mittels eines Grafikprogramm (z.B: Photoshop) und speicherst es im TGA Format (das unterstützt den Alphakanal) ab. Oder du benutzt einen (klassenbasierten) Loader und erstellst anhand einer Farbe diesen Kanal.
Das AlphaMasking würdest du im Quellcode dann folgender maßen aktivieren.
Code:
glAlphaFunc(GL_GREATER, 0.1);
glEnable(GL_ALPHA_TEST);
// Objekte zeichnen
// Die Textur muss beim Zeichnen gebunden sein. Wann dies tust ist allerdings egal.
glDisable(GL_ALPHA_TEST);
Damit werden alle Pixel gezeichnet die einen Alphawert größer als 0.1 haben. 0.1 entspricht als Farbwert ca. 26.
Aber das Herzstück ist der Alphakanal. Ohne den Läuft gar nix. Im aktuellen DGL-SDK befinden sich 2 Loader die das können. Einmal die glBitmap und die glBMP.
PS: Für den Fall, dass du gewisse Teile einer Textur nur leicht Transparent machen möchtest oder es am Rand hin weich ausblenden. Dann müsstest du das Blending verwenden. Allerdings kommst du dann nicht umher deinen Alphakanal mittels Grafikprogramm zu erstellen. Da dieser ja weiche Übergänge haben muss.
Mitglieder in diesem Forum: 0 Mitglieder und 9 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.