Exemple de carte de cube DDS

Pour les mappages d’environnement cubiques, une ou plusieurs faces d’un cube sont écrites dans le fichier, à l’aide de formats non compressés ou compressés, et toutes les faces doivent avoir la même taille. Chaque visage peut avoir des mipmaps définis, bien que tous les visages doivent avoir le même nombre de niveaux mipmap. Si un fichier contient une carte de cube, DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP et un ou plusieurs des 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, x négatif, y positif, y négatif, z positif, z négatif, z négatif, avec tous les visages manquants omis. Chaque visage est écrit avec son image main, suivi de tous les niveaux de mipmap.

Par exemple, une carte de cube de 256 x 256 avec des faces x, y négatives et z positives, un format de pixel DXT1 et tous les niveaux mipmap contient les éléments suivants :

Composants DDS Nombre d’octets
en-tête 128
Image de 256 x 256 x main positif 32 768
Image mipmap positive x 128 x 128 8 192
Image mipmap positive de 64 x 64 x 2 048
Image x mipmap positive de 32 x 32 512
Image mipmap positive de 16 x 16 x 128
Image mipmap positive 8 par 8 32
Image mipmap positive 4 par 4 8
Image mipmap positive 2 par 2 8
Image x mipmap positive 1 par 1 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 de cube DXGI

Les mappages d’environnement cubiques 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 en tant que 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 textures 2D avec un multiple de 6 images (6, 12, 18, 24, etc.).

Par exemple, voici un cubemap 256 x 256 avec des niveaux de mipmap stockés dans un format BC6H en tant que tableau de textures 2D :

Composants DDS Nombre d’octets
en-tête (QuatreCC de « DX10 ») 128
en-tête étendu (format DXGI défini sur 95 [DXGI_FORMAT_BC6H_UF16], valeur de dimension de 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], taille de tableau de 6, indicateurs de 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) 20
256 x 256 entrée de tableau 0 (x positif) main image 65536
Image mipmap 128 par 128 de tableau 0 (positif x) 16384
Image mipmap de tableau 0 (x positif) de tableau 64 x 64 4096
Image mipmap de tableau 0 (x positif) de tableau 32 par 32 1 024
Image mipmap de tableau 16 par 16 (x positif) entrée 0 256
Image mipmap 0 (x positif) de tableau 8 par 8 64
Image mipmap de l’entrée de tableau 0 (x positif) 4 par 4 16
Image mipmap de l’entrée de tableau 2 par 2 2 (x positif) 16
Image mipmap entrée de tableau 0 (x positif) de tableau 1 par 1 16
répéter les 9 couches précédentes pour l’image mipmap d’entrée de tableau 1 (x négatif) 87408
répéter les 9 couches précédentes pour l’image mipmap de l’entrée de tableau 2 (y positive) 87408
répéter les 9 couches précédentes pour l’image mipmap de l’entrée de tableau 3 (y négatif) 87408
répéter les 9 couches précédentes pour l’image mipmap de l’entrée de tableau 4 (z positif) 87408
répéter les 9 couches précédentes pour l’image mipmap d’entrée de tableau 5 (z négatif) 87408

 

Guide de programmation pour DDS