Renderizar alfa de destino (Direct3D 9)
O misturador de buffer de quadros agora pode misturar canais alfa independentes da mistura de canais de cores em destinos de renderização. Esse controle é habilitado com um novo estado de renderização, D3DRS_SEPARATEALPHABLENDENABLE.
Quando D3DRS_SEPARATEALPHABLENDENABLE é definido como FALSO (que é a condição padrão), os fatores de mistura de destino de renderização e as operações aplicadas ao alfa são os mesmos definidos para mesclar canais de cores. Um driver precisa definir o limite de D3DPMISCCAPS_SEPARATEALPHABLEND para indicar que ele pode suportar a mistura alfa de destino de renderização. Certifique-se de permitir que D3DRS_ALPHABLEND informe ao pipeline que a mistura 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
Como os D3DRS_SRCBLEND e D3DRS_DESTBLEND, eles podem ser definidos como um dos valores na enumeração D3DBLEND. As configurações de mistura 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 forma:
renderTargetAlpha = (alfaem * srcBlendOp) BlendOp (alphart * destBlendOp)
Em que:
- alfa em é o valor alfa de entrada.
- srcBlendOp é um dos fatores de mistura em D3DBLEND.
- BlendOp é um dos fatores de mistura em D3DBLENDOP.
- Alpha RT é o valor alfa de destino de renderização.
- destBlendOp é um dos fatores de mistura em D3DBLEND.
- renderTargetAlpha é o valor alfa combinado final.
Tópicos relacionados