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

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

Cvičení jsou rozdělena do několika skupin, viz rozvrh v SISu.

Video obsah na YouTube

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

Cvičení 2023/24:
Playlist cvičení 2023/24. Je tam záznam prvního cvičení, další zatím neplánuji.

Archiv

POZOR: neplatí konkrétní úlohy a zmínky o Microsoft Teams (Teams už nepoužíváme).

Archiv přednášek 2020/21.
Archiv cvičení 2022/23.
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 mohou dny lišit.

Přednáška 1 (2. 10. 2023)

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 (2. 10. 2023)

Systém cvičení, za co je zápočet, předvedení programovacího prostředí (jazyk C#, MS Visual Studio, GIT repository, AI asistenti).
GIT repository NPGR003-23 a jak s ní pracovat! Úkol 00-GIT.
ChatGPT-3.5 konverzace o command-line programu, který má vytvořit obrázek s dvojbarevnou šachovnicí (ukazuje se tam i knihovna SixLabors.ImageSharp) je archivován zde.
Video: Úvodní video 2023/01 – zápočet, tabulka bodů, GIT repo, ChatGPT ukázka

Přednáška 2 (9. 10. 2023)

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, základní barevný systém RGB, doporučení pro používání barev. Rastrová a vektorová grafika. Virtuální barevná primitiva XYZ, barevný gamut displeje, barevné systémy CIE-xyY, RGB, CMY(K), HSV (zatím jen stručně)

Cvičení 2 (9. 10. 2023)

Barva v SixLabors.ImageSharp (Rgba32), formáty pixelu, převod RGB <-> HSV, Adobe Color online, rastrový obrázek v SixLabors.ImageSharp (Image). Knihovna pro command-line argumenty CommandLineParser.

Úloha 01-AllTheColors: obrázek obsahující všech 16M barev.

Přednáška 3 (16. 10. 2023)

Barevné systémy a gamma korekce

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

Cvičení 3 (16. 10. 2023)

Jména barev X11 color names. Vektorový formát SVG (PDF prezentace), adresář s jednoduchými SVG příklady.
Ukázka gamma (testovací rastry: Gamma 1, Gamma 2 (color)).

Úloha 02-ImagePalette: barevná paleta podle obrázku.

Přednáška 4 (23. 10. 2023)

Rastrové grafické formáty

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). JPEG komprese, [ukázky artefaktů a velikostí souborů ze slajdů].

Cvičení 4 (23. 10. 2023)

Ukázky grafických formátů, artefakty JPEG komprese prakticky, porovnání kvality a velikosti zkomprimovaných obrázků, prakticky s IrfanView.

Úloha 03-SFC: křivky procházející 2D obrázek (Space Filling Curves).

Přednáška 5 (30. 10. 2023)

HDR grafika, průhlednost

Přednáška se pro nemoc nekoná, pusťte si prosím sami videa HDR obraz a Kompozice rastrových obrázků.
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 (30. 10. nebo 6. 11. 2023)

ve skupině J. Pelikána se toto cvičení posunuje na 6. 11. 2023.
HDR: pořízení HDR obrázku vícenásobnou expozicí (Picturenaut).
Ukázky operací s průhledností (alpha channel) – ukázka Genesis Effect z filmu "Star Trek II".

Úloha 04-Mandala: kreslení kruhově symetrických obrázků (a la mandala).

Přednáška 6 (6. 11. 2023)

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.

Přednáška 7 (13. 11. 2023)

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í 6 (13. 11. 2023)

Ukázky: filtry (medián, rozmazání...) v JaGrLib
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.

Úloha 05-Animation: výroba 2D animace založené na mandale (viz úloha 04-Mandala).

Přednáška 8 (20. 11. 2023)

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í 7 (20. 11. 2023)

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

Úloha 06-ImageRecoloring: přebarvení rastrového obrázku se zachováním pleťových odstínů (pro portréty)

Přednáška 9 (27. 11. 2023)

Transformace a projekce, 3D scény

Dokončení transformací, 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,

Cvičení 8 (27. 11. 2023)

Ukázky z 3D grafiky (GrCis: 086shader, 048rtmontecarlo-script).
Motivační ukázky 3D grafiky (Euro Truck Simulator 2, CS, Virtual-O).
Silk.NET knihovna a její matematické objekty: matice, vektory... Silk.NET.Maths repo.

Přednáška 10 (4. 12. 2023)

Povrchové reprezentace 3D scén, hierarchie, matematika pro 3D grafiku

VHS(T), Atributy vrcholů a stěn, okřídlená hrana, půlhrana, trojúhelníkové sítě, corner table, Eulerovy operátory.
Hierarchický model obecně, scene graph, hierarchie transformací.
Transformace normálových vektorů, posloupnost souřadných soustav v OpenGL...

Cvičení 9 (4. 12. 2023)

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...
Ukázky Open v Silk.NET, příklady z našeho GITu: Silk3D01-FlatWorld a 02-Trackball.

Úloha 07-Terrain: generování terénu fraktálním "subdivision" algoritmem

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

Matematika pro 3D grafiku – dokončení

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 (11. 12. 2023)

OpenGL: dokončení – textury, výpočet viditelnosti, ukázky shaderů, matrix stack (souvislost s hierarchiemi), instancing, stencil buffer... 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...
Praktická ukázka projektu 086shaders již s některými technickými detaily (podle času).
Ještě jednou příklady z našeho GITu: Silk3D01-FlatWorld a 02-Trackball.

Úloha 08-Fireworks: simulace ohňostroje pomocí částicového systému.

Přednáška 12 (18. 12. 2023)

Výpočet viditelnosti a základy stínování

Malířův algoritmus a hloubkové třídění, Z-buffer.
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.

Cvičení 11 (18. 12. 2023)

Praktická ukázka projektu 086shaders již s technickými detaily z přednášky (stínování...)
Případné další ukázky z našeho GITu

Úloha 09-AntAttack: zobrazování 3D scény ve stylu stařičké hry "Ant Attack".

Přednáška 13 (8. 1. 2024)

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

Ukázky odevzdaných animací (úloha 05-Animation) – všechny odevzdané animace.
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í 12 (8. 1. 2024)

Ukázky stínování, ray-casting a 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-2024 J.Pelikán, last change: 2024-02-26 01:42:34 +0100 (Mon, 26 Feb 2024)