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.
Tópicos relacionados