Modelli Globali: Ray Tracing

Slides:



Advertisements
Presentazioni simili
Ombre e riflessioni in tempo reale
Advertisements

Lezioni di ottica R. Rolandi
LEZIONI DI OTTICA per le scuole medie Dott
Meccanica 2 1 marzo 2011 Cinematica in una dimensione
Ottica geometrica 1 18 gennaio 2013
Rendering È quel processo di creazione di un’immagine bidimensionale a partire da un modello tridimensionale Tale immagine deve tendere a rappresentare.
LEZIONI DI OTTICA.
Prova di recupero corso di Fisica 4/05/2004 Parte A
MODELLI LUCE.
Immagini reali e virtuali - miraggi
Sistemi Multimediali II Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2004/05 Lezione.
Computer Graphics Marco Tarini Università dellInsubria Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2006/07 Lezione.
Costruzione di Interfacce Lezione 15 Rendering Locale e Globale
Alberi di Ricorrenza Gli alberi di ricorrenza rappresentano un modo conveniente per visualizzare i passi di sostitu- zione necessari per risolvere una.
OTTICA: la luce Cos’è la luce? Due ipotesi:
Applicazioni progettuali di grafica computerizzata a.a. 2008/2009 Rendering grafico.
LA FISICA DELL’OCCHIO ILLUSTRATA DA SIMULAZIONI JAVA
FENOMENI INTERFERENZIALI
RIFLESSIONE E RIFRAZIONE DELLE ONDE E.M.
FENOMENI DIFFRATTIVI •Il principio di Huygens;
Architetture per la sintesi di immagini Daniele Marini Gennaio 2000.
1 Modelli di Illuminazione Daniele Marini. 2 Obiettivo Visualizzare scene cercando di simulare al meglio la realtà Interazione luce-materiali –Modellare.
Modelli Globali Daniele Marini.
1 Superfici nascoste Daniele Marini. 2 Ray casting adatto a CSG o superfici parametriche dipende dal punto di vista è una sorta di campionamento spaziale.
Smoothing Daniele Marini.
Il calcolo di radiosity
1 Effetti impressionistici Daniele Marini. 2 Tecniche discrete di manipolazione del frame buffer: –Texture mapping –Antialiasing –Compositing –Alpha blending.
1 Modelli Globali Radiosity Daniele Marini. 2 Radiosity Bilancio radiativo in un ambiente chiuso (senza scambio di energia con lesterno) Indipendente.
Infomatica Grafica a.a DICGIM – University of Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica Environment Mapping.
La polarizzazione e le lenti polarizzate
Determinazione delle superfici visibili
Illuminamento e Shading
Modelli d’illuminazione locale radiometrici
Scuola Secondaria di 1° grado Mario Zippilli via De Vincentiis, 2 TERAMO Anno scolastico 2009/2010 Programma Nazionale Scuole Aperte AREA TEMATICA Potenziamento.
Modelli di Illuminazione 1- Modelli locali
Modelli di riflessione della luce
Effetti fotorealistici
LA NATURA DELLA LUCE Di Claudia Monte.
Modelli Globali: Ray Tracing
Davide Gadia Davide Selmo
Modelli Globali e metodo di Radiosity
Daniele Marini, Maurizio Rossi
Texturing - Tessiture Daniele Marini.
Le ombre proiettate Daniele Marini.
Dal modello alla visualizzazione: Verso il foto realismo Daniele Marini.
Corso Di Programmazione Grafica
Superfici nascoste Daniele Marini.
Modelli Globali: il metodo di Radiosity
Modelli di Illuminazione
Intersezioni e distanze
Intersezioni e distanze
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2006/2007.
Collisioni Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Ombre e riflessioni in tempo reale Daniele Marini Parzialmente tratte de: Haines-M ö ller Corso di Programmazione Grafica aa2005/2006.
Intersezioni e distanze Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Collisioni Corso di Programmazione Grafica e Laboratorio Daniele Marini.
Modelli di Illuminazione Modelli locali
Collisioni Daniele Marini Corso di Programmazione Grafica per il Tempo Reale.
Training Course on Architectural Heritage Conservation
L'ottica studia i fenomeni luminosi.
La propagazione della luce
OTTICA Ottica geometrica Ottica fisica Progetto Lauree Scientifiche
Alcune esperienze di laboratorio sull’ottica geometrica
Prova di esame di Fisica 4 - A.A. 2006/7 I prova in itinere 30/3/07 COGNOME…………..……………………… NOME. …………… ……… ) Un raggio di luce monocromatica.
1 Smoothing Daniele Marini. 2 Calcoli sui vettori Vettore normale equazione del piano: ax+by+cz+d=0; si può anche scrivere come luogo: e p è un qualunque.
Prova di esame di Fisica 4 - A.A. 2009/10 I appello febbraio 8/2/15 COGNOME…………..……………………… NOME. …………… ……… ) Un prisma isoscele di vetro,
Campo Elettrico Definizione operativa di campo elettrico: Il vettore campo elettrico associato ad una determinata carica sorgente Q, posta in un.
Ottica geometrica. I raggi di luce Un raggio di luce è un fascio molto ristretto che può essere approssimato da una linea sottile. In un mezzo omogeneo,
Transcript della presentazione:

