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