Anotace

Cílem předmětu je seznámit studenty se základními technickými a matematickými principy tvorby a zobrazování realistických obrazů pomocí počítače. Předmět se zaměřuje na principy syntézy obrazu, modelování šíření světla a jeho interakce s objekty a prostředím. V úvodní části jsou představeny základní metody sledování paprsku (ray tracing), včetně Whittedova algoritmu a akceleračních datových struktur. Následně jsou probírány principy globálního osvětlení a řešení zobrazovací rovnice pomocí metod Monte Carlo. Důraz je kladen na pochopení principů jednotlivých metod a jejich praktickou implementaci. Výsledky z implementace probíraných metod a postupů lze 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 zaměřuje se na hlavní principy fotorealistické syntézy obrazu. Probírány jsou zejména metoda sledování paprsku (ray tracing), osvětlovací modely, modely odrazu světla od povrchu (BRDF), zobrazovací rovnice a základy metod Monte Carlo pro simulaci transportu světla. Pozornost je věnována také principům fyzikálně korektní syntézy obrazu, metodám urychlování výpočtů, potlačení aliasingu a základním optickým a materiálovým modelům. Cvičení úzce navazují na obsah přednášek a jsou zaměřena na praktickou implementaci probíraných metod a algoritmů v programovacím jazyce C++.

Plán výuky

Den Čas Přednáška
15. 9. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 1
22. 9. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 2
29. 9. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 3
6. 10. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 4
13. 10. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 5
20. 10. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 6
27. 10. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 7
3. 11. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 8
10. 11. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 9
24. 11. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 10
1. 12. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 11
4. 12. 2026 12:30 – 14:00, 14:15 - 15:45 přednáška a cvičení č. 12
8. 12. 2026 12:30 – 14:00, 14:15 - 15:45 Odevzdání řešení zadaných úloh

Literatura

Součástí doporučené literatury, která je uvedena na slidech první přednášky, jsou k dispozici především následující materiály:

Uvedené materiály slouží jako doplňkové studijní zdroje k přednáškám a cvičením.

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 11. 12. 2026.

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í

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