Modelli di Illuminazione 1- Modelli locali Daniele Marini
Obiettivo Visualizzare scene cercando di simulare al meglio la realtà Elemento chiave: interazione luce-materiali Modellare le sorgenti di luce Modellare l’apparenza visiva dei materiali Calcolare l’interazione
Fondamenti Distinguiamo tra: Modelli di illuminazione globale Modelli di illuminazione locale I modelli locali trattano l’interazione luce-materia localmente in un punto campione sulla superficie, senza occuparsi di calcolare da dove proviene la luce (sorgenti di luce e/o ambiente?) I modelli globali si occupano invece di descrivere da dove proviene la luce prima della sua interazione con un materiale e dove va dopo questa interazione Una immagine può essere determinata applicando solo il modello di illuminazione locale o anche quello globale per determinare più correttamente da dove proviene la luce (meglio, ma più lento)
Fondamenti I modelli di illuminazione locale considerano: sorgenti di luce puntiforme all’infinito o a distanza finita illuminazione ambiente costante riflessione diffusiva o speculare approssimata sorgenti di luce estese approssimate sorgenti di luce direzionali I modelli globali tengono conto anche di caratteristiche fotometriche e radiometriche delle sorgenti: composizione spettrale della luce emessa energia e geometria della emissione forma del corpo illuminante luce ambiente modellata correttamente
Interazione luce-superfici
Interazione luce-superfici Il comportamento opposto a quello della diffusione è la specularità
Sorgenti di luce nella computer grafica Sono una approssimazioni di quelle reali! Ambient light Point light Spot light (Warn light) Distant light Area light
Sorgenti di luce Il colore della sorgente è descritto con tre componenti di intensità (vettore) per le tre bande rosso, verde, blu: I=[IR, IG, IB] Distinguiamo tra sorgenti di luce e luce ambiente In generale l’energia che giunge da una sorgente a un punto è inversamente proporzionale al quadrato della distanza ma in CG non sempre questo principio è applicato
Luce ambiente La luce ambiente nei modelli locali descrive il contributo di illuminazione dovuto alla diffusione (atmosfera, pulviscolo, nebbia) e riflessioni multiple tra le superfici degli oggetti della scena Anche la luce ambiente può avere un colore descritto come vettore: Ia=[Ia,R , Ia,G , Ia,B]
Tipi di sorgenti Sorgente puntiforme Point light Sorgente estesa e penombra Area light
Sorgente spot Spot light o Warn light
Sorgenti all’infinito Chiamate distant light sources La posizione si dà in coordinate omogenee Per sorgenti a distanza finita: ps=[x, y, z, 1] Per sorgenti all’infinito: ps=[x, y, z, 0] L’intensità non decade con il quadrato della distanza
Modelli di illuminazione locali Livelli di accuratezza crescente Lambert: Riflessione diffusa Phong: Riflessione speculare imperfetta Componente luce ambiente Sorgenti di luce Trasparenza
La geometria della riflessione nei modelli locali P punto campione sulla superficie N normale alla superficie in P V direzione da P a osservatore L direzione da sorgente di luce a P se la sorgente è estesa si considera un punto campione su di essa R direzione di riflessione speculare della sorgente calcolata da N e L
Riflessione nei modelli locali La riflessione è di tre tipi. Dati: N normale alla superficie, L direzione luce incidente, R direzione luce riflessa in modo speculare: Riflessione diffusiva: costante in tutte le direzioni, ma funzione di L·N (ovvero dipende dall’angolazione con cui la luce arriva sulla superficie) Riflessione speculare perfetta L·N = R·N e la luce viene riflessa lungo un’unica direzione Riflessione speculare imperfetta: la luce viene riflessa all’interno di un angolo solido con intensità massima nella direzione R, e decrescente a 0 allontanandosi da R (simula bagliori, highlight)
Riflettività nei modelli locali Nei modelli locali ogni materiale è caratterizzato da una riflettività, ovvero da quale percentuale di luce nelle tre componenti rosso,verde e blu riflette La riflettività non è unica, ma è in relazione al tipo di luce che si considera Riflettività alla luce ambiente Alla riflessione diffusiva Alla riflessione speculare Questo modo di trattare la riflettività non ha alcuna corrispondenza con la realtà fisica: è solo una approssimazione!
Riflessione di Lambert Una superficie viene detta diffusiva o lambertiana se rispetta la legge di Lambert (1760) Lambert J. H., Photometria, Sive de mensura et gradibus Luminis, Colorum et Umbrae, Christoph Peter Detleffsen for the Widow of Eberhard Klett, Augsburg, 1760 La legge afferma che la luminosità di una superficie diffusiva non dipende dalla posizione dell’osservatore ma dalla posizione della luce rispetto a questa La luce viene riflessa uniformemente in tutte le direzioni
Modello di Lambert Legge di Lambert: Ir : intensità luce riflessa Ii : intensità luce incidente kd: coefficiente di riflessione diffusa
Calcolo RGB del modello di Lambert Il colore della superficie dipende dai tre valori di riflettività (kd,R kd,G kd,B) e dal colore della sorgente
Lambert+Luce ambiente Una sorgente Se abbiamo p sorgenti puntiformi (θl = angolo con la sorgente l-esima) (naturalmente sono tre equazioni per R, G e B):
Modello di Phong (1975) Calcola anche la riflessione speculare imperfetta (bagliori) considerando la posizione dell’osservatore La luce riflessa è data dalla somma di 3 componenti: Riflessione lambertiana Riflessione speculare imperfetta Luce ambientale Phong B.T., Illumination for computer generated pictures, Communications of the ACM, vol 18, n 6, 1975
Modello di Phong riflessione lambertiana riflessione speculare imperf. luce ambientale
Modello di Phong L’aspetto della superficie del materiale è caratterizzato da: kd: coefficiente di riflessione diffusiva 0 kd 1 ks: coefficiente di riflessione speculare 0 ks 1 ka: coefficiente di riflessione luce ambientale 0 ka 1 n: esponente di Phong (ampiezza dell’highlight) Il colore e l’apparenza della superficie dipendono quindi dai nove valori (kdR kdG kdB) colore diffuso (ksR ksG ksB) colore speculare (kaR kaG kaB) colore ambientale
Modello di Phong Per il principio di conservazione dell’energia dovrebbe essere: kd + ks 1 Ovvero una superficie non può riflettere più luce di quanta ne riceve. Tuttavia nella simulazione software questo può anche verificarsi come errore voluto. Dipende dall’implementazione software……
Modello di Phong Nella componente speculare: L’angolo misura quanto l’osservatore si discosta dalla direzione speculare rispetto alla luce L’esponente di Phong n determina l’ampiezza dell’highlight (maggiore n, minore l’highlight)
Modello di Phong La componente ambientale simula la luce che non proviene direttamente dalle sorgenti di illuminazione ma dagli altri oggetti dell’ambiente ed è costante (indipendente dal punto di vista e dalla posizione delle sorgenti). Moltissimi oggetti di uso comune hanno una riflessione mista: in parte diffusiva e in parte speculare
Confronti con ka=0,7 n=10 al variare di kd e ks Modello di Phong Confronti con ka=0,7 n=10 al variare di kd e ks kd ks
Modello di Phong: variazione di ks e n ks crescente n cresc.
Modifica del modello di Phong: il modello di Blinn (1977) Anziché la direzione R si considera la bisettrice H tra L e V e il suo angolo che viene sostituito ad nel calcolo della componente speculare imperfetta: kscosn dove cos = H·N Questo modello non è fisicamente più corretto, ma più semplice da calcolare. Infatti l'angolo è sempre 90° e quindi si evita la neces- sità di doverne verificare il valore, inoltre è computa- zionalmente più semplice da calcolare di . Blinn J. F., Models of Light Relfection for Computer Synthesized Pictures, Computer Graphics (SIGGRAPH '77 Proceedings), vol. 11, n. 2, pp 192-198, July 1977
Il calcolo di R Si può calcolare come: R = 2(N·L)N - L N 2(N·L)N - L
Calcolo di H Si calcola la bisettrice H tra L e V: H=(L+V)/||L+V|| è l’angolo tra H e N ovvero = arccos(H·N) H è uguale a N quando la sorgente è opposta a V: in questo caso la riflessione è massima (l’osservatore è sulla direzione speculare della sorgente) si comporta come l’angolo α : ne è una approssimazione. Ma l’angolo decresce più rapidamente, quindi nel modello di Blinn si usa un esponente n più piccolo
Il metodo di Blinn È il metodo adottato in OpenGL e in Direct3D. Occorre ricordare che quando l’angolo è maggiore di p/2 (90°) non c’è riflessione
Sorgenti di luce spot: modello di Warn Si possono trattare sorgenti di luce non puntiformi (direzionali) e a distanza d (luci di Warn): con angolo solido di emissione
Senza luce ambiente Con luce ambiente
Il modello completo Il termine katt tiene conto dell’attenuazione della propagazione della luce nell’atmosfera rispetto alla sorgente l-esima con: katt = max ( 1/(a+bd+cd2) ; 1) invece del più semplice 1/d2 Dove d è la distanza tra il punto campione sulla superficie e la sorgente di luce, mentre a,b,c sono parametri arbitrari scelti dal programmatore sulla base dell’esperienza
Limiti del modello locale illustrato Ma l’intensità I della luce che cosa è: (Intesità luminosa, Intensità radiante, Illuminamento, Luminanza …?) Dipende da campionamento spaziale della luce, ovvero dal modello di illuminazione globale. Il modello simula oggetti di plastica, ceramica o simili: Strato esterno - riflessione speculare Strato interno - riflessione diffusiva