Grafika Komputerowa. Metoda ´sledzenia promieni
Aleksander Denisiuk
Polsko-Japo ´nska Akademia Technik Komputerowych
Wydział Informatyki w Gda ´nsku
ul. Brzegi 55
80-045 Gda ´nsk
Metoda ´sledzenia promieni
Podstawy
Model o´swietlenia
Algorytm
Techniki zaawansowane
2 / 30
Najnowsza wersja tego dokumentu dost ˛epna jest pod adresem
Podstawy
Podstawy
Scena fotorealistyczna
Ray tracing
Model o´swietlenia
Algorytm
Techniki zaawansowane
Scena fotorealistyczna
Podstawy
Scena fotorealistyczna
Ray tracing
Model o´swietlenia
Algorytm
Techniki zaawansowane
4 / 30
´
Sledzenie promieni
Podstawy
Scena fotorealistyczna
Ray tracing
Model o´swietlenia
Algorytm
Techniki zaawansowane
eye viewport lightFigureIX.1: The simplestkind ofraytra ing, non-re ursiveray tra ing,involves asting rays of light from the view position through pixel positions. A lo al lighting model is used to al ulate the illumination of the surfa e interse ted
Czujnik cienia (shadow feeler)
Podstawy
Scena fotorealistyczna
Ray tracing
Model o´swietlenia
Algorytm
Techniki zaawansowane
6 / 30
eye lightFigure IX.2: Shadow feelers: Rays from the eye are tra ed to their interse tions with obje ts in the s ene. Shadow feeler rays, shown as dotted lines, are sent from the points in the s ene to ea h light in order to determine whether the point is dire tly illuminated by the point light sour e or whether it is in a shadow. The two shadow feelers marked with an \X" show that the light is not
´
Sledzenie promieni odbijanych
Podstawy
Scena fotorealistyczna
Ray tracing
Model o´swietlenia
Algorytm
Techniki zaawansowane
eye lightFigure IX.3: Re e tion rays: The path of the ray from the eye is tra ed through multiple re e tions. This al ulates approximations to the lighting ee ts of multiple re e tions.
Promienie załamane
Podstawy
Scena fotorealistyczna
Ray tracing
Model o´swietlenia
Algorytm
Techniki zaawansowane
8 / 30
eye lightFigure IX.4: Transmission and re e tion rays: The path of the ray from the eye is tra ed through multiple re e tions and transmissions. Re e tion rays are shown as solid lines, transmission rays as dotted lines. The shadow feeler rays would still be used, but are not shown.
Model o ´swietlenia
Podstawy
Model o´swietlenia
Promienie odbijane
Promienie załamane
Całkowite o´swietlenie
Algorytm
Techniki zaawansowane
Lokalne o ´swietlenie i promienie odbijane
Podstawy
Model o´swietlenia
Promienie odbijane
Promienie załamane
Całkowite o´swietlenie
Algorytm
Techniki zaawansowane
10 / 30
` r v n v I re e t I I inFigure IX.5: The usual setup for re e tion rays in basi re ursive ray tra ing. Theve tor v pointsin the dire tionoppositetothe in omingray. Thedire tion of perfe t re e tion is shown by the ve tor r
v
. The ve tor ` points to a point light sour e. I is the outgoing light intensity as seen from the dire tion given by v. I
re e t
is the in oming light from the re e tion dire tion r v
. I in
is the intensity of the light from the light sour e. (Compare this to gure III.7 on page 72.)
O ´swietlenie punktu na powierzchni
Podstawy
Model o´swietlenia
Promienie odbijane
Promienie załamane
Całkowite o´swietlenie
Algorytm
Techniki zaawansowane
I
= I
local
+ ρ
rg
I
reflect
I
local
= ρ
a
I
a
in,i
+ δ
i
·
ρ
d
I
d
in,i
(ℓ
i
· n) + ρ
s
I
s
in,i
(r
v
· ℓ
i
)
f
δ
i
= 1
, je´sli punkt jest bezpo´srednio o´swietlony ´swiatlem
i
, 0 —
w przeciwnym przypadku.
współczynniki
ρ
zale˙z ˛
a od kolorów (cz˛estotliwo´sci)
Promienie załamane
Podstawy
Model o´swietlenia
Promienie odbijane
Promienie załamane
Całkowite o´swietlenie
Algorytm
Techniki zaawansowane
12 / 30
t n v v t t perp t lat v latFigure IX.6: Computing the transmission ray dire tion t. The horizontal line representsthesurfa e ofatransmissivematerial; n istheunit ve tor normalto the surfa e. Theve tor v points in the dire tionoppositeto the in omingray. The dire tion of perfe t transmission is shown by the ve tor t. The ve tors v
lat
and t lat
arethe proje tionsof theseve tors onto the planetangentto the surfa e. And, t
perp
isthe proje tion of t onto thenormalve tor.
Prawo Snelliusa
sin θ
v
sin θ
t
Współczynnik załamania
Podstawy
Model o´swietlenia
Promienie odbijane
Promienie załamane
Całkowite o´swietlenie
Algorytm
Techniki zaawansowane
η
≈ 1, 3
— powietrze
→
woda.
η
≈ 1, 5
— powietrze
→
szkło.
sin θ
t
= η
−1
sin θ
v
.
Je˙zeli
η
−1
sin θ
v
>
1,
to nie ma załamania, tylko całkowite
wewn ˛etrzne odbijanie
Obliczenie wetora
t
Podstawy
Model o´swietlenia
Promienie odbijane
Promienie załamane
Całkowite o´swietlenie
Algorytm
Techniki zaawansowane
14 / 30
v
lat
= v − (v · n)n
kt
lat
k = sin θ
t
= η
−1
sin θ
v
= η
−1
kv
lat
k
t
lat
= −η
−1
v
lat
cos θ
t
=
p
1 − sin
2
θ
t
=
p1 − kt
lat
k
2
(
kt
lat
k < 1
)
t
perp
= −p1 − kt
lat
k
2
· n
t
= t
lat
+ t
perp
t
perp
= −p1 − η
−2
(1 − (v · n)
2
) · n
Rozszerzenie modelu Phonga
Podstawy
Model o´swietlenia
Promienie odbijane
Promienie załamane
Całkowite o´swietlenie
Algorytm
Techniki zaawansowane
(a) Light (b) LightFigure IX.7: (a) Diusely transmitted light. (b) Spe ularly transmitted light. The spe ularly transmitted light is entered around the transmission dire tion from Snell's law.
Rozszerzenie modelu Phonga
Podstawy
Model o´swietlenia
Promienie odbijane
Promienie załamane
Całkowite o´swietlenie
Algorytm
Techniki zaawansowane
16 / 30
I lo al I in ` t n vFigureIX.8: The ve tors used inthe omputation oftransmitted lightare v, `,t,and n. Theve torv pointsinthedire tionoppositetothein omingray. Thedire tionofperfe ttransmissionis shownbythe ve tor t. The dire tion oppositetothein ominglightisgivenby `.
I
local
i
= ρ
a
I
a
in,i
+ δ
i
′
·
ρ
dt
I
d
in,i
(ℓ
i
· (−n)) + ρ
st
I
s
in,i
(t · ℓ
i
)
f
Rozszerzenie modelu Phonga
Podstawy
Model o´swietlenia
Promienie odbijane
Promienie załamane
Całkowite o´swietlenie
Algorytm
Techniki zaawansowane
I
local
=ρ
a
I
a
in
+ ρ
d
k
X
i=1
δ
i
I
d
in,i
(ℓ
i
· n)+
+ ρ
s
k
X
i=1
δ
i
I
s
in,i
(r
v
· ℓ
i
)
f
+ ρ
dt
k
X
i=1
δ
i
′
I
d
in,i
(ℓ
i
· (−n))+
+ ρ
st
k
X
i=1
δ
i
′
I
s
in,i
(t · ℓ
i
)
f
+ I
e
Algorytm
Podstawy
Model o´swietlenia
Algorytm
Algorytm
Sprawdzenie
przeci ˛ecia
Techniki zaawansowane
18 / 30
Algorytm
Podstawy
Model o´swietlenia
Algorytm
Algorytm
Sprawdzenie
przeci ˛ecia
Techniki zaawansowane
Dla ka˙zdego promienia:
Znajd´z pierwsze miejsce przeci ˛ecia ze scen ˛
a.
Je´sli promie ´n nie przecina ˙zadnego obiektu ze sceny, wykorzystuj
„kolor tła”.
Oblicz o´swietlenia punktu zgodnie z modelem oswietlenia.
Wypu´s´c promienie odbijane oraz załamane.
Zastosuj rekurencyjnie algorytm do ka˙zdego wypuszczonego
promienia.
Dodaj wyniki obliczenia o´siwetle ´n.
Sprawdzenie przeci ˛ecia
Podstawy
Model o´swietlenia
Algorytm
Algorytm
Sprawdzenie
przeci ˛ecia
Techniki zaawansowane
20 / 30
Obiekty modeluje si ˛e za pomoc ˛
a prostych figur: sfera, walec, sto˙zek,
torus, wielobok płaski, wielobok o bokach w postaci powierzchi
Béziera, B-spline powierzchni.
Sprawdza si ˛e dla ka˙zdego promienia, dla ka˙zdego czujnika cieni.
Zale˙zy od ilo´sci uwzgl ˛ednianych odbi´c.
Techniki zaawansowane
Podstawy
Model o´swietlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Gł ˛ebia ostro´sci
Rozmazywanie ruchu
Mi ˛ekie cienie
Wiele kolorów
Path tracing
Backwards
Supersampling i Antialiasing
Podstawy
Model o´swietlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Gł ˛ebia ostro´sci
Rozmazywanie ruchu
Mi ˛ekie cienie
Wiele kolorów
Path tracing
Backwards
22 / 30
(a)No supersampling.(b) Supersampling with jittered subpixel enters.
Figure IX.9: An example of anti-aliasing using jittered subpixel enters. (a) shows the s ene rendered without supersampling; note the \jaggies" on the silhouettes of the balls, forinstan e. (b) is the s ene with pixels sele tively
Supersampling i Antialiasing
Podstawy
Model o´swietlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Gł ˛ebia ostro´sci
Rozmazywanie ruchu
Mi ˛ekie cienie
Wiele kolorów
Path tracing
Backwards
23 / 30
(a) No supersampling.Gł ˛ebia ostro ´sci
Podstawy
Model o´swietlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Gł ˛ebia ostro´sci
Rozmazywanie ruchu
Mi ˛ekie cienie
Wiele kolorów
Path tracing
Backwards
24 / 30
fo al planeFigure IX.11: The rays from the jittered viewpoints onverge at the fo al plane, but not at the ba k plane.
Gł ˛ebia ostro ´sci
Podstawy
Model o´swietlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Gł ˛ebia ostro´sci
Rozmazywanie ruchu
Mi ˛ekie cienie
Wiele kolorów
Path tracing
Backwards
Figure IX.12: An example of depth of eld. The front of the eight ball is the fo al plane. Note also the blurring of the he kerboard plane. In this image, ea h pixel is sele tively supersampled up to 40 times. The eye positions and the subpixel positions were independently jittered as des ribed on page 315. See olor plate C.11.
Rozmazywanie ruchu
Podstawy
Model o´swietlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Gł ˛ebia ostro´sci
Rozmazywanie ruchu
Mi ˛ekie cienie
Wiele kolorów
Path tracing
Backwards
26 / 30
Figure IX.13: An example of motion blur. Pixels were sele tively supersampled up to 40 times. Both motion supersampling and subpixel supersampling were used. See olor plate C.12.