IR(3): Illuminazione Globale Alessandro Martinelli alessandro.martinelli@unipv.it 21 Dicembre 2011 IR(3): Illuminazione Globale Illuminazione e Rendering: Principi di Illuminazione Rendering Real-Time Illuminazione Globale Grafica 3D e Simulazioni Visuali
Equazione di Rendering IR(3): Illuminazione Globale Illuminazione e Rendering: Principi di Illuminazione Rendering Real-Time Illuminazione Globale L Equazione di Rendering Algoritmi di Illuminazione Globale A. Martinelli () Illuminazione Globale 21/12/2011 2 / 14
Equazione di Rendering L Equazione di Rendering (1/3) Si considera un intero scenario tridimensionale: Funzione Radianza La funzione Radianza L(X, Y) fornisce il valore di Radianza nella direzione che va da X ad Y, dove X e Y sono due punti qualsiasi dello scenario tridimensionale. La Funzione Radianza ci dice che cosa vediamo da un punto qualsiasi Y di una scena tridimensionale. Funzione BRDF di scena La funzione Radianza f(v XY,l XZ ) = f(x,y,z) rappresenta la funzione BRDF nel punto X per qualsiasi punto (significativo) di uno scenario tridimensionale, dove v XY è la direzione che dal punto X va al punto Y e l XZ è la direzione che dal punto X va al punto Z. In un punto qualsiasi dello scenario 3D la BRDF viene definita come: f(x,y,z) = dl(x,y) de (X,Z) (1) A. Martinelli () Illuminazione Globale 21/12/2011 3 / 14
Equazione di Rendering L Equazione di Rendering (2/3) Dal modello della BRDF: Ricordiamo inoltre che: dl(x,y) = f(x,y,z)de (X,Z) (2) de (X,Z) = cos(β XZ )L(Z,X)dω (3) Dove β XZ è l angolo che la Normale alla superficie in X ha con la direzione che da X va a Z Da cui: dl(x,y) = f(x,y,z)cos(β XZ )L(Z,X)dω (4) La Funzione Radianza è la soluzione dell Equazione di Rendering (Kajiya a+b???? 1986) : L(X,Y) = f(x,y,z)cos(β XZ )L(Z,X)dω (5) Ω Dove Ω rappresenta l intevallo massimo di angolo solido [0, 4π] A. Martinelli () Illuminazione Globale 21/12/2011 4 / 14
Equazione di Rendering L Equazione di Rendering (3/3) E un equazione differenziale L Equazione di Rendering: Serve per la valutazione della Funzione Radianza... Che si trova sia a sinistra che a destra all interno dell integrale. Con poche eccezioni, non avrà mai soluzione analitica. A. Martinelli () Illuminazione Globale 21/12/2011 5 / 14
Equazione di Rendering Illuminazione Globale Illuminazione Globale Con Illuminazione Globale ci si riferisce ad algoritmi che valutano una stima della Funzione Radianza. Questi algoritmi devono essere generali, nel senso che devono funzionare data la descrizione di uno scenario qualsiasi. Tra questi: Ray-Tracing (trattato al corso) Generico Path-Tracing (trattato al corso) Radiosity (trattato al corso) Photon Mapping Precomputed Radiance Transfer Irradiance Maps Caustics Maps etc. A. Martinelli () Illuminazione Globale 21/12/2011 6 / 14
IR(3): Illuminazione Globale Illuminazione e Rendering: Principi di Illuminazione Rendering Real-Time Illuminazione Globale L Equazione di Rendering Algoritmi di Illuminazione Globale A. Martinelli () Illuminazione Globale 21/12/2011 7 / 14
Ray Casting Fuoco pixel pixel intersezione intersezione Il Ray Casting è un Algoritmo di Digitalizzazione alternativo a quelli già incontrati nella pipeline di Rendering: E dato un fuoco E dato un modello di come l immagine da disegnare è collocata nello stazio. I pixel sono dei rettangoli nello spazio 3D. E dato un intero scenario 3D Si calcola la semi-retta che parte dal fuoco e passa per il centro di ogni Pixel Si trova la più vicina di tutte le possibili intersezioni con oggetti della scena della retta individuata. L intersezione dice ciò che io vedo dal fuoco attraverso ognuno dei pixel dell immagine. Il colore dell oggetto individuato nel punto individuato è usato per colorare il pixel. A. Martinelli () Illuminazione Globale 21/12/2011 8 / 14
Ray Tracing (1/2) Il Ray Tracing generalizza il Ray Casting. Una libreria software per il ray casting mi consente di calcolare le intersezioni retta-oggetto. Trovata l intersezione con l oggetto è possibile generare nuovi raggi di luce. Direzione Raggio riflesso Raggio Rifratto Raggio che va verso un punto luce e verifica se ci sono oggi che fanno ombra BRDF(valutazione) Fuoco intersezione intersezione I raggi rifratti o riflessi possono raggiungere altri oggetti ed essere ulteriormente suddivisi. Il Ray Tracing riesce a stimare il comportamente di una parte della Funzione Radianza, quando le BRDF sono di tipo Lambertiano, o tengano conto degli effetti di Riflessione Superficiali, ma è meno adatto per BRDF più generali che contengano ad esempio modelli a microfacce. A. Martinelli () Illuminazione Globale 21/12/2011 9 / 14
Ray Tracing (2/2) immagini generate con l applicazione Open Source PoV-Ray (PoV:Persistence of Vision) www.povray.org A. Martinelli () Illuminazione Globale 21/12/2011 10 / 14
Integrazione di Monte-Carlo e Path-Tracing (1/2) Integrazione di Monte Carlo L Integrazione di Monte Carlo è una soluzione numerica di valenza generale per il calcolo di integrali, che si basa sull utilizzo di campioni disposti in modo casuale. Esempio(Integrazione di Monte Carlo) E data la funzione f(x) e si vuole calcolare l integrale di f(x) in [x A,x B ]. a+b???? Viene estratto un vettore di N valori casuali x i, tale che x A x 1,x 2...x N x B L integrale è approssimabile come: ( xb N ) f(x)dx (x B x A ) = f(x i ) x A N 1 (6) Perchè gli Integrali alla MonteCarlo? Perchè esistono circostanze in cui un integratore casuale da risultati preferibili ad un integratore a passo fisso (es. integrazione del punto medio)....ed il nostro è uno di questi casi A. Martinelli () Illuminazione Globale 21/12/2011 11 / 14
Integrazione di Monte-Carlo e Path-Tracing (2/2) Path-Tracing Estremizzazione del concetto di Ray-Tracing. Tecnicamente: la soluzione più generale nota nel caso in cui le BRDF di una scena sono qualsiasi. Approsima l Equazione di Rendering usando l integrazione di Monte-Carlo. Come si fa a fare un Integrale di Monte Carlo sull Equazione di Rendering?... quando si deve calcolare L(X,Y) = Ω f(x,y,z)cos(β XZ)L(Z,X)dω si tracciano i raggi di luce verso un numero molto grande (1000,10000...) di possibili punti Z. A. Martinelli () Illuminazione Globale 21/12/2011 12 / 14
Radiosity (1/2) L Algoritmo di Radiosity (Emittanza...) si basa sull ipotesi che tutte le superfici siano dotate di una BRDF puramente diffusa. In questo caso: L = c diffe (7) π Dove E è l irradianza totale che cade sulla superficie, c diff è il coefficiente di riflessione diffusa, L è l irradianza che dal punto superficiale va in una qualsiasi direzione. Ipotiziamo una scena costituita da un numero finito N di poligoni (triangoli): Ad ogni coppia di poligoni è associato un fattore G ij, detto fattore geometrico, che definisce quanta della radianza uscente dal poligono i va a cadere sul poligono j. Anzichè calcolare la Funzione Radianza, si calcola il valore di Emittanza (Radiosity) in uscita da ogni triangolo. Con queste considerazioni l equazione di rendering... si riduce ad un sistema lineare di N equazioni (che descrivono il comportamento della luce sopra ad un poligono) per N incognite (il valore di Radiosity di ogni poligono). A. Martinelli () Illuminazione Globale 21/12/2011 13 / 14
Radiosity (2/2) L algoritmo di Radiosity riesce a valutare con estrema precisione l Equazione di Rendering quando le BRDF sono puramente diffuse, mentre risulta approssimativo nel caso di BRDF con valori significativi di riflessione. immagini generate con l application Open Sourve PoV-Ray (PoV:Persistence of Vision) www.povray.org A. Martinelli () Illuminazione Globale 21/12/2011 14 / 14