Exemplo de mapa do cubo DDS
Para mapas de ambiente cúbico, uma ou mais faces de um cubo são gravadas no arquivo, usando formatos descompactados ou compactados, e todas as faces devem ter o mesmo tamanho. Cada rosto pode ter mipmaps definidos, embora todas as faces precisem ter o mesmo número de níveis de mipmap. Se um arquivo contiver um mapa de cubo, DDSCAPS_COMPLEX, DDSCAPS2_CUBEMAP e um ou mais de DSCAPS2_CUBEMAP_POSITIVEX/Y/Z e/ou DDSCAPS2_CUBEMAP_NEGATIVEX/Y/Z devem ser definidos. Os rostos são escritos na ordem: positivo x, x negativo, positivo y, y negativo, z positivo, z negativo, com quaisquer rostos ausentes omitidos. Cada rosto é escrito com sua imagem main, seguida por qualquer nível de mipmap.
Por exemplo, um mapa de cubo de 256 por 256 com faces positivas x, negativas y e z positivas, um formato de pixel DXT1 e todos os níveis de mipmap conteriam o seguinte:
Componentes DDS | Nº de bytes |
---|---|
header | 128 |
Imagem de 256 por 256 positivos x main | 32768 |
128 por 128 imagem positiva x mipmap | 8192 |
Imagem de mipmap positivo x 64 por 64 | 2.048 |
Imagem de mipmap de 32 por 32 positivos x | 512 |
Imagem de mipmap positivo x 16 por 16 | 128 |
Imagem de mipmap de 8 por 8 positivos x | 32 |
Imagem de mipmap de 4 por 4 positivos x | 8 |
Imagem de mipmap positivo 2 por 2 x | 8 |
Imagem de mipmap positivo 1 por 1 x | 8 |
repita as 9 camadas anteriores para a imagem y mipmap | 43704 |
repita as 9 camadas anteriores para a imagem de mipmap z | 43704 |
A partir do DirectX 8, um mapa de cubo é armazenado com todas as faces definidas.
Mapas de cubo DXGI
Mapas de ambiente cúbico no Direct3D 10.x e Direct3D 11 são equivalentes a uma matriz de textura 2D com 6 imagens e podem ser armazenados em arquivos DDS como tal. Com o Direct3D 10.1 e o Direct3D 11, o hardware também pode dar suporte a matrizes de cubemaps que são matrizes de textura 2D com um múltiplo de 6 imagens (6, 12, 18, 24 etc.).
Por exemplo, aqui está um cubemap de 256 por 256 com níveis de mipmap armazenados em um formato BC6H como uma matriz de textura 2D:
Componentes DDS | Nº de bytes |
---|---|
cabeçalho (FourCC de "DX10") | 128 |
cabeçalho estendido (formato DXGI definido como 95 [DXGI_FORMAT_BC6H_UF16], valor da dimensão de 3 [D3Dxx_RESOURCE_DIMENSION_TEXTURE2D], tamanho da matriz de 6, sinalizadores incorretos de 0x4 [D3Dxx_RESOURCE_MISC_TEXTURECUBE]) | 20 |
256 por 256 entrada de matriz 0 (x positivo) main imagem | 65536 |
128 por 128 entrada de matriz 0 (positivo x) imagem mipmap | 16384 |
64 por 64 entrada de matriz 0 (positivo x) imagem mipmap | 4096 |
32 por 32 entrada de matriz 0 (positivo x) imagem mipmap | 1024 |
16 por 16 entrada de matriz 0 (positivo x) imagem mipmap | 256 |
8 por 8 entrada de matriz 0 (positivo x) imagem mipmap | 64 |
4 por 4 entrada de matriz 0 (positivo x) imagem mipmap | 16 |
2 por 2 entrada de matriz 0 (positivo x) imagem mipmap | 16 |
1 por 1 entrada de matriz 0 (positivo x) imagem mipmap | 16 |
repita as 9 camadas anteriores para a entrada de matriz 1 (x negativo) imagem mipmap | 87408 |
repita as 9 camadas anteriores para a entrada de matriz 2 (positivo y) imagem mipmap | 87408 |
repita as 9 camadas anteriores para a entrada de matriz 3 (negativo y) imagem mipmap | 87408 |
repita as 9 camadas anteriores para a imagem mipmap de entrada de matriz 4 (z positivo) | 87408 |
repita as 9 camadas anteriores para a imagem mipmap de entrada de matriz 5 (z negativo) | 87408 |
Tópicos relacionados