blog.garaż.net

15 maj 2008

Raytracer

Ponieważ trochę czasu musiałem poświęcić na stworzenie tego programiku, to pochwalę się szerszej publiczności. Oto program generujący obraz na podstawie odwrotnego śledzenia promieni. :)

Krótka historia

Na początku była ciemność, jak często to bywa przy programowaniu grafiki, jeden mały błąd i nie widzimy nic, ciężko w takich sytuacjach stwierdzić co jest nie tak. Kilka godzin później przyszło na świat coś takiego:

![Raytracer - 2008.03.18](http://farm3.static.flickr.com/2187/2343548623_8578 174439_t.jpg) ![Raytracer - 2008.03.19](http://farm3.s tatic.flickr.com/2090/2345168847_ce76150730_t.jpg)

Po krótszych bojach udało się wstępnie dodać oświetlenie i po dłuższych... cienie, potem przyszły rozbłyski i odbicia:

![Raytracer - 2008.03.19](http://farm4.static.flickr.com/3249/2346162142_b3f9 66aba7_t.jpg) ![Raytracer - 2008.03.26](http://farm4.s tatic.flickr.com/3127/2364155061_39b34de192_t.jpg) ![Raytracer - 2008.04.05](http://farm3.static.flickr.com/2264/2389551853_290b 57677d_t.jpg) ![Raytracer - 2008.04.05](http://farm3.s tatic.flickr.com/2258/2389591949_9757d33fb1_t.jpg)

I ostatecznie przynajmniej na ten czas wersja finalna:

![Raytracer 0.2.1 - 2008.05.15](http://farm3.static.flickr.com/2315/249467728 1_5b9dd714a2_t.jpg) Raytracer 0.2.1 - 2
008.05.15 ![Raytracer 0.2.1 - 2008.05.15](http://farm4.static .flickr.com/3170/2494677577_a57db84ea8_t.jpg) ![Raytracer 0.2.1 - 2008.05.15](http://farm3.static.flickr.com/2016/249467782 1_8eec071616_t.jpg)

Wyniki

Dostępny jest model oświetlenia płaski, Lamberta, Phonga, można dodać odbicia i refrakcje, można skorzystać z takich prymitywów jak kula, płaszczyzna i trójkąt, definiować wiele źródeł świateł, można zapisywać wyrenderowane klatki do pliku (tymczasowo tylko BMP, zastanawiam się nad formatem Radiance), korzystać z dwóch rodzajów kamer (szybszej statycznej - ekran osadzony na płaszczyźnie xy, i dynamicznej z możliwością określania położenia obserwatora i punktu, na który patrzymy). Tymczasowo dostępny jest jeden operator tonów, Istnieje możliwość renderowania przyrostowego, pełnego, podglądowego i z antyaliasingiem. Na ten czas w kodzie jest sporo śmieci i masa rzeczy jest jeszcze niedopracowana, więc z publikacją jeszcze się wstrzymuje (na chomiku można znaleźć wersje wcześniejsze do testowania).

Na koniec jeszcze filmik, może w nie najlepszej jakości, ale można zaobserwować jak ładnie światło załamuje się w szklanej kuli.

Komentarze

  • skalniak (2008-05-25 23:21:29):

    fajny specularek :) no i cienie:)

Comments !