Přednášky

Přednášky vede doc. Sojka a další pokyny naleznete na jeho stránkách.

Cvičení

Cvičení budou probíhat formou bodovaných úloh a k zápočtu je možno získat max. 40 bodů. Jednotlivé úlohy budou hodnoceny na konci daného cvičení a z jednoho cvičení je možno získat 3-4 body v závislosti na obtížnosti řešené úlohy. Celkem bude možno z cvičení získat až 46 bodů, tj. 6 bodů navíc představuje kompenzaci ztráty bodů z důvodu nepřítomnosti, nemoci či jiné indispozice pro zachování možnosti dosažení maximálního bodového zisku k zápočtu. Zápočet bude udělen v zápočtovém týdnu.

Zkouška

Zkouška je ústní s písemnou přípravou (3 otázky, každá za max. 20 bodů). Zkušební otázky naleznete ZDE.

Cvičení 1

Hlavním cílem prvního cvičení je seznámení se s výchozí šablonou pro vypracování úloh na dalších cvičeních. Toto cvičení není bodované.

Na cvičení budeme probírat následující témata: reprezentace vstupní geometrie (formát OBJ), vertexy, normály, materiály (formát MTL) a textury, základní algoritmus ray tracingu, knihovna Embree.

Cvičení 2

Hlavním cílem druhého cvičení je implementace metody GenerateRay do třídy Camera pro generování primárního paprsku a otestování její funkčnosti (3 b). Popis postupu je obsahem cvičení. Podrobný rozpis výpočtu včetně testovacích hodnot naleznete ZDE a schematické znázornění celé situace je ZDE.

Na cvičení budeme probírat následující témata: generování primárních paprsků.

Cvičení 3

Hlavním cílem třetího cvičení je implementace jednoduchého normálového shaderu a otestování jeho funkčnosti (3 b). Popis postupu je obsahem cvičení. Ukázku výsledného ray tracingu naleznete ZDE. Význam barycentrických souřadnic u a v potřebných např. pro interpolaci normál a nanášení textur je znázorněn ZDE. Model z ukázek naleznete ZDE. Můžete také použít TENTO alternativní model.

6887_allied_avenger_normal

Na cvičení budeme probírat následující témata: implementace normálového shaderu, interpolace normál a texturovacích souřadnic.

Cvičení 4

Hlavním cílem čtvrtého cvičení je implementace základního Phongova osvětlovacího modelu (3 b). Popis postupu je obsahem cvičení.

6887_allied_avenger_phong

Na cvičení budeme probírat následující témata: Phongův osvětlovací model.

Cvičení 5

Hlavním cílem pátého cvičení je implementace environmentální mapy, která bude sloužit jako textura prostředí a později ji využijeme pro nasvětlení scény (3 b). Popis postupu je obsahem cvičení a naleznete ho rovněž ZDE.

Na cvičení budeme probírat následující témata: načítání textur a implementace environmentální mapy.

Cvičení 7, 8

Hlavním cílem sedmého cvičení je implementace lomu paprsku (3 b). Popis postupu je obsahem cvičení a naleznete ho rovněž ZDE. Uvedený příklad kopíruje detailnější popis Snellova zákona z Wikipedie (podkapitola Vector form). Fresnelovy vztahy následně využijte pro stanovení poměru mezi odraženým a propuštěným světlem (veličiny R pro paprsek ve směru rr a T pro paprsek ve směru rf resp. rd).

sphere_snell_fresnel 6887_allied_avenger_snell 6887_allied_avenger_snell_fresnel

Na cvičení budeme probírat následující téma: implementace trasování průhledných materiálů.

Cvičení 9

Hlavním cílem deváteho cvičení je implementace základního path tracingu pro Lambertovskou BRDF (3 b). Ucelený seznam užitých funkcí naleznete ZDE.

6887_allied_avenger_pt 6887_allied_avenger_pt

Na cvičení budeme probírat následující téma: renderovací rovnice, Monte Carlo integrace, BRDF.