14 Ray Tracing

33
1 Iluminarea Locala sursele de lumina pozitia observatorului proprietatile de material Globala interactiunea dintre lumina provenita de la toate suprafetele scenei obiect 1 obiect 2 obiect 3 obiect 4

description

Ray tracing Ray casting Iluminare

Transcript of 14 Ray Tracing

Page 1: 14 Ray Tracing

1

Iluminarea

• Locala– sursele de lumina

– pozitia observatorului

– proprietatile de material

• Globala– interactiunea dintre lumina provenita

de la toate suprafetele scenei

obiect 1

obiect 2obiect 3

obiect 4

Page 2: 14 Ray Tracing

2

Iluminare globala – forma simplificata

Zona de

afisareObservator

Raze prinplanul de vizualizare

Page 3: 14 Ray Tracing

3

Ray Casting

Zona deafisare

Observator

Raze prinplanul devizualizare

Page 4: 14 Ray Tracing

4

Ray Casting

• pentru fiecare fragment

– se construieste raza

observator prin zona de

afisare

– se determina prima

suprafata intersectata

de raza

– se calculeaza culoarea

pixelului bazata pe

culoarea suprafetei

obtinuta la intersectie

Esantioane inplanul de vizualizare

Observator

Raze prin planul devzualizare

Page 5: 14 Ray Tracing

5

Ray Casting

RayCasting(Observator, Scena, w, h)

{

for(x=0; x<w; x++)

for(y=0; y<h; y++)

{

construieste raza R(Observator, fragment(x,y));

obiect = intersecteaza raza R cu Scena;

culoare_obiect = determina_culoare(obiect);

ScriePixel(x, y, culoare_obiect);

}

} L L

n

