Modelli di Illuminazione Modelli locali Corso Di Programmazione Grafica Modelli di Illuminazione 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
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
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 Distant light Warn light
Sorgenti di luce Il colore è descritto con tre componenti di intensità (vettore): I=[IR, IG, IB] Luce ambiente, idem: Ia=[Ia,R , Ia,G , Ia,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
Tipi di sorgenti Sorgente puntiforme Sorgente estesa e penombra
Sorgente spot Spot 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 l’inverso del quadrato della distanza
Riassumendo
Modelli locali Lambert: Phong: Componente luce ambiente Riflessione diffusa Phong: Riflessione speculare imperfetta Componente luce ambiente Sorgenti di luce Trasparenza
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
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)
Riflessione di Lambert Una superficie viene detta diffusiva o lambertiana se rispetta la legge di Lambert (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 quindi dai tre valori (kd,R kd,G kd,B)
Lambert+Luce ambiente Una sorgente p sorgenti puntiformi (θl = angolo con la sorgente l-esima) Ripetuta 3 volte per R, G e B
Modello di Phong (1975) Calcola anche la riflessione speculare imperfetta considerando la posizione dell’osservatore La luce riflessa è data dalla somma di 3 componenti: Riflessione lambertiana Riflessione speculare imperfetta Luce ambientale
Modello di Phong riflessione lambertiana riflessione speculare imperf. luce ambientale
Modello di Phong I parametri sono: kd: coefficiente di riflessione diffusa 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 ambiente dipende anche dall’interfaccia del software….
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 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)
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
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
L’andamento del coseno
Modifica del modello di Phong: Blinn 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. 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
Il calcolo di R Si può calcolare come: R = 2(N·L)N - L N 2(N·L)N - L
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 estese e spot: modello di Warn Si possono trattare sorgenti di luce non puntiformi (direzionali) e a distanza d (luci di Warn - spot): con f 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 è: (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