Přednášky

Vedle doporučené litratury uvedené na slidech první přednášky, jsou jako materiál ke studiu k dispozici tato SKRIPTA, popřípadě novější verze SKRIPT, jež obsahují některá rozšíření.

Přednáška 1

Úvodní přednáška, model jednoduché kamery

Přednáška 2

Rádiometrie, Whittedův ray tracer

Přednáška 3

Lom a odraz paprsku

Přednáška 4

Kolize parsku s geometrií

Přednáška 5

Akcelerační struktury

Přednáška 6, 7, 8

Globální osvětlení, Path Tracing

Cvičení

Cvičení budou probíhat formou implementace úloh z přednášek a k zápočtu je možno získat max. 45 bodů. Jednotlivé úlohy budou hodnoceny v zápočtovém týdnu. Bodové ohodnocení úloh se odvíjí od jejich obtížnosti, správnosti implementace a vizuální kvality prezentovaných výsledků. Při předvádění dosažených výsledků se očekává perfektní orientace v implementovaném kódu. Celkem bude možno z cvičení získat 45 bodů.

Seznam jednotlivých úlohy a jejich bodové ohodnocení naleznete ZDE

Zkouška

Zkouška je ústní s písemnou přípravou (max. 55 bodů). Zkušební otázky korespondují s tématy na přednáškách, seznam okruhů zkušebních otázek naleznete TBA.

Cvičení 1

Hlavním cílem prvního cvičení je seznámení se s šablonou pro vypracování úloh na dalších cvičeních. 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í funkční prvky a operace používané v algoritmech sledování paprsků. Rovněž bude popsána základní funkcionalita knihovny 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. Výsledkem tohoto cvičení by mělo být zobrazení testovací scény v následující podobě: 6887_allied_avenger_bw

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. Popis postupu je obsahem cvičení. 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.