You are on page 1of 57

Tehnica Ray Tracing – algoritmi fundamentali

Mihai-Sorin Stupariu

Sem. al II-lea, 2021 - 2022

Tehnica Ray Tracing 1 / 19


Introducere

Despre...

Sursa: https://en.wikipedia.org/wiki/Ray tracing (graphics)#/media/File:Glasses 800 edit.png

Ray Tracing este o tehnică legată de detectarea suprafeţelor vizibile. În


general, această problemă poate fi abordată folosind:
I metode ale spaţiului obiectelor;
I metode ale spaţiului imagine.
Tehnica Ray Tracing combină cele două abordări, ”aducând” pixelii ı̂n
spaţiul obiectelor şi operând pixel cu pixel.
Tehnica Ray Tracing 2 / 19
Introducere

Ecran virtual ı̂n spaţiul obiectelor

I Punctul P0 − observator: originea reperului de vizualizare.

Tehnica Ray Tracing 3 / 19


Introducere

Ecran virtual ı̂n spaţiul obiectelor

I Punctul P0 − observator: originea reperului de vizualizare.


I Versorii (u, v, n): orizontala şi verticala din planul de vizualizare, respectiv normala
pe planul de vizualizare
I În continuare, prin abuz de notaţie, vom folosi aceleaşi litere pentru a nota
coordonatele ı̂n raport cu reperul de vizualizare, ca şi pentru versorii care le
determină, i.e. (u, v, n).

Tehnica Ray Tracing 3 / 19


Introducere

Ecran virtual ı̂n spaţiul obiectelor

I Punctul P0 − observator: originea reperului de vizualizare.


I Versorii (u, v, n): orizontala şi verticala din planul de vizualizare, respectiv normala
pe planul de vizualizare
I În continuare, prin abuz de notaţie, vom folosi aceleaşi litere pentru a nota
coordonatele ı̂n raport cu reperul de vizualizare, ca şi pentru versorii care le
determină, i.e. (u, v, n).
I În particular, planul de vizualizare are o ecuaţie de forma n = ν(const.). În planul
de vizualizare se consideră un ”ecran virtual”, delimitat de dreptele de ecuaţii
u = l, n = ν; u = r , n = ν; v = b, n = ν; v = t, n = ν.

Tehnica Ray Tracing 3 / 19


Introducere

Ecran virtual ı̂n spaţiul obiectelor

I Punctul P0 − observator: originea reperului de vizualizare.


I Versorii (u, v, n): orizontala şi verticala din planul de vizualizare, respectiv normala
pe planul de vizualizare
I În continuare, prin abuz de notaţie, vom folosi aceleaşi litere pentru a nota
coordonatele ı̂n raport cu reperul de vizualizare, ca şi pentru versorii care le
determină, i.e. (u, v, n).
I În particular, planul de vizualizare are o ecuaţie de forma n = ν(const.). În planul
de vizualizare se consideră un ”ecran virtual”, delimitat de dreptele de ecuaţii
u = l, n = ν; u = r , n = ν; v = b, n = ν; v = t, n = ν.
I Obiectele sunt indicate ı̂n raport cu reperul de modelare Oxyz.
Tehnica Ray Tracing 3 / 19
Introducere

Despre pixeli
I Fie P centru al unui pixel virtual. Determinăm ı̂n continuare forma
coordonatelor sale.

Tehnica Ray Tracing 4 / 19


Introducere

Despre pixeli
I Fie P centru al unui pixel virtual. Determinăm ı̂n continuare forma
coordonatelor sale.
I Fie nx numărul de coloane şi ny numărul de linii din structura de
pixeli.

Tehnica Ray Tracing 4 / 19


Introducere

Despre pixeli
I Fie P centru al unui pixel virtual. Determinăm ı̂n continuare forma
coordonatelor sale.
I Fie nx numărul de coloane şi ny numărul de linii din structura de
pixeli.
I Un pixel real s este dat de o pereche (i, j) ∈ N × N, cu
i = 0, . . . , nx − 1, j = 0, . . . , ny − 1, iar pixelul virtual asociat are
coordonatele 
(r − l)
us = l + (i + 0.5)


nx




(t − b) (1)
vs = b + (j + 0.5)
ny





ns = ν

Tehnica Ray Tracing 4 / 19


Introducere

