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

 

Guia de programação para DDS