Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Mapas de textura são imagens digitalizadas desenhadas em formas tridimensionais para adicionar detalhes visuais. Elas são mapeadas para essas formas durante a rasterização, e o processo pode consumir grandes quantidades do barramento do sistema e da memória. Para reduzir a quantidade de memória consumida por texturas, o Direct3D dá suporte à compactação de superfícies de textura. Alguns dispositivos Direct3D dão suporte a superfícies de textura compactadas nativamente. Nesses dispositivos, quando você criou uma superfície compactada e carregou os dados nele, a superfície pode ser usada no Direct3D como qualquer outra superfície de textura. O Direct3D manipula a descompactação quando a textura é mapeada para um objeto 3D.
Eficiência de armazenamento e compactação de textura
Todos os formatos de compactação de textura são potências de dois. Embora isso não signifique que uma textura seja necessariamente quadrada, isso significa que x e y são poderes de dois. Por exemplo, se uma textura for originalmente 512 por 128 bytes, o próximo mipmapping seria 256 por 64 e assim por diante, com cada nível diminuindo por uma potência de dois. Em níveis inferiores, em que a textura é filtrada para 16 por 2 e 8 por 1, haverá bits desperdiçados porque o bloco de compactação é sempre um bloco de 4 por 4 texels. Partes não usadas do bloco são acolchoadas. Embora haja bits desperdiçados nos níveis mais baixos, o ganho geral ainda é significativo. O pior caso é, em teoria, uma textura 2K por 1 (2⁰ potência). Aqui, apenas uma única linha de pixels é codificada por bloco, enquanto o restante do bloco não é usado.
Combinando formatos dentro de uma única textura
É importante observar que qualquer textura única deve especificar que seus dados são 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.
Depois que os blocos de 128 bits forem usados, o canal alfa deverá ser especificado no modo explícito (formato DXT2 e DXT3) ou interpolado (formato DXT4 e DXT5) para toda a textura. Assim como acontece com a cor, quando o modo interpolado (formato DXT4 e DXT5) é 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 Direct3D fornece serviços para compactar superfícies usadas para texutura de modelos 3D. Esta seção fornece informações sobre como criar e manipular os dados em uma superfície de textura compactada.
As informações estão contidas nos tópicos a seguir.
- texturas alfa opacas e de 1 bit (Direct3D 9)
- texturas com canais alfa (Direct3D 9)
- formatos de textura compactada (Direct3D 9)
- usando texturas compactadas (Direct3D 9)
Tópicos relacionados