SDAAE IRVKLNKIKII *)))()((

Trebuie calculata N

Page 6: 14 Ray Tracing

6

Intersectia Raza - Scena

determina_intersectia(R, Scena)

{

min_t = inf

min_primitiva = NULL;

for fiecare primitiva p din Scena

{

t = intersectie(R, p);

if(t < min_t)

{ min_primitiva = primitiva;

min_t = t;

}

}

}

Page 7: 14 Ray Tracing

7

Adaugarea umbrelor

Raza de lumina L – raza de umbra U

Determina intersectiile dintre U si obiectele scenei

Exista obiecte intersectate -> umbra

Altfel -> obiect luminat

Observator

umbra

UU

Page 8: 14 Ray Tracing

8

• Calculul iluminarii

• Factor de umbra – SL

– SL = 0 umbra,

SL = 1 iluminata

Adaugarea umbrelor

L LL

n

SDAAE ISRVKLNKIKII ))()((

L L

n

SDAAE IRVKLNKIKII *)))()((

Page 9: 14 Ray Tracing

9

Ray Tracing

Eye

Light

Observator

Sursa lumina

Page 10: 14 Ray Tracing

10

Ray Tracing

• Simuleaza razele de lumina de la sursa de

lumina la observator

Obs Sursa de lumina

Suprafata

Page 11: 14 Ray Tracing

11

Ray-Tracing

• Raze pornesc de la sursa de lumina

• Cost mare

Obs

Zona de afisare

Obiect

Raze de lumina

Page 12: 14 Ray Tracing

12

Ray-Tracing (“Backward”)

• Razele pornesc de la observator

Obs

This is what most people mean by “ray tracing”.

Zona deafisare

Obiect

Page 13: 14 Ray Tracing

13

Propagarea razei

Page 14: 14 Ray Tracing

14

Propagarea razei

Raza observator / primara

Normala

Raza reflectata

Raza refractata

Raza de lumina / umbra

Page 15: 14 Ray Tracing

15

Reflexia

( ( ) ( ) )n

E A A D S L L R R T TLI I K I K N L K V R S I K I K I

Lumina reflectata

Coeficient de reflexie

Page 16: 14 Ray Tracing

16

Raza refractata

( ( ) ( ) )n

E A A D S L L R R T TLI I K I K N L K V R S I K I K I

Lumina refractata

Page 17: 14 Ray Tracing

17

( ( ) ( ) )n

E A A D S L L R R T TLI I K I K N L K V R S I K I K I

Raza refractata

• KT - Coeficient de

transparenta

– KT = 1 translucid

– KT = 0 , opac

– 0 < KT < 1, semi-translucide

Coeficient de

transparenta

Page 18: 14 Ray Tracing

18

Ray Tracing

• Constructie raze

• Intersectia razelor cu scena

• Iluminare

• Umbrire

• Reflexii, refractii

Page 19: 14 Ray Tracing

19

Calculul razei reflectate

N

LR

α

X

-YY

N.L|L|*|N|

N.L)cos(

N.L )cos()*cos(|L||X|

N.L)N(X

Page 20: 14 Ray Tracing

20

Calculul razei reflectate

N

LR

α

X

-YYL - 2X R

XL - X Y - X R

L Y X

L - (N.L)N2 R

Page 21: 14 Ray Tracing

21

Calculul razei refractate

• indice de refractie (h )

T

L

T

sin(L) hTsin(T) hL

=

N

L

YX

hT

hL

(N.L)N - L Y

(N.L)N X

X - L Y

L Y X

Page 22: 14 Ray Tracing

22

Calculul razei refractate

G Z T

T

L

T

N

L

YX

hT

hL

ZG

)Ncos(- Z T

)sin()sin(

(N.L)N - L - G

)sin( |Y|

(N.L)N - L Y

X - L Y

T

L

L

Page 23: 14 Ray Tracing

23

Calculul razei refractate

]N.L)(1[-1)cos(

(N.L) - 1 )(cos - 1 )(sin

)(sin -1 )(sin1 )cos(

(N.L)N] - [L - )Ncos(- T

)sin(

)sin((N.L)N] - [L - )Ncos(- T

2

T2

L2

T

2

L

2

L

2

T

2

T2

L2

T

2

T

T

LT

L

TT

h

h

h

h

h

h

Page 24: 14 Ray Tracing

24

Raza refractata

• Suprafete subtiri – poate fi ignorata

modificarea directiei

N

L

Qi

TQr

hr

hi

Qi

T LT

Page 25: 14 Ray Tracing

25

Ray Tracing

Pentru fiecare pixel al imaginii

{

calculeaza raza primara, P;

culoare_pixel = TraseuRaza(P, 1);

afiseaza pixelul in culoare_pixel;

}

Page 26: 14 Ray Tracing

26

Ray Tracing

Culoare TraseuRaza(Raza R, int n)

{ // n este nivelul de recursivitate

calculeaza intersectiile razei R cu obiectele scenei;

daca(nu exista intersectii), atunci

return (culoare_fond);

altfel

fie I punctul de intersectie cel mai apropiat de

observator si O obiectul intersectat;

calculeaza normala N, in punctul I;

return CuloarePunct(O, R, I, N, n);

}

Page 27: 14 Ray Tracing

Ray tracing

27

Culoare CuloarePunct(Obiect O, Raza R, Punct I, Normala N, adancime_arbore n){

Culoare culoare;culoare = culoare_ambianta;pentru fiecare sursa de lumina S executa

calculeaza vectorul L, din I catre Sdaca((Nu·Lu)> 0 si vectorul L nu intersecteaza un obiect opac al scenei) atunci

calculeaza contributia sursei S la culoare, CS, folosind modelul de iluminare localculoare = culoare + CS

daca(n< nivel_max) atuncidaca(obiectul O produce reflexii speculare) atunci

calculeaza raza reflectata in punctul I, RS;culoare = culoare + Ks* TraseuRaza(RS, n+1);

daca(obiectul O este transparent) atuncicalculeaza raza transmisa (refractata) in punctul I, RT;culoare = culoare + Kt* TraseuRaza(RT, n+1);

return (culoare)}

Page 28: 14 Ray Tracing

28

Structuri de accelerare a determinarii intersectiilor

• Volume incadratoare

– Ierarhii de volume incadratoare

• Partitii spatiale

– Arbori de partitionare binara

Page 29: 14 Ray Tracing

29

Volume incadratoare

•Se verifica intersectia cu volumul incadrator

Page 30: 14 Ray Tracing

30

Forma volumelor incadratoare

Page 31: 14 Ray Tracing

31

Ierarhii de volume incadratoare

Page 32: 14 Ray Tracing

32

Ierarhii de volume incadratoare

Page 33: 14 Ray Tracing

33

Ierarhii de volume incadratoare

R