Beispiel für DDS-Cubezuordnung

Bei kubischen Umgebungszuordnungen werden ein oder mehrere Gesichter eines Würfels in die Datei geschrieben, wobei entweder unkomprimierte oder komprimierte Formate verwendet werden, und alle Gesichter müssen die gleiche Größe aufweisen. Für jedes Gesicht können Mipmaps definiert sein, obwohl alle Gesichter die gleiche Anzahl von Mipmap-Ebenen aufweisen müssen. Wenn eine Datei eine Cubezuordnung enthält, sollten DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP und mindestens eine der DSCAPS2_CUBEMAP_POSITIVEX/Y/Z und/oder DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z festgelegt werden. Die Gesichter werden in der Reihenfolge geschrieben: positive x, negative x, positive y, negative y, positive z, negative z, negative z, ohne fehlende Gesichter. Jedes Gesicht wird mit seinem Standard Bild geschrieben, gefolgt von allen Mipmap-Ebenen.

Beispielsweise würde eine Würfelkarte von 256 x 256 mit positiven x-, negativen y- und positiven z-Gesichtern, dem Pixelformat DXT1 und allen Mipmap-Ebenen Folgendes enthalten:

DDS-Komponenten # Bytes
header 128
256 x 256 positive x Standard Bild 32768
128 x 128 positives x mipmap-Bild 8192
64 x 64 positives mipmap-Bild 2048
32 x 32 positives x mipmap-Bild 512
16 x 16 positives x mipmap-Bild 128
8 x 8 positives mipmap-Bild 32
4 x 4 positives mipmap-Bild 8
2 x 2 positives x mipmap-Bild 8
1-mal 1 positives x mipmap-Bild 8
Wiederholen Sie die vorherigen 9 Ebenen für das y-mipmap-Bild. 43704
Wiederholen Sie die vorherigen 9 Ebenen für das z mipmap-Bild. 43704

 

Ab DirectX 8 wird eine Cubezuordnung mit definierten Gesichtern gespeichert.

DXGI-Cubezuordnungen

Kubische Umgebungskarten in Direct3D 10.x und Direct3D 11 entsprechen einem 2D-Texturarray mit sechs Bildern und können als solche in DDS-Dateien gespeichert werden. Mit Direct3D 10.1 und Direct3D 11 kann die Hardware auch Arrays von Cubemaps unterstützen, die selbst 2D-Texturarrays mit einem Vielfachen von 6 Bildern (6, 12, 18, 24 usw.) sind.

Hier ist beispielsweise eine Cubemap mit 256 mal 256 mit Mipmap-Ebenen, die in einem BC6H-Format als 2D-Texturarray gespeichert sind:

DDS-Komponenten # Bytes
Header (FourCC von "DX10") 128
erweiterter Header (DXGI-Format auf 95 [DXGI_FORMAT_BC6H_UF16 festgelegt], Dimensionswert von 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], Arraygröße 6, andere Flags von 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) 20
256 x 256 Arrayeintrag 0 (positiv x) Standard Bild 65536
128 x 128 Arrayeintrag 0 (positives x) mipmap-Bild 16384
64-mal-64-Arrayeintrag 0 (positiv x) mipmap-Bild 4096
32-mal-32-Arrayeintrag 0 (positives x) mipmap-Bild 1024
16-mal-16-Arrayeintrag 0 (positives x) mipmap-Bild 256
8-mal-8-Arrayeintrag 0 (positiv x) mipmap-Bild 64
4-mal-4-Arrayeintrag 0 (positives x) mipmap-Bild 16
2-mal-2-Arrayeintrag 0 (positives x) mipmap-Bild 16
1-mal-1-Arrayeintrag 0 (positives x) mipmap-Bild 16
Wiederholen Sie die vorherigen 9 Ebenen für das Mipmap-Bild des Arrayeintrags 1 (negatives x). 87408
Wiederholen Sie die vorherigen 9 Ebenen für das Mipmap-Bild des Arrayeintrags 2 (positiv y). 87408
Wiederholen Sie die vorherigen 9 Ebenen für das Mipmap-Bild des Arrayeintrags 3 (negativ y). 87408
Wiederholen Sie die vorherigen 9 Ebenen für das Mipmap-Bild des Arrayeintrags 4 (positive z) 87408
Wiederholen Sie die vorherigen 9 Ebenen für das Mipmap-Bild des Arrayeintrags 5 (negativ z) 87408

 

Programmierhandbuch für DDS