Exemplo de textura de volume DDS

Para obter uma textura de volume, use os sinalizadores DDSCAPS_COMPLEX, DDSCAPS2_VOLUME e DDSD_DEPTH e defina dwDepth. Uma textura de volume é uma extensão de uma textura padrão para Direct3D 9; uma textura de volume pode ser definida com ou sem mipmaps.

Para volumes sem mipmaps, cada fatia de profundidade é gravada no arquivo na ordem. Se mipmaps forem incluídos, todas as fatias de profundidade para um determinado nível de mipmap serão gravadas em conjunto, com cada nível contendo metade das fatias que o nível anterior, com um mínimo de 1.

Por exemplo, um mapa de volume de 64 por 64 por 4 usando um formato de pixel R8G8B8 (3 bytes por pixel) com todos os níveis de mipmap conteria o seguinte:

Componentes DDS # Bytes
header 128 bytes
64 por 64 fatia 1 de 4 main imagem. 12288 bytes
64 por 64 fatias 2 de 4 main imagem. 12288 bytes
64 por 64 fatias 3 de 4 main imagem. 12288 bytes
64 por 64 fatias 4 de 4 main imagem. 12288 bytes
32 por 32 fatia 1 de 2 mipmap image. 3072 bytes
32 por 32 fatias 2 de 2 mipmap image. 3072 bytes
16 por 16 fatia 1 de 1 imagem mipmap. 768 bytes
8 por 8 fatia 1 de 1 imagem mipmap. 192 bytes
4 por 4 fatia 1 de 1 imagem mipmap. 48 bytes
2 por 2 fatia 1 de 1 imagem mipmap. 12 bytes
1 por 1 fatia 1 de 1 imagem mipmap. 3 bytes

 

Observe que o menor nível de mipmap é de apenas 3 bytes porque o bitcount é 24 e não há compactação adicional nesse nível.

O suporte para texturas de volume foi adicionado no DirectX 8.

Guia de programação para DDS