Algorytmy metody śledzenia promieni - Polsko

Transkrypt

Algorytmy metody śledzenia promieni - Polsko
Grafika Komputerowa. Metoda śledzenia promieni
Aleksander Denisiuk
Polsko-Japońska Akademia Technik Komputerowych
Wydział Informatyki w Gdańsku
ul. Brzegi 55
80-045 Gdańsk
denisjukpja.edu.pl
1 / 30
Metoda śledzenia promieni
Podstawy
Najnowsza wersja tego dokumentu dostepna
˛
jest pod adresem
Model oświetlenia
Algorytm
http://users.pja.edu.pl/~denisjuk
Techniki zaawansowane
2 / 30
Podstawy
Scena fotorealistyczna
Ray tracing
Model oświetlenia
Algorytm
Techniki zaawansowane
Podstawy
3 / 30
Scena fotorealistyczna
Podstawy
Scena fotorealistyczna
Ray tracing
Model oświetlenia
Algorytm
Techniki zaawansowane
4 / 30
Śledzenie promieni
Podstawy
Scena fotorealistyczna
light
Ray tracing
Model oświetlenia
Algorytm
Techniki zaawansowane
eye
viewport
Figure IX.1: The simplest kind of ray traing, non-reursive ray traing, involves
asting rays of light from the view position through pixel positions.
A loal
lighting model is used to alulate the illumination of the surfae interseted
by the ray.
5 / 30
Czujnik cienia (shadow feeler)
Podstawy
light
Scena fotorealistyczna
Ray tracing
Model oświetlenia
Algorytm
Techniki zaawansowane
eye
Figure IX.2: Shadow feelers: Rays from the eye are traed to their intersetions
with objets in the sene. Shadow feeler rays, shown as dotted lines, are sent
from the points in the sene to eah light in order to determine whether the
point is diretly illuminated by the point light soure or whether it is in a6 / 30
shadow. The two shadow feelers marked with an \ " show that the light is not
X
Śledzenie promieni odbijanych
Podstawy
light
Scena fotorealistyczna
Ray tracing
Model oświetlenia
Algorytm
Techniki zaawansowane
eye
Figure IX.3: Reetion rays: The path of the ray from the eye is traed through
= Ilocal approximations
+ ρrg Ireflect to the lighting eets of
multiple reetions. ThisI alulates
multiple reetions.
7 / 30
Promienie załamane
Podstawy
light
Scena fotorealistyczna
Ray tracing
Model oświetlenia
Algorytm
Techniki zaawansowane
eye
Figure IX.4: Transmission and reetion rays: The path of the ray from the
eye is traed through multiple reetions and transmissions. Reetion rays are
I=
Ilocal + ρrays
+ρ
rg Ireflect
tg Ixmit
shown as solid lines,
transmission
as dotted
lines.
The shadow feeler rays
would still be used, but are not shown.
8 / 30
Podstawy
Model oświetlenia
Promienie odbijane
Promienie załamane
Całkowite oświetlenie
Algorytm
Techniki zaawansowane
Model oświetlenia
9 / 30
Lokalne oświetlenie i promienie odbijane
Podstawy
I in
Model oświetlenia
Promienie odbijane
`
Promienie załamane
Ireet
Całkowite oświetlenie
rv
n
v
I
Algorytm
Techniki zaawansowane
Wektor
Figure IX.5: The usual setup for reetion rays in basi reursive ray traing.
The vetorrv
in the
diretion
to the inoming ray. The diretion
odbijany
= 2(v
· n)
− vopposite
.
v points
of perfet reetion is shown by the vetor rv . The vetor ` points to a point
light soure. I is the outgoing light intensity as seen from the diretion given
by v . Ireet is the inoming light from the reetion diretion rv . I in is the
intensity of the light from the light soure. (Compare this to gure III.7 on
page 72.)
10 / 30
Oświetlenie punktu na powierzchni
Podstawy
Model oświetlenia
Promienie odbijane
Promienie załamane
Ilocal
Całkowite oświetlenie
I = Ilocal + ρrg Ireflect
in,i
= ρa Iain,i + δi · ρd Id (ℓi · n) + ρs Isin,i (rv · ℓi )f
Algorytm
Techniki zaawansowane
δi = 1, jeśli punkt jest bezpośrednio oświetlony światlem i, 0 —
w przeciwnym przypadku.
współczynniki ρ zależa˛ od kolorów (cz˛estotliwości)
Ireflect oblicza sie˛ rekurencyjnie powtarzajac
˛ algorytm ray tracing
11 / 30
Promienie załamane
n
Podstawy
Model oświetlenia
v
v
Promienie odbijane
Promienie załamane
vlat
tlat
Całkowite oświetlenie
t
Algorytm
t
tperp
Techniki zaawansowane
Figure IX.6: Computing the transmission ray diretion
Prawo Snelliusa
represents the surfae of a transmissive material;
the surfae. The vetor
v
sin θv
= η.
sin θt
n
t.
The horizontal line
is the unit vetor normal to
points in the diretion opposite to the inoming ray.
The diretion of perfet transmission is shown by the vetor
vlat
and
tlat
surfae. And,
t.
The vetors
are the pro jetions of these vetors onto the plane tangent to the
tperp
is the pro jetion of
t
onto the normal vetor.
12 / 30
Współczynnik załamania
Podstawy
Model oświetlenia
Promienie odbijane
Promienie załamane
Całkowite oświetlenie
Algorytm
η ≈ 1, 3 — powietrze → woda.
η ≈ 1, 5 — powietrze → szkło.
sin θt = η −1 sin θv .
Jeżeli η −1 sin θv > 1, to nie ma załamania, tylko całkowite
wewnetrzne
˛
odbijanie
Techniki zaawansowane
13 / 30
Obliczenie wetora t
Podstawy
Model oświetlenia
Promienie odbijane
Promienie załamane
Całkowite oświetlenie
Algorytm
Techniki zaawansowane
vlat = v − (v · n)n
ktlat k = sin θt = η −1 sin θv = η −1 kvlat k
−1 v
tlat = −ηp
lat
p
2
cos θt = p1 − sin θt = 1 − ktlat k2 (ktlat k < 1)
tperp = − 1 − ktlat k2 · n
t = tlat + p
tperp
tperp = − 1 − η −2 (1 −p
(v · n)2 ) · n
t = η −1 ((v · n)n − v) − 1 − η −2 (1 − (v · n)2 ) · n
14 / 30
Rozszerzenie modelu Phonga
Podstawy
Model oświetlenia
Promienie odbijane
Promienie załamane
Całkowite oświetlenie
Algorytm
Techniki zaawansowane
Light
(a)
Light
(b)
Figure IX.7: (a) Diusely transmitted light. (b) Speularly transmitted light.
The speularly transmitted light is entered around the transmission diretion
from Snell's law.
15 / 30
Rozszerzenie modelu Phonga
n
Podstawy
Model oświetlenia
v
Iloal
Promienie odbijane
Promienie załamane
`
Całkowite oświetlenie
I
in
t
Algorytm
Techniki zaawansowane
Figure IX.8: The vetors used in the omputation of transmitted light are
`,
t , and n .
The vetor
v
t
`
= ρa Iain,i + δi′ · ρdt Idin,i (ℓi · (−n)) + ρst Isin,i (t · ℓi )f
The diretion of perfet transmission is shown by the vetor
opposite to the inoming light is given by
i
Ilocal
v,
points in the diretion opposite to the inoming ray.
.
The diretion
.
16 / 30
Rozszerzenie modelu Phonga
Podstawy
Model oświetlenia
Promienie odbijane
Promienie załamane
Ilocal =ρa Iain + ρd
δi Idin,i (ℓi · n)+
i=1
Całkowite oświetlenie
Algorytm
Techniki zaawansowane
k
X
+ ρs
k
X
+ ρst
δi Isin,i (rv · ℓi )f + ρdt
i=1
k
X
k
X
δi′ Idin,i (ℓi · (−n))+
i=1
δi′ Isin,i (t · ℓi )f + Ie
i=1
17 / 30
Podstawy
Model oświetlenia
Algorytm
Algorytm
Sprawdzenie
przeciecia
˛
Techniki zaawansowane
Algorytm
18 / 30
Algorytm
Podstawy
Dla każdego promienia:
Model oświetlenia
Algorytm
Algorytm
Sprawdzenie
przeciecia
˛
Techniki zaawansowane
Znajdź pierwsze miejsce przeciecia
˛
ze scena.
˛
Jeśli promień nie przecina żadnego obiektu ze sceny, wykorzystuj
„kolor tła”.
Oblicz oświetlenia punktu zgodnie z modelem oswietlenia.
Wypuść promienie odbijane oraz załamane.
Zastosuj rekurencyjnie algorytm do każdego wypuszczonego
promienia.
Dodaj wyniki obliczenia ośiwetleń.
Warunek zakończenia rekurencji: ilość odbić.
19 / 30
Sprawdzenie przeciecia
˛
Podstawy
Model oświetlenia
Algorytm
Algorytm
Sprawdzenie
przeciecia
˛
Techniki zaawansowane
Obiekty modeluje sie˛ za pomoca˛ prostych figur: sfera, walec, stożek,
torus, wielobok płaski, wielobok o bokach w postaci powierzchi
Béziera, B-spline powierzchni.
Sprawdza sie˛ dla każdego promienia, dla każdego czujnika cieni.
Zależy od ilości uwzglednianych
˛
odbić.
Najbardziej kosztowne wzgledem
˛
obliczeń działanie.
20 / 30
Podstawy
Model oświetlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Głebia
˛
ostrości
Rozmazywanie ruchu
Techniki zaawansowane
Miekie
˛
cienie
Wiele kolorów
Path tracing
Backwards
21 / 30
Supersampling i Antialiasing
Podstawy
Model oświetlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Głebia
˛
ostrości
Rozmazywanie ruchu
Miekie
˛
cienie
Wiele kolorów
Path tracing
(a) No supersampling.
Backwards
(b) Supersampling with jittered subpixel enters.
22 / 30
Supersampling i Antialiasing
Podstawy
Model oświetlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Głebia
˛
ostrości
Rozmazywanie ruchu
Miekie
˛
cienie
Wiele kolorów
Path tracing
(a) No supersampling.
Backwards
(b) Supersampling with jittered subpixel enters.
23 / 30
Głebia
˛
ostrości
Podstawy
Model oświetlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
foal
Głebia
˛
ostrości
plane
Rozmazywanie ruchu
Miekie
˛
cienie
Wiele kolorów
Figure IX.11: The rays from the jittered viewpoints onverge at the foal plane,
but not at the bak plane.
Path tracing
Backwards
24 / 30
Głebia
˛
ostrości
Podstawy
Model oświetlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Głebia
˛
ostrości
Rozmazywanie ruchu
Miekie
˛
cienie
Wiele kolorów
Path tracing
Backwards
Figure IX.12: An example of depth of eld. The front of the eight ball is the
foal plane. Note also the blurring of the hekerboard plane. In this image,
eah pixel is seletively supersampled up to 40 times. The eye positions and the
subpixel positions were independently jittered as desribed on page 315. See
olor plate C.11.
25 / 30
Rozmazywanie ruchu
Podstawy
Model oświetlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Głebia
˛
ostrości
Rozmazywanie ruchu
Miekie
˛
cienie
Wiele kolorów
Path tracing
Backwards
Figure IX.13: An example of motion blur. Pixels were seletively supersampled
up to 40 times.
Both motion supersampling and subpixel supersampling were
used. See olor plate C.12.
26 / 30
Miekie
˛
cienie
Podstawy
Full illumination
Model oświetlenia
Algorytm
Penumbra
Techniki zaawansowane
Supersampling
i Antialiasing
Głebia
˛
ostrości
Light
Full shadow
Rozmazywanie ruchu
Miekie
˛
cienie
Wiele kolorów
Penumbra
Path tracing
Backwards
Full illumination
Figure IX.14: The penumbra is the area where the light is only partly bloked.
27 / 30
Wiele kolorów
Podstawy
Model oświetlenia
Nie tylko RGB,
Odbicie i załamanie zależy od barwy (cz˛estotliwości fai).
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Głebia
˛
ostrości
Rozmazywanie ruchu
Miekie
˛
cienie
Wiele kolorów
Path tracing
Backwards
28 / 30
Path tracing
Podstawy
Model oświetlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Głebia
˛
ostrości
Rozmazywanie ruchu
Miekie
˛
cienie
Wiele kolorów
Path tracing
Backwards
Cycles
29 / 30
Odwrotny ray tracing
Podstawy
Model oświetlenia
Algorytm
Techniki zaawansowane
Supersampling
i Antialiasing
Głebia
˛
ostrości
Rozmazywanie ruchu
Miekie
˛
cienie
Wiele kolorów
Path tracing
Backwards
Skupienie światła
30 / 30