Zurück zum Blog
Formate

DDS-Format: Die vollständige Anleitung zur DirectX-Texturkomprimierung

18 Min. gelesen

DDS (DirectDraw Surface) ist Microsofts führendes Texturcontainerformat, das speziell für DirectX-Anwendungen entwickelt wurde und in der PC-Gaming-Branche weit verbreitet ist. Als De-facto-Standard für Windows-basierte Grafikanwendungen unterstützt DDS eine umfassende Palette von Blockkomprimierungsformaten (BCn), unkomprimierte Texturen und erweiterte Funktionen wie Mipmaps, Cubemaps und Texturarrays. Seine native GPU-Hardwareunterstützung und optimierte Leistung machen es zu einem unverzichtbaren Format für die Entwicklung von Desktop- und Konsolenspielen.

Was ist das DDS-Format?

DDS ist ein von Microsoft entwickeltes Containerformat zum Speichern komprimierter und unkomprimierter Texturen, das ursprünglich für DirectX erstellt wurde, mittlerweile aber von allen Grafik-Frameworks weitgehend unterstützt wird. Das Format bietet eine standardisierte Möglichkeit, Texturdaten mit den notwendigen Metadaten für die GPU-Nutzung zu verpacken und so optimale Leistung und Kompatibilität auf verschiedenen Hardwareplattformen sicherzustellen.

Im Kern dient DDS als Wrapper für verschiedene Texturkomprimierungsformate, insbesondere die BCn-Familie (Blockkomprimierung) (BC1–BC7), die eine effiziente hardwarebeschleunigte Komprimierung für verschiedene Texturtypen bietet. Dieses Design ermöglicht es Entwicklern, Texturen in einem Format zu speichern, das ohne zusätzliche Verarbeitung direkt von der GPU geladen werden kann, wodurch die Speicherbandbreite minimiert und die Rendering-Leistung maximiert wird.

Die Stärke des Formats liegt in seinem umfassenden Funktionsumfang und seiner breiten Akzeptanz. Von einfachen 2D-Texturen bis hin zu komplexen Cubemaps und Volumentexturen erfüllt DDS praktisch jede Texturanforderung für moderne Grafikanwendungen. Die Integration mit DirectX und die Unterstützung wichtiger Grafik-APIs wie OpenGL und Vulkan machen es zu einer vielseitigen Wahl für die plattformübergreifende Entwicklung.

Hauptmerkmale des DDS-Formats

Native Hardware-Unterstützung

Direkte GPU-Hardwarebeschleunigung für BCn-Formate ohne CPU-Dekomprimierungsaufwand

Komplette BCn-Unterstützung

Unterstützung für alle BCn-Formate (BC1–BC7) für optimale Komprimierung für verschiedene Texturtypen

Integrierte Mipmap-Unterstützung

Native Mipmap-Kettenspeicherung und -verwaltung für effizientes Detaillierungs-Rendering

Erweiterte Texturfunktionen

Unterstützung für Cubemaps, Volumentexturen, Texturarrays und erweiterte Pixelformate

BCn-Komprimierungsformate erklärt

DDS unterstützt die komplette Familie der BCn-Formate (Blockkomprimierung), die jeweils für verschiedene Arten von Texturinhalten optimiert sind:

BC1 (DXT1)

RGB-Komprimierung mit 1-Bit-Alpha oder ohne Alpha. Bietet 6:1-Komprimierung mit guter Qualität für diffuse Texturen ohne Transparenzanforderungen.

Geeignet für: Diffuse Maps, Albedo-Texturen, Farbmaps ohne Alphakanal

BC2 (DXT2)

RGB-Komprimierung mit explizitem 4-Bit-Alpha. Bietet 4:1-Komprimierung mit scharfen Alpha-Übergängen.

Am besten geeignet für: Texturen mit scharfen Alpha-Kanten, UI-Elemente mit harter Transparenz

BC3 (DXT5)

RGB-Komprimierung mit interpoliertem 4-Bit-Alpha. Bietet 4:1-Komprimierung mit sanften Alpha-Verläufen.

Geeignet für: Charaktertexturen, Partikeleffekte, Farbverläufe, weiche Alpha-Übergänge

BC4

Einkanalige (Graustufen-)Komprimierung. Bietet eine 2:1-Komprimierung für Normalkarten-Blaukanäle oder Höhenkarten.

Geeignet für: Höhenkarten, Glanzkarten, Normalkarten einzelner Kanäle

BC5

Zweikanalige Komprimierung (typischerweise Normal Map XY). Bietet 2:1-Komprimierung für normale Kartendaten.

Geeignet für: Normalkarten, Flusskarten, Zweikanal-Texturdaten

BC6H

HDR-RGB-Komprimierung für Inhalte mit hohem Dynamikumfang. Bietet 6:1-Komprimierung für HDR-Texturen.

Am besten geeignet für: HDR-Beleuchtungsumgebungen, HDR-Skyboxen, HDR-Reflexionskarten

BC7

Hochwertige RGB-Komprimierung mit optionalem Alpha. Bietet 3:1-Komprimierung mit hervorragender Qualität.

Geeignet für: Hochwertige Charaktertexturen, Spiegelkarten, detaillierte Oberflächentexturen

DDS-Dateistruktur

DDS-Dateien folgen einem strukturierten Format mit drei Hauptkomponenten:

DDS-Header (124 Byte)

Enthält wichtige Metadaten, einschließlich Dimensionen, Formatinformationen, Mipmap-Anzahl und Komprimierungsflags

DDSFMT-Struktur (32 Byte)

Gibt Details zum Pixelformat, zum Komprimierungstyp und zur Bittiefe an

Texturdaten

