Compartilhar via


Exemplo de textura DDS

Para uma textura descompactada, use os sinalizadores DDSD_PITCH e DDPF_RGB; para uma textura compactada, use os sinalizadores DDSD_LINEARSIZE e DDPF_FOURCC. Para obter uma textura mipmapped, use os sinalizadores DDSD_MIPMAPCOUNT, DDSCAPS_MIPMAP e DDSCAPS_COMPLEX, bem como o membro de contagem de mipmap. Se mipmaps forem gerados, todos os níveis até 1 por 1 geralmente serão gravados.

Para uma textura compactada, o tamanho de cada imagem de nível de mipmap normalmente é um quarto do tamanho do anterior, com um mínimo de 8 (DXT1) ou 16 (DXT2-5) bytes (para texturas quadradas). Use a seguinte fórmula para calcular o tamanho de cada nível para uma textura não quadrada:

max(1, ( (width + 3) / 4 ) ) x max(1, ( (height + 3) / 4 ) ) x 8(DXT1) or 16(DXT2-5)

Esta tabela lista a quantidade de espaço gasto por cada camada para uma textura R8G8B8 de 256 por 256 por 256, sem usar compactação.

Componentes DDS # Bytes
cabeçalho 128
Imagem principal 256 por 256 196608
Imagem de mipmap 128 por 128 49152
Imagem de mipmap 64 por 64 12288
Imagem de mipmap 32 por 32 3072
Imagem de mipmap 16 por 16 768
Imagem de mipmap 8 por 8 192
Imagem de mipmap 4 por 4 48
Imagem de mipmap 2 por 2 12
Imagem de mipmap 1 por 1 3

 

Esta tabela lista a quantidade de espaço gasto por cada camada para a mesma textura usando a compactação (DXT1).

Componentes DDS # Bytes
cabeçalho 128
Imagem principal 256 por 64 8192
Imagem de mipmap 128 por 32 2048
Imagem de mipmap 64 por 16 512
Imagem de mipmap 32 por 8 128
Imagem de mipmap 16 por 4 32
Imagem de mipmap 8 por 2 16
Imagem de mipmap 4 por 1 8
Imagem de mipmap 2 por 1 8
Imagem de mipmap 1 por 1 8

 

Esta tabela lista a quantidade de espaço gasto por cada camada para a mesma textura usando um formato de compactação DXGI (nesse caso BC3_UNORM) que, portanto, requer o cabeçalho estendido:

Componentes DDS # Bytes
cabeçalho (FourCC definido como "DX10") 128
cabeçalho estendido (formato DXGI definido como DXGI_FORMAT_BC3_UNORM) 20
Imagem principal 256 por 64 16384
Imagem de mipmap 128 por 32 4096
Imagem de mipmap 64 por 16 1024
Imagem de mipmap 32 por 8 256
Imagem de mipmap 16 por 4 64
Imagem de mipmap 8 por 2 32
Imagem de mipmap 4 por 1 16
Imagem de mipmap 2 por 1 16
Imagem de mipmap 1 por 1 16

 

Guia de Programação para DDS