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 definiti, 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, negativo y, 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, negativi y e z positivi, un formato pixel di DXT1 e tutti i livelli mipmap conterranno quanto segue:
Componenti DDS | # Byte |
---|---|
intestazione | 128 |
Immagine principale 256 per 256 x positiva | 32768 |
Immagine 128 per 128 positiva x mipmap | 8192 |
Immagine di 64 x mipmap positiva da 64 a 64 x | 2048 |
Immagine x mipmap positiva 32 per 32 | 512 |
Immagine di 16 x mipmap positiva da 16 by-16 | 128 |
Immagine x mipmap positiva da 8 a 8 by-8 | 32 |
Immagine x mipmap positiva 4 per 4 by-4 | 8 |
Immagine x mipmap positiva 2 per 2 by-2 | 8 |
Immagine x mipmap positiva da 1 a 1 per 1 | 8 |
ripetere i 9 livelli precedenti per l'immagine mipmap y | 43704 |
ripetere i 9 livelli precedenti per l'immagine z mipmap | 43704 |
A partire da DirectX 8, una mappa cubo viene archiviata con tutti i visi definiti.
Mappe 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 sono stesse matrici di trame 2D con un multiplo di 6 immagini (6, 12, 18, 24 e così via).
Ad esempio, ecco una mappa cubo 256-by-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], dimensione della matrice pari a 1, flag misc di 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) | 20 |
Immagine principale 256 per 256 matrice 0 (x positivo) | 65536 |
Immagine mipmap 128-by-128 | 16384 |
Immagine mipmap 64-by-64 di matrice 0 (x positiva) | 4096 |
Immagine mipmap 32 per 32 di matrice 0 (x positiva) | 1024 |
Immagine mipmap 16-by-16 (x positiva) | 256 |
Immagine mipmap da 8 a 8 per 8 matrici 0 (x positiva) | 64 |
Immagine mipmap 4 per 4 per 0 (positivo x) | 16 |
Immagine mipmap 2 per 2 voci di matrice 0 (x positivo) | 16 |
Immagine mipmap 1 per 1 voce di matrice 0 (x positiva) | 16 |
ripetere i 9 livelli precedenti per l'immagine mipmap della voce di matrice 1 (negativa x) | 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
-
Guida alla programmazione di per DDS