Partager via


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

 

Guide de programmation pour le DDS