Exemple de mappage cubique DDS
Pour les cartes d'environnement cubiques, une ou plusieurs faces d'un cube sont enregistrées dans le fichier, en utilisant des formats non compressés ou compressés, et toutes les faces doivent être de la même taille. Chaque face peut avoir des mipmaps définis, mais toutes les faces doivent avoir le même nombre de niveaux de mipmap. Si un fichier contient une carte cubique, DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP et un ou plusieurs des paramètres DSCAPS2_CUBEMAP_POSITIVEX/Y/Z et/ou DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z doivent être définis. Les visages sont écrits dans l’ordre : x positif, négatif x, y positif, y négatif, z positif, z négatif, avec les visages manquants omis. Chaque face est écrite avec son image principale, suivie de tous les niveaux de mipmap.
Par exemple, une carte cube de 256 par 256 avec des faces x positives, y négatives et z positives, un format de pixel DXT1 et tous les niveaux mipmap contiendrait les éléments suivants :
Les composants du DDS | # Octets |
---|---|
en-tête | 128 |
256 par 256 image principale x positive | 32768 |
128 par 128 image mipmap positive x | 8192 |
64 par 64 image positive x mipmap | 2048 |
32 par 32 image positive x mipmap | 512 |
16 par 16 image positive x mipmap | 128 |
8 par 8 image positive x mipmap | 32 |
4 par 4 image positive x mipmap | 8 |
2 par 2 image positive x mipmap | 8 |
1 par 1 image positive x mipmap | 8 |
répéter les 9 couches précédentes pour l’image y mipmap | 43704 |
répéter les 9 couches précédentes pour l’image z mipmap | 43704 |
À compter de DirectX 8, une carte de cube est stockée avec tous les visages définis.
Cartes cubiques DXGI
Les mappages d’environnement cube dans Direct3D 10.x et Direct3D 11 sont équivalents à un tableau de textures 2D avec 6 images et peuvent être stockés dans des fichiers DDS comme tels. Avec Direct3D 10.1 et Direct3D 11, le matériel peut également prendre en charge des tableaux de cubemaps qui sont eux-mêmes des tableaux de texture 2D avec un multiple de 6 images (6, 12, 18, 24, etc.).
Par exemple, voici un cubemap de 256 par 256 avec des niveaux mipmap stockés dans un format BC6H sous forme de tableau de texture 2D :
Les composants du DDS | # Octets |
---|---|
en-tête (FourCC de « DX10 ») | 128 |
en-tête étendu (format DXGI fixé à 95 [DXGI_FORMAT_BC6H_UF16], valeur de dimension de 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], taille de tableau de 1, indicateurs divers de 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) | 20 |
256 par 256 entrées du tableau 0 (x positif) image principale | 65536 |
128-par-128 entrée de tableau 0 (x positif) image mipmap | 16384 |
64-par-64 entrée de tableau 0 (x positif) image mipmap | 4096 |
32 par 32 entrée de tableau 0 (x positif) image mipmap | 1024 |
16 par 16 entrée de tableau 0 (x positif) image mipmap | 256 |
8 par 8 entrée de tableau 0 (x positif) image mipmap | 64 |
4 par 4 entrée de tableau 0 (x positif) image mipmap | 16 |
2 par 2 entrée de tableau 0 (x positif) image mipmap | 16 |
Entrée de tableau 1 par 1 0 (x positif) image mipmap | 16 |
répétez les 9 couches précédentes pour l'entrée de tableau 1 (x négatif) image mipmap | 87408 |
répéter les 9 couches précédentes pour l'entrée de tableau 2 (y positif) image mipmap | 87408 |
répéter les 9 couches précédentes pour l'entrée de tableau 3 (y négatif) image mipmap | 87408 |
répéter les 9 couches précédentes pour l'entrée de tableau 4 (z positif) image mipmap | 87408 |
répéter les 9 couches précédentes pour l'entrée de tableau 5 (z négatif) image mipmap | 87408 |
Rubriques connexes