460-4033/02 – Počítačová grafika II (PG II)
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 a Vulkan 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,
- orientovat se ve struktuře API OpenGL,
- 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
Náplň tohoto předmětu si klade za cíl rozšířit posluchačovy znalosti získané v předmětu Počítačová grafika I o techniky syntézy obrazu v reálném čase pomocí moderních grafických API stavějících na možnostech soudobý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++.
Povinná literatura:
Doporučená literatura:
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
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 apod.
- 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ů.
- Další možnosti hardwarového urychlení rekurzivního sledování paprsků na GPU.
- Vizualizace specifických dat – částicové systémy.
- 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, integrace 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, Radeon Rays).
- 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