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:
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.
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.
Data přednášek a cvičení se vztahují k výuce J. Pelikána, u ostatních se budou dny lišit.
Plán přednášek a cvičení, motivační příklady ze života, literatura, ostatní přednášky..
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...
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
Barva v .NET (Color), formáty pixelu, převod RGB <-> HSV, Adobe Color online, rastrový obrázek v .NET (Bitmap.GetPixel()).
Video: Cvičení 2022/02 – ukázka barevných palet v programu Adobe Color, zadání úlohy 051.
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é),
Jména barev X11 color names. Vektorový formát SVG (PDF prezentace), adresář s jednoduchými SVG příklady.
Video: Cvičení 2022/03 – triviální jména barev, SVG formát, zadání úlohy 098.
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).
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)).
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).
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ů
Video: Cvičení 2022/05 – ukázky komprese JPEG, prohlížení a vytváření HDR, komprese videa, zadání úloh 083 a 044.
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.
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
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
Rasterizace – pokračování: úsečka (Bresenham = midpoint), kružnice, vyplňování n-úhelníka, anti-aliasing.
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.
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).
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).
Dokončení transformací, klasifikace lineárních projekcí, rovnoběžné a středové promítání, implementace projekčních transformací, perspektivně korektní interpolace...
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...
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)
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()...
Videa: Úvod do OpenGL (2020/21),
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.
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.
Video:
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.
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.
Video:
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?]
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!
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)