Vergleich von Texturkompressionen

 

 

 

Viele verschiedene Komprimierungen können in GTA V für .dds-Texturen verwendet werden, sie können ausgewählt werden, wenn Texturen in OpenIV bearbeitet werden. Am gebräuchlichsten ist DXT, das standardmäßig verwendet wird und den besten Kompromiss
zwischen Größe und Qualität bietet. In einigen Fällen verliert DXT jedoch Farbinformationen, was besonders bei grauen Farben auffällt. Hier zum Beispiel eine 16×16-Pixel-Textur, komprimiert mit DXT und als unkomprimierte ARGB-Textur mit 8 Bit pro Kanal (A8R8G8B8 in OpenIV).

Bitte beachten Sie, dass die Größe von dds-Dateien nicht direkt mit der Größe einer .ytd-Texturdatei verglichen werden kann, da .ytd-Dateien gepackte Texturarchive sind, ähnlich wie .zip-Dateien.

DXT-Komprimierung Unkomprimiert (A8R8G8B8)
Bild
Größe 464 Bytes 1472 Byte
RGB-Farbcode 66, 63, 66 63, 63, 63

Wie in den Bildern der Texturen leicht sichtbar, ist die DXT-.dds-Datei leicht rosa, während die Größe viel geringer ist.

Wann sollte ich Texturen komprimieren?

 

 

 

In fast allen Fällen, insbesondere bei Verwendung einer großen Anzahl von Texturen oder hochauflösenden Texturen, ist DXT die bessere Option. Für bestimmte Teile können jedoch genaue Farben erforderlich sein. In diesem Fall ist es am besten, unkomprimierte Texturen zu verwenden, sie jedoch klein zu halten, um die Dateigröße gering zu halten. Wenn unkomprimierte Texturen für zu viele Texturen verwendet werden, insbesondere für große, kann es zu verschwindenden Texturen und Abstürzen kommen, da die Spiel-Engine den erhöhten Speicherverbrauch nicht bewältigen kann.

Verschiedene Arten der DXT-Komprimierung

Die unterschiedlichen Zahlen von DXT sind Einstellungen für Alphamaps (Transparenz). DXT1 (auch bekannt als BC1) wird für Texturen ohne Alphakanal (vollständig undurchsichtig) verwendet, zum Beispiel alle Specular- und Normal-Maps. DXT3 (BC2) hat eine Alpha-Map, erlaubt aber keine fließenden Übergänge, es kann zum Beispiel für Texturen mit einer einfachen Alpha-Map verwendet werden, wo jeder Pixel die gleiche Transparenz hat. DXT5 (BC3) unterstützt ein interpoliertes Alpha und kann für weiche Übergänge verwendet werden.

 

Vermeidung von Verfärbungen durch DXT-Komprimierung

 

 

 

Wenn Sie in DDS konvertieren, führt die Auswahl eines der DXT-Formate häufig zur Verfärbung einiger Farben aufgrund der Komprimierung der Textur und hinterlässt einen schrecklich aussehenden violetten oder grünen Farbton, der über Ihrer Textur hängt. Für Graustufenfarben habe ich zu Testzwecken eine Farbtabelle von R0, G0, B0 bis R255, G255, B255 erstellt, mit der ich genau gesehen habe, welche Farben nach dem Export nach DDS geändert werden.

Als Beispiel habe ich herausgefunden, dass Farben wie R41, G41, B41 zu R41, G42, B41 führen würden. Das Grün, das nur eins über Rot und Blau ist, ergibt diesen grünen Farbton. Andere Beispiele sind das Gegenteil davon, wie R130, B130, G130, was nach der Komprimierung zu R131, B130, G131 führt. Da das Grün in diesem Fall niedriger ist, nimmt die Farbe den violetten Farbton an.

Komprimierungsvergleich

 

 

 

(Nur Nvidia DDS Plugin – Nvidias neue Texture Tools komprimieren Texturen anders)

Die Farben, die in der DDS-Datei zu gleichen RGB-Farben geführt haben, sind in der Tabelle mit Häkchen markiert.

Sollten Sie sich jedoch dafür entscheiden, diese Tabelle als Referenz zu verwenden, finden Sie in der Tabelle die Blöcke mit Häkchen darin. Die markierten Blöcke sind Farben, die bei der Komprimierung ohne Grün- oder Violettdominanz auf gleiche RGB-Werte gerundet wurden.

Ein Beispiel für die Interpretation der Tabelle finden Sie in Spalte Y=40 & X=7. Ursprünglich war es RGB 47 und nach der Komprimierung blieb es so, was bedeutet, dass Sie R47, G47 und B47 in Ihrer Textur verwenden können, bevor Sie in DXT speichern. Andererseits scheint es manchmal eine Zahl zu runden, ein Beispiel dafür ist Y=20 & X=9, was RGB 29 sein sollte, aber nach der Komprimierung nicht der Fall ist, da es zu R30, G30, B30 führt. Unabhängig von der Rundung ist es immer noch gleich und kann verwendet werden, aber der Schlüssel ist, den Wert vor der Komprimierung zu verwenden, der ursprünglich R29, G29, B29 war.

 

 

 

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!