Compartilhar via


Estado de combinação alfa (Direct3D 9)

O valor alfa de uma cor controla sua transparência. Habilitar a mesclagem 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 Combinação de textura alfa (Direct3D 9) e Mesclagem de textura (Direct3D 9).

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

O tipo de mesclagem alfa que é feito depende dos estados de renderização D3DRS_SRCBLEND E D3DRS_DESTBLEND . Os estados de combinação de origem e destino são usados em pares. O exemplo de código a seguir demonstra como o estado de combinação de origem é definido como D3DBLEND_SRCCOLOR e o estado de combinação 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 o aplicativo modelar chamas, forçar campos, feixes de plasma ou objetos radiantes de maneira semelhante em um ambiente nebuloso, defina os estados de mistura de origem e destino como D3DBLEND_ONE.

Outra aplicação da mesclagem alfa é controlar a iluminação em uma cena 3D, também chamada de mapeamento de luz. Definir o estado de combinação de origem como D3DBLEND_ZERO e o estado de combinação de destino para D3DBLEND_SRCALPHA escurece uma cena de acordo com as informações alfa de origem. O primitivo de origem é usado como um mapa de luz que dimensiona o conteúdo do buffer de quadros para escurecer quando apropriado. Isso produz o mapeamento de luz monocromática.

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

Renderizar estados