Anotace

Cílem předmětu je poskytnout přehled o základních technických a matematických 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ího osvětlení a řešení zobrazovací rovnice metodou Monte Carlo. Výsledky z implementace probíraných metod a postupů můžete vidět na následujících obrázcích.

6887_allied_avenger 5590_whirl_n'_wheel_super_truck blacktron_base_flyby abandoned_prison

Předmět volně navazuje na úvodní bakalářský kurz Základy počítačové grafiky a pokrývá hlavní principy fotorealistické syntézy obrazu. Jsou probírána zejména tato témata: metoda sledování paprsku, osvětlovací modely, modely odrazu světla od povrchu (BRDF), zobrazovací rovnice, základy metody Monte Carlo pro simulaci transportu světla, zajištění fyzikální korektnosti výsledků, urychlování výpočtů, vyhlazování obrazu a popis základních optických materiálových modelů. Cvičení úzce korespondují s přednáškami a předpokládá se praktická realizace zmíněných témat v prostředí jazyka C++.

Plán výuky

Den Čas Přednáška
26. 9. 2024 14:15 – 15:45, 16:00 - 17:30 přednáška a cvičení č. 1
3. 10. 2024 14:15 – 15:45, 16:00 - 17:30 přednáška a cvičení č. 2
10. 10. 2024 14:15 – 15:45, 16:00 - 17:30 přednáška a cvičení č. 3
17. 10. 2024 14:15 – 15:45, 16:00 - 17:30 přednáška a cvičení č. 4
24. 10. 2024 14:15 – 15:45, 16:00 - 17:30 přednáška a cvičení č. 5
31. 10. 2024 14:15 – 15:45, 16:00 - 17:30 přednáška a cvičení č. 6
7. 11. 2024 14:15 – 15:45, 16:00 - 17:30 přednáška a cvičení č. 7
14. 11. 2024 14:15 – 15:45, 16:00 - 17:30 přednáška a cvičení č. 8
21. 11. 2024 14:15 – 15:45, 16:00 - 17:30 přednáška a cvičení č. 9
28. 11. 2024 14:15 – 15:45, 16:00 - 17:30 přednáška a cvičení č. 10
30. 11. 2024 14:15 – 15:45, 16:00 - 17:30 přednáška a cvičení č. 11
5. 12. 2024 14:15 - 17:30 odevzdání řešení zadaných úloh

Literatura

Vedle doporučené literatury uvedené na slidech první přednášky (především tato on-line kniha a tyto přehledové tabulky), jsou jako materiál ke studiu k dispozici tato skripta (kapitola 3), popřípadě novější verze skript (kapitoly 1.1-1.3 a 3) obsahující některá rozšíření.

Zápočet

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 a porozumění použitým metodám a postupům. Nejzazším termínem pro udělení zápočtu je 6. 12. 2024.

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. Primárním zdrojem informací pro přípravu ke zkoušce jsou prezentace a poznámky z přednášek. Další doporučená literatura je uvedena na slidech první přednášky. Termíny zkoušek budou vypsány během zkouškového období v Edisonu.

Přednáška 1

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

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, zobrazovací rovnice, Monte Carlo metoda, vzorkování domény integradu, ruská ruleta

Přednáška 6 - 10

Path Tracing, BRDF, modifikovaný Phong a jeho normalizace, konzervace energie, vzorkování zdrojů

Cvičení 1

Hlavním cílem prvního cvičení je seznámení se s šablonou (pro VS2022), kterou je možno využít pro usnadnění vypracování úloh z jednotlivých cvičení. 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. 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. 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. Popis postupu je obsahem přednášky. Pro otestování funkcionality doporučuji použít jednoduchý model jednotkové koule umístěné v počátku. Rovněž doporučuji mít naimplementovanou environmentální mapu pro snadnější kontrolu výsledků.

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, 10

Hlavním cílem deváteho cvičení je implementace základního path tracingu pro Lambertovskou BRDF. 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.