Programování grafiky
Vyučující
Rozsah výuky
2 + 2
Semestr
L
Kredity
6
Zakončení
Z + Zk
Rozvrh
b0b39pgr
Anotace
Studenti se seznámí s architekturou moderních grafických karet a naprogramují jednoduchou interaktivní 3D grafickou aplikaci s využitím rasterizace. Naučí navrhnout a vytvořit prostorovou scénu, přidat textury imitující geometrické detaily a materiály (např. povrch stěny, dřevo, oblohu) a nastavit osvětlení. Zároveň se naučí základním pojmům a principům používaným v počítačové grafice, jako jsou např. zobrazovací řetězec (postup zobrazování scény), geometrické transformace, osvětlovací model. Získají tedy znalosti, které jim usnadní orientaci v oblasti počítačové grafiky a stanou se slušnými základy nezbytnými pro profesionální růst, například při programování grafických karet (GPU) a animací. Cvičení probíhá v počítačové laboratoři. Důraz je kladen na získání praktických zkušeností s konkrétní knihovnou (OpenGL).
Přednášky
1.Úvod. Rasterizační zobrazovací řetězec. Knihovna OpenGL. Základy programování shaderů I - program
2.Základy programování shaderů II - data. Knihovna GLUT
3.Transformace I (model, view)
4.Transformace II (graf scény, projekce, viewport, gimbal lock a trackball)
5.Výpočet osvětlení ve vrcholech a ve fragmentech (implementace Phongova osvětlovacího modelu)
6.Textury (zobrazování, filtrování, mip-mapping, mapa prostředí)
7.Fixní části zobrazovacího řetězce. Operace s fragmenty a obrazová paměť. Vstupní operace (výběr)
8.Míchání barev, antialiasing a mlha
9.Křivky I (formy zápisu křivek, interpolace a aproximace, Fergusson, Bézier, Coons)
10.Křivky II (uniformní, neuniformní a neuniformní racionální B-spline)
11.Kvaterniony a interpolace rotací
12.Další rozhraní pro programování grafiky (OpenGL ES, WebGL, D3D, ...)
13.Metody zobrazování a osvětlování
Cvičení
1.Úvod, semestrální projekty, překlad úloh, ukázky hotových prací
2.Základy programování shaderů. Výběr zadání samostatného projektu
3.Struktura programu (GLUT) a buffery (VBO a VAO)
4.Grafické elementy
5.Transformace
6.Stínování, světla a materiály
7.Řešení samostatné úlohy - konzultace před první kontrolou
8.Kontrola semestrálních projektů
9.Textury
10.Křivky
11.Selekce a interakce
12.Řešení samostatné úlohy - konzultace před odevzdáním
13.Odevzdání semestrálních projektů
14.Rychlá prezentace + volba nejlepších
Literatura a zdroje
- Žára, J., Beneš, B. Sochor, J., Felkel, P: Moderní počítačová grafika — kompletní průvodce metodami 2D a 3D grafiky, Computer Press, Brno, 2004.
- Gortler S.: Foundations of 3D Computer Graphics, The MIT Press, 2012.
- Wolf D.: OpenGL 4.0 Shading Language Cookbook, Packt Publishing Ltd., Birmingham, 2011.
- Dave Shreiner, Graham Sellers, John Kessennich, Bill Licea-Kane: OpenGL Programming Guide: The Official Guide to Learning OpenGL, Versions 4.2 (8th Edition), 2012/2013.
- Angel, E.: Interactive Computer Graphics, A top-down approach With OpenGL, Addison-Wesley, 1997.