Modelli Globali: Ray Tracing Daniele Marini

Modelli locali Non mi serve conoscere l’intera scena  l n r v Non mi serve conoscere l’intera scena La componente di luce ambiente è una approssimazione dell’illuminazione gobale Il modello di Phong descrive le superfici con effetti di lucentezza

Limiti dei modelli di illuminazione locale I modelli di illuminazione Flat, Gouraud, Phong, Cook-Torrance e He-Torrance forniscono una risposta approssimata al seguente quesito: nota la luce che arriva in un punto di una superficie quanto vale la luce che riflette sulla superficie? Il problema è analizzato a livello locale sulla superficie del materiale considerato e per questa ragione sono detti modelli di illuminazione locale Ma… da dove proviene la luce?

Limitazioni dei modelli locali Ombre portate: il modello locale non calcola le ombre Non riesco a rappresentare l’effetto che il colore di una superficie ha sulle superfici adiacenti (inter-riflessione)

Cosa vogliamo ottenere ? Il calcolo delle ombre La riflessione speculare di radiazioni tra gli oggetti Nei modelli locali la riflessione è solo tra superficie e sorgente di illuminazione La riflessione diffusiva tra gli oggetti nella scena (inter-riflessione)

Modelli globali La luce che giunge in un punto può originare da: Sorgenti luminose (illuminazione diretta) Riflessa e/o rifratta da altri oggetti (illuminazione indiretta, può contribuire dal 40 al 100% della illuminazione di un interno) Diffusa dall’atmosfera (illuminazione diffusa, generalmente ininfluente negli interni, importante negli esterni: luce del cielo)

Il rendering Osservazione: come può il modello di illuminazione locale quantificare la luce che arriva in un punto della superficie di altri oggetti? Lambert: considera solo la luce che arriva direttamente dalle sorgenti Gouraud e Phong oltre alla illuminazione diretta introduce un temine di luce ambientale costante che approssima sia l’illuminazione indiretta che quella diffusa

Modelli globali Un calcolo corretto delle componenti di illuminazione diretta e indiretta comporta una analisi della geometria e degli oggetti dell’ambiente considerato La soluzione a questo problema è data dai modelli di illuminazione globale: Ray tracing, Radiosity Rifrazione (Snell) e immagine riflessa nello specchio sono due esempi di effetti ottenibili grazie al calcolo del modello globale (ray tracing) Il calcolo del modello globale richiede tempo!

Modelli e metodi di rendering Nei metodi locali: modello di illuminazione + shading (+ smoothing) Metodi globali: modelli di illuminazione più accurati + rendering 2 metodi principali View dependent (Ray Tracing) View independent (Radiosity)

Dipendente dalla vista: Ray tracing Simula il percorso dei raggi luminosi Modello di illuminazione: Whitted = Phong + Estensioni ricorsive

Indipendente dalla vista: Radiosity Simula il bilancio energetico in un ambiente chiuso Modello locale Lambertiano + Estensioni

Equazione fondamentale del rendering Kajia 1986

