Freigeben über


Beispiel für DDS-Cubezuordnung

Für kubische Umgebungszuordnungen werden mindestens eine Gesichter eines Würfels in die Datei geschrieben, wobei entweder nicht komprimierte oder komprimierte Formate verwendet werden, und alle Gesichter müssen die gleiche Größe aufweisen. Jedes Gesicht kann Mipmaps definiert haben, obwohl alle Gesichter dieselbe Anzahl von Mipmap-Ebenen aufweisen müssen. Wenn eine Datei eine Cubezuordnung enthält, DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP und mindestens ein DSCAPS2_CUBEMAP_POSITIVEX/Y/Z und/oder DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z festgelegt werden sollte. Die Gesichter werden in der Reihenfolge geschrieben: positive x, negative x, positive y, negative y, positive z, negative z, negative z, mit fehlenden Gesichtern weggelassen. Jedes Gesicht wird mit seinem Hauptbild geschrieben, gefolgt von beliebigen Mipmap-Ebenen.

Beispielsweise würde eine 256 x-256-Cubezuordnung mit positiven x-, negativen y- und positiven Z-Gesichtern, einem Pixelformat von DXT1 und allen Mipmap-Ebenen Folgendes enthalten:

DDS-Komponenten # Bytes
Kopfball 128
256 by-256 positives x Hauptbild 32768
128 x 128 positives x mipmap-Bild 8192
64-by-64 positives x mipmap-Bild 2048
32-by-32 positives x mipmap-Bild 512
16:16 positives x mipmap-Bild 128
8:8 positives x mipmap-Bild 32
4:4 positives x mipmap-Bild 8
2:2 positives x mipmap-Bild 8
1:1 positives x mipmap-Bild 8
Wiederholen der vorherigen 9 Ebenen für das y-Mipmap-Bild 43704
Wiederholen der vorherigen 9 Ebenen für das z-Mipmap-Bild 43704

 

Ab DirectX 8 wird eine Cubezuordnung mit allen definierten Gesichtern gespeichert.

DXGI-Cubezuordnungen

Kubische Umgebungszuordnungen in Direct3D 10.x und Direct3D 11 entsprechen einem 2D-Texturarray mit 6 Bildern und können 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 256-by-256-Cubemap 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], Bemaßungswert 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], Arraygröße von 1, falsche Kennzeichnungen von 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) 20
256-mal-256 Arrayeintrag 0 (positive x) Hauptbild 65536
128-by-128 Array entry 0 (positive x) mipmap image 16384
64-mal-64-Arrayeintrag 0 (positive x) mipmap-Bild 4096
32:32 Arrayeintrag 0 (positive x) mipmap-Abbildung 1024
16:16 Arrayeintrag 0 (positive x) mipmap-Abbildung 256
8:8 Arrayeintrag 0 (positive x) mipmap-Abbildung 64
4:4 Arrayeintrag 0 (positive x) mipmap-Abbildung 16
2:2 Arrayeintrag 0 (positives x) mipmap-Bild 16
1:1 Arrayeintrag 0 (positives x) mipmap-Bild 16
Wiederholen Sie die vorherigen 9 Ebenen für array entry 1 (negative x) mipmap image 87408
Wiederholen Sie die vorherigen 9 Ebenen für Arrayeintrag 2 (positives y)-Mipmap-Bild 87408
Wiederholen Sie die vorherigen 9 Ebenen für array entry 3 (negative y) mipmap image 87408
Wiederholen Sie die vorherigen 9 Ebenen für array entry 4 (positive z) mipmap image 87408
Wiederholen Sie die vorherigen 9 Ebenen für array entry 5 (negative z) mipmap image 87408

 

Programmierhandbuch für DDS-