Základy počítačové grafiky - aktuální informace (2018/2019)

Přednáška v češtině se koná každé PONDĚLÍ OD 9:00 v posluchárně S9 (Malá Strana)
(informace o anglické přednášce)

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

  • Pondělí 10:40, SW2 (česky, J. Pelikán)
  • Úterý 12:20, SW2 (česky, M. Kahoun)
  • Úterý 17:20, SW2 (anglicky, J. Křivánek)
  • Středa 10:40, SW2 (česky, M. Kahoun)

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

Přednáška 1 (1. 10. 2018)

Motivace, plán přednášky

Plán přednášek a cvičení, motivační příklady ze života, literatura, ostatní přednášky..

Přednáška 2 (8. 10. 2018)

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 (8. - 10. 10. 2018)

Systém cvičení, za co je zápočet, předvedení programovacího prostředí (jazyk C#, MS Visual Studio, SVN repository). Barva v .NET (Color), barevné transformace, převody RGB <-> HSV

Úloha 115: Barevná paleta pro mandalu

Přednáška 3 (15. 10. 2018)

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 (15. - 17. 10. 2018)

Vektorový formát SVG (PDF prezentace), adresář s jednoduchými SVG příklady.
Rastrový obrázek v .NET (Bitmap.GetPixel()), rychlý přístup do paměti.
Základy morphingu

Úloha 114: Přechod mezi dvěma obrázky

Přednáška 4 (22. 10. 2018)

Grafické formáty II, HDR grafika

Dokončení: JPEG komprese, ukázky artefaktů a velikostí souborů ze slajdů. HDR grafika, pořizování HDR obrazu vícenásobnou expozicí, ukázky HDR souborů (Picturenaut), tone-mapping. Nový příklad - viz HDR stránka.

Cvičení 3 (22. - 25. 10. 2018)

Ukázka gamma (testovací rastry: Gamma 1, Gamma 2 (color)). Ukázky grafických formátů, artefakty JPEG komprese prakticky, porovnání kvality a velikosti zkomprimovaných obrázků, prakticky s IrfanView.
HDR: pořízení HDR obrázku vícenásobnou expozicí (Picturenaut).

Úloha 094: Tone-mapping HDR obrázku

Přednáška 5 (29. 10. 2018)

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í (rank-filtry, umělecké efekty)

Cvičení 4 (29. - 31. 10. 2018)

Výroba videa z jednotlivých snímků

Úloha 082: Obrázek složený z teček
Úloha 083: Animace pomocí teček

Přednáška 6 (5. 11. 2018)

Základy kreslení (rasterizace), anti-aliasing, písmo

Co se nestihlo: rank-filtry, umělecké efekty..
Rasterizace - základy: kreslení grafických primitiv do rastrového obrazu, úsečky a křivky, Bresenhamovy (mid-point) algoritmy, vyplňování n-úhelníka, anti-aliasing, kreslení písma.
Jen přehled ostatních (volitelných) metod a algoritmů: Půltónování a rozptylování, redukce počtu barev, aložitější křivky (diferenční algoritmus na kubickou křivku), flood-fill, ořezávání.

Cvičení 5 (5. - 7. 11. 2018)

Ukázky filtrů (mediánové filtry), filtry potlačující šum: Slides by Nataša Sladoje, Kuwahara/Nagao, Rotating masks, Directional filtering, Survey, Non-local means,
Ještě jednou: Práce s rastrovým obrázkem, rychlý přístup k datům Bitmapy (LockBits).. 005denoise obsahuje ekvivalentní implementace pomalého a rychlého přístupu.

Úloha 005: Filtr potlačující šum

Přednáška 7 (12. 11. 2018)

Kódování obrazu, 3D grafický systém, transformace

Kódování obrazu/masky: RLE, quad-tree, X-transition list.
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ů

Cvičení 6 (12. - 14. 11. 2018)

Ukázky z volitelných přednášek: palety, redukce počtu barev (GIF), Ukázky půltónování, redukce barevné palety..
Principy simulace ohně/plazmy.

Úloha 035: Simulace plasma

Přednáška 8 (19. 11. 2018)

Projekce, Reprezentace 3D scén I

Klasifikace lineárních projekcí, rovnoběžné a středové promítání, implementace projekčních transformací, perspektivně korektní interpolace..
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).

