La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Modelli Globali: Ray Tracing

Presentazioni simili


Presentazione sul tema: "Modelli Globali: Ray Tracing"— Transcript della presentazione:

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

58

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) (www.povray.org)

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


Scaricare ppt "Modelli Globali: Ray Tracing"

Presentazioni simili


Annunci Google