Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Bestimmte Teile einer Textur kann man mittels einer Alphamaske transparent machen.
Die Alphamaske erstellt man in einem extra Maskenkanal mit einem Bildbearbeitungsprogramm wie z.B. Photoshop und speichert diese in die Bilddatei mit.Einen Alphakanal unterstützten jedoch nicht alle Bildformate.JPG kanns z.B. nicht, wohingegen TGA und PNG diese Option anbieten.
Alternativ kann man den Alphakanal auch als seperate schwarz/weiss-Textur speichern und dann später daraus laden.
Wenn du also die Textur+Alphakanal hast, dann kannst du Alphamasking unter OpenGL so aktivieren :
Code:
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0.1);
Ein Tut zu diesem Thema gibts übrigens auf meiner Homepage!
Registriert: Do Jun 19, 2003 10:44 Beiträge: 991 Wohnort: Karlsfeld (nahe München)
Kennst du/ihr außer Photoshop noch einen anderen Texturen-Tool?
Er solte Freeware sein, und das TGA Format mit Alpha-Channel abspeichern können. Das Tool braucht auch nicht groß(umfangreich) sein, da dies unötige Download-Zeit wäre.
Mfg
IFlo
_________________ Danke an alle, die mir (und anderen) geholfen haben. So weit... ...so gut
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
GIMP (GNU Image Manipulation Tool) ist eine gute und vor allem kostenlose Alternative zu Photoshop,die sich in Sachen Features nicht zu verstecken braucht.
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Son of Satan hat geschrieben:
GIMP (GNU Image Manipulation Tool) ist eine gute und vor allem kostenlose Alternative zu Photoshop,die sich in Sachen Features nicht zu verstecken braucht.
Aber vom Aussehen her. Scherz bei Seite. GIMP stammt ursprünglich von Linux was auch auf das Design und die Bedienung von der Windowsversion gefallen ist. Mir persönlich gefällt es überhaupt nicht.
Aber zum Alphakanal. Die meisten Texturenloader (Meiner, glBMP) unterstützen das nachträgliche Hinzufügen eines Alphakanals, da diese auf Klassenbasis arbeiten. Wäre evtl. auch noch eine Alternative.
Registriert: Do Sep 25, 2003 15:56 Beiträge: 7810 Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Ist nicht die 4. Farbvariable die des Alpha-Chanel?? (RGBA) Wenn dem so ist, dann kann man doch ne Function basteln welche die Pixel betrachtet und wenn ein Pixel eine bestimmte Farbe hat, dann den Alpha-Wert entsprechend setzen. Weis zwar net wirklich welchen wert A haben muss, damit er nicht gezeichnent wird (ev.0?), aber rein theoretisch ginge das.Oder?
_________________ Blog: kevin-fleischer.de und fbaingermany.com
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Das ist sogar die Methode wie das auch gemacht wird. Du kannst den Alphakanal natürlich nicht nur dazu verwenden um gewisse Teile zu zeichnen und andere nicht. Du kannst es zum Beispiel auch so machen, dass ein bestimmter Bereich einer Textur mehr Transparenter ist als ein anderer. Was OpenGL mit dem Alphakanal macht liegt alleine in der Hand des Entwickler. Mit glBlendFunc und glAlphaFunc kannst du Steuerern und Einstellen was wann passieren soll.
PS: Wenn du spaß daran hast kannst du OpenGL auch sagen er solle alles ausblenden was den Wert 1 (im Alpha wäre das 255) hat. Wobei man keine genau abfragen machen sollte. Es empfielt sich > 0.95 zu sagen. Zwecks irgendwelchen Rechenungenauigkeiten etc.
Aber im Normalfall wird von 0 (Komplett Transparent 0 als Wert im Bild) und 1 (Komplett Sichtbar 255 als Wert im Bild) ausgegangen. Alles andere führt nur zu verwirrungen.
PPS: *werbungmach* Ich habe das Spiel in meinem Texturloader ein wenig weiter getrieben und zwar kannst du dir eine Methode schreiben die als Parameter Rot, Grün, Blau und Alpha bekommt und diese Berechnung wird auf jedes Pixel angewand. ColorKey (farbwertefilter) un ein paar andere sind schon in der Klasse implementiert. Der Loader ist im DGL-SDK enthalten. Für alle Neugierigen oder Schreibfaulen.
Registriert: Do Jun 19, 2003 10:44 Beiträge: 991 Wohnort: Karlsfeld (nahe München)
Seid ihr sicher dass das legal ist?
Es gab folgenden Hinweis:
Zitat:
Because of patent issues with the LZW compression algorithm the installer does not install the ability to save GIF files. (Yes, I know that the Unisys patent has expired in the US. Not so in other countries, though.) <!-- Nor is the TIFF plug-in capable of loading or saving LZW-compressed TIFF files. --> To be able to do this, make sure that either you are in a country where Unisys doesn't have a patent on the LZW algorithm, or that you have a license from Unisys. Then download the file gimp-gif-1.2.5.zip
... LZW patents are still in force in Canada, France, Italy, Germany, the United Kingdom, and Japan.
Gibt es außer GIMP vielleicht noch einen anderen kleinen Tool welcher dass kann. Ich brauch eigentlich nur eine Tool welcher dem TGA Format einen Alpha-Channel hinzufügt.(z.B das man eine schwarz-weiße Oberfläche hat welche dann die Alpha Ebene eines passenden Bildes wird? )
Gibt es vielleicht eine einfache Möglichkeit das selber hinzukriegen?
Mfg
IFlo
_________________ Danke an alle, die mir (und anderen) geholfen haben. So weit... ...so gut
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Illegal?Obiger Absatz bezieht sich doch nur auf das GIF-Dateiformat,für welches Compuserve bis vor kurzem noch ein Patent hielt,das aber AFAIK inzwischen auch hier abgelaufen ist.Von daher spricht doch nix gegen GIMP.
Und wenn du nur einfach ne bestimmte Farbe als Alpha setzen willst,dann nimm doch Lossys Texturenunit,die kann das doch.
Registriert: Do Jun 19, 2003 10:44 Beiträge: 991 Wohnort: Karlsfeld (nahe München)
Hmm, hast Recht! Scheint sich wirklich auf das Gif-Dateiformat zu beziehen.
Was ist das den eigentlich? Was wird so abgespeichert?
Texturen vielleicht?
Na, egal solage es erlaubt ist GIMP herunterzuladen und zu nutzen.
Wie ist das eigentlich dürfte ich damit erstellte oder konvertierte Texturen
kommerziel nutzen?
Mfg
IFlo
_________________ Danke an alle, die mir (und anderen) geholfen haben. So weit... ...so gut
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Bilder im Internet. Die werden sehr oft als Gif gespeichert. Gif's sind dafür Ideal. Sie können Animationen, Transparenz und aufgrund der 8 Bit Farbtiefe (und komprimierung) sind sie gar nicht mal so groß.
Registriert: Mi Aug 20, 2003 22:26 Beiträge: 38 Wohnort: Dresden (noch)
Ich könnte mich auch irren, aber werden schwarze Stellen einer Textur bei jedem Blending nicht immer durchsichtig, einfach weil kein Farbwert zum Addieren da ist?
Registriert: Do Dez 05, 2002 10:35 Beiträge: 4234 Wohnort: Dortmund
Das hat aber den Nachteil, dass reines Rot auch zu 2/3tel geblendet wird, da grün und blau 0 sind. Was ja eigentlich nicht immer Sinn und Zweck davon ist.
Mitglieder in diesem Forum: 0 Mitglieder und 23 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.