Condividi tramite


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.

Fusione alfa