Logo ČVUT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
STUDIJNÍ PLÁNY
2024/2025

Programování grafiky

Předmět není vypsán Nerozvrhuje se
Kód Zakončení Kredity Rozsah
B0B39PGR Z,ZK 6 2P+2C+8D
Garant předmětu:
Přednášející:
Cvičící:
Předmět zajišťuje:
katedra počítačové grafiky a interakce
Anotace:

Studenti se seznámí s architekturou moderních grafických karet a naprogramují jednoduchou interaktivní 3D grafickou aplikaci s využitím rasterizace. Zároveň se naučí základním pojmům a principům používaným v počítačové grafice, jako jsou např. rasterizační zobrazovací řetězec (postup zobrazování scény), souřadnicové systémy a geometrické transformace a filtrování textur. 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).

Požadavky:

Základy algoritmizace, programování v jazyce C/C++, lineární algebra.

Osnova přednášek:

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

Osnova 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. Zápočet

Cíle studia:

Studenti se naučí programovat jednoduché interaktivní 3D grafické aplikace (např. hry, vizualizace,...). Dokáží 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 seznámí se základními pojmy a principy používanými v počítačové grafice, jako jsou např. zobrazovací řetězec (postup zobrazování scény), souřadnicové systémy a geometrické transformace, osvětlovací model, atd. Získají 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í.

Studijní materiály:

Povinná literatura:

1. Žára, J. a kol.: Moderní počítačová grafika, Computer Press, Brno, 2004.

Doporučená literatura:

1. Gortler S.: Foundations of 3D Computer Graphics, The MIT Press, 2012.

2. Wolf D.: OpenGL 4.0 Shading Language Cookbook, Packt Publishing Ltd., Birmingham, 2011.

3. 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.

4. Angel, E.: Interactive Computer Graphics, A top-down approach With OpenGL, Addison-Wesley, 1997.

Poznámka:
Další informace:
https://cw.fel.cvut.cz/wiki/courses/pgr/start
Pro tento předmět se rozvrh nepřipravuje
Předmět je součástí následujících studijních plánů:
Platnost dat k 11. 10. 2024
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/cs/predmet3132906.html