Modello di Whitted: Ray Tracing È un modello ibrido, unisce aspetti locali (Phong) e globali (ricorsione) Il raggio che giunge al pixel nella direzione di COP è il risultato di: Raggio iniziale+ Raggio trasmesso ricorsivamente + Raggio riflesso ricorsivamente Metodo ricorsivo, albero delle riflessioni e trasmissioni multiple

Ray tracing Nel Ray tracing l’immagine viene ricostruita punto per punto partendo dal piano immagine e percorrendo i raggi di luce a ritroso seguendo le regole dell’ottica geometrica

Ray casting Raggi ombra (shadow) Specchi (mirror) Raggi trasmessi e riflessi

Raggi Eye Ni normale alla superficie Ri raggio riflesso T1 T3 Eye Eye L1 T3 R3 L3 L2 T1 R1 R2 Ni normale alla superficie Ri raggio riflesso Li raggio ombra Ti raggio trasmesso (rifratto) Cutler and Durand

Ray tracing Quando un raggio incontra un oggetto si applica il modello di illuminazione locale e il raggio viene propagato ricorsivamente in: Un raggio riflesso specularmente (se ks > 0), è così possibile vedere oggetti riflessi su altri Un raggio rifratto specularmente (se kt > 0), è così possibile vedere oggetti attraverso altri Tanti raggi diretti verso le sorgenti luminose per determinare se sono visibili direttamente, è così possibile calcolare le ombre

Ricorsione Quando termino? Profondità massima di ricorsione Mi fermo dopo aver generato un certo numero di raggi Soglia minima di contributo La soglia di contributo la posso anche valutare tenendo conto delle attenuazioni che il raggio di cui sto calcolando l’intensità corrente subirà “a ritroso” 0 ricorsione 1 ricorsione 2 ricorsione Cutler and Durand

Ray tracing Il processo ricorsivo termina: Se un raggio non colpisce nulla Dopo un certo numero massimo prestabilito di riflessioni/rifrazioni Limite del modello: non viene calcolata la luce che proviene per riflessione/trasmissione diffusa da altri oggetti e questa componente viene approssimata con un termine costante di luce ambientale

Ray tracing kt: coefficiente di trasmissione 0  kt  1 luce ambiente componente trasmessa ricorsiva componente riflessa ricorsiva modello di illuminazione applicato a ls sorgenti di illuminazione kt: coefficiente di trasmissione 0  kt  1 gj: funzione di occlusione rispetto alla j-esima sorgente di luce; gj=0 (ombra) gj=1 (non in ombra)

Ray Tracing Il modello di illuminazione globale aumenta il realismo nel calcolo della illuminazione solo Phong Phong + Ray tracing

Ray Tracing Il modello di illuminazione globale aumenta il realismo nel calcolo della illuminazione

Problemi I raggi sono tracciati da COP in direzione opposta alla propagazione della luce (backward Ray Tracing) La complessità dipende dall’efficienza della ricerca dell’intersezione (problema di search) Calcolo intersezioni critico !! Ottimizzazioni possibili: Bounding volumes Suddivisione uniforme dello spazio Parallelizzazione

Implementazione L’aspetto fondamentale dell’algoritmo è il calcolo dell’intersezione raggio-superficie, cioè quanto è efficiente il calcolo dell’intersezione tra un segmento 3D e una primitiva di modellazione La maggior parte del tempo di esecuzione di un ray tracer è nel calcolo delle intersezioni raggio-oggetti

