Praca magisterska BVH
Praca magisterska BVH
Praca magisterska BVH
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
6 Technika śledzenia promieni<br />
punkcie przecięcia jednego promienia ze sceną może zostać wygenerowanych<br />
bardzo wiele nowych promieni, które dalej są rekursywnie śledzone,<br />
w związku z tym złożoność obliczeniowa tej metody jest ogromna, pozwala<br />
ona jednak uzyskać najbardziej realistyczne obrazy, a w nich takie efekty jak:<br />
miękkie cienie, globalne oświetlenie sceny, mieszanie kolorów przy odbiciach,<br />
głębię ostrości, czy kaustyki;<br />
Schematy działania wyżej opisanych metod przedstawione są na rysunku 1.1,<br />
a przykładowe obrazy pokazujące różnice w uzyskanych obrazach widoczne są<br />
na rysunku 1.2.<br />
1.1.1. Algorytm rzutowania promieni<br />
Podstawowy algorytm rzutowania promieni jest bardzo prosty. Składa się z kilku<br />
niżej opisanych kroków.<br />
Dla każdego piksela p z płaszczyzny obrazu ip wykonaj kolejno:<br />
1. wygeneruj promień r z kamery c przechodzący przez piksel p<br />
2. znajdź najbliższe przecięcie i promienia r ze sceną s<br />
3. dla obliczonego przecięcia i oblicz kolor col (generując promień cienia i śledząc<br />
jego ścieżkę)<br />
4. zapisz kolor col w pikselu p<br />
Algorytmy rekurencyjnego, czy rozproszonego śledzenia promieni nie różnią<br />
się zbytnio od wyżej opisanego. Najważniejszą różnicą jest sposób obliczania natężenia<br />
oświetlenia w punkcie przecięcia oraz liczba śledzonych promieni i długości<br />
ścieżek mających wpływ na kolor danego piksela. Właśnie od liczby promieni<br />
i długości ścieżek zależy liczba wywołań funkcji szukającej najbliższego przecięcia<br />
promienia ze sceną. Wywołania tej funkcji pochłaniają najwięcej czasu tego<br />
algorytmu. Więcej o złożoności znajduje się w kolejnym punkcie.<br />
1.1.2. Złożoność<br />
Złożoność metody śledzenia promieni można oszacować w prosty sposób rozbijając<br />
algorytm na mniejsze składowe:<br />
• generowanie promienia przechodzącego przez dany piksel obrazu, jest zwykłą<br />
operacją różnicy dwóch punktów w przestrzeni 3D (czyli jest to kilka<br />
mnożeń i dodawań);<br />
• obliczanie koloru piksla także odbywa się w czasie stałym, jednak czasem,<br />
gdy mamy do czynienia z teksturami, potrzebnych jest nieco więcej operacji;