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.
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:
- on-line kniha Physically Based Rendering: From Theory to Implementation,
- přehledové tabulky Global Illumination Compendium,
- skripta Počítačová grafika II, zejména kapitola 3,
- novější verze skript Moderní základy počítačové grafiky (kapitoly 1.1-1.3 a 3).
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
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ě:
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.
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í.
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ů.
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.
Na cvičení budeme probírat následující téma: renderovací rovnice, Monte Carlo integrace, BRDF.
