Luce speculare

L'illuminazione speculare identifica le evidenziazioni speculari luminose che si verificano quando la luce colpisce una superficie dell'oggetto e si riflette verso la fotocamera. L'illuminazione speculare è più intensa della luce diffusa e cade più rapidamente attraverso la superficie dell'oggetto. Il calcolo dell'illuminazione speculare richiede più tempo rispetto all'illuminazione diffusa, ma il vantaggio dell'uso è che aggiunge dettagli significativi a una superficie.

La modellazione della riflessione speculare richiede che il sistema sappia in quale direzione la luce sta viaggiando e la direzione verso l'occhio del visualizzatore. Il sistema usa una versione semplificata del modello di riflessione speculare Phong, che utilizza un vettore a metà strada per approssimare l'intensità della riflessione speculare.

Lo stato di illuminazione predefinito non calcola le evidenziazioni speculari.

Equazione di illuminazione speculare

L'illuminazione speculare è descritta dall'equazione seguente.

Illuminazione speculare = Cₛ * sum[Ls * (N · H)P * Atten * Spot]

Le variabili, i relativi tipi e i relativi intervalli sono i seguenti:

Parametro Valore predefinito Tipo Descrizione
Cₛ (0,0,0,0) Trasparenza rossa, verde, blu e alfa (valori a virgola mobile) Colore speculare.
somma N/D N/D Sommazione del componente speculare di ogni luce.
N N/D Vettore 3D (valori a virgola mobile x, y e z) Normale del vertice.
H N/D Vettore 3D (valori a virgola mobile x, y e z) Vettore a metà strada. Vedere la sezione sul vettore a metà strada.
P 0.0 Virgola mobile Potenza speculare di riflessione. Intervallo compreso tra 0 e +infinito
Lₛ (0,0,0,0) Trasparenza rossa, verde, blu e alfa (valori a virgola mobile) Colore speculare chiaro.
Atten N/D Virgola mobile Valore di attenuazione della luce. Vedere Fattore spotlight e attenuazione.
Spot (Contante) N/D Virgola mobile Fattore spotlight. Vedere Fattore spotlight e attenuazione.

 

Il valore per Cₐ è sia:

  • colore vertice 1, se l'origine materiale speculare è il colore del vertice diffuso e il primo colore del vertice viene fornito nella dichiarazione del vertice.
  • colore vertice 2, se l'origine materiale speculare è il colore del vertice speculare e il secondo colore del vertice viene fornito nella dichiarazione del vertice.
  • colore speculare del materiale

Nota Se si usa l'opzione Sorgente materiale speculare e il colore del vertice non viene fornito, viene usato il colore speculare del materiale.

 

I componenti speculari sono bloccati da 0 a 255, dopo che tutte le luci vengono elaborate e interpolate separatamente.

Il vettore a metà strada

Il vettore a metà strada (H) esiste a metà strada tra due vettori: il vettore da un vertice oggetto alla sorgente di luce e il vettore da un vertice oggetto alla posizione della fotocamera. Direct3D offre due modi per calcolare il vettore a metà strada. Quando l'evidenziazione speculare relativa alla fotocamera è abilitata (anziché evidenziazioni speculari ortogonali), il sistema calcola il vettore a metà strada usando la posizione della fotocamera e la posizione del vertice, insieme al vettore di direzione della luce. La seguente formula illustra questo.

H = norm(norm(Cₚ - Vₚ) + Ldir)

 

Parametro Valore predefinito Tipo Descrizione
Cₚ N/D Vettore 3D (valori a virgola mobile x, y e z) Posizione della fotocamera.
Vₚ N/D Vettore 3D (valori a virgola mobile x, y e z) Posizione del vertice.
Ldir N/D Vettore 3D (valori a virgola mobile x, y e z) Vettore di direzione dalla posizione del vertice alla posizione della luce.

 

Determinare il vettore a metà strada in questo modo può essere a elevato utilizzo di calcolo. In alternativa, l'uso di evidenziazioni speculari ortogonali (anziché evidenziazioni speculari relative alla fotocamera) indica al sistema di agire come se il punto di vista sia infinitamente distante sull'asse z. Ciò si riflette nella formula seguente.

H = norm((0,0,1) + Ldir)

Questa impostazione è meno impegnativa a livello di calcolo, ma molto meno accurata, quindi è preferibile per le applicazioni che usano la proiezione ortogonale.

Esempio

In questo esempio l'oggetto viene colorato usando la luce speculare di scena e un colore speculare del materiale.

In base all'equazione, il colore risultante per i vertici dell'oggetto è una combinazione del colore del materiale e del colore della luce.

Le due illustrazioni seguenti mostrano il colore del materiale speculare, ovvero grigio, e il colore della luce speculare, ovvero bianco.

illustration of a gray sphereillustration of a white sphere

L'evidenziazione speculare risultante è illustrata nella figura seguente.

illustration of the specular highlight

La combinazione dell'evidenziazione speculare con l'illuminazione ambientale e diffusa produce la figura seguente. Con tutti e tre i tipi di illuminazione applicati, questo assomiglia più chiaramente a un oggetto realistico.

illustration of combining the specular highlight, ambient lighting, and diffuse lighting

L'illuminazione speculare è più intensa per calcolare l'illuminazione diffusa. Viene in genere usato per fornire indizi visivi sul materiale della superficie. L'evidenziazione speculare varia in base alle dimensioni e al colore con il materiale della superficie.

Matematica dell'illuminazione