W ramach projektu należy stworzyć program, który będzie umożliwiał rendering z wykorzystaniem algorytmu śledzenia ścieżek wraz z różnymi algorytmami próbkowania.
W programie powinny znaleźć się m.in.:
- obsługa mapy środowiska
- interfejs konsolowy/graficzny, który umożliwi wczytanie sceny (modele wraz z materiałami oraz ich właściwościami) z pliku, podanie algorytmu próbkowania oraz wczytanie mapy środowiska
- implementacja algorytmu śledzenia ścieżek
- różne algorytmy próbkowania: całkowicie losowy, stratified sampling, multijittered sampling, szeregi małej rozbieżności (ang. low-discrepancy series)
- język programowania: Python
- wczytanie sceny za pomocą pycollada
- wybór sceny z pliku i podanie algorytmu z interfesju konsolowego jako argumenty wywołania
- scena jest wyeksportowana z Blender'a do formatu
.dae
- plik sceny zawiera jedną kamerę perspektywiczną
- światła są obiektami emitującymi światło, nie obiektami typu światło
- interfejs konsolowy
- render do pliku + wyskakujące GUI z efektem
Przykładową wizualizację punktów losowanych ze sfery można zobaczyć przy pomocy polecenia.
python3 -m pathtracer.test_samplers -a statified
Przykładowy wynik programu można uzyskać przy pomocy polecenia:
python3 -m pathtracer doc/test.dae random NONE output.png 200 -s 20