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 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 bytes (DXT2-5) (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 de 256 por 256, sem usar compactação.
Componentes DDS | Nº de bytes |
---|---|
header | 128 |
Imagem de main de 256 por 256 por 256 | 196608 |
Imagem de mipmap 128 por 128 | 49152 |
Imagem de mipmap 64 por 64 | 12288 |
Imagem de mipmap de 32 por 32 mipmap | 3072 |
Imagem de mipmap de 16 por 16 mipmap | 768 |
Imagem de mipmap 8 por 8 | 192 |
Imagem de mipmap de 4 por 4 mipmap | 48 |
Imagem de mipmap 2 por 2 | 12 |
Imagem de mipmap 1 por 1 | 3 |
Esta tabela lista a quantidade de espaço ocupado por cada camada para a mesma textura usando compactação (DXT1).
Componentes DDS | Nº de bytes |
---|---|
header | 128 |
Imagem de main 256 por 64 | 8192 |
Imagem de mipmap de 128 por 32 mipmap | 2.048 |
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 ocupado por cada camada para a mesma textura usando um formato de compactação DXGI (neste caso, BC3_UNORM) que, portanto, requer o cabeçalho estendido:
Componentes DDS | Nº de bytes |
---|---|
cabeçalho (FourCC definido como "DX10") | 128 |
cabeçalho estendido (formato DXGI definido como DXGI_FORMAT_BC3_UNORM) | 20 |
Imagem de main 256 por 64 | 16384 |
Imagem de mipmap de 128 por 32 mipmap | 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 |
Tópicos relacionados