Renderizar o Destino Alfa (Direct3D 9)
O liquidificador de buffer de quadro agora pode combinar canais alfa independentes da mesclagem de canal de cores em destinos de renderização. Esse controle é habilitado com um novo estado de renderização, D3DRS_SEPARATEALPHABLENDENABLE.
Quando D3DRS_SEPARATEALPHABLENDENABLE é definido como FALSE (que é a condição padrão), os fatores de mesclagem de destino de renderização e as operações aplicadas ao alfa são os mesmos definidos para a combinação de canais de cores. Um driver precisa definir o limite de D3DPMISCCAPS_SEPARATEALPHABLEND para indicar que ele pode dar suporte à mesclagem alfa de destino de renderização. Certifique-se de habilitar D3DRS_ALPHABLEND para informar ao pipeline que a mesclagem alfa é necessária.
Para controlar os fatores no canal alfa dos liquidificadores de destino de renderização, dois novos estados de renderização são definidos da seguinte maneira:
D3DRS_SRCBLENDALPHA
D3DRS_DESTBLENDALPHA
Assim como o D3DRS_SRCBLEND e D3DRS_DESTBLEND, eles podem ser definidos como um dos valores na enumeração D3DBLEND . As configurações de combinação de origem e destino podem ser combinadas de várias maneiras, dependendo das configurações nos membros SrcBlendCaps e DestBlendCaps do D3DCAPS9.
A mistura alfa é feita da seguinte maneira:
renderTargetAlpha = (alfaem * srcBlendOp) BlendOp (alphart * destBlendOp)
Em que:
- alfaem é o valor alfa de entrada.
- srcBlendOp é um dos fatores de mesclagem em D3DBLEND.
- O BlendOp é um dos fatores de mesclagem em D3DBLENDOP.
- alphart é o valor alfa de destino de renderização.
- destBlendOp é um dos fatores de mesclagem em D3DBLEND.
- renderTargetAlpha é o valor alfa combinado final.
Tópicos relacionados