Condividi tramite


Stato di fusione alfa (Direct3D 9)

Il valore alfa di un colore ne controlla la trasparenza. Abilitare la fusione alfa consente di combinare colori, materiali e texture su una superficie con trasparenza su un'altra superficie.

Per ulteriori informazioni, vedere fusione delle texture alfa (Direct3D 9) e fusione delle texture (Direct3D 9).

Le applicazioni scritte in C++ usano lo stato di rendering D3DRS_ALPHABLENDENABLE per abilitare la fusione della trasparenza alfa. L'API Direct3D consente molti tipi di fusione alfa. Tuttavia, è importante notare che l'hardware 3D dell'utente potrebbe non supportare tutti gli stati di fusione consentiti da Direct3D.

Il tipo di fusione alfa eseguita dipende dagli stati di rendering D3DRS_SRCBLEND E D3DRS_DESTBLEND. Gli stati di fusione della sorgente e della destinazione sono usati in coppia. Nell'esempio di codice seguente viene illustrato come lo stato della fusione di origine sia impostato su D3DBLEND_SRCCOLOR e che lo stato della fusione di destinazione sia impostato su 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);

La modifica degli stati di fusione di origine e destinazione può dare l'aspetto di oggetti emissivi in un'atmosfera nebbia o polverosa. Ad esempio, se l'applicazione modella fiamme, campi di forza, fasci di plasma o oggetti simili in un ambiente nebbioso, impostare gli stati di fusione di origine e destinazione su D3DBLEND_ONE.

Un'altra applicazione della fusione alfa consiste nel controllare l'illuminazione in una scena 3D, detta anche mappatura della luce. Impostando lo stato di fusione di origine su D3DBLEND_ZERO e lo stato di fusione di destinazione su D3DBLEND_SRCALPHA oscura una scena in base alle informazioni alfa di origine. La primitiva di origine viene usata come mappa chiara che ridimensiona il contenuto del buffer di frame per renderlo più scuro, se appropriato. In questo modo viene generata la mappatura della luce monocromatica.

È possibile ottenere il mapping della luce del colore impostando lo stato di fusione alfa della sorgente su D3DBLEND_ZERO e lo stato di fusione di destinazione su D3DBLEND_SRCCOLOR.

stati di rendering