Počítačová grafika III (NPGR010) zima 2011/2012 |
|
Rozvrh: Přednáška - Po 14:00-15:30 S7 | Cvičení - Po 15:40-17:10 SW1 (Malá Strana)
Přednášející: Jaroslav Křivánek, e-mail: jaroslav.krivanek.at.mff.cuni.cz
Rozsah: 2/2 Z/Zk,  odkaz do SISu
Přednáška volně navazuje na Počítačovou grafiku II (NPGR004) a je určena pro vážné zájemce o počítačovou grafiku. Pokrývá moderní oblasti realistické syntézy obrazu: zobrazovací rovnice, Monte Carlo metody (sledování cest, fotonové mapy atd.) a dále podává stručných přehled o dalších vybraných tématech z pokročilé počítačové grafiky, jako např. výpočetní fotografie, HDR a mapování tónů, simulace zvuku, inverzní kinematika, skinning, motion capture, dynamika pevných těles a kapalin.
Požadavky k zápočtu a zkoušce jsou shrnuté v úvodní prezentaci (pdf | pptx).
INFORMACE O ZKOUŠCE.
Úloha 1
Datum odevzdání: po prvním neuspšném pokusu byl termín odevzdání posunut na 19.12.2011, odevzdání je možné pouze na cvičení. (Nyní už víte jak je úloha složitá, takže žádné další odsouvání termínu nepřipadá v úvahu.)
Odevzdání úlohy: Úlohu osobně odevzdávají na cvičení oba členové týmu.
Součástí odevzdání bude rozhovor se členy týmu o detailech implementace a použitých metod, oba členové týmu musí být na otázky připraveni a dokonale rozumět odevdávanému dílu.
Důležitou součástí odevzdané úlohy je zpráva ve formátu PDF nebo HTML se stručným popisem implementace a hlavně s naměřenými daty (vygenerované obrázky, rozdílové obrázky, grafy L2 chyby, ...).
K odevzdání připravte balík se zdrojovým kódem a exe souborem, s vašimi testovacími scénami, se zprávou a hlavně se skripty pomocí nichž lze reprodukovat vaše výsledky.
Při řešení úlohy je dovoleno používat libovolné zdroje, včetně kódu existujících rendererů (např. PBRT), všechny zdroje však musí být
citovány ve zprávě. Je dovoleno používat testovací scény vašich kolegů (pokud jim to nebude vadit a pokud jim poděkujete ve zprávě).
Není však dovoleno používat zdrojové kódy vašich kolegů. Snaha o odevzdání cizího díla je důvodem k vyloučení z předmětu.
Zadání
- Stáhněte si renderer embree.
- NOVÁ INFORMACE!!! od Petra Kadlečka: Patch pro ty, kteri nemaji SSE 4.2 instrukce (v Intelech az od Core i7 - cili chybi napriklad v Core 2 Duo).
V dalsim release embree to ma byt opravene - viz predposledni prispevek od Swena Woopa zde.
Po aplikovani patche se pak objevi hlaseni: "Intel remark: SSE4 intrinsics are emulated with SSE3" a embree normalne bezi.
- NOVÁ INFORMACE!!! od Martina Kahouna: pro ty, kteri by to chteli prekladat na Linuxu posilam patch, ktery opravuje CMakeList v common/image, kde chybel preklad novych cpp souboru a proto se to nechtelo slinkovat, v jednom z nich navic chybel #include . Dale je tam opraveny problem reseny zde.
Do konfigurace cmake je potreba zasahnout nasledovne (viz pdf v doc slozce):
CMAKE_BUILD_TYPE nastavit na "Release" (bez uvozovek)
SSE_VERSION nastavit podle procesoru, ja mam Core2Duo bez SSE4.2, takze "SSSE3" (opravdu tam jsou ty S 3)
PS: aplikace toho patche je jednoducha "patch -p1 < embree-1.0beta-pg3_linux.patch" v adresari se soubory embree.
- Vytvořte nový integrator v embree (inicialypt), zkopírujte do něho stávající path tracer. Toto bude vaše piskoviště. (Původní path tracer si nechte v nezměněném tvaru - to bude vaše reference.)
- Zahřívací kolo: Změňte path tracer, aby nepotřeboval rekurzi. Zrychlil se nějak výpočet? (Vždy kontrolujte, jestli výsledek konverguje ke stejnému řešení jako reference.)
- Přidejte ukončení rekurze ruskou ruletou (použití RR by mělo jít nastavit z příkazové řádky).
- Ukažte, že výsledek s/bez RR konverguje ke shodnému řešení (16x rozdílový obrázek, relativní L2 chyba).
- Experimentujte s použitím RR až po prvním ne-zrcadlovém odrazu (obecně to bývá dobrá heuristika).
- Porovnejte empirickou eficienci s/bez RR alespoň pro dvě scény.
- Jaká je průměrná, minimální a maximální délka cesty pro různé scény?
- Výpočet přímého osvětlení:
- Pro výpočet přímého osvětlení použijte náhodný výběr jediného zdroje světla (s pravděpodobností úměrnou emitovanému toku zdroje)
namísto stávajícího řešení, kdy se pro každý vrchol světelné cesty počítá přímé osvětlení od všech zdrojů.
- Ukažte, že tato metoda konverguje ke stejnému řešení jako počítání příspěvků ze všech zdrojů. (16x rozdílový obrázek, relativní L2 chyba)
- Experimentujte s použitím této strategie až po prvním ne-zdcadlovém odrazu/lomu (obecně to bývá dobrá heuristika).
- Změřte empirickou eficienci všech třech metod (tj. a) jeden vzorek ke každému světlum, b) jeden vzorek k náhodně vybranému světlu,
c) metoda b po prvním prvním ne-zdcadlovém odrazu/lomu, metoda a jinak) pro alespoň dvě scény (jednu s mnoha zdroji světla (alespoň 20), jednu s několika málo zdroji světla (4-10)).
- Multiple importance sampling pro výpočet přímého osvětlení
- Implementujte výpočet přímého osvětlení z plošných zdrojů světla a z map prostředí pomocí Multiple Importance Sampling s
vyrovnanou heuristikou. MIS použijte ke kombinaci vzorkování podle BRDF a vzorkování pozice na plošném světelném zdroji, resp.
směru na mapě prostředí.
- Ukažte, že všechny tři metody (vzorkování BRDF, vzorkování zdroje, MIS) konvergují ke stejnému řešení (16x rozdílový obrázek, relativní L2 chyba).
- Změřte empirickou eficienci všech třech metod pro alespoň 2 různé scény s plošnými zdroji světla, pro různá nastavení lesklosti materiálů (difúzní, mírně leský, velmi lesklý).
- Změřte empirickou eficienci všech třech metod pro alespoň jednu scénu osvětlenou mapou prostředí, pro různá nastavení lesklosti materiálů (difúzní, mírně leský, středně lesklý, velmi lesklý).
Rady, tipy
- Při porovnávání obrázků vždy používejte HDR formát (bez gama korekce) vygenerovaný rendererem (výstup nechte zapsat do souboru s příponou hdr).
- HDR obrázky můžete prohlížet např. v Photoshopu, ale praktičtější je použít tento prográmek (díky, Edgare Velazquez-Armendarizi).
Obzvláště užitečnou funkcí je File -> Compare with ...
- Do zprávy nezapomeňte vložit všechny obrázky, ze kterých jste počítali chybu a eficienci.
- Při výpočtu L2 chyby interpretujte obrázek jako dlouhý vektor čísel. Relativní L2 chybu mezi obr1 a obr2 počítejte jako 2 * ||obr1-obr2|| / ||obr1+obr2||.
- Pro výpočet L2 chyby si budete muset spíchnout vlastní program, případně použít Matlab. Kód pro načtení a případně zápis obrázků ve formátu hdr jsem přidal do embree. Najdete ho v RgbeReader.cpp, RgbeWriter.cpp, případně rgbe_embree.cpp.
Není absolutně žádný problém použít program kolegů (nezapomeňte je ale zmínit ve zprávě).
- Empirická eficience je definována jako eff = 1 / (cas_vypoctu * L2_chyba)
- Pro testování můžete použít scény z adresáře models, případně jejich modifikované verze. Větší zábava ale bude použít nějaké "opravdové" scény - vzhledem k tomu, že embree umí načíst OBJ formát, do něhož umí exportovat všechny modelovací programy, neměl by to být problém.
Jednu zajímavou scénu najdete zde.
- Jako referenci používejte obrázky vyrenderované alespoň 100 000 vzorky na pixel (ve scénách se složitým osvětlení raději více).
Abyste věděli jak "kvalitní" je vaše reference, nechte ji vyrenderovat dvakrát, pokaždé s jiným seedem generátoru náhodných čísel a spočítejte
L2 chybu mezi těmito dvěma obrázky - měli byste se dostat pod 1%. Ve zprávě vždy uvádějte "chybu" referenčního obrázku.
- POZOR!!! Reference se budou počítat opravdu dlouho, možná celou noc jeden obrázek. Proto v žádném případě nenechávejte práci na poslední chvíli.
- NOVÁ INFORMACE!!! HDR mapy prostředí v latitude-longitude mapování (které používá embree) stáhnete zde: http://gl.ict.usc.edu/Data/HighResProbes/
Prezentace na cvičení
Program přednášek a materiály ke stažení
Datum |
Obsah |
Přednáška |
Cvičení |
Poznámky |
Další materiály |
3.10.2011 |
Organizace, Úvod |
org.:
pdf |
pptx,
úvod:
pdf |
pptx
|
|
|
|
10.10.2011 |
Světlo, radiometrie |
pdf |
pptx
|
pdf |
pptx
|
Martin Kahoun: pdf |
Petr Olšák:
dOmega,
radiometrie
|
17.10.2011 |
Odraz světla, BRDF |
pdf |
pptx
|
pdf |
pptx
|
Petr Kadleček: pdf |
|
24.10.2011 |
BRDF - dokončení |
viz předchozí přednáška |
pdf |
pptx
|
Čestmír Houška: pdf |
|
31.10.2011 |
Zobrazovací rovnice |
pdf |
pptx,
|
|
Adam Dominec: pdf |
|
7.11.2011 |
Monte Carlo rendering, Sledování cest |
pdf |
pptx
|
|
Martin Bulant: pdf |
|
14.11.2011 |
Sledování cest II, Multiple importance sampling |
pdf |
pptx
|
|
Jan Havlíček: pdf |
MIS pro image-based lighting |
21.11.2011 |
MC III |
pdf |
pptx
|
|
|
|
28.11.2011 |
Důležitost a dualita v zobrazování / BPT |
pdf |
pptx
|
|
Tomáš Šváb: pdf |
|
5.12.2011 |
Fotonové mapy |
pdf |
pptx
|
|
Leonid Buneev: pdf |
|
19.12.2011 |
Irradiance caching, shrnutí |
pdf |
pptx
|
|
Aleš Zita: pdf |
|
2.1.2012 |
--- odpadá --- |
|
|
|
|
9.1.2011 |
Syntéza zvuku pro počítačovou grafiku (Matej Marko) |
pdf |
|
Peter Hmira: pdf |
|