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 Ò Ù Ô º ÙºÔÐ 1 / 30
Metoda śledzenia promieni Najnowsza wersja tego dokumentu dostępna jest pod adresem ØØÔ»»Ù Ö ºÔ º ÙºÔл Ò Ù 2 / 30
Scena fotorealistyczna Ray tracing 3 / 30
Scena fotorealistyczna Scena fotorealistyczna Ray tracing 4 / 30
Śledzenie promieni Scena fotorealistyczna Ray tracing Ð Ø Ý Ú ÛÔÓÖØ 5 / 30
Czujnik cienia (shadow feeler) Scena fotorealistyczna Ray tracing Ð Ø Ý 6 / 30
Śledzenie promieni odbijanych Scena fotorealistyczna Ray tracing Ð Ø Ý I = I local +ρ rg I reflect 7 / 30
Promienie załamane Scena fotorealistyczna Ray tracing Ð Ø Ý I = I local +ρ rg I reflect +ρ tg I xmit 8 / 30
Promienie odbijane Promienie załamane Całkowite oświetlenie 9 / 30
Á Ö Ø ÖÚ Á Ò Lokalne oświetlenie i promienie odbijane Promienie odbijane Ò Promienie załamane Całkowite oświetlenie Á Ú Wektor odbijanyr v = 2(v n) v. 10 / 30
Oświetlenie punktu na powierzchni Promienie odbijane Promienie załamane Całkowite oświetlenie I local = ρ a I in,i a +δ i I = I local +ρ rg I reflect ( ρ d I in,i d (l i n)+ρ s I in,i s (r v l i ) f) δ i = 1, jeśli punkt jest bezpośrednio oświetlony światlemi, 0 w przeciwnym przypadku. współczynnikiρzależa od kolorów (częstotliwości) I reflect oblicza się rekurencyjnie powtarzajac algorytm ray tracing 11 / 30
Ø Ð Ø Ø Ø Ô ÖÔ Promienie załamane Ò Promienie odbijane Promienie załamane Całkowite oświetlenie Ú Ú Ú Ð Ø Ø Prawo Snelliusa sinθ v sinθ t = η. 12 / 30
Współczynnik załamania Promienie odbijane Promienie załamane Całkowite oświetlenie η 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 wewnętrzne odbijanie 13 / 30
Obliczenie wetorat Promienie odbijane Promienie załamane Całkowite oświetlenie v lat = v (v n)n t lat = sinθ t = η 1 sinθ v = η 1 v lat t lat = η 1 v lat cosθ t = 1 sin 2 θ t = 1 t lat 2 ( t lat < 1) t perp = 1 t lat 2 n t = t lat +t perp t perp = 1 η 2 (1 (v n) 2 ) n t = η 1 ((v n)n v) 1 η 2 (1 (v n) 2 ) n 14 / 30
Rozszerzenie modelu Phonga Promienie odbijane Promienie załamane Całkowite oświetlenie Ä Ø Ä Ø µ µ 15 / 30
Á Ò Á ÐÓ Ð Rozszerzenie modelu Phonga Ò Promienie odbijane Ú Promienie załamane Całkowite oświetlenie Ø I i local = ρ ai in,i a +δ i ( ρ dt I in,i d (l i ( n))+ρ st I in,i s (t l i ) f ) 16 / 30
Rozszerzenie modelu Phonga Promienie odbijane Promienie załamane Całkowite oświetlenie I local =ρ a I in a +ρ d +ρ s k i=1 +ρ st k i=1 k i=1 δ i I in,i d (l i n)+ δ i I in,i s (r v l i ) f +ρ dt δ ii in,i s (t l i ) f +I e k i=1 δ ii in,i d (l i ( n))+ 17 / 30
Sprawdzenie przecięcia 18 / 30
Sprawdzenie przecięcia Dla każdego promienia: Znajdź pierwsze miejsce przecięcia 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 przecięcia Sprawdzenie przecięcia Obiekty modeluje się za pomoca prostych figur: sfera, walec, stożek, torus, wielobok płaski, wielobok o bokach w postaci powierzchi Béziera, B-spline powierzchni. Sprawdza się dla każdego promienia, dla każdego czujnika cieni. Zależy od ilości uwzględnianych odbić. Najbardziej kosztowne względem obliczeń działanie. 20 / 30
Supersampling i Antialiasing Głębia ostrości Rozmazywanie ruchu Miękie cienie Wiele kolorów Path tracing Backwards 21 / 30
Supersampling i Antialiasing Supersampling i Antialiasing Głębia ostrości Rozmazywanie ruchu Miękie cienie Wiele kolorów Path tracing µ ÆÓ ÙÔ Ö ÑÔÐ Ò º Backwards 22 / 30 µ ËÙÔ Ö ÑÔÐ Ò Û Ø ØØ Ö Ù Ô Ü Ð ÒØ Ö º
Supersampling i Antialiasing Supersampling i Antialiasing Głębia ostrości Rozmazywanie ruchu Miękie cienie Wiele kolorów Path tracing µ ÆÓ ÙÔ Ö ÑÔÐ Ò º Backwards 23 / 30 µ ËÙÔ Ö ÑÔÐ Ò Û Ø ØØ Ö Ù Ô Ü Ð ÒØ Ö º
Głębia ostrości Supersampling i Antialiasing Głębia ostrości Rozmazywanie ruchu Ó Ð ÔÐ Ò Miękie cienie Wiele kolorów Path tracing Backwards 24 / 30
Głębia ostrości Supersampling i Antialiasing Głębia ostrości Rozmazywanie ruchu Miękie cienie Wiele kolorów Path tracing Backwards 25 / 30
Rozmazywanie ruchu Supersampling i Antialiasing Głębia ostrości Rozmazywanie ruchu Miękie cienie Wiele kolorów Path tracing Backwards 26 / 30
Miękie cienie ÙÐÐ ÐÐÙÑ Ò Ø ÓÒ Supersampling i Antialiasing È ÒÙÑ Ö Głębia ostrości Ä Ø ÙÐÐ ÓÛ Rozmazywanie ruchu Miękie cienie Wiele kolorów Path tracing È ÒÙÑ Ö Backwards ÙÐÐ ÐÐÙÑ Ò Ø ÓÒ 27 / 30
Wiele kolorów Nie tylko RGB, Odbicie i załamanie zależy od barwy (częstotliwości fai). Supersampling i Antialiasing Głębia ostrości Rozmazywanie ruchu Miękie cienie Wiele kolorów Path tracing Backwards 28 / 30
Path tracing Supersampling i Antialiasing Głębia ostrości Rozmazywanie ruchu Miękie cienie Wiele kolorów Path tracing Backwards Cycles 29 / 30
Odwrotny ray tracing Supersampling i Antialiasing Głębia ostrości Rozmazywanie ruchu Miękie cienie Wiele kolorów Path tracing Backwards Skupienie światła 30 / 30