Despre pixeli
I Fie P centru al unui pixel virtual. Determinăm ı̂n continuare forma
coordonatelor sale.
I Fie nx numărul de coloane şi ny numărul de linii din structura de
pixeli.
I Un pixel real s este dat de o pereche (i, j) ∈ N × N, cu
i = 0, . . . , nx − 1, j = 0, . . . , ny − 1, iar pixelul virtual asociat are
coordonatele 
(r − l)
us = l + (i + 0.5)


nx




(t − b) (1)
vs = b + (j + 0.5)
ny





ns = ν

I Acestea pot fi transferate ulterior ı̂n coordonate de modelare, folosind


matricea de trecere de la reperul de modelare la reperul de vizualizare.

Tehnica Ray Tracing 4 / 19


Implementare

Paşii algoritmului

Paşii algoritmului Ray Tracing fundamental (basic Ray Tracing) sunt


următorii:
I se duce o rază prin punctul P0 care uneşte acest punct cu centrul
unui pixel virtual;

Tehnica Ray Tracing 5 / 19


Implementare

Paşii algoritmului

Paşii algoritmului Ray Tracing fundamental (basic Ray Tracing) sunt


următorii:
I se duce o rază prin punctul P0 care uneşte acest punct cu centrul
unui pixel virtual;
I se găseşte primul obiect intersectat (eventual se găsesc toate obiectele
intersectate) de rază;

Tehnica Ray Tracing 5 / 19


Implementare

Paşii algoritmului

Paşii algoritmului Ray Tracing fundamental (basic Ray Tracing) sunt


următorii:
I se duce o rază prin punctul P0 care uneşte acest punct cu centrul
unui pixel virtual;
I se găseşte primul obiect intersectat (eventual se găsesc toate obiectele
intersectate) de rază;
I pentru pixelul real proprietăţile sunt determinate pe baza valorilor
obţinute pentru intersecţie (culoare, material, normale, coeficient α,
etc.).

Tehnica Ray Tracing 5 / 19


Implementare

Paşii algoritmului

Paşii algoritmului Ray Tracing fundamental (basic Ray Tracing) sunt


următorii:
I se duce o rază prin punctul P0 care uneşte acest punct cu centrul
unui pixel virtual;
I se găseşte primul obiect intersectat (eventual se găsesc toate obiectele
intersectate) de rază;
I pentru pixelul real proprietăţile sunt determinate pe baza valorilor
obţinute pentru intersecţie (culoare, material, normale, coeficient α,
etc.).
I Implementarea are doi paşi, aplicaţi pentru fiecare pixel virtual: (i)
reprezentarea razelor şi (ii) determinarea intersecţiilor.

Tehnica Ray Tracing 5 / 19


Implementare

