• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

PNG versus TGA 32

Zasta Korobase

Freund/in des Forums
Ich erstelle meine Texturen mit Transparenzen immer als 32er TGAs - oder besser gesagt, habe es getan. Denn bekanntermaßen ist jenseits von PSP 7 in dieser Richtung nichts mehr zu wollen, er plättet.

Der Workaround mit dem Alphakanal ist für meine Zwecke unbrauchbar, da ich Teiltransparenzen nutze, die keine glatten Kanten haben und deshalb Alpha-Auswahlen automatisch nicht funktionieren, bzw. grausam aussehen. (zur Info: Ich baue hauptsächlich Narben, Brandings, Wunden, Drecklayer, Bodypaintings etc. Daher kann ich mit glatten Alphas nichts anfangen sondern brauche organische Übergänge)

Meine bisherige Lösung ist, meinen alten PSP 7 installiert zu lassen und von dort als 32er TGA zu speichern - nur ist das unglaublich lästig, da der 7er natürlich etliches nicht mehr unterstützt (allein das Fehlen der Ebenenordnersubstrukturen treibt mich schon die Wände hoch!). Doch irgendwann nervt das natürlich nur noch.

Deshalb meine Frage: Wie sind denn die Erfahrungen hier mit PNG? Eine befreundete Builderin sagte mir, bei ihr würden PNG-Texturen mit zunehmender Entfernung ins Nichts verschwinden. Das möchte ich natürlich nicht!
 
Meine Erfahrung mit PNG ist recht gut. Ich mache Texturen und wenn ich Alpha brauche nehme ich PNG. Allerdings habe ich CS2 da ist es recht einfach.
Das PNG auf die Entfernung verschwindet habe ich bisher noch nicht beobachten können.
 
Soweit ich weiß, wandelt SL doch sowieso jede Textur in ein anderes Format um, in dem die Textur dann systemintern gespeichert wird (JPEG 2000 wenn ich mich nicht irre).
Da ist es theoretisch egal, ob du nun TGA oder PNG hochlädst.8)

Edit: Ja, stimmt, SL nutzt JPEG 2000
 
Da JPEG keine Transparenzen unterstützt (Beschneidungspfade zwar behält, das ist aber für SL irrelevant) würde mich das wundern, wenn Texturen mit Transparenzen gewandelt werden.

Aber wie immer schließe ich nicht aus, da eine Entwicklung verpennt zu haben. Mein tägliches Brot ist Print nicht digital. :)
 
Ah, danke! Dann kann ich da natürlich nicht mit meinem alten Wissen über JPEGs drangehen.

Bleibt aber die Frage, ob die Umwandlung von TGAs zu diesem JPEG2000 anders gehandhabt wird als die von PNGs. Da aber das Ergebnis in jedem Fall das selbe ist, kann ich das auch durch Versuch direkt testen. Das Verhalten, sobald es dann mal in SL gelandet ist, sollte dann ja in jedem Falle identisch sein.
 
Jup, die Umwandlung von TGA in jpeg2000 läuft logischerweise über eine andere routine im Viewer als die Umwandlung von PNG files. Generell läuft das in etwa so ab:
Der Viewer enpackt die TGA Dateien bwz. PNG Dateien erst mal in ein RGB Bitmap und legt eventuell noch eine Transparenzmaske dazu an. Aus dieser Bitmap mit je nachdem 3 oder 4 Kanälen wird dann wiederum ein jpeg2000 codiert und Verlustfrei komprimiert.
Dieses wird dann in einem speziellen Linden Lab-Format an den Server geschickt.

Ein Unterschied zwischen TGA und PNG besteht nun darin, wie diese Transparenzmaske erstellt wird, wenn das Original einen Alphakanal(TGA) bzw. Transparenzen(PNG) enthält. Während bei PNG dazu die OpenSource bibliothek libpng verwendet wird, die das sauber hinbekommt, wird bei TGA leider ein von Linden Lab selbst gebastelter Code verwendet, der das nicht so sauber hinbekommt mit Teiltransparenzen bzw den Farbwerten transparenter Pixel.

Deswegen haben Texturen mit scharfen Kanten an Transprenzgrenzen beim Hochladen über TGA diese "Halo" Fehler (helle Ränder), die bei PNG nicht auftauchen. Sieht man z.B. bei Tattoos oder schwarzer Schrift auf transparentem Untergrund deutlich.

Aber Vorsicht: Nicht alle Programme können saubere PNG speichern. Photoshop z.B. speichert und verwendet bei 100% Transparenz eben nicht den Farbwert für R,G,B, sondern macht das einfach "weiß", weil man das eh nicht sieht. Damit kann das Bild auf der Festplatte (und vor allem auf dem Webserver - png heißt nicht umsonst "portable network graphics") eine ganze Ecke kleiner werden als das "korrekte PNG" - aber beim Interpolieren wird dann leider nicht die korrekte Farbe des Pixels mit sichtbaren Pixeln verrechnet, sondern weiß. Also gibts auch wieder halo-Effekte.
Gimp kann dagegen sauber PNG verarbeiten und, wenn man das einstellt, auch die Farbwerte von transparenten und teiltransparenten Pixeln mit abspeichern. Da tauchen diese Probleme nicht auf dann.

Wenn dann in Second Life Texturen "verschwinden", die durch PNG hochgeladen wurden, während die Texturen, die mit TGA hochgeladen wurden, nicht verschwinden, dann liegt das vermutlich an den "falschen" Transparenzwerten bei TGA, die durch eben dieses "white for Transparent" letztendlich einfach ein bisschen weniger Transparenz haben als die PNG-basierten Texturen. Helfen kann es da, die Texturen einfach minimal opaqer zu machen.
 
Das mit den Blitzern an glatten Transparenz-Übergängen bei TGAs kann ich jetzt zwar nicht bestätigen (ich hatte dieses Phänomen noch nie, weder bei PNGs noch bei TGAs, mag auch daran liegen, dass ich aus den oben genannten Gründen keinen manuellen vierten Kanal angelegt habe), jedoch haben mir die Antworten auf jeden Fall gezeigt, dass ich ohne Probleme auf PNG umsteigen können sollte.
Danke! :)
 

Users who are viewing this thread

Zurück
Oben Unten