La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Modelli Globali: Ray Tracing Daniele Marini 2 Modelli locali Non mi serve conoscere l’intera scena La componente di luce ambiente è una approssimazione.

Presentazioni simili


Presentazione sul tema: "1 Modelli Globali: Ray Tracing Daniele Marini 2 Modelli locali Non mi serve conoscere l’intera scena La componente di luce ambiente è una approssimazione."— Transcript della presentazione:

1

2 1 Modelli Globali: Ray Tracing Daniele Marini

3 2 Modelli locali 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  l n r  v

4 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 da dove proviene la luceMa… da dove proviene la luce?

5 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)

6 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)

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

8 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

9 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!

10 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)

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

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

13 12 Equazione fondamentale del rendering Kajia 1986

14 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

15 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

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

17 16 Raggi R2R2 R1R1 R3R3 L2L2 L1L1 L3L3 N1N1 N2N2 N3N3 T1T1 T3T3 Eye L1L1 T3T3 R3R3 L3L3 L2L2 T1T1 R1R1 R2R2 Cutler and Durand N i normale alla superficie R i raggio riflesso L i raggio ombra T i raggio trasmesso (rifratto)

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

19 18 Ricorsione Quando termino? –Profondità massima di ricorsione Mi fermo dopo aver generato un certo numero di raggi –Soglia minima di contributo 1 ricorsione0 ricorsione 2 ricorsione Cutler and Durand

20 19 Ray tracing Il processo ricorsivo termina: 1.Se un raggio non colpisce nulla 2.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

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

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

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

24 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

25 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

26 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 u f y x d o 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); }

27 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

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

29 28 Intersezione raggio/sfera Equazione quadratica, 2 soluzioni: –Se complesse non c’è intersezione –Se reali ordinare le soluzioni t 0 e t 1 : il minimo rappresenta la prima intersezione –Il punto intersezione (x i,y i,z i ) è: –La normale alla superficie è:

30 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=

31 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 orig t t

32 31 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=

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

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

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

36 35 Problemi Ci possono essere problemi di precisione numerica Cutler and Durand

37 36 Costo computazionale 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

38 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?

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

40 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

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

42 41 Altri effetti Ray tracing distribuito: 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)

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

44 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

45 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

46 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

47 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

48 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

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

50 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) uv

51 50 Esempio

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

53 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

54 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

55 54 Riflessione glossy Potrei sparare molti raggi nelle riflessioni speculari per simulare la riflessione glossy l n r

56 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

57 56 Motion blur Cook, Porter, Carpenter

58 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 58

60 59 Profondità di campo Cook, Porter, Carpenter

61 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

62 61 Profondità di campo

63 62 Implementazione Posso fare ray tracing con le GPU? General-Purpose computation on GPUs OpenRT: The OpenRT Real-Time Ray- Tracing Project

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

65 64 Vantaggi Realizzazione naturale delle ombre; Parallelizzabile

66 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 "1 Modelli Globali: Ray Tracing Daniele Marini 2 Modelli locali Non mi serve conoscere l’intera scena La componente di luce ambiente è una approssimazione."

Presentazioni simili


Annunci Google