Tracciare i raggi Il modello è la pinhole camera o: Origine (COP) f: Vettore al centro del piano di vista x, y: Coordinate sul piano di vista xres, yres: Dimensione del piano for (x= 0; x < xres; x++) for (y= 0; y < yres; y++) { d= f + 2(x/xres - 0.5)x + 2(y/yres - 0.5)y; d= d/|d|; // Normalize col= trace(o, d); write_pixel(x,y,col); } x y d f u o

Il calcolo delle intersezioni Intersezione raggio/sfera - soluzione algebrica Definiamo un raggio da COP al pixel sul piano immagine con l’equazione parametrica: Per t<0 i punti sul raggio sono dietro COP, t=0 va evitato per problemi numerici

Intersezione raggio/sfera Equazione sfera: Sostituire equazione raggio in equazione sfera e si risolve l’eq. di secondo grado rispetto a t

Intersezione raggio/sfera Equazione quadratica, 2 soluzioni: Se complesse non c’è intersezione Se reali ordinare le soluzioni t0 e t1: il minimo rappresenta la prima intersezione Il punto intersezione (xi,yi,zi) è: La normale alla superficie è:

Complessità del calcolo intersezione raggio/sfera Passi: Calcolare coefficiente eq. II grado: 8 + e -, 7 * Calcolo discriminante: 1-, 2*, 1= Determinazione intersezione minima, eventuale calcolo della seconda: 1-, 1*, 1 sqrt, 1=; eventuale seconda: 1-,1*, 1= Calcolo punto intersezione: 3+, 3* Calcolo normale al punto: 3-, 3* Totale: 17 + o – 17*, 1 sqrt, 3=

Intersezione raggio/sfera: soluzione geometrica Origine retta interna alla sfera? Calcola intersezione Se l’origine è esterna verifica direzione retta, se t è negativo la retta si allontana: no intersezione Trova distanza retta da centro t orig t orig

Intersezione raggio/sfera: soluzione geometrica Se la distanza retta-centro è minore del raggio della sfera calcola intersezione Numero operazioni totale: 16+ o - 13* 1 sqrt 3=

Raggio-piano Equazione del piano Equazione del raggio Calcolo il punto di intersezione Nell’esempio, se p0=(0,0) e d=(-1,1) risulta t=1 raggio d

Raggio-triangolo Equazione del triangolo c Equazione del triangolo Ho un sistema lineare in 3 equazioni e tre incognite p a b

Raggio-triangolo boolean RayTri(ray r, vec3 a, vec3 b, vec3 c, interval[t0, t1] compute t if(t<t0)or(t>t1) then return false compute γ if(γ<0)or(γ>1) then return false compute β if(β<0)or(β>1-γ) then return false return true

Problemi Ci possono essere problemi di precisione numerica Cutler and Durand

Costo computazionale Tecniche per velocizzare: L’algoritmo è computazionalmene oneroso Il costo dipende dall’enorme numero di test di intersezione tra raggio e superficie Tecniche per velocizzare: Implementazioni parallele in cui l’immagine da realizzare viene partizionata su più nodi di calcolo Adozione di opportune strutture dati: Bounding volume Suddivisione dello spazio

Bounding volume Per semplificare il test di intersezione, racchiudo l’oggetto con una superficie semplice Posso usare strutture gerarchiche ( Hierarchical bounding volumes) Quali tipi di volumi? I più usati sono le sfere o i box

Partizionamento dello spazio Partizionamento dello spazio in regioni non sovrapposte: Griglia uniforme Octree …

Griglia uniforme Viene fatto il test sulle primitive che sono all’interno dei voxel attraversati dal raggio Limitazioni: risoluzione costante, non si adatta alla scena

Octree Suddivisione non uniforme dello spazio Limitazioni: algoritmo di attraversamento più complesso

Altri effetti Ray tracing distribuito: Ray tracing a due passate: Motion blur Profondità di campo Ray tracing a due passate: Simula scattering della luce attraverso un mezzo (acqua, vetro) I passo: nella direzione della luce (forward ray tracing) II passo: dalla posizione occhio (backward ray tracing) Definizione spettrale delle sorgenti di luce Tessiture (superficiali e volumetriche)

Distributed ray tracing Le immagini prodotte con il ray tracing visto sino ad ora sono molto innaturali: Riflessioni speculari nette Ombre nette Seghettature

Distributed ray tracing E’una strategia di ray tracing che permette la simulazione di numerosi effetti mediante il tracciamento di più raggi: Riflessioni speculari sfumate (glossy) Traslucenza Penombra Profondità di campo Motion-blur

Ray tracing distribuito Ogni pixel viene sovracampionato, ad es. 3x3 volte Le posizioni dei pixel sovracampionati possono essere regolari o casuali (jittering) Il pixel assume un valore come media dei campioni Jittering consiste nel perturbare la posizione dei sovracampioni rispetto a una loro distribuzione regolare

Jittering Se i campioni sono prevalentemente al centro si ha rumore minimo ma alto aliasing Se i campioni sono meno concentrati al centro si ha meno aliasing e più rumore Si può predisporre una matrice di jitter con una distribuzione Gaussiana

Distributed ray tracing La soluzione dell’equazione del rendering richiede il calcolo di integrali Con il ray tracing discretizziamo l’integrale ad un solo punto Con il distributed ray tracing prevediamo più campioni

Ombra Il meccanismo del raggio ombra assume che la sorgente di luce sia puntiforme: assenza di penombra: un solo raggio produce ombre nette Cutler and Durand

Ombra La penombra la posso generare in un ray tracer “tradizionale” sostituendo la sorgente con N sorgenti puntiformi

Ombra Svantaggi: Aumento la complessità Ho ancora delle ombre nette nella penombra Soluzione: considero un insieme infinito di sorgenti che scelgo in modo casuale I(i,j) I(p) u v

Esempio

Aliasing Aliasing-> non ho abbastanza campioni Se considero un solo raggio per pixel ho delle seghettature (jaggies) per effetto della discretizzazione Andrew Zaferakis

Antialiasing Così come per le texture, la strategia di antialiasing si basa sulla media di punti adiacenti Se uso una griglia regolare posso avere artefatti, tipo pattern moirè                                Pixel Samples Sub-Pixel Samples Vince Scheib

Antialiasing Una tecnica usata è considerare più campioni distribuiti in modo non uniforme (random sampling o jittering) In pratica si evita il problema dei pattern, ma si aggiunge rumore

Riflessione glossy Potrei sparare molti raggi nelle riflessioni speculari per simulare la riflessione glossy l n r Gloss Traditional ray tracing is good at representing perfect reflecting surfaces, but poor at representing glossy or partially reflecting surfaces. Only when surfaces are perfect mirrors do the reflections look identical to the scene they are reflecting. More often surfaces are glossy and reflect a blurred image of the scene. This is due to the light scattering properties of the surface. Reflections in traditional ray tracing are always sharp, even partial reflections. Glossy surfaces are generated in distributed ray tracing by randomly distributing rays reflected by a surface. Instead of casting a single ray out in the reflecting direction, a packet of rays are sent out around the reflecting direction. The actual value of reflectance can be found by taking the statistical mean of the values returned by each of these rays. This method can also be used to generate specular highlights by using area light sources. If rays that reflect off a surface hit a light source, they will add to the specular component of the surface illumination. This can replace the specular component of the Phong model.

Jittering per motion blur Si può sovracampionare l’immagine temporalmente, usando matrice di jitter a istanti di tempo distinti La maggiore velocità di un oggetto esalta l’effetto mosso

Motion blur Cook, Porter, Carpenter - 1984 Simulazione del tempo di apertura della camera Cook, Porter, Carpenter - 1984

Profondità di campo Occhio e lente fotografica hanno un’apertura finita; ogni punto appare come un piccolo cerchio sul piano immagine: cerchio di confusione L’immagine prodotta dal foro stenopeico è perfettamente a fuoco

Profondità di campo Cook, Porter, Carpenter - 1984

Jittering per profondità di campo Se il punto campionato è sul piano focale, i punti jittered sono assai vicini e la loro media non si scosta troppo dal valore del punto centrale Se il punto campionato è lontano dal piano focale i punti jittered sono distanti e la loro media crea un effetto di sfocatura

Profondità di campo

Implementazione Posso fare ray tracing con le GPU? General-Purpose computation on GPUs http://www.gpgpu.org/ OpenRT: The OpenRT Real-Time Ray-Tracing Project http://www.openrt.de

Ray tracers Yafray (Yet Another Free RAYtracer) (www.yafray.org) POVray (Persistence of Vision Raytracer) (www.povray.org)

Vantaggi Realizzazione naturale delle ombre; Parallelizzabile

Cosa manca? Non considera la luce che proviene per riflessione/trasmissione diffusa da altri oggetti (questa componente viene approssimata con un termine costante di luce ambientale) Se considerassimo anche i raggi di riflessione diffusa avremmo una quantità improponibile di raggi..... Si fa precedere il ray tracing da una valutazione della radiosity