24.01.2014 Views

Praca magisterska BVH

Praca magisterska BVH

Praca magisterska BVH

SHOW MORE
SHOW LESS

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;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!