Condividi tramite


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

 

Guida alla programmazione di per DDS