Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Direct3D pode misturar até oito texturas em primitivos em uma única passagem. O uso de mistura de múltiplas texturas pode aumentar significativamente a taxa de fotogramas de uma aplicação Direct3D. Um aplicativo emprega várias misturas de textura para aplicar texturas, sombras, iluminação especular, iluminação difusa e outros efeitos especiais em uma única passagem.
Para usar a mistura de textura, seu aplicativo deve primeiro verificar se o hardware do usuário suporta isso. Essas informações são encontradas no membro TextureCaps da estrutura D3DCAPS9. Para obter detalhes sobre como consultar o hardware do usuário para recursos de mistura de textura, consulte IDirect3DDevice9::GetDeviceCaps.
Estágios de textura e a cascata de fusão de textura
O Direct3D suporta a mistura de textura múltipla em uma única passagem através do uso de estágios de textura. Um estágio de textura usa dois argumentos e executa uma operação de mistura neles, passando o resultado para processamento adicional ou para rasterização. Você pode visualizar um estágio de textura como mostrado no diagrama a seguir.
Como mostra o diagrama anterior, os estágios de textura mesclam dois argumentos usando um operador especificado. As operações comuns incluem modulação simples ou adição dos componentes de cor ou alfa dos argumentos, mas mais de duas dúzias de operações são suportadas. Os argumentos para um estágio podem ser uma textura associada, a cor iterada ou alfa (iterada durante o sombreamento de Gouraud), cor arbitrária e alfa, ou o resultado do estágio de textura anterior. Para obter mais informações, consulte Texture Blending Operations and Arguments (Direct3D 9).
Observação
O Direct3D distingue a mistura de cores da mistura alfa. Os aplicativos definem operações de mistura e argumentos para cor e alfa individualmente, e os resultados dessas configurações são independentes uns dos outros.
A combinação de argumentos e operações usada por vários estágios de mistura define uma linguagem de mistura simples baseada em fluxo. Os resultados de um estágio fluem para outro, desse estágio para o próximo, e assim por diante. O conceito de resultados que fluem de estágio em estágio para eventualmente serem rasterizados em um polígono é frequentemente chamado de cascata de mistura de textura. O diagrama a seguir mostra como os estágios de textura individuais compõem a cascata de mistura de textura.
Cada estágio em um dispositivo tem um índice baseado em zero. O Direct3D permite até oito estágios de mistura, embora você sempre deva verificar os recursos do dispositivo para determinar quantos estágios o hardware atual suporta. O primeiro estágio de mistura está no índice 0, o segundo está em 1, e assim por diante, até o índice 7. O sistema combina estágios em ordem crescente do índice.
Use apenas o número de etapas que você precisa; Os estágios de mistura não utilizados são desativados por padrão. Portanto, se seu aplicativo usa apenas os dois primeiros estágios, ele só precisa definir operações e argumentos para os estágios 0 e 1. O sistema combina os dois estágios e ignora os estágios desativados.
Observação
Se o seu aplicativo variar o número de estágios que ele usa para diferentes situações - como quatro estágios para alguns objetos e apenas dois para outros - você não precisará desativar explicitamente todos os estágios usados anteriormente. Uma opção é desativar a operação de cor para o primeiro estágio não utilizado, então todos os estágios com um índice mais alto não serão aplicados. Outra opção é desativar completamente o mapeamento de textura definindo a operação de cor para o primeiro estágio de textura (estágio 0) como D3DTOP_DISABLE. Uma terceira opção é quando um estágio de textura tem D3DTSS_COLORARG1 igual a D3DTA_TEXTURE e o ponteiro de textura para o estágio é NULL, este estágio e todos os estágios depois dele não são processados.
Informações adicionais estão contidas nos tópicos a seguir.
- Operações e argumentos de mistura de textura (Direct3D 9)
- Atribuição das texturas atuais (Direct3D 9)
- Criando estágios de mistura (Direct3D 9)
- Mistura de textura alfa (Direct3D 9)
- Mistura de textura Multipass (Direct3D 9)
- Mapeamento de luz com texturas (Direct3D 9)
Tópicos relacionados