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 Raytracer - 2008.03.19

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 Raytracer - 2008.03.26 Raytracer - 2008.04.05 Raytracer - 2008.04.05

I ostatecznie przynajmniej na ten czas wersja finalna:

Raytracer 0.2.1 - 2008.05.15 Raytracer 0.2.1 - 2
008.05.15 Raytracer 0.2.1 - 2008.05.15 Raytracer 0.2.1 - 2008.05.15

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 !