Informatica Grafica a.a DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Ray Tracing Prof. Roberto Pirrone 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Sommario Generalità Algoritmo di Whitted Tecniche di ottimizzazione dellalgoritmo Item buffers Mappe di riflessione Controllo adattivo della profondità di ricorsione Light buffers Ray space subdivision Gestione antialiasing Tecniche UAS Ray tracing stocastico Path ray tracing Distributed ray tracing Two-pass ray tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Generalità sul ray tracing Il ray tracing (Whitted 1980) è un algoritmo ricorsivo che valuta come un raggio propagato attraverso un pixel si riflette e/o trasmette attraverso tutti gli oggetti della scena. Un punto è illuminato con un modello che estende la classica equazione di illuminamento al contributo, valutato ricorsivamente, dei raggi riflessi dalle superfici circostanti e di quelli trasmessi attraverso superfici trasparenti che stano davanti al punto. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Albero di ray-tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Traccia dellalgoritmo 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Traccia dellalgoritmo 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Traccia dellalgoritmo 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Esempio di Ray tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Esempio di Ray tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Esempio di Ray tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Esempio di Ray tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Esempio di Ray tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Esempio di Ray tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Esempio di Ray tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Esempio di Ray tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Esempio di Ray tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Tecniche di ottimizzazione del ray-tracing Onere computazionale per lalbero relativo ad un pixel con profondità n ed m sorgenti luminose: 2 n -1 raggi riflessi e rifratti m(2 n -1) raggi ombra Si rendono necessarie delle tecniche di riduzione dellonere computazionale. Item buffers Mappe di riflessione Controllo adattativo della profondità Light buffers Ray space subdivision 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Item buffers Weghorst, Hooper & Greenberg (1984) Lo item buffer è una lista di visibiltà degli oggetti per il percorso di un dato raggio, ottenuta con un algoritmo DSV, tipicamente lo z-buffer. Ad ogni pixel viene memorizzato loggetto più vicino che è, poi, lunico usato per il calcolo dellintersezione con il raggio primario dal punto di vista. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Mappe di riflessione Hall (1986) La mappa di riflessione viene utilizzata per quegli oggetti, non direttamente visibili dallosservatore, che danno contributo alla riflessione globale sulla superficie del punto considerato. La mappa viene usata solo per gli oggetti la cui dimensione, vista dal punto che deve essere reso, è inferiore ad una certa soglia: tipicamente si usa langolo solido sotteso da un oggetto rispetto al punto da rendere. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Controllo adattativo della profondità Hall (1983) Si assume che i raggi secondari abbiano intensità normalizzata unitaria e si calcola, di volta in volta, il contributo combinato dei raggi riflessi, al crescere della profondità dellalbero: Quando questo contributo va al di sotto di una certa soglia, si blocca la ricorsione. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Light Buffers Per ogni sorgente luminosa si definisce una griglia cubica che delimita vari fasci piramidali di raggi (light buffers). Si effettua un depth sort per tutti i poligoni che hanno intersezione non vuota con un fascio di emissione La lista ordinata si usa per vedere se effettivamente un punto colpito da un raggio è in ombra rispetto alla sorgente. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Ray space subdivision Arvo & Kirk (1987) È molto simile alluso dei light buffers e usa lo stesso strumento computazionale: il direction cube. Viene introdotto il concetto di beam: cioè una piramide di raggi con vertice in un punto (x,y,z) interno al direction cube, definita dalla particolare cella del cubo da cui i raggi sono emessi. I raggi sono definiti in 5 dimensioni dalle coordinate (x,y,z,u,v) in cui (x,y,z) definiscono le coordinate dellorigine del raggio, mentre (u,v) sono le coordinate del pixel della faccia da cui il raggio si propaga. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Ray space subdivision Un raggio contiene anche unetichetta che individua la faccia da cui esce. Lalgoritmo lavora direttamente in uno spazio a 5 dimensioni in cui un raggio è solo un punto. Per ogni faccia del cubo di direzioni viene creato un iper-cubo di raggi che viene suddiviso con un iper- octree, cioè un albero di partizione dello spazio in 5D, in base alla sua occupazione da parte dei vari oggeti della scena. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Ray space subdivision A partire dalla suddivisione dello spazio si costruiscono delle liste di oggetti candidati allintersezione con i beam determinati per una certa faccia del direction cube. La comodità dellapproccio è che in 5D i beam non si intersecano, mentre le piramidi che questi definiscono in 3D si sovrappongono. Quindi in 5D lo spazio si può suddividere usando una tecnica di partizione binaria. Per contro, bisogna effettuare la determinazione degli oggetti candidati in 3D intersecandoli con i volumi poliedrici dei beam. Per ridurre lonere computazionale i beam sono approssimati con coni e vengono confrontati con le sfere includenti gli oggetti. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Gestione del anti-aliasing Il problema del aliasing nel ray-tracing deriva principalmente dal fatto che da ogni pixel si proietta un solo raggio. Esistono due approcci alla gestione del anti- aliasing: Tecniche di tracciamento di fasci di raggi per ogni pixel (che ottengono un anti-aliasing UAS) Tecniche statistiche di campionamento dei pixel (che risolvono anche problematiche, come la resa della penombra, della profondità di campo e così via) 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Beam tracing Heckbert & Hanrahan (1984) Questo approccio usa la coerenza di raggi vicini cioè il fatto che un raggio e tutti i suoi vicini seguiranno lo stesso cammino ed avranno intersezione con gli stessi poligoni Si insegue il percorso di un beam, definito inizialmente come lintero volume di vista, e tracciato con un algoritmo ricorsivo. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Beam tracing I poligoni della scena vengono ordinati secondo un criterio di profondità. Ad ogni intersezione con un poligono si sottrae dal beam la porzione che interseca il poligono usando lalgoritmo di Weiler- Atherton. Viene così generato un albero di intersezioni. Le sezioni dei beam possono divenire concave, disconnesse o avere buchi. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Beam Tracing Ad ogni intersezione si generano ricorsivamente il beam riflesso e quello rifratto. La direzione del beam rifratto è approssimata linearmente anche se langolo di rifrazione varia spazialmente in modo non lineare. I nuovi beam avranno la sezione trasversale del poligono sottratto. Ogni rifrazione/riflessione avviene in coordinate locali del beam (la sez. trasversale è ortogonale allasse z). Si usa Atherton-Weiler-Greenberg per le ombre. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Pencil tracing Shinya & Takahashi (1987) Variante del metodo precedente in cui si considera un pencil come un raggio di riferimento (raggio assiale) ed un insieme di raggi vicini (raggi parassiali). Un raggio parassiale è definito in 4D, rispetto al raggio assiale, come lintersezione con un piano ortogonale al raggio assiale più la direzione del raggio parassiale stesso. Fintanto che langolo di apertura del pencil si mantiene piccolo, le trasformazioni dal raggio assiale a quelli parassiali sono lineari e definite da matrici 4x4 che possono essere usate per il tracciamento dei raggi parassiali. E fornita anche una tecnica di stima dellerrore commesso e di vincolo sullangolo di apertura del pencil. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Tecniche stocastiche Le tecniche stocastiche partono dallassunto che laliasing può essere ridotto attraverso un sovra-campionamento probabilistico, e quindi non regolare del pixel attraverso i raggi che passano per esso. In questo modo gli artefatti regolari prodotti dallaliasing vengono sostituiti da rumore, meno percepibile dallocchio, che contribuisce alla determinazione di contorni netti. Tali tecniche consentono, inoltre, di integrare in un unico approccio una serie di interessanti effetti, quali la penombra. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Analisi di Monte Carlo Le tecniche stocastiche usano lanalisi di Monte Carlo per risolvere la forma più generale di equazione di illuminamento, detta equazione di rendering (Kajiya 1986): g(x,x): termine di visibilità, pari a 0 se i due punti sono occlusi, altrimenti 1/r 2 (r: distanza tra x e x) (x,x): intensità luminosa emessa da x verso x (x,x,x): intensità luminosa riflessa (in forma diffusa e speculare) dal punto x verso x che arriva dalla direzione del generico punto x 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Analisi di Monte Carlo Si consideri la valutazione di unintegrale: sia un generico campione e si valuti f( ), stimatore primario, la cui varianza è: Per N campioni, si può mostrare che la varianza dello stimatore secondario (migliore approssimazione dellintegrale) è: 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Campionamento stratificato Il campionamento stratificato è quello in cui i campioni sono presi su intervalli uniformemente distribuiti 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Campionamento per importanza Si usa la distribuzione di probabilità dei campioni per pesarne la posizione 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Path Ray Tracing Kajiya (1986) Lidea base è che lequazione di illuminamento usata da Whitted sia una semplificazione dellequazione di rendering in cui il termine integrale sia sostituito da unoperatore lineare M. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Path Ray tracing La formulazione precedente porta ad unanalisi di Monte Carlo in cui, per ogni pixel, vengono proiettati più raggi. Ogni raggio viene seguito nel suo percorso casuale di riflessioni e/o rifrazioni, nonché si considera, ad ogni intersezione, la componente di illuminamento ottenuta direttamente dalla(e) sorgente(i) luminosa(e). Il percorso termina ad una data profondità (la serie viene troncata con una certa approssimazione). Ad ogni intersezione lequazione computa tutto il contributo di riflessione diffusa, speculare e rifrazione. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Path Ray Tracing Ad ogni intersezione viene emesso un solo raggio attraverso una variabile statistica che che usa una distribuzione di probabilità basata sulla BRDF che è stata campionata attraverso i fasci di raggi emessi da ciascun pixel. (40 raggi/pixel che campionano la BRDF circa 20h per 512x512 pixel). 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Distributed Ray tracing Cook (1986) Il pixel viene suddiviso in una griglia di 4x4 areole e da ogni areola si proietta un raggio. La distribuzione dei raggi è affetta da jittering, cioè le posizioni dei raggi si discostano casualmente dai centri delle areole. Viene usata una distribuzione di Poisson in cui si fa in modo che i centri dei singoli raggi non siano più vicini di una soglia minima. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Distributed Ray tracing Modello di camera con apertura finita Profondità di campo Motion blur Campionamento stratificato per i raggi attraverso il pixel, sulla lente e sui punti della superficie luminosa Campionamento per importanza sui lobi di riflessione dei raggi sulle superfici. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Distributed Ray tracing Ogni raggio proveniente dalla i-esima areola del pixel mantiene lindice i per tutte le riflessioni durante il percorso cioè mantiene la sua posizione relativa ad ogni riflessione. Le funzioni di riflessione sono riportate in tabelle pre-calcolate in funzione dellindice del raggio e rispettano il campionamento per importanza per la distribuzione dei raggi emanati da un pixel. Le tabelle possono essere bidimensionali, indicizzate anche con langolo di incidenza per tener conto di funzioni di riflessione dipendenti da tale parametro. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Distributed Ray tracing Caratteristiche dellalgoritmo: La distribuzione stocastica dei raggi primari genera un comportamento anti-aliasing La distribuzione stocastica dei raggi riflessi consente di inserire eventuali sfocature nella riflessione La distribuzione stocastica dei raggi trasmessi consente di ottenere leffetto di materiale traslucido La distribuzione stocastica dei raggi dombra consente di generare le penombre La distribuzione stocastica delle origini dei raggi primari sulla lente consente di variare leffetto di profondità di campo. La distribuzione stocastica dei raggi nel tempo consente di ottenere il motion blur (si spaziano i raggi secondo la traiettoria delloggetto in movimento, addensandoli verso la posizione finale) 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Distributed Ray tracing Esempio di profondità di campoEsempio di motion blur 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Two Pass Ray Tracing Arvo (1986) Usato per ben simulare le chiazze intense di riflessione di una superficie speculare su una diffusa (caustics), quindi quando si hanno molti raggi secondo il percorso LSDE: Light- Specular-Diffuse-Eye. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Two Pass Ray Tracing Al primo passo si seguono le riflessioni dei raggi a partire dalla sorgente luminosa. Al momento di una riflessione su una superficie diffusa lenergia incidente viene accumulata su una light map che è, sostanzialmente, una mappa di riflessione indicizzata per mezzo del punto P di riflessione. Al secondo passo si seguono i raggi dal punto di vista e, quando un raggio incide su P, il suo contributo di illuminazione extra viene computato dalla mappa. Questa tecnica è lunica che consente di riprodurre i caustics: lalgoritmo convenzionale non peserebbe a sufficienza il contributo di riflessione speculare a partire dalla superficie matta verso quella riflettente. 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Two Pass Ray Tracing 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Two Pass Ray Tracing Ray tracing convenzionale 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Two Pass Ray Tracing Two Pass Ray tracing: 200 raggi emessi dalla sorgente 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Two Pass Ray Tracing Two Pass Ray tracing: 400 raggi emessi dalla sorgente 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Two Pass Ray Tracing Two Pass Ray tracing: 800 raggi emessi dalla sorgente 16 giugno 2011
Informatica Grafica a.a DICGIM – University of Palermo Two Pass Ray Tracing Two Pass Ray tracing: 1000 raggi emessi dalla sorgente 16 giugno 2011