Počítačová grafika I - aktuální informace (2016/2017)

Přednáška se koná každé PONDĚLÍ OD 10:40 v posluchárně S5 (Malá Strana)

Cvičení se konají každý týden (počínaje 10. 10. 2016) v termínech:

  • Pondělí 14:00, SW2
  • Pondělí 15:40, SW2
  • Úterý 14:00, SW2

Nezávazný plán přednášky

Přednáška 1 (3. 10. 2016)

Plán přednášky, motivace, ostatní grafické přednášky

Plán přednášek a cvičení, motivační příklady ze života, představení zbytku CGG

Přednáška 2 (10. 10. 2016)

Barevné vidění, barevné systémy, rastrová a vektorová grafika

Lidský zrak a jeho vlastnosti (fyziologie a psychologie, vady), světelné spektrum, metamery, obraz a jeho reprezentace v počítači, rastrová a vektorová grafika, základní barevný systém RGB, doporučení pro používání barev. Virtuální barevná primitiva XYZ, barevný gamut displeje, barevné systémy CIE-xyY, RGB, CMY(K), HSV, aditivní a subtraktivní skládáni barev, převody RGB<->HSV

Cvičení 1 (10.-11. 10. 2016)

Systém cvičení, za co je zápočet, předvedení programovacího prostředí (jazyk C# a MS Visual Studio), načítání a zobrazování rastrového obrázku, barevné transformace, převody RGB<->HSV

Úloha 051: Barevná paleta obrázku

Přednáška 3 (17. 10. 2016)

Gamma korekce, rastrový obraz prakticky, grafické formáty I

Gamma korekce (mýty s ní spojené), pořizování rastrového obrazu, pixelové formáty, ukládání obrazu, základní grafické formáty a jejich použití (PNM/PGM, PNG, GIF, JPEG)

Cvičení 2 (17.-18. 10. 2016)

Ukázka gamma (testovací rastr), vektorový formát SVG (PDF prezentace), adresář s jednoduchými SVG příklady

Úloha 091: 2D fraktál v SVG formátu

Přednáška 4 (24. 10. 2016)

Grafické formáty II, HDR grafika

Dokončení: základní grafické formáty a jejich použití (PNM/PGM, PNG, GIF, JPEG). HDR grafika, pořizování HDR obrazu vícenásobnou expozicí, ukázky HDR souborů (HDRView, Picturenaut), tone-mapping

Cvičení 3 (24.-25. 10. 2016)

Ukázky grafických formátů, artefakty JPEG komprese, porovnání kvality a velikosti zkomprimovaných obrázků, pořízení HDR obrázku vícenásobnou expozicí (HDRView, Picturenaut)

Úloha 004: vlastní HDR obrázek vícenásobnou expozicí

Přednáška 5 (31. 10. 2016)

Průhlednost, operace/filtry nad rastrovým obrazem

Průhledné obrázky a operace s nimi (kompozice pomocí alfa-kanálu). Histogram a operace s ním, ekvalizace, přechodová funkce, filtrace konvolucí i nelineární (rank-filtry)

Cvičení 4 (31. 10. - 1. 11. 2016)

Dokončení přednášky o filtraci. Výroba videa z jednotlivých snímků.

Úloha 092: Generování zajímavého obrázku z úseček
Úloha 093: Animace pomocí úseček

Přednáška 6 (7. 11. 2016)

Reprodukce rastrového obrazu, půltónování a rozptylování

Monochromatické zobrazování, půltónování a rozptylování, jednotlivé metody, Č/B i barevný tisk

Cvičení 5 (7. 11. 2016)

Ukázky filtrů (JaGrLib, [výsledky 005 denoise] mediánové filtry), filtry potlačující šum, .. Ukázky půltónování, redukce barevné palety..
Práce s rastrovým obrázkem, rychlý přístup k datům Bitmapy (LockBits).. Tone-mapping - opakování.

Úloha 094: Tone-mapping HDR obrázku

Přednáška 7 (14. 11. 2016)

Kreslení do rastrového obrazu, písmo, kódování rastrů

Zbytky vektorové grafiky (jen velmi stručně): kreslení grafických primitiv do rastrového obrazu, úsečky a křivky, Bresenhamovy (mid-point) algoritmy, vyplňování n-úhelníka, vyplňování souvislé oblasti, kreslení písma, clipping.
Anti-aliasing (princip, příklady metod).
Kódování obrazu/masky: RLE, quad-tree, X-transition list

Cvičení 6 (14.-15. 11. 2016)

Kreslicí algoritmy v praxi, anti-aliasing (JaGrLib), clipping (JaGrLib), flood-fill a kreslení písma v praxi, dithering založený na rozmisťování bodů, datové struktury pro efektivní vyhledávání v rovině
2D datové struktury, Rozmisťování bodů v rovině (prezentace), Rozmisťování bodů v rovině (článek)

Přednáška 8 (21. 11. 2016)

3D grafický systém, lineární transformace, složené transformace, promítání

Schéma 3D grafického systému, lineární geometrické transformace, maticové transformace, homogenní souřadnice, konstrukce složených zobrazení, vzájemný převod souřadných systémů, klasifikace lineárních projekcí, rovnoběžné a středové promítání, implementace projekčních transformací

Cvičení 7 (21.-22. 11. 2016)

OpenTK knihovna a její matematické objekty: matice, vektory, .. Wavefront OBJ formát a jeho načítání
Praktická ukázka úlohy 038 Trackball (otáčení 3D objektem systémem "trackball", řetězení transformací, projekční transformační matice), zobrazovací smyčka (events - simulation - rendering), double-buffering..
Ještě jednou Mitchellův algoritmus pro rozmisťování bodů v rovině. Urychlovací struktury pro efektivní vyhledávání v rovině

Úloha 068: FM půltónování pro laserovou tiskárnu

Přednáška 9 (28. 11. 2016)

Úvod do OpenGL

Architektura grafické karty (starší model, fixed pipeline, i OpenGL >=3.0), posloupnost souřadných systémů a transformací v OpenGL, matrix stack, data posílaná na GPU, kreslená primitiva, textury, výpočet viditelnosti, stencil buffer.., VBO a VAO buffery, shadery

Cvičení 8 (28.-29. 11. 2016)

OpenTK a OpenGL: zbytky z minula (matice a vektory), praktické ukázky, struktura 3D aplikace, shadery, ještě jednou ukázka matrix-stacku, atributy vrcholů, vertex arrays, VBO buffery, instancing. 3D formáty Wavefront OBJ a Stanford PLY.
Ukázka projektů 038trackball a 086shader.

Přednáška 10 (5. 12. 2016)

Reprezentace 3D scén, povrchový model

Objemové a povrchové reprezentace 3D scén (buňky, octree, CSG, VHS(T), atributy vrcholů a stěn, okřídlená hrana, trojúhelníkové sítě, corner table, Eulerovy operátory). Návaznost na zobrazování v OpenGL: vrcholy a jejich atributy, normálové vektory, stěny, texturování

Cvičení 9 (5.-6. 12. 2016)

SceneBrep (konstrukce povrchového modelu), corner table. Sdílení vrcholů (pro stínování hladkého tělesa) vs. duplikované vrcholy (se svými vlastními normálami - pro hranaté tvary). Data ve vrcholech a jejich uložení v SceneBrep a PLY formátu. "3D Space-Filling Curves"

Úloha 095: Konstrukce 3D scény - SFC

Přednáška 11 (12. 12. 2016)

Hierarchie, výpočet viditelnosti

Hierarchický model obecně, scene graph, ještě jednou posloupnost souřadných systémů a transformací v OpenGL.
Algoritmus plovoucího horizontu, Appelův algoritmus (čárová viditelnost), malířův algoritmus a hloubkové třídění, Z-buffer, Watkinsův algoritmus (řádkový rozklad).

Cvičení 10 (12.-13. 12. 2016)

Jaké 3D úlohy ještě budou následovat? (hlavolam a 3D terén)
Ukazování myší do 3D scény (UnProject()). Ukázka rozšíření projektu 086shader, projekt 087fireworks.

Úloha 096: Rubikova kostka

Přednáška 12 (19. 12. 2016)

Osvětlení, stínování

Jednoduchý model osvětlení (Phong), konstantní stínování, spojité stínování - Gouraudova a Phongova metoda, zobrazování CSG: ray-casting.

Cvičení 11 (19.-20. 12. 2016)

Plovoucí horizont (grcis: 017), ukázky textur a stínování (grcis: 086), generování terénu přesouváním středního bodu.

Úloha 039: Generování terénu

Přednáška 13 (9. 1. 2017)

Vrhání paprsku, rendering

Ukázky odevzdaných animací (úloha 093), základy moderního renderingu: ray-tracing, začlenění stínování do GPU pipeline (shadery) a do paprskových metod (ray-tracing)

Cvičení 12 (9.-10. 1. 2017)

Ray-casting v C#, architektura paprskového zobrazovače (grcis: 048), ukázka světelného modelu v GPU shaderech (grcis: 086) a v ray-tracingu (grcis: 048).


Copyright (C) 2001-2016 J.Pelikán, last change: 2017-01-09 08:30:47 +0100 (Mon, 09 Jan 2017)