Anotace

Cílem předmětu je poskytnout přehled o základních technických a matematické konceptech stojících za tvorbou fotorealistických obrazů. Úvodní část kurzu se zabývá tradičními technikami jako je Whittedův ray tracer, akcelerační datové struktury, přenos světla a jeho interakce s okolím. Následuje popis globální iluminace a řešení renderovací rovnice metodou Monte Carlo. Výsledek implementace probíraných metod můžete vidět na obrázku níže.

6887_allied_avenger

Kontakty v případě distanční výuky

V případě distanční výuky budou on-line přednášky probíhat na videokonferenčním serveru Zoom v předem oznámeném čase jedenkrát týdně. Identifikátor videohovoru bude zaslán hromadným mailem všem studentům zapsaným do tohoto předmětu. Konzultace praktické části výuky budou probíhat průběžně mailem a na platformě Matrix. Pozvánka do místnosti PG 1 byla zaslána mailem.

Připojení k přednášce na Zoomu

Po zadání mailem zaslané adresy schůzky do prohlížeče (funkčnost odzkoušena ve Firefoxu) zvolte možnost "join from your browser", vyplňte své jméno, opište captcha kód a klikněte na tlačítko Join. Následně potvrďte volbu zvukového vstupu a výstupu. Nyní byste měli vidět živý přenos.

Přednášky

Časový plán on-line přednášek

Den Hodina Přednáška
24. 9. 2020 9:00 – 10:30 přednáška č. 2
1. 10. 2020 9:00 – 10:30 přednáška č. 3
8. 10. 2020 9:00 – 10:30 přednáška č. 4
15. 10. 2020 9:00 – 10:30 přednáška č. 5
22. 10. 2020 9:00 – 10:30 přednáška č. 6
29. 10. 2020 rektorske volno
5. 11. 2020 9:00 – 10:30 přednáška č. 7
12. 11. 2020 9:00 – 10:30 přednáška č. 8
19. 11. 2020 9:00 – 10:30 přednáška č. 9
26. 11. 2020 9:00 – 10:30 přednáška č. 10
3. 12. 2020 9:00 – 10:30 přednáška č. 11
10. 12. 2020 9:00 – 10:30 Konzultace postupu řešení zadaných úloh
14. 12. 2020 - 18. 12. 2020 individuálně Odevzdání řešení zadaných úloh
21., 22., 28. a 29. 12. 2020 jen pro kombinované studenty Odevzdání řešení zadaných úloh

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í.

Maximální bodový zisk za vypracování (tj. provedení implementace a ověření funkčnosti) jednotlivých úloh naleznete zde. U všech odevzdávaných úloh se předpokládá perfektní orientace ve zdrojovém kódu. Nejzazším termínem pro udělení zápočtu je 3. 1. 2021.

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 ZDE.

Během distanční výuky bude zkouška probíhat individuálně přes videokonferenční server Zoom na adrese shodné s přednáškou a v termínech oznámených v místnosti předmětu na serveru Matrix. Termíny jsou rovněž vypsány v Edisonu.

Přednáška 1

Úvodní přednáška, model jednoduché kamery, kolize parsku s geometrií

Přednáška 2

Základy rádiometrie a fotometrie, Whittedův ray tracer, barevné prostory

Přednáška 3

Lom a odraz paprsku, mapy prostředí

Přednáška 4

Akcelerační datové struktury a jejich další urychlení, supersampling, hloubka ostrosti

Přednáška 5

Úvod do globální iluminace

Přednáška 6, 7, 8

Path Tracing

Přednáška 9

BRDF

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ů.

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. Můžete také použít TENTO model tzv. Cornell boxu.

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.