Základy počítačové grafiky – cvičení (2024/2025)

Bude postupně zadáno 9 úloh, vy si můžete vybírat, které budete řešit. Budete moci používat AI asistenty, pokud svůj postup dobře zdokumentujete. Přečtěte si sekci Podmínky zápočtu.

Video obsah na YouTube

Playlist cvičení 2024/25. 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 cvičení 2023/24.
Archiv cvičení 2022/23.
Archiv cvičení 2021/22.
Archiv cvičení 2020/21.

Seznam průběžných úloh

Viz repository NPGR003-24. Každé úloze je věnován jeden očíslovaný adresář NN-*, např. 01-AllTheColors.

Stručný přehled plánovaných úloh (může být změněn):

  • 01-AllTheColors – obrázek obsahující všech 16M barev
  • 02-ImagePalette – barevná paleta podle obrázku
  • 03-SFC – fraktální 2D křivky (vyplňující rovinu = Space Filling Curves)
  • 04-Mandala – program kreslící kruhově symetrické obrázky (mandaly)
  • 05-Animation – výroba 2D animace založené na mandale (viz úloha 04-Mandala)
  • 06-ImageRecoloring – přebarvování obrázku se zachováním pleťových odstínů
  • 07-Terrain – generování fraktálního terénu pomocí "subdivision" schémata (OpenGL a Silk.NET)
  • 08-Fireworks – simulace ohňostroje ve 3D (pomocí OpenGL a Silk.NET)
  • 09-AntAttack – kreslení jednoduchého 3D města ve stylu hry "Ant Attack" (OpenGL a Silk.NET)

Všechny další informace o úlohách hledejte ve veřejné GIT repository NPGR003-24.

Tabulka bodů

Tato sdílená tabulka obsahuje všechny aktuální informace ohledně úloh, jejich termínů a počty bodů.

Ukázky úloh z minulých ročníků (ještě ve starém systému s knihovnou GrCis)

051. Barevná paleta podle obrázku (do 30. 10. 2022) – 8 až 14 bodů

Barevná paleta inspirovaná vstupním rastrovým obrázkem.

Video: Zadání úlohy 051

098. Generátor bludiště v SVG formátu (do 13. 11. 2022) – 9 až 16 bodů

Automatické generování pravoúhlého 2D bludiště v SVG formátu.

Video: Zadání úlohy 098, dokončení

082. Obrázek složený z teček (do 20. 11. 2022) – 6 až 12 bodů [může být 3D]

Generování obrázku jenom z teček/kruhů (poloha, barva, velikost).

Video: Zadání úlohy 082

083. Animace pomocí teček (do 3. 1. 2023) – 5 až 20 bodů [může být 3D]

Skriptovaná animace pomocí teček (viz předchozí úlohu).

Video: Zadání úlohy 083

044. Animace loga CGG (do 3. 1. 2023) – 5 až 20 bodů [může být 3D]

Krátká skriptovaná animace CGG loga pro použití ve video-znělce.

Video: Zadání úlohy 044

084. Umělecký filtr – tahy štětcem (do 4. 12. 2022) – 7 až 14 bodů

Transformace obrázku do některého z malířských stylů (napodobení tahů štětcem).

Video: Zadání úlohy 084, dokončení

116. Animovaná realtime kamera (do 28. 2. 2023) – 7 až 22 bodů [3D]

Definice trajektorie kamery v čase, hladká translace i otáčení. Volitelné sledování pohybujícího-se předmětu.

Video: Zadání úlohy 116, dokončení

039. Generování terénu (do 28. 2. 2023) – 10 až 24 bodů [3D]

Generování a vykreslování fraktálního terénu, volitelná simulace jednoduchého vznášedla.

Video: Zadání úlohy 039, dokončení

087. Ohňostroj (do 28. 2. 2023) – 8 až 22 bodů [3D]

Simulace ohňostroje ve 3D. Gravitace, odpor prostředí, objekty nereagují navzájem!

Video: Zadání úlohy 087, opakování/dokončení

117. Prostředí pro rastrové obrázky 117raster

Prostředí (VS2022 projekt), ve kterém se budou odehrávat 2D úlohy pomocí modulů (interface IRasterModule). Příklad modulu, kde se vytvoření nebo transformace rastrového obrázku dá zadávat pomocí CS-skriptu: ModuleFormula.

Video: Prostředí 117raster (2020/21)

123. Zadávání obrázku vzorečkem (do 7. 11. 2021) – 3 až 10 bodů

