Die wichtigsten Kompressionsvarianten:
[table]
[tr]
[td]DXT1[/td]
[td]RGB[/td]
[td]5-6-5[/td]
[td]kein Alpha-Kanal[/td]
[/tr]
[tr]
[td]DXT1 (a)[/td]
[td]RGBA[/td]
[td]5-6-5[/td]
[td]1-Bit Alpha[/td]
[/tr]
[tr]
[td]DXT3[/td]
[td]RGBA[/td]
[td]5-6-5[/td]
[td]4-Bit Alpha[/td]
[/tr]
[tr]
[td]DXT5[/td]
[td]RGBA[/td]
[td]5-6-5[/td]
[td]interpoliertes Alpha[/td]
[/tr]
[tr]
[td]DXT5_NM[/td]
[td]XY[/td]
[td]0-6-0-A[/td]
[td]X wird nach G und Y nach Alpha verschoben[/td]
[/tr]
[tr]
[td]3Dc[/td]
[td]XY[/td]
[td][/td]
[td]Für Normal Maps[/td]
[/tr]
[/table]
[hl=1]DXT1[/h]
Die Textur wird in 4x4 Pixel große Blöcke eingeteilt; sogenannte Texel. Normalerweise würden diese 16x32 (=512) Bit belegen. Bei 24bit Texturen werden intern i.d.R. 8 leere Bits aufgefüllt. Ein Texelblock besteht aus folgenden Informationen: 2x16 Bit für 2 Farben (RGB565: Rot 5 Bit, Grün 6 Bit, Blau 5 Bit) und dann aus einem Abschnitt mit je 2 Bit für jedes Pixel: Also 16x2 Bit. Diese 2 Bit repräsentieren eine Farbmatrix aus den 2 16bit-Farben. (Diese werden intern wieder auf 24 Bit hochgerechnet. Die Zwischenfarben sind also nicht 16 Bit).
Wird kein Alpha-Kanal gespeichert gilt:
[table]
[tr]
[td][b]Bitmuster[/b][/td]
[td][b]Bedeutung[/b][/td]
[/tr]
[tr]
[td]00[/td]
[td]Farbe1[/td]
[/tr]
[tr]
[td]01[/td]
[td]2/3 Farbe1 + 1/3 Farbe2[/td]
[/tr]
[tr]
[td]10[/td]
[td]1/3 Farbe1 + 2/3 Farbe2[/td]
[/tr]
[tr]
[td]11[/td]
[td]Farbe2[/td]
[/tr]
[/table]
Bei DXT1 mit Alpha spielt zusätzlich der Wert von Farbe 1 und 2 eine Rolle: Hat Farbe2 einen höheren Wert gilt folgende Tabelle:
[table]
[tr]
[td]Bitmuster[/td]
[td]Bedeutung[/td]
[/tr]
[tr]
[td]00[/td]
[td]Farbe1[/td]
[/tr]
[tr]
[td]01[/td]
[td]1/2 Farbe1 + 1/2 Farbe2[/td]
[/tr]
[tr]
[td]10[/td]
[td][color=#800080][b]Transparent/Schwarz[/b][/color][/td]
[/tr]
[tr]
[td]11[/td]
[td]Farbe2[/td]
[/tr]
[/table]
[hl=1]DXT3[/h]
Hier stehen 128 Bit für jedes 4x4 Pixel große Texel zur Verfügung. Zunächst wird in den ersten 64 Bit der Alpha-Kanal kodiert (4 Bit pro Pixel, d.h. in 16 Abstufungen pro Pixel). Der 2. Block mit 64 Bit entspricht DXT1 ohne Alpha-Kanal.
DXT3 ist sinnvoll bei Alpha-Kanälen mit scharfen Abgrenzungen. Weiche Übergänge sind eher schlecht darstellbar.
[hl=1]DXT5[/h]
Stellt ebenfalls 128 Bit zur Verfügung. Nur der Alpha-Kanal wird hier interpoliert. Die ersten 64 Bit stehen wieder für den Alpha-Kanal zur Verfügung. Es werden zwei 8 Bit Werte für Farben gespeichert gefolgt von einem Block mit 16x3 Bit für Werte ähnlich zusammengesetzt wie die Tabelle für DXT1:
Ist Farbe 1 größer im Wert als Farbe 2 gibt es folgende Abstufungen:
[table]
[tr]
[td]Bitmuster[/td]
[td]Bedeutung[/td]
[/tr]
[tr]
[td]000[/td]
[td]Farbe1[/td]
[/tr]
[tr]
[td]001[/td]
[td]6/7 Farbe1 + 1/7 Farbe2[/td]
[/tr]
[tr]
[td]010[/td]
[td]5/7 Farbe1 + 2/7 Farbe2[/td]
[/tr]
[tr]
[td]011[/td]
[td]4/7 Farbe1 + 3/7 Farbe2[/td]
[/tr]
[tr]
[td]100[/td]
[td]3/7 Farbe1 + 4/7 Farbe2[/td]
[/tr]
[tr]
[td]101[/td]
[td]2/7 Farbe1 + 5/7 Farbe2[/td]
[/tr]
[tr]
[td]110[/td]
[td]1/7 Farbe1 + 6/7 Farbe2[/td]
[/tr]
[tr]
[td]111[/td]
[td]Farbe2[/td]
[/tr]
[/table]
Ist Farbe 2 größer, gilt folgendes:
[table]
[tr]
[td]Bitmuster[/td]
[td]Bedeutung[/td]
[/tr]
[tr]
[td]000[/td]
[td]Farbe1[/td]
[/tr]
[tr]
[td]001[/td]
[td]2/5 Farbe1 + 3/5 Farbe2[/td]
[/tr]
[tr]
[td]010[/td]
[td]3/5 Farbe1 + 2/5 Farbe2[/td]
[/tr]
[tr]
[td]011[/td]
[td]4/5 Farbe1 + 1/5 Farbe2[/td]
[/tr]
[tr]
[td]101[/td]
[td][color=#800080][b]0[/b][/color][/td]
[/tr]
[tr]
[td]110[/td]
[td][color=#800080][b]255[/b][/color][/td]
[/tr]
[tr]
[td]111[/td]
[td]Farbe2[/td]
[/tr]
[/table]
DXT5 ist also für feinere Abstufungen, wie Rundungen etc sehr gut. Ist aber im Vergleich zu DXT3 manchmal unschärfer bzw. kann Blockartefakte liefern. Hier gilt: einfach ausprobieren, was nach der Komprimierung besser aussieht.
[b][color=#800080]Die Kompressionsqualität ist also in erster Linie vom Kompressionstool abhängig: Von der Bestimmung der 2 Farben sowie deren Anordnung.[/color][/b]
Willkommen in der Transport Fever Community
Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.
Die Registrierung und Nutzung ist selbstverständlich kostenlos.
Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.
Das Team der Transport-Fever Community
Sie betrachten gerade eine ältere Version des Eintrags. Klicken Sie hier, um zur aktuellen Version zu gelangen.
Kommentare
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
mediziner
Stand 03.09.2026: Ich habe den Artikel grundlegend überarbeitet und aktualisiert. Auch die Mipmap-Problematik habe ich mit aufgenommen.
dampf19
Ich habe versucht meinen Mod auf dds umzustellen. Ich habe es versucht mit DXT1 und mit DXT3-Kompression und auch mit unkomprimierten dds. In allen Fällen stürzt das Spiel beim Laden ab.
Die Texturen haben ein Format 256x256, was eine 2er Potenz ist (soll ja eine Voraussetzung sein beim dds-Format). Daran kann es eigentlich nicht liegen.
Hat jemand eine Idee?
Ansonsten kommt halt die demnächst geplante TPF2-Version mit tga-Texturen - Hauptsache es funktioniert erst mal.
Ich benutze übrigens GIMP zur Erzeugung von dds-Texturen - so etwas abgehoben überteuertes wie Photoshop kann ich mir nicht leisten.
Hans213
Hallo dampf19,
Ich hatte das gleiche Problem. Ich benutze aber paint.net.
In der stdout.txt war eine error Meldung über fehlende Mip-maps.
Mip-maps habe ich an die .dds Datei hinzugefugt.
Einfach Mip-maps ankreuzen beim speichern und damit funktioniert es bei mir jetzt richtig.
dampf19
Hatte heute mal Zeit, Deinen Tipp auszuprobieren. Klappt jetzt hervorragend! Danke.
Dann gibt es demnächst ein Update für die TPF-Bahnzäune.