Condividi tramite


Stato di fusione alfa (Direct3D 9)

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

Per altre informazioni, vedere Fusione di trame alfa (Direct3D 9) e Fusione di trame (Direct3D 9).For more information, see Alpha Texture Blending (Direct3D 9) and Texture Blending (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 And D3DRS_DESTBLEND . Gli stati di fusione di origine e destinazione vengono usati in coppie. Nell'esempio di codice seguente viene illustrato come lo stato della fusione di origine è impostato su D3DBLEND_SRCCOLOR e lo stato della fusione di destinazione è 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 nebbiosa o polverosa. Ad esempio, se l'applicazione modella fiamme, forza campi, travi al plasma o oggetti simili radianti 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 mapping della luce. Impostando lo stato di fusione di origine su D3DBLEND_ZERO e sullo 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 fotogrammi per oscurarlo quando appropriato. In questo modo viene generato il mapping della luce monocromatica.

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

Stati di rendering