Modelli di Illuminazione Daniele Marini
Obiettivo Visualizzare scene cercando di simulare al meglio la realtà Interazione luce-materiali Modellare le sorgenti di luce Modellare l’apparenza visiva dei materiali Calcolare l’interazione
Distinguiamo tra modelli di illuminazione globali e locali I modelli locali trattano l’interazione luce materiali localmente, senza considerare il contributo di luce prodotto dall’ambiente I modelli globali tengono conto dell’intero ambiente. I modelli locali sono in generale dipendenti dal punto di vista, quelli globali sono “view independent”
I modelli di illuminazione locali considerano: sorgenti di luce puntiforme all’infinito illuminazione ambiente costante riflessione diffusiva o speculare approssimata 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
Interazione luce-superfici
Interazione luce - superfici a) speculare b) diffusiva c) trasparente
Sorgenti di Luce sorgente estesa (lampadina): Funzione di illuminazione I(x,y,z, u, f, l) il contributo totale sulla superficie si ottiene integrando nello spazio
Sorgenti di luce sorgenti colorate descritte con tre componenti di luminanza (vettore): I=[Ir, Ig, Ib] Luce ambiente, idem: Ia=[Iar, Iag, Iab] in generale l’energia che giunge da una sorgente a un punto è inversamente proporzionale al quadrato della distanza
sorgente puntiforme sorgente estesa e penombra
spot light
Sorgenti all’infinito chiamate distant light sources per sorgenti al finito la posizione si dà in coordinate omogenee: ps=[x, y, z, 1] per sorgenti all’infinito: ps=[x, y, z, 0]
Modelli locali Lambert Componente luce ambiente Riflessione imperfetta Riflessione speculare Sorgenti di luce Trasparenza
La geometria dei modelli locali n normale alla sup. in p v direzione da p a COP l direzione da p a sorgente di luce (se estesa è un punto su essa r direzione di riflessione calcolata da n e l
Riflessione nei modelli locali La riflessione è di tre tipi. Dato: N normale alla superficie, L direzione luce incidente, R direzione luce riflessa: 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 al limite dell’angolo solido (bagliori, highlight) riflessione diffusiva: costante in tutte le direzioni, ma funzione di L.N
Riflessione di Lambert (diffusiva)
Luce ambiente una sorgente più sorgenti
Modello di Phong (1973) Ii intensità luce incidente n coefficiente di lucentezza (shininess)
ks crescente n cresc.
Estensioni del modello di Phong per semplificare il calcolo di R si usa H=(L+V)/2, l’eq diventa: per il colore si trattano le 3 equazioni separatamente per R,G e B si possono trattare sorgenti di luce non puntiformi e a distanza r (luci di Warn): con f angolo solido di emissione
Luci di Warn
Con luce ambiente
Il modello completo il termine katt tiene conto dell’attenuazione con la: 1/(a+bd+cd2)
Limiti del modello Il modello simula oggetti di plastica, ceramica o simili: Strato esterno - riflessione speculare Strato interno - riflessione diffusiva
Calcoli sui vettori Vettore normale equazione del piano: ax+by+cz+d=0; si può anche scrivere come luogo: e p è un qualunque punto nel piano; il vettore n è dato da:
In generale possiamo partire da tre punti non allineati: p0, p1, p2 con i quali determiniamo il piano (superfici approssimate con poliedri triangolarizzati). Le differenze p2 - p0 e p1 - p0 sono coplanari e il loro prodotto dà la normale: n = (p2 - p0) x (p1 - p0) L’ordine è rilevante
Per il calcolo di normali di superfici curve dipende da come la superficie è rappresentata, ma in generale si stima un gradiente. Es. sfera - equazione f(x,y,z): x2 + y2 + z2 -1=0 In forma vettoriale: f(p): p.p -1 = 0 Il vettore gradiente è dato da:
Se la sfera è rappresentata in forma parametrica il metodo di calcolo cambia: La normale si può ricavare dal piano tangente in p:
Individuano due vettori tangenti il cui prodotto vettore individua la normale - poiché ci interessa solo la direzione si può dividere per cos(u) ottenendo un vettore unitario
Calcolare l’angolo di riflessione Specchio ideale: angolo di incidenza e angolo di riflessione sono uguali: in 3d il vettore riflesso può avere ogni direzione però vettore incidente, vettore riflesso e normale sono coplanari
Il calcolo di r si può calcolare come: r = 2(n.l)n - l n l 2(n.l)n - l
Un metodo alternativo usando il semi angolo, si calcola il semivettore normalizzato h tra l e v h=(l+v)/||l+v|| y è l’angolo tra n e h; h èla normale al punto quando la sorgente è opposta a v: qui la riflessione è massima. Quindi n.h si comporta come l’angolo f : è una approssimazione. Ma l’angolo decresce più rapidamente, quindi si usa un eseponente più piccolo q f
Il metodo del semiangolo è il metodo adottato in Ogl e in Direct3D. occorre ricordare che quando l’angolo è maggiore di p/2 non c’è riflessione