Matematica dell'illuminazione (Direct3D 9)

Il modello Direct3D Light copre l'ambiente, diffuso, speculare e l'illuminazione emissiva. Questa flessibilità è sufficiente per risolvere una vasta gamma di situazioni di illuminazione. Si fa riferimento alla quantità totale di luce in una scena come illuminazione globale e calcolarla usando l'equazione seguente.

Global Illumination = Ambient Light + Diffuse Light + Specular Light + Emissive Light 

L'illuminazione ambientale (Direct3D 9) è l'illuminazione costante. È costante in tutte le direzioni e colori tutti i pixel di un oggetto lo stesso. È veloce da calcolare, ma lascia gli oggetti che cercano oggetti flat e non realistici. Per vedere come l'illuminazione ambientale viene calcolata da Direct3D, vedere Illuminazione ambientale (Direct3D 9).

L'illuminazione diffusa (Direct3D 9) dipende sia dalla direzione della luce che dalla superficie dell'oggetto normale. Varia in tutta la superficie di un oggetto come risultato della modifica della direzione della luce e del vettore numerico di superficie modificato. Richiede più tempo per calcolare l'illuminazione diffusa perché cambia per ogni vertice dell'oggetto, tuttavia il vantaggio dell'uso è che ombreggiatura gli oggetti e li dà profondità tridimensionale (3D). Per vedere come viene calcolata l'illuminazione diffusa in Direct3D, vedere Illuminazione diffusa (Direct3D 9).

L'illuminazione speculare (Direct3D 9) identifica le evidenziazioni speculari luminose che si verificano quando la luce colpisce una superficie dell'oggetto e riflette verso la fotocamera. È più intenso della luce diffusa e scende più rapidamente attraverso la superficie dell'oggetto. Richiede più tempo per calcolare l'illuminazione speculare rispetto all'illuminazione diffusa, tuttavia il vantaggio dell'uso è che aggiunge dettagli significativi a una superficie. Per vedere come viene calcolata l'illuminazione speculare in Direct3D, vedere Illuminazione speculare (Direct3D 9).

Emissive Lighting (Direct3D 9) è luce che viene generata da un oggetto; ad esempio, un bagliore. Per vedere come viene calcolata l'illuminazione emissiva in Direct3D, vedere Illuminazione emissiva (Direct3D 9).

L'illuminazione realistica può essere eseguita applicando ognuno di questi tipi di illuminazione a una scena 3D. I valori calcolati per i componenti ambientali, emissivi e diffusi vengono restituiti come colore del vertice diffuso; il valore per il componente di illuminazione speculare viene restituito come colore del vertice speculare. I valori di luce ambientale, diffusa e speculare possono essere influenzati dall'attenuazione e dal fattore di luce specifico. Per altre informazioni sul funzionamento dell'attenuazione, vedere Attenuazione e Fattore di evidenza (Direct3D 9).

Per ottenere un effetto di illuminazione più realistico, si aggiungono altre luci; tuttavia, la scena richiede più tempo per il rendering. Per ottenere tutti gli effetti desiderati da una finestra di progettazione, alcuni giochi usano più potenza CPU che è comunemente disponibile. In questo caso, è tipico ridurre il numero di calcoli di illuminazione al minimo usando mappe di illuminazione e mappe dell'ambiente per aggiungere illuminazione a una scena durante l'uso delle mappe di trama.

L'illuminazione viene calcolata nello spazio della fotocamera. Per vedere come vengono calcolate le trasformazioni di illuminazione, vedere Fotocamera Trasformazioni spaziali (Direct3D 9). L'illuminazione ottimizzata può essere calcolata nello spazio del modello, quando esistono condizioni speciali: i vettori normali sono già normalizzati (D3DRS_NORMALIZENORMALS è True), la fusione dei vertici non è necessaria, le matrici di trasformazione sono ortogonali e così via.

Luci e materiali