Compartilhar via


Formatos de textura compactada (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 serão úteis se você quiser operar diretamente nos dados compactados da superfície.

O Direct3D usa um formato de compactação que divide mapas de textura em blocos texel 4x4. Se a textura não contiver transparência - é opaca - ou se a transparência for especificada por um alfa de 1 bit, um bloco de 8 bytes representará o bloco de mapa de textura. Se o mapa de textura contiver texels transparentes, usando um canal alfa, um bloco de 16 bytes o representará.

Qualquer textura única deve especificar que seus 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, é 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 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. Assim como acontece com a cor, quando o modo interpolado é selecionado, oito alfas interpolados ou seis modos alfa interpolados podem ser usados em uma base bloco a 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).

de recursos de textura compactada