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 |
Zugehörige Themen