Úkolem je implementovat některou variantu zobrazovacího algoritmu Path-tracing (náhodné procházky od kamery). Algoritmus by měl být zaměnitelný za modul RayTracing, tj. musí implementovat interface ImageFunction za podmínky, že jednotlivé primární paprsky (vzorky v daném pixelu) bude generovat externí sampler, např. JitteringSynthesizer.
Jako schéma výpočtu je potřeba zvolit některou sestavu umožňující mnohonásobné převzorkování pixelu (super-sampling), např. sRayTracingJitter.xml.
3D scéna: měla by obsahovat tělesa/materiály, na kterých bude poznat korektní výpočet příslušných světelných efektů - měkkého odrazu, měkkých stínů, nepřímého osvětlení, apod. Pro začátek je možné použít soubory data/phongTest.jgl nebo data/sceneAreaDof.jgl.
Použité metody: potenciálně nekonečná náhodná procházka zakončená ruskou ruletou, slepé sbírání světla nebo NEE (Next Event Estimation - k tomu byste si museli upravit třídy reprezentující světelné zdroje). Vzorkování slepé nebo řízené konkrétní BRDF funkcí (subkritická pravděpodobnost), můžete vyzkoušet "rejection sampling" pro generování vzorků podle libovolného rozdělení..
Porovnání výsledků: pokud to bude jen trochu možné, spočítejte vaši testovací scénu i klasickým (distribuovaným) ray-tracingem - sestava sRayTracingBest.xml. Porovnání výsledných obrázků i časů výpočtu mne zajímá..
Výsledky: je třeba poslat všechny zdrojové soubory, které vzniknou nebo které upravíte. Dále zapojení, která se vám osvědčila, včetně datových souborů (popis scény). Protože budou pravděpodobně výpočty časově náročnější, ocením i několik již hotových obrázků..
TERMÍN: do 9. 1. 2011
TRIVIÁLNÍ MODUL: class cz.cuni.jagrlib.piece.RayTracing
INTERFACE: ImageFunction
ZAPOJENÍ: sRayTracingJitter.xml, sRayTracingBest.xml, ...
3D SCÉNY: data/phongTest.jgl, data/sceneAreaDof.jgl, ale doporučuji udělat si i jiné, průkaznější..
Copyright (C) 2008-2010 J.Pelikán,
last change: $Date: 2010-10-18 13:46:04 +0200 (Mon, 18 Oct 2010) $
Send comments/requests to
pepca.at.cgg.mff.cuni.cz