Partilhar via


Mistura de textura alfa (Direct3D 9)

O motor de iluminação combina cor do material, cor do vértice e informações de iluminação para gerar uma cor por vértice. Uma vez interpolado, isso gera uma cor para cada pixel que é guardada no buffer de quadros. Se uma aplicação habilitar a mistura de texturas, a cor do pixel será uma combinação do pixel atual no buffer de quadros e da cor de uma textura.

Esta fórmula determina a cor final do pixel misturado:

Color = TexelColor x SourceBlend + CurrentPixelColor x DestBlend

Onde:

  • Cor é a cor do pixel de saída.
  • TexelColor é a cor de entrada após a filtragem de textura.
  • SourceBlend é a porcentagem da cor final do pixel que é composta pela cor texel de origem.
  • CurrentPixelColor é a cor do pixel atual.
  • DestBlend é a porcentagem da cor final do pixel que é composta pela cor do pixel atual.

A equação de mistura final é definida chamando IDirect3DDevice9::SetRenderState e especificando o estado de renderização de mistura (D3DRS_BLENDXXX) com um fator de mistura correspondente (D3DBLEND). Os valores de SourceBlend e DestBlend variam de 0,0 (transparente) a 1,0 (opaco), inclusive. Além disso, um aplicativo pode controlar a transparência de um pixel definindo o valor alfa em uma textura. Nesse caso, use o seguinte:

SourceBlend = D3DBLEND_ZERO 
DestBlend = D3DBLEND_ONE

A equação de mistura fará com que o pixel renderizado seja transparente. Os valores padrão são:

SourceBlend = D3DBLEND_SRCALPHA 
DestBlend = D3DBLEND_INVSRCALPHA

Mistura de Texturas

Filtragem de textura (Direct3D 9)

D3DRENDERSTATETYPE