Mappe di luce monocromatica (Direct3D 9)
Alcune schede di acceleratore 3D meno recenti non supportano la fusione di trame usando il valore alfa del pixel di destinazione. Per altre informazioni, vedere Fusione di trame alfa (Direct3D 9). Questi adattatori in genere non supportano la fusione di più trame. Se l'applicazione è in esecuzione in un adattatore come questo, può usare la fusione di trame multipass per eseguire il mapping di luce monocromatica.
Per eseguire il mapping di luce monocromatica, un'applicazione archivia le informazioni di illuminazione nei dati alfa delle trame della mappa leggera. L'applicazione usa le funzionalità di filtro trama di Direct3D per eseguire un mapping da ogni pixel nell'immagine della primitiva a un texel corrispondente nella mappa chiara. Imposta il fattore di fusione di origine sul valore alfa del texel corrispondente.
Nell'esempio seguente viene illustrato come un'applicazione può usare una trama come mappa chiara monocromatica:
// This example assumes that d3dDevice is a valid pointer to an
// IDirect3DDevice9 interface and that lptexLightMap is a valid
// pointer to a texture that contains monochrome light map data.
// Set the light map texture as the current texture.
d3dDevice->SetTexture(0, lptexLightMap);
// Set the color operation.
d3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
// Set argument 1 to the color operation.
d3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1,
D3DTA_TEXTURE | D3DTA_ALPHAREPLICATE);
Poiché gli adattatori di visualizzazione che non supportano la fusione alfa di destinazione in genere non supportano la fusione di più trame, questo esempio imposta la mappa chiara come la prima trama, disponibile su tutte le schede di acceleratore 3D. Il codice di esempio imposta l'operazione di colore per la fase di fusione della trama per combinare i dati della trama con il colore esistente della primitiva. Seleziona quindi la prima trama e il colore esistente della primitiva come dati di input.
Argomenti correlati