Modelli di Illuminazione Modelli locali Daniele Marini Corso Di Programmazione Grafica aa2005/2006
Programmazione Grafica aa2005/20062 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
Programmazione Grafica aa2005/20063 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)
Programmazione Grafica aa2005/20064 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 Fondamenti
Programmazione Grafica aa2005/20065 Lighting e Shading Lighting: calcolo del modello di illuminazione, come la luce interagisce con la materia Shading: calcolata l’illuminazione ai vertici, si determina il colore di ogni pixel interno; in generale con interpolazione
Programmazione Grafica aa2005/20066 Interazione luce-superfici
Programmazione Grafica aa2005/20067 Interazione luce-superfici Il comportamento opposto a quello della diffusione è la specularità
Programmazione Grafica aa2005/20068 Sorgenti di luce nella computer grafica Sono una approssimazioni di quelle reali! Ambient light Point light Spot light Distant light Warn light
Programmazione Grafica aa2005/20069 Sorgenti di luce Il colore è descritto con tre componenti di intensità (vettore): I =[I R, I G, I B ] Luce ambiente, idem: I a =[I a,R, I a,G, I a,B ] 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
Programmazione Grafica aa2005/ Sorgente puntiformeSorgente estesa e penombra Tipi di sorgenti
Programmazione Grafica aa2005/ Spot light Sorgente spot
Programmazione Grafica aa2005/ Sorgenti all’infinito Chiamate distant light sources La posizione si dà in coordinate omogenee Per sorgenti a distanza finita: p s =[x, y, z, 1] Per sorgenti all’infinito: p s =[x, y, z, 0] L’intensità non decade con l’inverso del quadrato della distanza
Programmazione Grafica aa2005/ Riassumendo
Programmazione Grafica aa2005/ Modelli locali Lambert: –Riflessione diffusa Phong: –Riflessione diffusa –Riflessione speculare imperfetta Componente luce ambiente Sorgenti di luce Trasparenza
Programmazione Grafica aa2005/ La geometria della riflessione nei modelli locali P punto campione sulla sup. N normale alla sup. in P V direzione da P a COP L direzione da P a sorgente di luce (se estesa è un punto campione su essa) R direzione di riflessione speculare della sorgente calcolata da N e L
Programmazione Grafica aa2005/ Riflessione nei modelli locali La riflessione è di tre tipi. Dati: N normale alla superficie, L direzione luce incidente, R direzione luce riflessa 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 riflessa all’interno di un angolo solido con intensità massima nella direzione R, e decrescente a 0 allontanandosi da R (bagliori, highlight)
Programmazione Grafica aa2005/ 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
Programmazione Grafica aa2005/ Modello di Lambert Legge di Lambert : I r : intensità luce riflessa I i : intensità luce incidente k d : coefficiente di riflessione diffusa
Programmazione Grafica aa2005/ Calcolo RGB del modello di Lambert Il colore della superficie dipende quindi dai tre valori (k d,R k d,G k d,B )
Programmazione Grafica aa2005/ Lambert+Luce ambiente p sorgenti puntiformi (θ l = angolo con la sorgente l-esima) Ripetuta 3 volte per R, G e B Una sorgente
Programmazione Grafica aa2005/ Modello di Phong (1975) Calcola anche la riflessione speculare imperfetta considerando la posizione dell’osservatore La luce riflessa è data dalla somma di 3 componenti: 1.Riflessione lambertiana 2.Riflessione speculare imperfetta 3.Luce ambientale Phong B.T., Illumination for computer generated pictures, Communications of the ACM, vol 18, n 6, 1975
Programmazione Grafica aa2005/ Modello di Phong riflessione lambertiana riflessione speculare imperf. luce ambientale
Programmazione Grafica aa2005/ Modello di Phong I parametri sono: 1.k d : coefficiente di riflessione diffusa 0 k d 1 2.k s : coefficiente di riflessione speculare 0 k s 1 3.k a : coefficiente di riflessione luce ambientale 0 k a 1 4.n: esponente di Phong (ampiezza dell’highlight) Il colore e l’apparenza della superficie dipendono quindi dai nove valori (k dR k dG k dB ) colore diffuso (k sR k sG k sB ) colore speculare (k aR k aG k aB ) colore ambiente dipende anche dall’interfaccia del software….
Programmazione Grafica aa2005/ Modello di Phong Per il principio di conservazione dell’energia dovrebbe essere: k d + k s 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……
Programmazione Grafica aa2005/ Modello di Phong Nella componente speculare imp.: –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)
Programmazione Grafica aa2005/ Modello di Phong La componente ambientale simula la luce che non proviene direttamente dalle sorgenti di illuminazione ma dagli altri oggetti dell’ambiente tramite una costante. Moltissimi oggetti di uso comune hanno una riflessione mista : in parte diffusiva e in parte speculare
Programmazione Grafica aa2005/ Modello di Phong Confronti con k a =0,7 n=10 al variare di k d e k s ksks kdkd
Programmazione Grafica aa2005/ L’andamento del coseno
Programmazione Grafica aa2005/ Modifica del modello di Phong: 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: k s cos n dove cos = H · N Questo modello non è fisicamente più corretto, ma più semplice da calcolare. –l'angolo è sempre 90° e si evita di doverne verificare il valore, –è più semplice da calcolare di . si comporta come l’angolo α, è una approssimazione. – decresce più rapidamente, quindi nel modello di Blinn si usa un esponente n più piccolo Blinn J. F., Models of Light Relfection for Computer Synthesized Pictures, Computer Graphics (SIGGRAPH '77 Proceedings), vol. 11, n. 2, pp , July 1977
Programmazione Grafica aa2005/ Il calcolo di R Si può calcolare come: R = 2(N·L)N - L N L -L 2(N·L)N 2(N·L)N - L (N·L)N
Programmazione Grafica aa2005/ Il metodo di Blinn È il metodo adottato in OpenGL e in Direct3D. Occorre ricordare che quando l’angolo è maggiore di /2 (90°) non c’è riflessione
Programmazione Grafica aa2005/ Sorgenti di luce estese: modello di Warn Si possono trattare sorgenti di luce non puntiformi (direzionali) e a distanza d (luci di Warn - spot): con angolo solido di emissione
Programmazione Grafica aa2005/ Con luce ambiente Senza luce ambiente
Programmazione Grafica aa2005/ Il modello completo Il termine k att tiene conto dell’attenuazione della propagazione della luce nell’atmosfera rispetto alla sorgente l-esima con: k att = max ( 1/(a+bd+cd 2 ) ; 1) invece del più semplice 1/d 2 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
Programmazione Grafica aa2005/ Limiti del modello locale illustrato Ma l’intensità I della luce che cosa è: (Intensità 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