Komprimierte oder unkomprimierte Pixeldaten, sortiert nach dem angegebenen Format und den angegebenen Abmessungen

DDS-Workflow

Der typische DDS-Textur-Workflow umfasst mehrere Phasen:

1

1. Texturerstellung

Erstellen oder beschaffen Sie hochwertige Texturdateien (PNG, TGA, PSD usw.) mit geeigneten Abmessungen (vorzugsweise Zweierpotenzen).

2

2. BCn-Komprimierung

Komprimieren Sie Quelltexturen mit dem geeigneten BCn-Format basierend auf Inhaltstyp und Anforderungen

3

3. Mipmap-Generierung

Generieren Sie Mipmap-Ketten für eine effiziente Detailwiedergabe in 3D-Anwendungen

4

4. Game-Engine-Integration

Importieren Sie DDS-Dateien in Spiele-Engines oder Grafikanwendungen zur sofortigen GPU-Nutzung

Vorteile des DDS-Formats

Optimale Leistung

Durch die direkte GPU-Hardwarebeschleunigung werden CPU-Dekomprimierungsengpässe vermieden

Breite Branchenunterstützung

Standardformat, das von DirectX, OpenGL, Vulkan und den wichtigsten Spiele-Engines unterstützt wird

Umfangreicher Funktionsumfang

Unterstützung für erweiterte Funktionen wie Cubemaps, Volumentexturen und HDR-Inhalte

Ausgereiftes Werkzeug-Ökosystem

Umfangreiche Tool-Unterstützung, einschließlich DirectX SDK, texconv, Compressonator und Engine-spezifische Tools

Ideale Anwendungsfälle

Entwicklung von PC-Spielen

Perfekt für Windows-basierte Spiele und plattformübergreifende Titel für Desktop-Umgebungen

Game Engine-Texturen

Ideal für Unity, Unreal Engine, CryEngine und andere große Spiele-Engines

3D-Grafikanwendungen

Geeignet für Visualisierungssoftware, CAD-Anwendungen und 3D-Modellierungswerkzeuge

VR/AR-Anwendungen

Hervorragend geeignet für VR/AR-Erlebnisse mit Windows-basierter Hardware

DDS im Vergleich zu anderen Formaten

Wie DDS im Vergleich zu anderen gängigen Texturformaten abschneidet:

DDS vs. mobile Formate (ETC/ASTC)

DDS zeichnet sich in Desktop-Umgebungen aus, während mobile Formate für mobile GPU-Einschränkungen und Bandbreite optimiert sind

DDS vs. unkomprimierte Texturen

DDS bietet eine Komprimierung von 4:1 bis 8:1 mit Hardwarebeschleunigung im Vergleich zu unkomprimierten Texturen, die die volle Bandbreite erfordern

DDS gegen KTX

DDS ist auf Windows/DirectX ausgerichtet, während KTX plattformübergreifende OpenGL/Vulkan-Kompatibilität bietet

DDS vs. Webformate

DDS bietet Desktop-Optimierung, während Webformate wie Basis Universal Web-First-Komprimierung und -Bereitstellung bieten

DDS-Tools und -Ressourcen

Microsoft DirectX SDK

Offizielles SDK mit texconv-Befehlszeilentool für die DDS-Konvertierung und -Manipulation

AMD-Kompressonator

Erweitertes GUI-Tool für die BCn-Komprimierung mit Echtzeitvorschau und Qualitätsanpassung

NVIDIA-Textur-Tools

Hochwertige Komprimierungsbibliotheken und Tools mit überlegener BC7-Komprimierung

Unity Texture Importer

Integrierte Unity-Tools für DDS-Import- und Komprimierungseinstellungen

Unreal Engine Texture Editor

Umfassendes Texturmanagement mit DDS-Unterstützung und Komprimierungsvoreinstellungen

DDS-Best Practices

Wählen Sie das richtige BCn-Format basierend auf dem Inhaltstyp – BC1 für diffus, BC3 für Alpha, BC5 für Normale, BC7 für hohe Qualität

Generieren Sie immer Mipmaps für Texturen, die in 3D-Umgebungen verwendet werden, um die Leistung zu verbessern

Verwenden Sie nach Möglichkeit Zweierpotenz-Dimensionen für eine optimale GPU-Speicherausrichtung

Testen Sie die Komprimierungsqualität mit verschiedenen Einstellungen, um das Gleichgewicht zwischen Dateigröße und visueller Qualität zu finden

Berücksichtigen Sie bei der Auswahl der Komprimierungsformate die Fähigkeiten der Zielplattform

Verwenden Sie geeignete Komprimierungseinstellungen für verschiedene Texturtypen (diffuse vs. spiegelnde vs. normale Maps).

Abschluss

DDS bleibt ein Eckpfeilerformat in der Grafikbranche, insbesondere für Windows-basierte Anwendungen und Spieleentwicklung. Seine hardwarebeschleunigte BCn-Komprimierung, sein umfassender Funktionsumfang und sein ausgereiftes Tooling-Ökosystem machen es zu einer ausgezeichneten Wahl für Entwickler, die auf Desktop- und Konsolenplattformen abzielen.

Während neuere Formate wie ASTC und Basis Universal Vorteile für bestimmte Anwendungsfälle bieten, bietet DDS weiterhin optimale Leistung und Kompatibilität für traditionelle PC-Gaming-Anwendungen. Das Verständnis seiner Stärken und Grenzen hilft Entwicklern, fundierte Entscheidungen über die Auswahl des Texturformats für ihre spezifischen Projekte und Zielplattformen zu treffen.

Weiterführende Literatur und Ressourcen

Erweitern Sie Ihr Wissen mit diesen maßgeblichen Ressourcen:

Probieren Sie unsere Tools aus