Modelli di illuminazione Tesina realizzata per il corso di Algoritmi della Visualizzazione, AA 2004-2005 Luca Pastorello <[email protected]> Introduzione Per produrre scenari altamente realistici tramite il computer è necessario simulare accuratamente il processo d’illuminazione naturale piuttosto che generare solo un’illusione di realismo. La simulazione dell’illuminazione richiede un modello che abbia solide basi fisiche. Lo scopo di questa tesina è quello di mettere a confronto i vari modelli di illuminazione che sono stati sviluppati nel corso degli anni, partendo dal primo modello di Wylie fino ad arrivare alle ultime soluzioni. Come viene illuminato un oggetto Un modello di illuminazione prende in considerazione due tipi di sorgenti luminose in una scena: una luce puntiforme (un raggio emanato in un singolo punto) e la luce d’ambiente. Queste sorgenti illuminano le facce di un oggetto; una parte della luce viene riflessa e un’altra parte viene assorbita. La quantità totale di luce riflessa dipende dal tipo di materiale con cui è stata costruita la superficie. Materiali lisci rifletteranno di più mentre materiali ruvidi assorbiranno la maggior parte della luce. Alcuni materiali possono anche essere trasparenti, in modo che la luce li oltrepassi. Di solito l’attenzione in questi modelli viene concentrata solo sulla luce riflessa, una parte della quale è quella che raggiunge l’osservatore rendendo l’oggetto visibile. Generalmente si tratteranno due tipi riflessione: 1. Luce diffusa: Si manifesta quando una parte della luce incidente penetra lievemente nella superficie e viene ri-emessa uniformemente in tutte le direzioni. La luce diffusa interagisce fortemente con la superficie e viene influenzata dalla natura del materiale con cui è composta la superficie. 2. Riflessione Speculare: La luce incidente che non penetra nell’oggetto ma si riflette direttamente lungo la superficie esterna rendendola lucida. La luce riflessa specularmene ha lo stesso colore della luce incidente. La quantità di luce totale riflessa da una superficie in una certa direzione è pari alla somma della componente diffusa e quella speculare. Per ogni punto di interesse della superficie si calcola la somma totale di queste due componenti che raggiunge l’osservatore. Per calcolare il totale della luce riflessa abbiamo bisogno di tre valori: 1. La normale n alla superficie al punto p; 2. Il vettore v da p all’osservatore e; 3. i vettori s da p verso la sorgente luminosa. Vedremo in seguito i vari modelli che si sono sviluppati, partendo dai più semplici che non prendono in considerazione alcuni fattori, per poi passare a modelli più complessi. MODELLI DI ILLUMINAZIONE Modello di Wylie I modelli di illuminazione empirici sono modelli molto semplici che generano solo l’illusione di realismo. Uno dei primi modelli utilizzati per determinare la luminosità riflessa dagli oggetti presenti nelle immagini al computer fu proposto da Wylie nel 1967. Egli constatò che l’intensità luminosa di un punto della superficie di un oggetto era inversamente proporzionale alla distanza della sorgente di luce. La formula da lui proposta era: Ir = Iiβd Dove Ir è l’intensità della luce riflessa, Ii è l’intensità della luce incidente, d è la distanza dalla sorgente luminosa e β è una costante. Piani paralleli a distanze diverse da una sorgente luminosa vengono visualizzati con una luminosità differente, ma in questo modo non vengono evidenziate alcune proprietà come la riflessività e la ruvidezza delle superfici. Modelli come questi vengono utilizzati solamente in applicazioni che simulano gli effetti atmosferici come nebbia o foschia. Modello di lambert Per migliorare il modello di Wylie, deve essere preso in considerazione anche l’orientamento della superficie riflessiva rispetto alla sorgente luminosa. Il Modello sviluppato da Lambert risolve questo problema. Assumendo che la luce sia riflessa in maniera equa in ogni direzione, la luminosità in una data posizione della superficie è proporzionale al coseno dell’angolo tra la normale alla superficie N e il vettore luminoso L. In questo modo la legge di Lambert risulta: Ir = Ii Kd(N*L) Dove Kd è il coefficiente di diffusione della luminosità. Questo modello produce risultati ragionevoli, ma la maggior parte dei materiali reali è imperfetto e non si attiene a questa legge, di conseguenza alcune superfici non possono essere rappresentate al meglio. Ad ogni modo, una superficie diffusiva imperfetta può essere suddivisa in un certo numero di facce per simulare la ruvidezza del materiale tramite questo modello. Figura 1: Il Riflessione della luce nel modello di Lambert. Modello di Bouknight Nello scenario proposto da Lambert, solo la faccia esposta alla sorgente luminosa viene illuminata. Nel mondo reale, la luce riflessa dalle altre superfici illuminano le facce di un oggetto da ogni direzione, facendo si che tutte le facce siano visibili. Bouknight utilizzò la luce d’ambiente unita al modello di Lambert per sviluppare un nuovo modello nel 1970. La luce d’ambiente in questo modello è un’approssimazione dell’illuminazione di fondo della scena. Il modello proposto può essere descritto come: Ir = IaKa + Kd(N*L) Dove Ia è l’intensità della luce d’ambiente e Ka è il coefficiente di riflessione ambientale. In definitiva l’inclusione di un termine che rappresenta la luce ambientale nel modello di Bouknight fa si che le scene illuminate da una sola sorgente luminosa abbiano un alto grado di realismo rispetto ai modelli precedenti. Comunque resta il fatto che il modello sia limitato dall’impossibilità di rappresentare superfici lucide. Figura 2: Limitazione del modello di Lambert risolta nel modello di Bouknight. Modello di Phong Nel 1975, Bui Tuong Phong introdusse un modello disegnato per rappresentare le riflessioni provenienti da superfici lisce. Il modello conteneva una combinazione lineare di una componente diffusa, una componente ambientale e una componente speculare empirica. Phong assume che la luce viaggiando dalla direzione L sia riflessa lungo il vettore R, come si può vedere in figura 3. Se il vettore dell’osservatore V è uguale al vettore riflessione R la luce riflessa sarà molto intensa e darà luogo a un bagliore, mentre se V si allontana da R, l’intensità della luce inizierà a decadere. Phong rappresentò questo valore come (R*V)n, dove n è l’indice speculare, che è posto ad infinito per un materiale perfettamente riflettente, nella figura 4 si può vedere l’effetto prodotto aumentando il valore di n. Il modello di Phong è descritto dalla seguente equazione: Ir = Iaka + Ii( kd(N*L) + ks(R*V)n) Dove ks è il coefficiente di riflessione speculare. E’ da notare che il coefficiente di riflessione speculare è indipendente dalla lunghezza d’onda, il che significa che i bagliori speculari sono sempre dello stesso colore della sorgente luminosa. Questo comportamento non è accurato ma produce comunque buoni risultati. Il problema principale del modello di Phong è che non considera le variazioni del picco speculare rispetto alla posizione della sorgente luminosa. Questo significa che la sorgente luminosa e l’osservatore sono posti a distanza infinita dall’oggetto. Anche la distribuzione dell’intensità della sorgente luminosa è stata ignorata. Questo modello è comunque usato largamente in grafica in quanto produce risultati ragionevoli e richiede un tempo di elaborazione relativamente breve se comparato con altri modelli. Il modello di Phong può anche essere integrato nell’hardware di una macchina, riducendo così di molto il tempo di esecuzione. Figura 3: Riflessione della luce nel modello di Phong. Figura 4: Effetto prodotto aumentando il valore dell’indice di riflessione nell’equazione del modello di Phong. Prime conclusioni Fino a questo punto, sono stati presentati diversi modelli di illuminazione, ognuno dei quali produce buoni risultati per alcune superfici con un tipo specifico di illuminazione. Il modello di Bouknight e tutti quelli successivi che includono la luce d’ambiente, sono buoni per rappresentare superfici illuminate da una singola sorgente puntiforme. Ad ogni modo, il modello di Phong produce buoni risultati per superfici lisce illuminate da una sorgente luminosa posta a distanza infinita. Modello PHIGS Durante gli anni ’80, fu sviluppato il sistema grafico gerarchico interattivo per programmatori (Programmer’s Hierarchical Interactive Graphics System, PHIGS). Per la prima volta, tipi differenti di luci vennero introdotte nel modello. Le sorgenti luminose potevano essere ambientali, direzionali, posizionali oppure orientate, come mostrato in figura 5. Nel mondo reale, la luce è diffusa sui contorni di un oggetto, in modo che l’oggetto sia illuminato indipendentemente dalla sua posizione. Per approssimare un comportamento del genere, il modello PHIGS modella la luce d’ambiente come una costante, diffondendola su tutti i lati dell’oggetto. La luce ambientale ha un’intensità definita da una tripletta RGB e quindi può essere di qualsiasi colore. Le sorgenti luminose direzionali hanno un colore e una direzione. La luce viene indirizzata in una direzione specifica, e finché la sua distanza dall’oggetto viene considerata infinita, la direzione è la stessa per tutti gli oggetti, senza prendere in considerazione la loro posizione. Il terzo tipo di luce introdotto da PHIGS è la luce posizionale. Questa è una luce puntiforme i cui raggi viaggiano in tutte le direzioni. I raggi che provengono da questo tipo di luce non sono paralleli, e quindi la posizione di un oggetto relativamente alla sorgente di luce influenza l’angolo con cui la luce colpisce la sua superficie. Per definire una sorgente luminosa puntiforme, si deve fornire una posizione, un’intensità e due coefficienti di attenuazione. Questi coefficienti descrivono in che modo la luminosità decade allontanandosi dalla sorgente e possono quindi essere usati per rappresentare effetti di nebbia o foschia. L’ultimo tipo di sorgente luminosa nel modello PHIGS è la luce orientata. Questa è una luce puntiforme con un cono di influenza, al di fuori del quale non vi è emissione di luce, come si può vedere in figura 6. Figura 5: Tipi di illuminazione introdotti nel modello PHIGS Figura 6: il cono di illuminazione di una luce orientata (spot light) Modello di Illuminazione in PHIGS Per standardizzare i modelli di illuminazione già esistenti, PHIGS li combina in un set di equazioni. Il modello di PHIGS può essere espresso in questa maniera: Dove Ia è il contributo della sorgente luminosa d’ambiente, Id è il contributo della sorgente luminosa diffusa, Is è il contributo della sorgente luminosa speculare e n è il numero totale delle sorgenti luminose attive. I contributi delle luci d’ambiente, quelle diffuse e quelle speculari sono: Ia = KaLcOd Id = KdLcOd( 1 + La((Ld*(-L))Le))(N*L) Is = KsLcOs( 1 + La((Ld*(-L))Le))(V*R)Oe Dove: Ld è il vettore luce L è la posizione della luce Od è il colore diffuso dell’oggetto Oe è l’esponente speculare. Lc è il colore della sorgente luminosa. Le è l’esponente della concentrazione luminosa Os è il colore speculare dell’oggetto. Biografia Maggie Johnson: Illumination Models, CS 148, cap. 15. Eric P. Lafortune, Yves D.Willems: Report CW 197, The Modified Phong reflectance model, cap 3, Novembre 1994. Dean Gammage: A comparsion of Physically and Empirically Based Illumination models, Cap. 2, 3, 4, Ottobre 1993. Daniele Marini, Maresa Bertolo, Alessandro Rizzi: Comunicazione visiva digitale, Modelli di illuminazione, pp 254-261.