Reprezentarea razelor
I Fie P0 observatorul şi P un punct de pe ecranul virtual (coordonatele
sale sunt obţinute din ecuaţia (1), transferate ı̂n reperul de modelare.

Tehnica Ray Tracing 6 / 19


Implementare

Reprezentarea razelor
I Fie P0 observatorul şi P un punct de pe ecranul virtual (coordonatele
sale sunt obţinute din ecuaţia (1), transferate ı̂n reperul de modelare.

I Raza dusă prin P0 care trece prin P are reprezentarea (ca dreaptă)

r (t) = P0 + td = P0 + t(P − P0 ) = (1 − t)P0 + tP, t ∈ R; d = P − P0


(2)

Tehnica Ray Tracing 6 / 19


Implementare

Reprezentarea razelor
I Fie P0 observatorul şi P un punct de pe ecranul virtual (coordonatele
sale sunt obţinute din ecuaţia (1), transferate ı̂n reperul de modelare.

I Raza dusă prin P0 care trece prin P are reprezentarea (ca dreaptă)

r (t) = P0 + td = P0 + t(P − P0 ) = (1 − t)P0 + tP, t ∈ R; d = P − P0


(2)
I Orice punct de pe rază este dat de un t şi reciproc. În concluzie, a
stabili poziţia relativă a două puncte P1 (t1 ) şi P2 (t2 ) revine la a
compara valorile t1 şi t2 corespunzătoare.

Tehnica Ray Tracing 6 / 19


Implementare

Reprezentarea razelor
I Fie P0 observatorul şi P un punct de pe ecranul virtual (coordonatele
sale sunt obţinute din ecuaţia (1), transferate ı̂n reperul de modelare.

I Raza dusă prin P0 care trece prin P are reprezentarea (ca dreaptă)

r (t) = P0 + td = P0 + t(P − P0 ) = (1 − t)P0 + tP, t ∈ R; d = P − P0


(2)
I Orice punct de pe rază este dat de un t şi reciproc. În concluzie, a
stabili poziţia relativă a două puncte P1 (t1 ) şi P2 (t2 ) revine la a
compara valorile t1 şi t2 corespunzătoare.
I Valorile lui t au diferite semnificaţii geometrice referitoare la poziţia
punctului r (t), de exemplu:

Tehnica Ray Tracing 6 / 19


Implementare

Reprezentarea razelor
I Fie P0 observatorul şi P un punct de pe ecranul virtual (coordonatele
sale sunt obţinute din ecuaţia (1), transferate ı̂n reperul de modelare.

I Raza dusă prin P0 care trece prin P are reprezentarea (ca dreaptă)

r (t) = P0 + td = P0 + t(P − P0 ) = (1 − t)P0 + tP, t ∈ R; d = P − P0


(2)
I Orice punct de pe rază este dat de un t şi reciproc. În concluzie, a
stabili poziţia relativă a două puncte P1 (t1 ) şi P2 (t2 ) revine la a
compara valorile t1 şi t2 corespunzătoare.
I Valorile lui t au diferite semnificaţii geometrice referitoare la poziţia
punctului r (t), de exemplu:
(i) Pentru t < 0 punctul curent r (t) se află ”ı̂n spatele” observatorului;

Tehnica Ray Tracing 6 / 19


Implementare

Reprezentarea razelor
I Fie P0 observatorul şi P un punct de pe ecranul virtual (coordonatele
sale sunt obţinute din ecuaţia (1), transferate ı̂n reperul de modelare.

I Raza dusă prin P0 care trece prin P are reprezentarea (ca dreaptă)

r (t) = P0 + td = P0 + t(P − P0 ) = (1 − t)P0 + tP, t ∈ R; d = P − P0


(2)
I Orice punct de pe rază este dat de un t şi reciproc. În concluzie, a
stabili poziţia relativă a două puncte P1 (t1 ) şi P2 (t2 ) revine la a
compara valorile t1 şi t2 corespunzătoare.
I Valorile lui t au diferite semnificaţii geometrice referitoare la poziţia
punctului r (t), de exemplu:
(i) Pentru t < 0 punctul curent r (t) se află ”ı̂n spatele” observatorului;
(ii) Pentru 0 < t1 < t2 punctul r (t1 ) este mai aproape de observator decât
punctul r (t2 ), etc.

Tehnica Ray Tracing 6 / 19


Implementare

Reprezentarea razelor
I Fie P0 observatorul şi P un punct de pe ecranul virtual (coordonatele
sale sunt obţinute din ecuaţia (1), transferate ı̂n reperul de modelare.

I Raza dusă prin P0 care trece prin P are reprezentarea (ca dreaptă)

r (t) = P0 + td = P0 + t(P − P0 ) = (1 − t)P0 + tP, t ∈ R; d = P − P0


(2)
I Orice punct de pe rază este dat de un t şi reciproc. În concluzie, a
stabili poziţia relativă a două puncte P1 (t1 ) şi P2 (t2 ) revine la a
compara valorile t1 şi t2 corespunzătoare.
I Valorile lui t au diferite semnificaţii geometrice referitoare la poziţia
punctului r (t), de exemplu:
(i) Pentru t < 0 punctul curent r (t) se află ”ı̂n spatele” observatorului;
(ii) Pentru 0 < t1 < t2 punctul r (t1 ) este mai aproape de observator decât
punctul r (t2 ), etc.
(iii) Semidreapta este caracterizată de condiţia t > 0
Tehnica Ray Tracing 6 / 19
Implementare

Principiu şi formalizare


I Principiul fundamental este: Găsirea punctului de intersecţie de pe
dreaptă este echivalentă cu determinarea parametrului t
corespunzător.

Tehnica Ray Tracing 7 / 19


Implementare

Principiu şi formalizare


I Principiul fundamental este: Găsirea punctului de intersecţie de pe
dreaptă este echivalentă cu determinarea parametrului t
corespunzător.
I Din punct de vedere formal, Ray Tracing poate fi privit ca o procedură

RT(vec3 P0 , vec3 d, real t0 , real t1 ).

Tehnica Ray Tracing 7 / 19


Implementare

Principiu şi formalizare


I Principiul fundamental este: Găsirea punctului de intersecţie de pe
dreaptă este echivalentă cu determinarea parametrului t
corespunzător.
I Din punct de vedere formal, Ray Tracing poate fi privit ca o procedură

RT(vec3 P0 , vec3 d, real t0 , real t1 ).

I Datele de intrare sunt: punctul P0 (poziţia observatorului), direcţia d a


razei, numerele reale t0 , t1 ; [t0 , t1 ] fiind intervalul ı̂n care se caută
soluţia t - de obicei este ales [0, ∞).

Tehnica Ray Tracing 7 / 19


Implementare

Principiu şi formalizare


I Principiul fundamental este: Găsirea punctului de intersecţie de pe
dreaptă este echivalentă cu determinarea parametrului t
corespunzător.
I Din punct de vedere formal, Ray Tracing poate fi privit ca o procedură

RT(vec3 P0 , vec3 d, real t0 , real t1 ).

I Datele de intrare sunt: punctul P0 (poziţia observatorului), direcţia d a


razei, numerele reale t0 , t1 ; [t0 , t1 ] fiind intervalul ı̂n care se caută
soluţia t - de obicei este ales [0, ∞).
I Datele de ieşire sunt date de o mulţime care poate fi: (i) ∅ (dacă raza
nu intersectează niciun obiect); (ii) {t} (dacă raza intersectează un
obiect, acesta este parametrul t corespunzător punctului de
intersecţie). De asemenea, se poate considera procedura rayColor(P),
al cărei efect este determinarea culorii pixelului real corespunzător
pixelului virtual P.

Tehnica Ray Tracing 7 / 19


Intersecţii

Intersecţii cu obiecte - sfere


I Fie S o sferă de centru C ∈ R3 şi rază R > 0. Datorită invarianţei ecuaţiei sferei la
izometrii, se poate lucra direct ı̂n coordonate de vizualizare, fiind necesară cel mult
o translaţie.

Tehnica Ray Tracing 8 / 19


Intersecţii

Intersecţii cu obiecte - sfere


I Fie S o sferă de centru C ∈ R3 şi rază R > 0. Datorită invarianţei ecuaţiei sferei la
izometrii, se poate lucra direct ı̂n coordonate de vizualizare, fiind necesară cel mult
o translaţie.
I Fie X = (uX , vX , nX ) un punct; atunci el aparţine sferei dacă şi numai dacă
d(X , C )2 − R 2 = 0 ⇔
⇔ kX − C k2 − R 2 = (X − C) · (X − C) − R 2 = 0.
Raza r dată de (2) intersectează sfera dacă şi numai dacă există t ∈ R astfel ı̂ncât
(r (t) − C) · (r (t) − C) − R 2 = 0.

Tehnica Ray Tracing 8 / 19


Intersecţii

Intersecţii cu obiecte - sfere


I Fie S o sferă de centru C ∈ R3 şi rază R > 0. Datorită invarianţei ecuaţiei sferei la
izometrii, se poate lucra direct ı̂n coordonate de vizualizare, fiind necesară cel mult
o translaţie.
I Fie X = (uX , vX , nX ) un punct; atunci el aparţine sferei dacă şi numai dacă
d(X , C )2 − R 2 = 0 ⇔
⇔ kX − C k2 − R 2 = (X − C) · (X − C) − R 2 = 0.
Raza r dată de (2) intersectează sfera dacă şi numai dacă există t ∈ R astfel ı̂ncât
(r (t) − C) · (r (t) − C) − R 2 = 0.
I Notând d = P − P0 , ecuaţia de mai sus este echivalentă cu
((P0 + td) − C) · ((P0 + td) − C) − R 2 = 0.

Tehnica Ray Tracing 8 / 19


Intersecţii

Intersecţii cu obiecte - sfere


I Fie S o sferă de centru C ∈ R3 şi rază R > 0. Datorită invarianţei ecuaţiei sferei la
izometrii, se poate lucra direct ı̂n coordonate de vizualizare, fiind necesară cel mult
o translaţie.
I Fie X = (uX , vX , nX ) un punct; atunci el aparţine sferei dacă şi numai dacă
d(X , C )2 − R 2 = 0 ⇔
⇔ kX − C k2 − R 2 = (X − C) · (X − C) − R 2 = 0.
Raza r dată de (2) intersectează sfera dacă şi numai dacă există t ∈ R astfel ı̂ncât
(r (t) − C) · (r (t) − C) − R 2 = 0.
I Notând d = P − P0 , ecuaţia de mai sus este echivalentă cu
((P0 + td) − C) · ((P0 + td) − C) − R 2 = 0.
I Această ecuaţie revine la
(d · d)t 2 + 2d · (P0 − C)t + (P0 − C) · (P0 − C) − R 2 = 0,
adică la o ecuaţie de gradul II ı̂n t.

Tehnica Ray Tracing 8 / 19


Intersecţii

Intersecţii cu obiecte - sfere


I Fie S o sferă de centru C ∈ R3 şi rază R > 0. Datorită invarianţei ecuaţiei sferei la
izometrii, se poate lucra direct ı̂n coordonate de vizualizare, fiind necesară cel mult
o translaţie.
I Fie X = (uX , vX , nX ) un punct; atunci el aparţine sferei dacă şi numai dacă
d(X , C )2 − R 2 = 0 ⇔
⇔ kX − C k2 − R 2 = (X − C) · (X − C) − R 2 = 0.
Raza r dată de (2) intersectează sfera dacă şi numai dacă există t ∈ R astfel ı̂ncât
(r (t) − C) · (r (t) − C) − R 2 = 0.
I Notând d = P − P0 , ecuaţia de mai sus este echivalentă cu
((P0 + td) − C) · ((P0 + td) − C) − R 2 = 0.
I Această ecuaţie revine la
(d · d)t 2 + 2d · (P0 − C)t + (P0 − C) · (P0 − C) − R 2 = 0,
adică la o ecuaţie de gradul II ı̂n t.
I Pentru aceasta este verificată mai ı̂ntâi condiţia de existenţă a soluţiilor reale
(∆ ≥ 0), apoi, dacă admite soluţii se găseşte cea mai mică soluţie pozitivă, etc.
Tehnica Ray Tracing 8 / 19
Intersecţii

Intersecţii cu obiecte - triunghiuri (I)


I Fie a, b, c vârfurile triunghiului considerat.

Tehnica Ray Tracing 9 / 19


Intersecţii

Intersecţii cu obiecte - triunghiuri (I)


I Fie a, b, c vârfurile triunghiului considerat.
I Un punct din planul triunghiului poate fi reprezentat sub formă de
combinaţie afină / baricentrică a punctelor a, b, c

(1 − β − γ)a + βb + γc, β, γ ∈ R,

iar un punct situat pe laturile triunghiului sau ı̂n interiorul său poate fi
reprezentat sub formă de combinaţie convexă

(1 − β − γ)a + βb + γc, β, γ, 1 − β − γ ∈ [0, 1].

Tehnica Ray Tracing 9 / 19


Intersecţii

Intersecţii cu obiecte - triunghiuri (I)


I Fie a, b, c vârfurile triunghiului considerat.
I Un punct din planul triunghiului poate fi reprezentat sub formă de
combinaţie afină / baricentrică a punctelor a, b, c

(1 − β − γ)a + βb + γc, β, γ ∈ R,

iar un punct situat pe laturile triunghiului sau ı̂n interiorul său poate fi
reprezentat sub formă de combinaţie convexă

(1 − β − γ)a + βb + γc, β, γ, 1 − β − γ ∈ [0, 1].

I A determina (posibila) intersecţie dintre rază şi triunghi revine la a


găsi t, ∈ R, β, γ ∈ [0, 1] cu 1 − β − γ ∈ [0, 1] astfel ca

P0 + td = (1 − β − γ)a + βb + γc. (3)

Tehnica Ray Tracing 9 / 19


Intersecţii

Intersecţii cu obiecte - triunghiuri (II)

I În coordonate, ecuaţia

P0 + td = (1 − β − γ)a + βb + γc

reprezintă un sistem de trei ecuaţii cu trei necunoscute, β, γ, t.


Compatibilitatea sa şi natura soluţiilor (dacă există) dau informaţii
despre intersecţia dintre rază şi triunghi:

Tehnica Ray Tracing 10 / 19


Intersecţii

Intersecţii cu obiecte - triunghiuri (II)

I În coordonate, ecuaţia

P0 + td = (1 − β − γ)a + βb + γc

reprezintă un sistem de trei ecuaţii cu trei necunoscute, β, γ, t.


Compatibilitatea sa şi natura soluţiilor (dacă există) dau informaţii
despre intersecţia dintre rază şi triunghi:
I dacă β, γ, 1 − β − γ ∈ [0, 1] şi t ∈ R există, atunci raza intersectează
triunghiul sau interiorul său;
I dacă β 6∈ [0, 1] sau γ 6∈ [0, 1] sau 1 − β − γ 6∈ [0, 1] (dar β, γ există ı̂n
R), atunci raza intersectează planul, ı̂nsă ı̂n afara triunghiului;
I dacă β, γ nu există, dreapta este paralelă cu planul sau triunghiul este
degenerat, etc.

Tehnica Ray Tracing 10 / 19


Intersecţii

Intersecţii cu obiecte - poligoane convexe (I)


I Fie P1 P2 . . . Pm un poligon convex; fie p normala la planul
triunghiului (este bine definită, deoarece poligonul este convex!).

Tehnica Ray Tracing 11 / 19


Intersecţii

Intersecţii cu obiecte - poligoane convexe (I)


I Fie P1 P2 . . . Pm un poligon convex; fie p normala la planul
triunghiului (este bine definită, deoarece poligonul este convex!).
I Un punct arbitrar X aparţine planului poligonului dacă şi numai dacă
vectorul format de X şi unul dintre vârfuri (de exemplu P1 ) este
perpendicular pe p, deci

(X − P1 ) · p = 0.

Tehnica Ray Tracing 11 / 19


Intersecţii

Intersecţii cu obiecte - poligoane convexe (II)


I Intersecţia dintre raza r şi plan este dată de condiţia

(r (t) − P1 ) · p = 0,

care este o ecuaţie de gradul I ı̂n t.

Tehnica Ray Tracing 12 / 19


Intersecţii

Intersecţii cu obiecte - poligoane convexe (II)


I Intersecţia dintre raza r şi plan este dată de condiţia

(r (t) − P1 ) · p = 0,

care este o ecuaţie de gradul I ı̂n t.


I Soluţia (dacă există) poate fi scrisă sub forma

(P1 − P0 ) · p
t0 = .
d·p

Tehnica Ray Tracing 12 / 19


Intersecţii

Intersecţii cu obiecte - poligoane convexe (II)


I Intersecţia dintre raza r şi plan este dată de condiţia

(r (t) − P1 ) · p = 0,

care este o ecuaţie de gradul I ı̂n t.


I Soluţia (dacă există) poate fi scrisă sub forma

(P1 − P0 ) · p
t0 = .
d·p
I Pasul următor este de a stabili dacă, pentru t0 astfel determinat,
punctul r (t0 ) este pe laturile sau ı̂n interiorul poligonului, ceea ce
revine la a stabili dacă r (t0 ) poate fi exprimat sub formă de
combinaţie convexă a trei dintre vârfurile poligonului. Din punct de
vedere practic, dat fiind faptul că poligonul este convex, el poate fi
triangulat folosind un evantai de triunghiuri având un vârf comun (de
exemplu P1 ), fiind suficiente m − 2 teste.
Tehnica Ray Tracing 12 / 19
Aplicaţii - efecte vizuale

Umbre - figura

Tehnica Ray Tracing 13 / 19


Aplicaţii - efecte vizuale

Umbre
Se presupune că scena reprezentată are o sursă de lumină (direcţională, cu
direcţia de propagare l); tehnica Ray Tracing poate fi aplicată pentru
determinarea umbrelor obiectelor din scenă.

Tehnica Ray Tracing 14 / 19


Aplicaţii - efecte vizuale

Umbre
Se presupune că scena reprezentată are o sursă de lumină (direcţională, cu
direcţia de propagare l); tehnica Ray Tracing poate fi aplicată pentru
determinarea umbrelor obiectelor din scenă.
I Aplicarea Ray Tracing se face la nivel de pixel, pentru obiectele ce
sunt reprezentate.

Tehnica Ray Tracing 14 / 19


Aplicaţii - efecte vizuale

Umbre
Se presupune că scena reprezentată are o sursă de lumină (direcţională, cu
direcţia de propagare l); tehnica Ray Tracing poate fi aplicată pentru
determinarea umbrelor obiectelor din scenă.
I Aplicarea Ray Tracing se face la nivel de pixel, pentru obiectele ce
sunt reprezentate.
I Fie M un punct analizat (de exemplu centrul unui pixel virtual),
aparţinând unui obiect ce trebuie reprezentat şi a cărui umbră trebuie
calculată.

Tehnica Ray Tracing 14 / 19


Aplicaţii - efecte vizuale

Umbre
Se presupune că scena reprezentată are o sursă de lumină (direcţională, cu
direcţia de propagare l); tehnica Ray Tracing poate fi aplicată pentru
determinarea umbrelor obiectelor din scenă.
I Aplicarea Ray Tracing se face la nivel de pixel, pentru obiectele ce
sunt reprezentate.
I Fie M un punct analizat (de exemplu centrul unui pixel virtual),
aparţinând unui obiect ce trebuie reprezentat şi a cărui umbră trebuie
calculată.
I Se aplică RT(M, −l, ε, ∞) pentru a determina posibilele obiecte
situate ı̂n umbră (primul parametru este ε > 0 şi nu exact 0, pentru a
nu interpreta obiectul căruia ı̂n aparţine punctul M ca fiind interpus ı̂n
tre M şi sursa de lumină).

Tehnica Ray Tracing 14 / 19


Aplicaţii - efecte vizuale

Umbre
Se presupune că scena reprezentată are o sursă de lumină (direcţională, cu
direcţia de propagare l); tehnica Ray Tracing poate fi aplicată pentru
determinarea umbrelor obiectelor din scenă.
I Aplicarea Ray Tracing se face la nivel de pixel, pentru obiectele ce
sunt reprezentate.
I Fie M un punct analizat (de exemplu centrul unui pixel virtual),
aparţinând unui obiect ce trebuie reprezentat şi a cărui umbră trebuie
calculată.
I Se aplică RT(M, −l, ε, ∞) pentru a determina posibilele obiecte
situate ı̂n umbră (primul parametru este ε > 0 şi nu exact 0, pentru a
nu interpreta obiectul căruia ı̂n aparţine punctul M ca fiind interpus ı̂n
tre M şi sursa de lumină).
I Dacă RT(M, −l, ε, ∞) returnează mulţimea vidă ∅ (i.e. nu există
obiect de intersecţie), se calculează culoarea pixelului cu formula
modelului de iluminare, iar ı̂n caz contrar se utilizează culoarea
umbrei.
Tehnica Ray Tracing 14 / 19
Aplicaţii - efecte vizuale

Reflexie - figura

Tehnica Ray Tracing 15 / 19


Aplicaţii - efecte vizuale

Reflexie

I Fie s normala la o suprafaţă S ı̂ntr-un punct P al acesteia, δ direcţia


de propagare a luminii. Un observator poate detecta ceea ce se
reflectă ı̂n direcţia ρ = ρ(s, δ) dată de egalitatea

ρ − δ = w = 2(−δ · s)s,

unde (−δ · s)s este proiecţia ortogonală a lui δ pe dreapta direcţionată


de s.

Tehnica Ray Tracing 16 / 19


Aplicaţii - efecte vizuale

Reflexie

I Fie s normala la o suprafaţă S ı̂ntr-un punct P al acesteia, δ direcţia


de propagare a luminii. Un observator poate detecta ceea ce se
reflectă ı̂n direcţia ρ = ρ(s, δ) dată de egalitatea

ρ − δ = w = 2(−δ · s)s,

unde (−δ · s)s este proiecţia ortogonală a lui δ pe dreapta direcţionată


de s.
I Aşadar, direcţia de reflexie este

ρ = δ − 2(δ · s)s.

Tehnica Ray Tracing 16 / 19


Aplicaţii - efecte vizuale

Reflexie

I Fie s normala la o suprafaţă S ı̂ntr-un punct P al acesteia, δ direcţia


de propagare a luminii. Un observator poate detecta ceea ce se
reflectă ı̂n direcţia ρ = ρ(s, δ) dată de egalitatea

ρ − δ = w = 2(−δ · s)s,

unde (−δ · s)s este proiecţia ortogonală a lui δ pe dreapta direcţionată


de s.
I Aşadar, direcţia de reflexie este

ρ = δ − 2(δ · s)s.

I Aplicând Ray Tracing sub forma RT(P, ρ, ε, ∞), se poate stabili ce


obiecte ı̂ntâlneşte raza reflectată.

Tehnica Ray Tracing 16 / 19


Aplicaţii - efecte vizuale

Refracţie - figura

Tehnica Ray Tracing 17 / 19


Aplicaţii - efecte vizuale

Refracţie
I Fie δ direcţia razei incidente dintr-un mediu cu indicele de refracţie ν
şi % direcţia urmată după trecerea ı̂ntr-un mediu cu un indice de
refracţie mai mare, νt (a cărui frontieră este o suprafaţă S).

Tehnica Ray Tracing 18 / 19


Aplicaţii - efecte vizuale

Refracţie
I Fie δ direcţia razei incidente dintr-un mediu cu indicele de refracţie ν
şi % direcţia urmată după trecerea ı̂ntr-un mediu cu un indice de
refracţie mai mare, νt (a cărui frontieră este o suprafaţă S).
I Notăm cu θ şi ϕ unghiurile formate de vectorii −δ şi −% cu normala s
la suprafaţa S.

Tehnica Ray Tracing 18 / 19


Aplicaţii - efecte vizuale

Refracţie
I Fie δ direcţia razei incidente dintr-un mediu cu indicele de refracţie ν
şi % direcţia urmată după trecerea ı̂ntr-un mediu cu un indice de
refracţie mai mare, νt (a cărui frontieră este o suprafaţă S).
I Notăm cu θ şi ϕ unghiurile formate de vectorii −δ şi −% cu normala s
la suprafaţa S.
I Legea lui Snell stabileşte relaţia ı̂ntre aceste elemente

ν sin θ = νt sin ϕ.

Tehnica Ray Tracing 18 / 19


Aplicaţii - efecte vizuale

Refracţie
I Fie δ direcţia razei incidente dintr-un mediu cu indicele de refracţie ν
şi % direcţia urmată după trecerea ı̂ntr-un mediu cu un indice de
refracţie mai mare, νt (a cărui frontieră este o suprafaţă S).
I Notăm cu θ şi ϕ unghiurile formate de vectorii −δ şi −% cu normala s
la suprafaţa S.
I Legea lui Snell stabileşte relaţia ı̂ntre aceste elemente

ν sin θ = νt sin ϕ.
I Considerând ca date de intrare δ, indicii ν, ν 0 , normala s şi punctul P,
se poate calcula vectorul %, care indică direcţia razei refractate
"s #
ν ν 2 (1 − (δ · s)2 ) ν
%= δ+ 1− − (δ · s) s.
νt νt2 νt

Tehnica Ray Tracing 18 / 19


Aplicaţii - efecte vizuale

Refracţie
I Fie δ direcţia razei incidente dintr-un mediu cu indicele de refracţie ν
şi % direcţia urmată după trecerea ı̂ntr-un mediu cu un indice de
refracţie mai mare, νt (a cărui frontieră este o suprafaţă S).
I Notăm cu θ şi ϕ unghiurile formate de vectorii −δ şi −% cu normala s
la suprafaţa S.
I Legea lui Snell stabileşte relaţia ı̂ntre aceste elemente

ν sin θ = νt sin ϕ.
I Considerând ca date de intrare δ, indicii ν, ν 0 , normala s şi punctul P,
se poate calcula vectorul %, care indică direcţia razei refractate
"s #
ν ν 2 (1 − (δ · s)2 ) ν
%= δ+ 1− − (δ · s) s.
νt νt2 νt

I Aplicând Ray Tracing sub forma RT(P, %, ε, ∞), se poate stabili ce


obiecte ı̂ntâlneşte raza refractată.
Tehnica Ray Tracing 18 / 19
Exerciţii

Exerciţii


1. Fie P0 = (1, 5, 4) şi sfera S de centru (2, 2, 4) şi rază 2. Daţi
exemplu de vector r astfel ca raza dusă prin P0 având direcţia dată
de r să intersecteze sfera S ı̂n exact un punct.

2. Fie P0 = (3, 2, −1) şi vectorul r = (1, 2, 1). Daţi exemplu de sferă
S, indicând centrul şi raza acesteia, astfel ca raza dusă prin P0
având direcţia dată de r să intersecteze sfera S ı̂n exact un punct.

3. O rază este incidentă la o suprafaţă reflectantă după direcţia


(3, 2, 1). Determinaţi care este direcţia razei reflectate,

dacă√
normala la suprafaţă ı̂n punctul de incidenţă este (0, 2 , − 22 ).
2

Tehnica Ray Tracing 19 / 19

You might also like