Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Modelli Globali: Ray Tracing
Daniele Marini
2
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
3
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?
4
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)
5
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)
6
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)
7
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
8
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!
9
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)
10
Dipendente dalla vista: Ray tracing
Simula il percorso dei raggi luminosi Modello di illuminazione: Whitted = Phong + Estensioni ricorsive
11
Indipendente dalla vista: Radiosity
Simula il bilancio energetico in un ambiente chiuso Modello locale Lambertiano + Estensioni
12
Equazione fondamentale del rendering
Kajia 1986
13
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
14
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
15
Ray casting Raggi ombra (shadow) Specchi (mirror) Raggi trasmessi e riflessi
16
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
17
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
18
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
19
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
20
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)
21
Ray Tracing Il modello di illuminazione globale aumenta il realismo nel calcolo della illuminazione solo Phong Phong + Ray tracing
22
Ray Tracing Il modello di illuminazione globale aumenta il realismo nel calcolo della illuminazione
23
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
24
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
25
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
26
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
27
Intersezione raggio/sfera
Equazione sfera: Sostituire equazione raggio in equazione sfera e si risolve l’eq. di secondo grado rispetto a t
28
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 è:
29
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=
30
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
31
Intersezione raggio/sfera: soluzione geometrica
Se la distanza retta-centro è minore del raggio della sfera calcola intersezione Numero operazioni totale: o * 1 sqrt 3=
32
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
33
Raggio-triangolo Equazione del triangolo
c Equazione del triangolo Ho un sistema lineare in 3 equazioni e tre incognite p a b
34
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
35
Problemi Ci possono essere problemi di precisione numerica
Cutler and Durand
36
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
37
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
38
Partizionamento dello spazio
Partizionamento dello spazio in regioni non sovrapposte: Griglia uniforme Octree …
39
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
40
Octree Suddivisione non uniforme dello spazio
Limitazioni: algoritmo di attraversamento più complesso
41
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)
42
Distributed ray tracing
Le immagini prodotte con il ray tracing visto sino ad ora sono molto innaturali: Riflessioni speculari nette Ombre nette Seghettature
43
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
44
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
45
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
46
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
47
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
48
Ombra La penombra la posso generare in un ray tracer “tradizionale” sostituendo la sorgente con N sorgenti puntiformi
49
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
50
Esempio
51
Aliasing Aliasing-> non ho abbastanza campioni
Se considero un solo raggio per pixel ho delle seghettature (jaggies) per effetto della discretizzazione Andrew Zaferakis
52
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
53
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
54
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.
55
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
56
Motion blur Cook, Porter, Carpenter - 1984
Simulazione del tempo di apertura della camera Cook, Porter, Carpenter
57
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
59
Profondità di campo Cook, Porter, Carpenter - 1984
60
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
61
Profondità di campo
62
Implementazione Posso fare ray tracing con le GPU?
General-Purpose computation on GPUs OpenRT: The OpenRT Real-Time Ray-Tracing Project
63
Ray tracers Yafray (Yet Another Free RAYtracer) (www.yafray.org)
POVray (Persistence of Vision Raytracer) (
64
Vantaggi Realizzazione naturale delle ombre; Parallelizzabile
65
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.