460-4033/02 – Počítačová grafika II (PG2)
| Garantující katedra | Katedra informatiky | Kredity | 4 |
| Garant předmětu | Ing. Tomáš Fabián, Ph.D. | Garant verze předmětu | Ing. Tomáš Fabián, Ph.D. |
| Úroveň studia | pregraduální nebo graduální | Povinnost | povinně volitelný |
| Ročník | 1 | Semestr | letní |
| | Jazyk výuky | čeština |
| Rok zavedení | 2015/2016 | Rok zrušení | |
| Určeno pro fakulty | FEI | Určeno pro typy studia | navazující magisterské |
Cíle předmětu vyjádřené dosaženými dovednostmi a kompetencemi
Cílem předmětu je doplnit a rozšířit témata, se kterými se mohl posluchač seznámit v předmětu Počítačová grafika I se zaměřením na syntézu obrazu v reálném čase pomocí rasterizace i hybridních přístupů. Důraz je kladen na praktické použití grafických API OpenGL, Vulkan a OptiX při vytváření programů pro zobrazování 3D scén demonstrujících jednotlivá probíraná témata.
Absolvent předmětu dokáže:
- definovat afinní a projektivní transformace,
- popsat základní části standardního zobrazovacího řetězce a principy SBT,
- orientovat se ve struktuře API OpenGL, Vulkan a OptiX,
- konfigurovat jednotlivé parametry grafického rozhraní a vytvářet kód pro jeho programovatelné části v jazyce GLSL,
- vytvářet složitější zobrazovací řetězce pokročilých technik (odložené stínování, generování stínů, simulace globálního osvětlení),
- systematicky analyzovat a odstraňovat chyby v grafickém výstupu,
- kombinovat rasterizaci s technikami rekurzivního sledování paprsků,
- vytvářet aplikace pro zobrazování interaktivní 3D grafiky.
Vyučovací metody
Přednášky
Individuální konzultace
Cvičení (v učebně)
Anotace
Obsah tohoto kurzu si klade za cíl rozšířit znalosti získané v kurzu Počítačová grafika I o techniky pro syntézu obrazu v reálném čase pomocí moderních grafických API založených na schopnostech současných grafických akcelerátorů. Důraz je kladen na popis jednotlivých částí standardního zobrazovacího řetězce, ale rovněž jsou probírány pokročilé hybridní přístupy kombinující rasterizaci s metodami rekurzivního sledování paprsků pro dosažení realistické podoby výsledných obrazů. Teoretické poznatky získané během rozboru dílčích úloh slouží jako základ pro praktickou implementaci konkrétních příkladů na cvičeních. Cvičení tedy úzce korespondují s přednáškami a předpokládá se praktická realizace zmíněných témat v prostředí jazyka C++.
Cílem předmětu je doplnit a rozšířit témata, se kterými se mohl posluchač seznámit v předmětu Počítačová grafika I se zaměřením na syntézu obrazu v reálném čase pomocí rasterizace i hybridních přístupů. Důraz je kladen na praktické použití grafických API OpenGL, Vulkan a OptiX při vytváření programů pro zobrazování 3D scén demonstrujících jednotlivá probíraná témata.
Absolvent předmětu dokáže:
- definovat afinní a projektivní transformace,
- popsat základní části standardního zobrazovacího řetězce a principy SBT,
- orientovat se ve struktuře API OpenGL, Vulkan a OptiX,
- konfigurovat jednotlivé parametry grafického rozhraní a vytvářet kód pro jeho programovatelné části v jazyce GLSL,
- vytvářet složitější zobrazovací řetězce pokročilých technik (odložené stínování, generování stínů, simulace globálního osvětlení),
- systematicky analyzovat a odstraňovat chyby v grafickém výstupu,
- kombinovat rasterizaci s technikami rekurzivního sledování paprsků,
- vytvářet aplikace pro zobrazování interaktivní 3D grafiky.
Povinná literatura:
Doporučená literatura:
[1] Haines, E., Akenine-Möller, T. (ed.): Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs. Apress, 2025, 607 pages,
ISBN 978-1484244265.
[2] Marrs, A., Shirley, P., Wald, I (ed.). Ray Tracing Gems II: Next Generation Real-Time Rendering with DXR, Vulkan, and OptiX. Springer Nature, 2025, 858 pages,
ISBN 978-1484271841.
[3] Akenine-Möller, T., Haines, E., Hoffman, N.: Real-Time Rendering, Fourth Edition, AK Peters, 2018, 1198 pages,
ISBN 978-1351816151.
[4] Gordon, V. S., Clevenger, J. Computer Graphics Programming in OpenGL with C++. Mercury Learning & Information, 2nd edition, 2020.
[5] Sellers, G., Wright, R. S., Haemel, N. OpenGL Superbible: Comprehensive Tutorial and Reference. Addison-Wesley Professional, 2015, 880 pages, 7th edition,
ISBN 978-0672337475.
[6] De Vries, J.: Learn OpenGL: Learn modern OpenGL graphics programming in a step-by-step fashion. Kendall & Welling, 2020, 522 pages,
ISBN 978-9090332567.
Další studijní materiály
Forma způsobu ověření studijních výsledků a další požadavky na studenta
Podmínkou udělení klasifikovaného zápočtu je odevzdání jednotlivých úloh ze cvičení. Funkčnost jednotlivých částí bude prezentována v rámci cvičení v zápočtovém týdnu. Předpokládá se výborná orientace v odevzdaném zdrojovém kódu.
E-learning
https://mrl.cs.vsb.cz/people/fabian/pg2_course.html
Další požadavky na studenta
Předpokládá se, že student má znalosti programování v C, C++.
Prerekvizity
Předmět nemá žádné prerekvizity.
Korekvizity
Předmět nemá žádné korekvizity.
Osnova předmětu
Přednášky:
- Základní struktury a operace používané v počítačové grafice, projektivní prostor, homogenní souřadnice.
- Představení standardů OpenGL a Vulkan, stručná historie, srovnání, přehled aplikačních oblastí.
- Zobrazovací řetězec OpenGL, zaměření na programovatelnou část, jazyk GLSL.
- Práce s buffery, způsob jejich konstrukce, možnosti využití, mapování.
- Pokročilé stínování, práce s mnoha materiály.
- Pokročilé osvětlovací modely, odložené stínování, zastínění okolím, modifikace normál, techniky aproximace globálního osvětlení (např. split sum approximation, LTC, ReSTIR).
- Techniky generování stínů pomocí stínových map a objemů.
- Modelování povrchů přímo na GPU, teselace a generování geometrie.
- Pokročilé shadery a jejich kombinace s rekurzivním sledováním paprsků (hardwarová akcelerace na GPU s využitím OptiX nebo Vulkan RT).
- Vizualizace specifických dat – částicové systémy, mraky.
- Integrace fyzikálního modelu do scény.
- Herní enginy, jejich základní stavba.
- 3D grafika ve virtuální a rozšířené realitě.
Cvičení na počítačové učebně:
- Zprovoznění C++ šablony pro řešení úloh zadaných na cvičeních, představení základních tříd pro konstrukci scény, načítání scény z grafických formátů.
- Vytvoření základních shaderů v jazyce GLSL, konstrukce MVP matice, reprezentace scény, aplikace jednoduchých shaderů na vybraných objektech.
- Práce s buffery (geometrickými i obrazovými).
- Pokročilé stínování, materiály, práce s mnoha materiály.
- Pokročilé techniky texturování, mapování textur a jejich tvorby (PBR materiály).
- Pokročilé osvětlovací modely, zastínění okolím, apod.
- Techniky modifikace normál povrchu, výpočet lokálního souřadného systému TBN (např. bump mapping, normal mapping, displacement mapping, parallax mapping).
- Generování stínů pomocí shadow mappingu a stencil bufferu.
- Implementace odloženého stínování a jeho využití ve spojení s rekurzivním sledováním paprsků (zaměřeno na stíny, odraz a lom).
- Použití knihoven pro hardwarovou akceleraci metod rekurzivního sledování paprsků (např. OptiX nebo Vulkan RT).
- Vytvoření a vizualizace vybraného částicového systému.
- Integrace fyzikálního systému do scény (kolize, základní dynamika scény).
Na cvičeních se řeší konkrétní úlohy z probrané oblasti. Implementačním jazykem je C++.
Podmínky absolvování předmětu
Výskyt ve studijních plánech
Výskyt ve speciálních blocích
Hodnocení Výuky