Render Target Alpha (Direct3D 9)
Il frullatore del buffer dei frame può ora combinare canali alfa indipendenti dalla fusione del canale dei colori nelle destinazioni di rendering. Questo controllo è abilitato con un nuovo stato di rendering, D3DRS_SEPARATEALPHABLENDENABLE.
Quando D3DRS_SEPARATEALPHABLENDENABLE è impostato su FALSE (ovvero la condizione predefinita), i fattori e le operazioni di fusione della destinazione di rendering applicati a alfa sono uguali a quelli definiti per la fusione dei canali di colore. Un driver deve impostare il limite di D3DPMISCCAPS_SEPARATEALPHABLEND per indicare che può supportare la fusione alfa di destinazione di rendering. Assicurarsi di abilitare D3DRS_ALPHABLEND per indicare alla pipeline che è necessaria la fusione alfa.
Per controllare i fattori nel canale alfa dei frullatori di destinazione di rendering, vengono definiti due nuovi stati di rendering come segue:
D3DRS_SRCBLENDALPHA
D3DRS_DESTBLENDALPHA
Analogamente a D3DRS_SRCBLEND e D3DRS_DESTBLEND, questi valori possono essere impostati su uno dei valori nell'enumerazione D3DBLEND . Le impostazioni di fusione di origine e destinazione possono essere combinate in diversi modi, a seconda delle impostazioni nei membri SrcBlendCaps e DestBlendCaps di D3DCAPS9.
La fusione alfa viene eseguita nel modo seguente:
renderTargetAlpha = (alfain * srcBlendOp) BlendOp (alphart * destBlendOp)
Dove:
- alphain è il valore alfa di input.
- srcBlendOp è uno dei fattori di fusione in D3DBLEND.
- BlendOp è uno dei fattori di fusione in D3DBLENDOP.
- alphart è il valore alfa di destinazione di rendering.
- destBlendOp è uno dei fattori di fusione in D3DBLEND.
- renderTargetAlpha è il valore alfa combinato finale.
Argomenti correlati