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

Programování grafiky

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.