Základy počítačové grafiky – aktuální informace (2022/2023)

Přednáška v češtině se koná každý ČTVRTEK OD 9:00 v posluchárně S4 (Malá Strana)
(informace o anglické přednášce)

Cvičení jsou rozdělena do skupin:

  • NPGR003x02 čtvrtek 10:40 SW2 (česky, Josef Pelikán)
  • NPGR003x03 čtvrtek 15:40 SW1 (anglicky, Vojtěch Tázlar)
  • NPGR003x04 pátek 9:00 SW1 (česky, Vojtěch Tázlar)

Video obsah na YouTube

Přednášky 2022/23: nová videa budou vznikat jen výjimečně, playlist bude naplněn z archivu
Playlist přednášek 2022/23.

Cvičení 2022/23:
Playlist cvičení 2022/23.

Archiv

POZOR: neplatí konkrétní úlohy a zmínky o Microsoft Teams (Teams letos nebudeme používat, pokud se nezhorší epidemiologická situace).

Archiv přednášek 2020/21.
Archiv cvičení 2021/22.
Archiv cvičení 2020/21.

Nezávazný plán semestru

Data přednášek a cvičení se vztahují k výuce J. Pelikána, u ostatních se budou dny lišit.

Přednáška 1 (29. 9. 2022)

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

Cvičení 1 (29. 9. 2022)

Systém cvičení, za co je zápočet, předvedení programovacího prostředí (jazyk C#, MS Visual Studio, SVN/GIT repository). Rastrový obrázek (Bitmap), ukázka první úlohy (051).
Video: Úvodní video 2022/01 – systém cvičení, podmínky zápočtu, ukázky prostředí GrCis, ukázka první úlohy 051...

Přednáška 2 (6. 10. 2022)

Barevné vidění, barevné systémy

Lidský zrak a jeho vlastnosti (fyziologie a psychologie, vady), světelné spektrum, metamery, obraz a jeho reprezentace v počítači, 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

Cvičení 2 (6. 10. 2022)

Barva v .NET (Color), formáty pixelu, převod RGB <-> HSV, Adobe Color online, rastrový obrázek v .NET (Bitmap.GetPixel()).

Úloha 051: Barevná paleta podle obrázku

Video: Cvičení 2022/02 – ukázka barevných palet v programu Adobe Color, zadání úlohy 051.

Přednáška 3 (13. 10. 2022)

Rastrová a vektorová grafika, Gamma korekce

Opakování: HSV prostor, aditivní a subtraktivní skládáni barev, převody RGB<->HSV, barevné standardy. Rastrová a vektorová grafika. Začátek: Gamma korekce (mýty s ní spojené),

Cvičení 3 (13. 10. 2022)

Jména barev X11 color names. Vektorový formát SVG (PDF prezentace), adresář s jednoduchými SVG příklady.

Úloha 098: Generátor bludiště v SVG formátu

Video: Cvičení 2022/03 – triviální jména barev, SVG formát, zadání úlohy 098.

Přednáška 4 (20. 10. 2022)

Gamma, rastrové grafické formáty

Gamma dokončení, 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í 4 (20. 10. 2022)

Dokončení zadání úlohy 098 (parametry class CmdOptions, formátování a zapisování výstupního SVG souboru).
Ukázka gamma (testovací rastry: Gamma 1, Gamma 2 (color)).

Úloha 082: Obrázek složený z teček
Video: Cvičení 2022/04 – ukázka gamma, rastrový formát PGM, zadání úlohy 082

Přednáška 5 (27. 10. 2022)

JPEG komprese, HDR grafika, průhlednost

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. Průhledné obrázky a operace s nimi (kompozice pomocí alfa-kanálu).

Cvičení 5 (27. 10. 2022)

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).
Ukázky operací s průhledností (alpha channel).
Výroba videa z jednotlivých snímků

Úloha 083: Animace pomocí teček
Úloha 044: Animace loga CGG

Video: Cvičení 2022/05 – ukázky komprese JPEG, prohlížení a vytváření HDR, komprese videa, zadání úloh 083 a 044.

Přednáška 6 (3. 11. 2022)

Operace/filtry nad rastrovým obrazem

Histogram a operace s ním, ekvalizace, přechodová funkce, filtrace konvolucí, rank-filtry, umělecké efekty.
Základy rasterizace (kreslení grafických primitiv do rastrového obrazu): úsečka.

Cvičení 6 (3. 11. 2022)

Ukázka Genesis Effect z filmu "Star Trek II".
Ještě jedna stránka o kalibraci a testování monitoru (lagom.nl).
Ukázky: filtry (medián, rozmazání...) v JaGrLib

Úloha 084: Umělecký filtr – tahy štětcem

Videa: Cvičení 2022/06 – CGG logo a grafický manuál k němu, ukázka kompozice pomocí alfa z filmu Star Trek II, ukázky filtrů (JaGrLib), zadání úlohy 084

Přednáška 7 (10. 11. 2022)

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

Rasterizace – pokračování: úsečka (Bresenham = midpoint), kružnice, vyplňování n-úhelníka, anti-aliasing.

Cvičení 7 (10. 11. 2022)

