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 |
Argomenti correlati