Programování grafiky bližší informace o studiu na katedře

Detaily předmětu
Vyučující | Petr Felkel |
---|---|
Rozsah výuky | 2 + 2 |
Kredity | 6 |
Semestr | L |
Zakončení | Z + Zk |
Web | https://cent.felk.cvut.cz/courses/PGR/ |
Rozvrhy | b0b39pgr, bi-pgr.1 |
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í
- 14.
Rezerva
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 & zdroje
- 1.
Žá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.
- 2.
Gortler S.: Foundations of 3D Computer Graphics, The MIT Press, 2012.
- 3.
Wolf D.: OpenGL 4.0 Shading Language Cookbook, Packt Publishing Ltd., Birmingham, 2011.
- 4.
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.
- 5.
Angel, E.: Interactive Computer Graphics, A top-down approach With OpenGL, Addison-Wesley, 1997.