Ukázky rasterizace v JaGrLib: lines (sBresenham.xml), anti-aliased lines (sAntialias.xml), ellipses – 2 algorithms (sEllipse.xml, Bresenham's circle, Bond's general ellipse), polygon (sPolygon.xml), polygon with anti-aliasing (sPolygonAnti.xml), Gallery – anti-aliased polygon fill, thick line clipping.

Video: Cvičení 2022/07 – rychlý přístup do paměťové bitmapy, ukázky rasterizačních algoritmů v JaGrLib (s anti-aliasingem i bez něj)

Přednáška 8 (24. 11. 2022)

Zbytek 2D grafiky, úvod do 3D: 3D grafický systém, transformace

Zbytek 2D grafiky: kreslení písma, 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ů (co se stihne).

Cvičení 8 (24. 11. 2022)

Přehled volitelných přednášek – rasterizace: složitější křivky (diferenční algoritmus na kubickou křivku), flood-fill, ořezávání, půltónování a rozptylování, palety, redukce počtu barev (GIF), Ukázky půltónování, redukce barevné palety..
JaGrLib ukázky: flood-fill (sFloodFill.xml) a podle množství času, demo anti-aliasingu písma (ZIP), ligatura a kerning (PDF).
Motivační ukázky 3D grafiky (Euro Truck Simulator, CS, Virtual-O).

Video: Cvičení 2022/08 – ukázka flood-fill, anti-aliasingu a kreslení písma, volitelná témata ke zkoušce, motivační videa z 3D realtime grafiky

Přednáška 9 (1. 12. 2022)

Transformace a projekce

Dokončení transformací, klasifikace lineárních projekcí, rovnoběžné a středové promítání, implementace projekčních transformací, perspektivně korektní interpolace...

Cvičení 9 (1. 12. 2022)

Ukázky z 3D grafiky (086shader, 048rtmontecarlo-script).
OpenTK knihovna a její matematické objekty: matice, vektory... 3D formáty Wavefront OBJ a Stanford PLY a jejich načítání
Přehled OpenGL I: výběr z látky z předem natočeného videa (2020/21).
Architektura grafické karty (starší model – fixed pipeline, i OpenGL >=3.0), posloupnost souřadných systémů a transformací v OpenGL, data posílaná na GPU, kreslená primitiva, shadery...

Videa: Úvod do OpenGL (2020/21),

Přednáška 10 (8. 12. 2022)

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, aplikace na polohu i orientaci (myšlenka kvaternionového spline)

Cvičení 10 (8. 12. 2022)

OpenGL: dokončení – textury, výpočet viditelnosti, ukázky shaderů, matrix stack (souvislost s hierarchiemi), instancing, stencil buffer...
Praktická ukázka projektu 086shaders již s některými technickými detaily (podle času).
Další podrobnosti o OpenTK GitHub (OpenTK web page)
Obecné techniky zobrazování 3D scén: řetězení transformací, projekční transformační matice, zobrazovací smyčka realtime 3D grafiky (event_handling – simulation – rendering), double-buffering...
[principy skriptované animace scény i kamery], sledování objektu ve scéně, LookAt()...

Úloha 116: Animovaná realtime kamera

Videa: Úvod do OpenGL (2020/21),

Přednáška 11 (15. 12. 2022)

Reprezentace 3D scén

Dokončení animačních křivek: spline křivky, B-spline, opakování kvaternionového spline...
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í 11 (15. 12. 2022)

Interpolace polohy a orientace (praktické ukázky v C++), OpenTK a OpenGL: cokoli, co ještě zbylo (dotazy studentů)
Praktická ukázka projektu 086shaders již s některými technickými detaily (podle času).
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 039: Generování terénu

Video:

Přednáška 12 (22. 12. 2022)

Hierarchie, výpočet viditelnosti

Hierarchický model obecně, scene graph, ještě jednou posloupnost souřadných systémů a transformací v OpenGL.
Malířův algoritmus a hloubkové třídění, Z-buffer.

Cvičení 12 (22. 12. 2022)

Ukázky stínování a ray-castingu [ray-tracingu].
Výklad související s poslední úlohou (IRenderObject, ukazování do 3D scény, částicový systém). Ukázka Z-fightingu.

Úloha 087: Ohňostroj

Video:

Přednáška 13 (5. 1. 2023)

Stínování, základy renderingu, vrhání paprsku (Ray-tracing)

Ukázky odevzdaných animací ().
Jednoduchý model osvětlení (Phong) – normálové vektory, bodový zdroj světla, atributy materiálu. Konstantní a spojité stínování – Gouraudova a Phongova metoda.
Základy paprskového zobrazování: CSG, ray-casting, ray-tracing. [Začlenění stínování do GPU pipeline (shadery) a do paprskových metod (ray-tracing)]
[Jaké přednášky navazují v LS?]

Cvičení 13 (5. 1. 2023)

Výklad související s poslední úlohou (IRenderObject, ukazování do 3D scény, částicový systém). Ukázka Z-fightingu.
Ray-tracing prakticky (grcis), ukázky moderního Monte-Carlo renderingu (Corona renderer?), další detaily 3D úloh, pokud bude zájem.
Připravte si dotazy, budeme mít čas se jim věnovat!

Video:

 

Na této stránce si přečtěte příklady otázek, se kterými se můžete setkat u zkoušky.


Copyright (C) 2001-2023 J.Pelikán, last change: 2023-01-05 02:53:58 +0100 (Thu, 05 Jan 2023)