Exemplo de textura DDS
Para uma textura não comprimida, utilize as bandeiras DDSD_PITCH e DDPF_RGB; Para uma textura comprimida, use os sinalizadores DDSD_LINEARSIZE e DDPF_FOURCC. Para uma textura mapeada, use também os sinalizadores DDSD_MIPMAPCOUNT, DDSCAPS_MIPMAP e DDSCAPS_COMPLEX, bem como o membro de contagem de mipmap. Se mipmaps são gerados, todos os níveis até 1-por-1 são geralmente escritos.
Para uma textura comprimida, o tamanho de cada imagem de nível mipmap é tipicamente um quarto do tamanho da 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 ocupado por cada camada para uma textura R8G8B8 256x256, sem usar compressão.
Componentes DDS | # Bytes |
---|---|
cabeçalho | 128 |
Imagem principal 256x256 | 196608 |
Imagem MIPMAP 128x128 | 49152 |
Imagem MIPMAP 64x64 | 12288 |
Imagem MIPMAP 32x32 | 3072 |
Imagem MIPMAP 16x16 | 768 |
Imagem MIPMAP 8 por 8 | 192 |
Imagem MIPMAP 4 por 4 | 48 |
Imagem MIPMAP 2 por 2 | 12 |
Imagem MIPMAP 1 por 1 | 3 |
Esta tabela lista a quantidade de espaço ocupado por cada camada para a mesma textura usando compressão (DXT1).
Componentes DDS | # Bytes |
---|---|
cabeçalho | 128 |
Imagem principal 256x64 | 8192 |
Imagem MIPMAP 128x32 | 2048 |
Imagem MIPMAP 64x16 | 512 |
Imagem MIPMAP 32 por 8 | 128 |
Imagem MIPMAP 16 por 4 | 32 |
Imagem MIPMAP 8 por 2 | 16 |
Imagem MIPMAP 4 por 1 | 8 |
Imagem MIPMAP 2 por 1 | 8 |
Imagem MIPMAP 1 por 1 | 8 |
Esta tabela lista a quantidade de espaço ocupado por cada camada para a mesma textura usando um formato de compressão DXGI (neste 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 256x64 | 16384 |
Imagem MIPMAP 128x32 | 4096 |
Imagem MIPMAP 64x16 | 1024 |
Imagem MIPMAP 32 por 8 | 256 |
Imagem MIPMAP 16 por 4 | 64 |
Imagem MIPMAP 8 por 2 | 32 |
Imagem MIPMAP 4 por 1 | 16 |
Imagem MIPMAP 2 por 1 | 16 |
Imagem MIPMAP 1 por 1 | 16 |
Tópicos relacionados
-
Guia de programação para DDS