Cvičení 7 (19. - 21. 11. 2018)

OpenTK knihovna a její matematické objekty: matice, vektory, .. 3D formáty Wavefront OBJ a Stanford PLY a jejich načítání
Praktická ukázka úlohy 038 Trackball a projektu 086shaders (zatím bez technických detailů).
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.

Úloha 057: Konstrukce 3D scény - Lissajous

Přednáška 9 (26. 11. 2018)

Reprezentace 3D scén II, úvod do OpenGL

Dokončení reprezentace 3D scén, návaznost na zobrazování v OpenGL: vrcholy a jejich atributy, normálové vektory, stěny, texturování
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 (26. - 28. 11. 2018)

Dokončení OpenGL, VBO a VAO buffery, matrix stack, shadery, instancing, [stencil buffer,] ..
Další podrobnosti o OpenTK
Podrobnosti projektu 038 Trackball (otáčení 3D objektem systémem "trackball", řetězení transformací, projekční transformační matice), zobrazovací smyčka realtime 3D grafiky (event_handling - simulation - rendering), double-buffering..

Přednáška 10 (3. 12. 2018)

Matematické základy animace

Reprezentace orientace: Eulerovy úhly, kvaterniony. Interpolace kvaternionů, SLERP. Animační křivky: aproximace a interpolace, spline křivky, Hermitova interpolace, Catmul-Rom, Kochanek-Bartels, .. aplikace na trajektorii i orientaci.

Cvičení 9 (3. - 5. 12. 2018)

OpenTK a OpenGL: cokoli co ještě zbylo (dotazy studentů)
Interpolace polohy a orientace (praktické ukázky?), principy skriptované animace scény i kamery (sledování objektu ve scéně, LookAt(), ..)

Úloha 116: Animovaná realtime kamera

Přednáška 11 (10. 12. 2018)

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 (10. - 12. 12. 2018)

Plovoucí horizont (grcis: 017), graf funkce vykreslený pomocí povrchových křivek, ukazování myší do 3D scény (UnProject()).
Hierarchie 3D modelu, dynamické vykreslování s pomocí interface IRenderObject, UnProject() funkce, principy interaktivního 3D ovládání, přechodové animace (otáčení pro Rubikovu kostku).

Úloha 096: Rubikova kostka

Přednáška 12 (17. 12. 2018)

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 (17. - 19. 12. 2018)

Ukázky textur a stínování (grcis: 086).
Ukázka zjednodušeného projektu 058marbles, vycházejícího z 086shader, obohaceného naopak o fyzikální simulační jádro. Asynchronní systém (SimulateN, Render)*, "immutable data" pro rendering, možnost výpočtu simulace ve více vláknech..
Screencast class Snapshots a jeho možné zapojení do realtime grafického programu (viz OpenglSupport.cs).
Základy jednoduché fyzikální simulace: Eulerova simulační metoda, gravitační pole, detekce kolizí, pružný ráz s malými ztrátami energie..

Úloha 058: Kuličky - jednoduchá 3D fyzikální simulace

Přednáška 13 (7. 1. 2019)

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 (7. - 9. 1. 2019)

Ray-tracing prakticky (grcis), ukázky moderního Monte-Carlo renderingu, další detaily 3D úloh, pokud bude zájem.
Připravte si dotazy, budeme mít čas se jim věnovat!


Copyright (C) 2001-2018 J.Pelikán, last change: 2018-12-17 03:21:33 +0100 (Mon, 17 Dec 2018)