Formatos de textura compactadas (Direct3D 9)
Esta seção contém informações sobre a organização interna de formatos de textura compactada. Você não precisa desses detalhes para usar texturas compactadas, pois pode usar funções D3DX para conversão de e para formatos compactados. No entanto, essas informações são úteis se você quiser operar diretamente nos dados da superfície compactada.
O Direct3D usa um formato de compactação que divide mapas de textura em blocos de texel de 4 x 4. Se a textura não tiver transparência - é opaca - ou se a transparência for especificada por um alfa de 1 bit, um bloco de 8 bytes representa o bloco de mapa de textura. Se o mapa da textura contiver texels transparentes, usando um canal alfa, um bloco de 16 bits irá representá-lo.
Qualquer textura deve especificar que os dados sejam armazenados como 64 ou 128 bits por grupo de 16 texels. Se blocos de 64 bits - ou seja, formatar DXT1 - forem usados para a textura, será possível misturar os formatos alfa opacos e de 1 bit em uma base por bloco dentro da mesma textura. Em outras palavras, a comparação da magnitude de inteiro sem sinal de color_0 e color_1 é executada exclusivamente para cada bloco de 16 texels.
Quando blocos de 128 bits são usados, o canal alfa deve ser especificado no modo explícito (formato DXT2 ou DXT3) ou interpolado (formato DXT4 ou DXT5) para toda a textura. Da mesma forma que ocorre com a cor, quando o modo interpolado é selecionado, o modo de seis ou oito alfas interpolados pode ser usado em uma base de bloco por bloco. Novamente, a comparação de magnitude de alpha_0 e alpha_1 é feita exclusivamente em uma base bloco a bloco.
O pitch para formatos DXTn é diferente do que foi retornado no DirectX 7.0. O pitch agora é medido em bytes (não em blocos). Por exemplo, se você tiver uma largura de 16, terá um tom de quatro blocos (4*8 para DXT1, 4*16 para DXT2-5).
Tópicos relacionados