Exemple de texture de volume DDS

Pour une texture de volume, utilisez les indicateurs DDSCAPS_COMPLEX, DDSCAPS2_VOLUME et DDSD_DEPTH, puis définissez dwDepth. Une texture de volume est une extension d’une texture standard pour Direct3D 9 ; une texture de volume peut être définie avec ou sans mipmaps.

Pour les volumes sans mipmaps, chaque tranche de profondeur est écrite dans le fichier dans l’ordre. Si des mipmaps sont inclus, toutes les tranches de profondeur d’un niveau mipmap donné sont écrites ensemble, chaque niveau contenant deux fois moins de tranches que le niveau précédent avec un minimum de 1.

Par exemple, une carte de volumes de 64 x 64 x 4 utilisant un format de pixel de R8G8B8 (3 octets par pixel) avec tous les niveaux de mipmap contient les éléments suivants :

Composants DDS Nombre d’octets
en-tête 128 octets
64 x 64, tranche 1 sur 4 main image. 12288 octets
64-x-64 tranche 2 sur 4 main image. 12288 octets
64 x 64 tranches 3 sur 4 main image. 12288 octets
64-x-64 tranche 4 sur 4 main image. 12288 octets
32 par 32 tranche 1 sur 2 image mipmap. 3 072 octets
32 par 32 tranche 2 de 2 image mipmap. 3 072 octets
16 par 16 tranche 1 sur 1 image mipmap. 768 octets
8 par 8 tranches 1 sur 1 image mipmap. 192 octets
4 par 4 tranches 1 sur 1 image mipmap. 48 octets
Tranche 2 par 2 de 1 image mipmap. 12 octets
Tranche 1 par 1 de 1 image mipmap. 3 octets

 

Notez que le plus petit niveau mipmap n’est que de 3 octets, car le nombre de bits est de 24 et aucune compression n’est ajoutée à ce niveau.

La prise en charge des textures de volume a été ajoutée dans DirectX 8.

Guide de programmation pour DDS