Partilhar via


Estado de mistura alfa (Direct3D 9)

O valor alfa de uma cor controla sua transparência. A ativação da mistura alfa permite que cores, materiais e texturas em uma superfície sejam misturados com transparência em outra superfície.

Para obter mais informações, consulte Mistura de textura alfa (Direct3D 9) e Mistura de textura (Direct3D 9).

Os aplicativos escritos em C++ usam o estado de renderização D3DRS_ALPHABLENDENABLE para habilitar a mistura de transparência alfa. A API do Direct3D permite muitos tipos de mistura alfa. No entanto, é importante notar que o hardware 3D do usuário pode não suportar todos os estados de mistura permitidos pelo Direct3D.

O tipo de mistura alfa realizada depende do D3DRS_SRCBLEND e D3DRS_DESTBLEND estados de renderização. Os estados de mistura de origem e destino são usados em pares. O exemplo de código a seguir demonstra como o estado de mistura de origem é definido como D3DBLEND_SRCCOLOR e o estado de mistura de destino é definido como D3DBLEND_INVSRCCOLOR.

// This code example assumes that d3dDevice is a
// valid pointer to an IDirect3DDevice9 interface.

// Set the source blend state.
d3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCCOLOR);

// Set the destination blend state.

d3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCCOLOR);

Alterar os estados de mistura de origem e destino pode dar a aparência de objetos emissivos em uma atmosfera nebulosa ou empoeirada. Por exemplo, se seu aplicativo modelar chamas, campos de força, feixes de plasma ou objetos igualmente radiantes em um ambiente nebuloso, defina os estados de mistura de origem e destino como D3DBLEND_ONE.

Outra aplicação da mistura alfa é controlar a iluminação em uma cena 3D, também chamada de mapeamento de luz. Definir o estado de mistura de origem como D3DBLEND_ZERO e o estado de mistura de destino como D3DBLEND_SRCALPHA escurece uma cena de acordo com as informações alfa de origem. A primitiva de origem é utilizada como um mapa de iluminação que ajusta proporcionalmente o conteúdo do buffer de quadros, de forma a escurecê-lo quando apropriado. Isso produz mapeamento de luz monocromático.

Você pode obter o mapeamento de luz de cor definindo o estado de mistura alfa de origem como D3DBLEND_ZERO e o estado de mistura de destino como D3DBLEND_SRCCOLOR.

Estados de Renderização