Vymyslete nějaký obrázek (geometrický tvar, vzor, zajímavé barevné přechody, ...) tak, aby jej šlo snadno realizovat vzorečkem – každý pixel se zvlášť vyhodnotí pomocí funkce, kterou naprogramujete v CS-scriptu (jazyk C#) nebo samostatném modulu v C#.

Video: Zadání úlohy 123 (2020/21)

120. Omezené přebarvení obrázku (do 14. 11. 2021) – 8 až 12 bodů

Přebarvení obrázku změnou "Hue" se zachováním pleťových odstínů.

Video: Zadání úlohy 120

092. Generování zajímavého obrázku z úseček (do 21. 11. 2021) – 6 až 12 bodů

Generování obrázku jenom z úseček a lomených čar.

Video: Zadání úlohy 092

093. Animace pomocí úseček (do 3. 1. 2022) – 5 až 20 bodů

Skriptovaná animace pomocí úseček a lomených čar.

Videa: Zadání úlohy 093, Výroba videa z jednotlivých snímků (2020/21)

125. Generování obrázku s anti-aliasingem (do 19. 12. 2021) – 4 až 8 bodů

Vaše řešení úlohy 123 rozšiřte o anti-aliasing, aby se redukovaly zubaté okraje a případné interference (Moiré efekty). Jako výchozí generující funkci můžete klidně použít moji vzorovou nekonečnou šachovnici v perspektivě, viz video a materiály k úloze 123. Vše v prostředí našeho systému 117raster.

Video: Zadání úlohy 125

124. Transformace obrázku vzorečkem (do 3. 1. 2021) – 4 až 8 bodů

Druhá úloha na rozjezd: zadejte barevnou transformaci pixelů rastrového obrázku (bezkontextové operace, např. barevné korekce, změny kontrastu, jasu a sytosti, posun barev, ...). Opět implementace v CS-scriptu (jazyk C#) nebo samostatném modulu v C#.

057. Konstrukce 3D scény – Lissajous (do 7. 3. 2021) – 6 až 18 bodů [3D]

Algoritmická konstrukce 3D scény založené na zobecněné Lissajousově křivce. Křivka je reprezentována sítí trojúhelníků tvořících "trubku" (nebo jiný – ze všech směrů viditelný – profil) kolem ideální křivky.

113. Graf funkce v OpenGL (do 28. 2. 2022) – 8 až 20 bodů [3D]

Vykreslování grafu funkce dvou proměnných v OpenGL.

Videa: Zadání úlohy 113, Doplňující informace z posledního cvičení

096. Rubikova kostka (do 28. 2. 2022) – 11 až 20 bodů [3D]

Interaktivní 3D simulátor Rubikovy kostky.

Video: Zadání úlohy 096

058. Kuličky – jednoduchá 3D fyzikální simulace (do 14. 3. 2021) – 12 až 22 bodů [3D]

Kuličky pohybující se v 3D prostoru, jejich vzájemné kolize + gravitace.

118. Vylepšení histogramu (do 10. 11. 2019) – 5 až 12 bodů

Variace na histogramy obrázků – lokální histogram, lepší vizualizace, jiný barevný systém, ...

121. Obrázek obsahující všech 16M barev (do 24. 11. 2019) – 6 až 15 bodů

Generování full-color obrázku buď podle předlohy nebo implicitně, příp. podle parametrů.

122. Konstrukce 3D scény z úseček (do 12. 1. 2020) – 6 až 12 bodů [3D]

Algoritmická konstrukce 3D scény složené jen z úseček a lomených čar.

116. Animovaná realtime kamera (do 16. 2. 2020) – 7 až 22 bodů [3D]

Definice trajektorie kamery v čase, hladká translace i otáčení. Volitelné sledování pohybujícího-se předmětu.

115. Barevná paleta pro mandalu (do 4. 11. 2018) – 8 až 11 bodů

Cyklické barevné schéma pro obrázek stylu "mandala".

114. Přechod mezi dvěma obrázky (do 11. 11. 2018) – 6 až 16 bodů

Definice přechodové animace mezi dvěma rastrovými obrázky.

094. Tone-mapping HDR obrázku (do 18. 11. 2018) – 6 až 14 bodů

Převod HDR obrazu do běžného LDR formátu (8 bitů na barevný kanál).

005. Filtr potlačující šum (do 2. 12. 2018) – 8 až 14 bodů

Filtr potlačující šum, ale zachovávající ostré hrany (rotující maska, směrový filtr).

035. Simulace plasma (do 9. 12. 2018) – 3 až 14+ bodů

Real-time simulace plasmy/plamene v diskrétním 2D poli.

004. Výroba vlastního HDR obrázku (do 19. 11. 2017) – 8-11 bodů

Výroba HDR obrázku vícenásobnou expozicí za pomoci některého populárního programu.

099. Generování obrázku z vodorovných a svislých úseček (do 26. 11. 2017) – 6-12 bodů

Generování obrázku jenom z vodorovných a svislých úseček.

110. Animace pomocí vodorovných a svislých úseček (do 7. 1. 2018) – 5-20 bodů

Skriptovaná animace pomocí vodorovných a svislých úseček.

112. Ciferníky (do 17. 12. 2017) – 8+ bodů

Displej složený z ciferníků hodin ve 2D.

057. Konstrukce 3D scény (do 14. 1. 2018) – 6 až 14 bodů [3D]

Algoritmická konstrukce jednoduché 3D scény – Platónská tělesa, apod.

Podmínky získání zápočtu

Celkem je potřeba získat minimálně 50 bodů a maximálně 80 bodů (ZPG: minimálně 16 bodů musí být z 3D grafiky).
Zápočet za zimní semestr lze získat nejpozději do 2. 3. 2025 !
Zápočet za letní semestr lze získat nejpozději do 30. 6. 2025 !

Body se sčítají s výsledkem písemné zkoušky (max. 100 bodů) a podle celkového součtu se určí známka.
Závěrečné hodnocení:
150 bodů a více výborně
130 až 149 bodů velmi dobře
110 až 129 bodů dobře
méně než 110 bodů nevyhověl(a)

Jak získat body na zápočet

A1. úlohy řešené průběžně v semestru NPGR003 (C#)

Úlohy průběžně zadávané na cvičeních, na většině cvičení bude zadána jedna úloha, na její řešení bude mít dostatek času. Hodnocení podle obtížnosti a kvality řešení, různé bonusy pro vítěze soutěží, apod. Pokud budete používat AI asistenty (nebo např. ChatGPT), musíte to deklarovat a přiložit popis, jak vám AI pomohla (u ChatGPT např. archivovanou celou konverzaci, která vedla k odevzdanému řešení).

A2. semestrální projekt NPGR004 (C#)

Projekt, na kterém budete pracovat po dobu celého semestru. Podrobné informace, postupné kroky a kontrolní body (checkpoints) viz detailní stránky cvičení.

B. body z loňska

Účastníci loňských cvičení (opakující předmět, kteří za něj však nedostali kredity) budou mít uznáno 90% loni získaných bodů. Musíte mne požádat mailem.

Soutěže

Některé úlohy obsahují kvantitativní hodnocení, podle kterého lze sestavit žebříček nejlepších odevzdaných řešení.
Takové úlohy jsou označeny "SOUTĚŽ" a pokud vyhovující řešení odevzdá alespoň 10 studentů/týmů, tři nejlepší obdrží prémii 10, 6, resp. 3 body (v případě týmu dostanou plnou prémii všichni jeho členové).
Do soutěže jsou zařazena pouze řešení odevzdaná včas!

Upozornění

Protože je vyhodnocování odevzdaných úloh velice časově náročné, je potřeba, abyste dodržovali následující pravidla:
  • komunikujte se mnou mailem z takového účtu (identity), kde máte ve své adrese uvedené vaše občanské jméno a příjmení (minimálně příjmení)
    Pozn: vždycky lze vyrobit mailovou identitu podle vzoru "František Vopršálek" <rambo12@seznam.cz>
  • do subjectu zprávy vždy napište číslo příslušné úlohy (i v případě dotazu nebo reklamace)
  • nespoléhejte na to, že budu funkčnost vašeho kódu zkoušet jenom ve vzorovém nastavení/hlavním programu! Je potřeba reagovat na všechny rozumné varianty vstupu. To platí zejména, pokud si necháte kód generovat některým AI asistentem!

Odevzdání úlohy

Budeme používat vaše GIT kopie ... detaily jsou upřesněny ve veřejné GIT repository.

Pokuta za pozdě odevzdanou úlohu

Za úlohu neodevzdanou včas se strhává 1 bod za každý započatý den zpoždění.

Rozvrh cvičení

V rozvrhu (SIS) je několik skupin cvičení, do jedné z nich se musíte zaregistrovat.


Copyright (C) 2000-2024 J.Pelikán, last change: 2024-10-23 04:52:21 +0200 (Wed, 23 Oct 2024)