Compartilhar via


Exemplo de textura de volume DDS

Para obter uma textura de volume, use os sinalizadores DDSCAPS_COMPLEX, DDSCAPS2_VOLUMEe DDSD_DEPTHe 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 os 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
cabeçalho 128 bytes
64 por 64 fatia 1 de 4 imagem principal. 12288 bytes
64 por 64 fatia 2 de 4 imagem principal. 12288 bytes
64 por 64 fatia 3 de 4 imagem principal. 12288 bytes
64 por 64 fatia 4 de 4 imagem principal. 12288 bytes
32 por 32 fatia 1 de 2 mipmap image. 3072 bytes
32 por 32 fatia 2 de 2 mipmap image. 3072 bytes
16 por 16 fatias 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 de mipmap. 12 bytes
1 por 1 fatia 1 de 1 imagem de mipmap. 3 bytes

 

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

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

Guia de Programação para DDS