460-4033/02 – Počítačová grafika II (PG II)

Garantující katedraKatedra informatikyKredity4
Garant předmětuIng. Tomáš Fabián, Ph.D.Garant verze předmětuIng. Tomáš Fabián, Ph.D.
Úroveň studiapregraduální nebo graduálníPovinnostpovinně volitelný
Ročník1Semestrletní
Jazyk výukyčeština
Rok zavedení2015/2016Rok zrušení
Určeno pro fakultyFEIUrčeno pro typy studianavazující magisterské
Výuku zajišťuje
Os. čís.JménoCvičícíPřednášející
FAB038 Ing. Tomáš Fabián, Ph.D.
Rozsah výuky pro formy studia
Forma studiaZp.zak.Rozsah
prezenční Klasifikovaný zápočet 2+2
kombinovaná Klasifikovaný zápočet 12+6

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:

[1] Gordon, V. S., Clevenger, J. Computer Graphics Programming in OpenGL with C++. Mercury Learning & Information, 2nd edition, 2020. [2] Sellers, G., Wright, R. S., Haemel, N. OpenGL Superbible: Comprehensive Tutorial and Reference. Addison-Wesley Professional, 2015, 880 stran, 7th edition, ISBN 978-0672337475. [3] De Vries, J.: Learn OpenGL: Learn modern OpenGL graphics programming in a step-by-step fashion. Kendall & Welling, 2020, 522 stran, ISBN 978-9090332567. [4] Sojka, E.: Počítačová grafika II: metody a nástroje pro zobrazování 3D scén, VŠB-TU Ostrava, 2003, ISBN 80-248-0293-7. [5] Sojka, E., Němec, M., Fabián, T.: Matematické základy počítačové grafiky, VŠB-TU Ostrava, 2011. [6] Stroustrup, B. The C++ Programming Language. Addison-Wesley Professional, 4th edition, 2013.

Doporučená literatura:

[1] Pharr, M., Jakob, W., Humphreys, G.: Physically Based Rendering, Third Edition: From Theory to Implementation, Morgan Kaufmann, 2016, 1266 stran, ISBN 978-0128006450. [2] Haines, E., Akenine-Möller, T. (ed.): Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs. Apress, 2019, 607 stran, ISBN 978-1484244265. [3] Shirley, P., Morley, R. K.: Realistic Ray Tracing, Second Edition, AK Peters, 2003, 235 pages, ISBN 978-1568814612. [4] Akenine-Möller, T., Haines, E., Hoffman, N.: Real-Time Rendering, Fourth Edition, AK Peters, 2018, 1198 pages, ISBN 978-1351816151.

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: 1. Základní struktury a operace používané v počítačové grafice, projektivní prostor, homogenní souřadnice. 2. Představení standardů OpenGL a Vulkan, stručná historie, srovnání, přehled aplikačních oblastí. 3. Zobrazovací řetězec OpenGL, zaměření na programovatelnou část, jazyk GLSL. 4. Práce s buffery, způsob jejich konstrukce, možnosti využití, mapování. 5. Pokročilé stínování, práce s mnoha materiály. 6. Pokročilé osvětlovací modely, odložené stínování, zastínění okolím, modifikace normál apod. 7. Techniky generování stínů pomocí stínových map a objemů. 8. Modelování povrchů přímo na GPU, teselace a generování geometrie. 9. Pokročilé shadery a jejich kombinace s rekurzivním sledováním paprsků. 10. Další možnosti hardwarového urychlení rekurzivního sledování paprsků na GPU. 11. Vizualizace specifických dat – částicové systémy. 12. Integrace fyzikálního modelu do scény. 13. Herní enginy, jejich základní stavba. 14. 3D grafika ve virtuální a rozšířené realitě. Cvičení na počítačové učebně: 1. 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ů. 2. Vytvoření základních shaderů v jazyce GLSL, konstrukce MVP matice, integrace scény, aplikace jednoduchých shaderů na vybraných objektech. 3. Práce s buffery (geometrickými i obrazovými). 4. Pokročilé stínování, materiály, práce s mnoha materiály. 5. Pokročilé techniky texturování, mapování textur a jejich tvorby (PBR materiály). 6. Pokročilé osvětlovací modely, zastínění okolím, apod. 7. 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). 8. Generování stínů pomocí shadow mappingu a stencil bufferu. 9. 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). 10. Použití knihoven pro hardwarovou akceleraci metod rekurzivního sledování paprsků (např. OptiX, Radeon Rays). 11. Vytvoření a vizualizace vybraného částicového systému. 12. Integrace fyzikálního systému do scény (kolize, základní dynamika scény). 13. Ukázka herních enginů. 14. Kontrola zadaných úloh. 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

Prezenční forma (platnost od: 2015/2016 zimní semestr)
Název úlohyTyp úlohyMax. počet bodů
(akt. za podúlohy)
Min. počet bodů
Klasifikovaný zápočet Klasifikovaný zápočet 100  51
Rozsah povinné účasti:

Zobrazit historii

Výskyt ve studijních plánech

Akademický rokProgramObor/spec.Spec.ZaměřeníFormaJazyk výuky Konz. stř.RočníkZLTyp povinnosti
2021/2022 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinně volitelný stu. plán
2021/2022 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinně volitelný stu. plán
2020/2021 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinně volitelný stu. plán
2020/2021 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinně volitelný stu. plán
2019/2020 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinně volitelný stu. plán
2019/2020 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinně volitelný stu. plán
2018/2019 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinně volitelný stu. plán
2018/2019 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinně volitelný stu. plán
2017/2018 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinně volitelný stu. plán
2017/2018 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinně volitelný stu. plán
2016/2017 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinně volitelný stu. plán
2016/2017 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinně volitelný stu. plán
2015/2016 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika P čeština Ostrava 1 povinně volitelný stu. plán
2015/2016 (N2647) Informační a komunikační technologie (2612T025) Informatika a výpočetní technika K čeština Ostrava 1 povinně volitelný stu. plán

Výskyt ve speciálních blocích

Název blokuAkademický rokForma studiaJazyk výuky RočníkZLTyp blokuVlastník bloku