Esempio di mappa cubo DDS

Per le mappe dell'ambiente cubico, uno o più visi di un cubo vengono scritti nel file usando formati non compressi o compressi e tutti i visi devono avere le stesse dimensioni. Ogni viso può avere mipmap definite, anche se tutti i visi devono avere lo stesso numero di livelli mipmap. Se un file contiene una mappa cubo, DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP e una o più DSCAPS2_CUBEMAP_POSITIVEX/Y/Z e/o DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z devono essere impostate. I visi vengono scritti nell'ordine: positivo x, negativo x, positivo y, y negativo, z positivo, z negativo, con eventuali visi mancanti omessi. Ogni viso viene scritto con la sua immagine principale, seguita da qualsiasi livello mipmap.

Ad esempio, una mappa cubo 256 per 256 con visi x positivi, y negativi e z positivi, un formato pixel di DXT1 e tutti i livelli mipmap conterranno quanto segue:

Componenti DDS # Byte
header 128
Immagine principale 256 per 256 positivi 32768
Immagine x mipmap positiva 128 by-128 8192
Immagine mipmap positiva da 64 a 64 x mipmap 2048
Immagine mipmap positiva da 32 a 32 x mipmap 512
Immagine x mipmap positiva 16 by-16 128
Immagine mipmap positiva da 8 a 8 x mipmap 32
Immagine mipmap positiva da 4 a 4 x mipmap 8
Immagine mipmap positiva da 2 a 2 x mipmap 8
Immagine mipmap positiva da 1 a 1 x mipmap 8
ripetere i 9 livelli precedenti per l'immagine mipmap y 43704
ripetere i 9 livelli precedenti per l'immagine mipmap z 43704

 

A partire da DirectX 8, viene archiviata una mappa cubo con tutti i visi definiti.

Mappe dei cubi DXGI

Le mappe dell'ambiente cubico in Direct3D 10.x e Direct3D 11 sono equivalenti a una matrice di trame 2D con 6 immagini e possono essere archiviate in file DDS come tali. Con Direct3D 10.1 e Direct3D 11, l'hardware può supportare anche matrici di mappe cubi che si tratta di matrici di trame 2D con più di 6 immagini (6, 12, 18, 24 e così via).

Ad esempio, ecco una mappa cubo 256 per 256 con livelli mipmap archiviati in un formato BC6H come matrice di trame 2D:

Componenti DDS # Byte
intestazione (FourCC di "DX10") 128
intestazione estesa (formato DXGI impostato su 95 [DXGI_FORMAT_BC6H_UF16], valore della dimensione pari a 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], dimensioni della matrice pari a 6, flag misc di 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) 20
Immagine principale della voce di matrice 256 by-256 0 (x positiva) 65536
Immagine mipmap 128 per 128 16384
Immagine mipmap 64 per 64 (x positivo) 4096
Immagine mipmap 32 per 32 1024
Immagine mipmap 16 per 16 (x positivo) 256
Immagine mipmap positiva da 8 a 8 64
Immagine mipmap 4 by-4 (x positiva) 16
Immagine mipmap 2 per 2 voci di matrice 0 (x positivo) 16
Immagine mipmap 1 per 1 voce di matrice 0 (x positivo) 16
ripetere i 9 livelli precedenti per l'immagine mipmap della voce di matrice 1 (x negativa) 87408
ripetere i 9 livelli precedenti per l'immagine mipmap della voce di matrice 2 (positivo y) 87408
ripetere i 9 livelli precedenti per l'immagine mipmap della voce di matrice 3 (negativa y) 87408
ripetere i 9 livelli precedenti per l'immagine mipmap della voce di matrice 4 (z positiva) 87408
ripetere i 9 livelli precedenti per l'immagine mipmap della voce di matrice 5 (z negativa) 87408

 

Guida alla programmazione per DDS