Knihovna GrCis

Projekt běží od podzimu 2010 jako podpora výuky počítačové grafiky na MFF UK, konkrétně jej využíváme v předmětech NPGR003 (Základy počítačové grafiky), NPGR004 (Počítačová grafika II), NPGR007 (Pokročilá 2D počítačová grafika), NPGR019 (Realtime grafika na GPU) a NPGR023 (Visualizace). Knihovna obsahuje ukázky základních algoritmů v C# (.NET >= 3.5), šablony pro studentská cvičení, některé užitečné datové soubory, apod. Tato stránka je stručným a obecným návodem k použití. Jednotlivé úlohy jsou však nejlépe popsány na stránkách jednotlivých cvičení, současné odkazy najdete na konci této WWW stránky, archivy úloh let minulých by měly být dostupné na několik kliknutí..

Knihovna se neustále vyvíjí, pokud narazíte na některé nedostatky nebo chyby, rádi o nich uslyšíme, kontaktujte prosím koordinátora projektu.

SVN repository

Knihovna (programy, projekty, pomocné třídy, data) je umístěna v SVN repository grcis na serveru cgg.mff.cuni.cz.
Po instalaci Subversion klienta (stačí řádková verze) se aktuální verze knihovny stáhne příkazem:

svn checkout svn://cgg.mff.cuni.cz/grcis/trunk grcis
Tím se vytvoří adresář grcis obsahující hlavní větev knihovny. Stahujte si vždy celou hlavní větev (trunk), izolované adresáře jednotlivých projektů nebudou fungovat!
Pozdější update (aktualizace dat) ze serveru se provádí v příslušném adresáři příkazem:
svn update

Pohodlnější a názornější je práce s GUI klientem TortoiseSVN. V laboratoři na Malé straně je nainstalován. Příkazy se zadávají z lokálního menu (pravé tlačítko myši) v příslušném adresáři.

Do SVN repository nemáte právo zápisu – příkazy checkout, update nebo export jsou v pořádku, o commit na server se ani nepokoušejte!

GIT repository

Primární/referenční repository je sice v systému Subversion, máme však podporu i pro GIT. URL GitHub repository je https://github.com/pepcape/grcis, adresa pro příkaz clone je https://github.com/pepcape/grcis.git.

Nezapomeňte, že pro práci s projekty z knihovny GrCis pořebujete mít na disku pracovní kopii obsahující celý branch master, nejenom jeden adresář s VS projektem!

Ani do repository na GitHub nemáte právo zapisovat – příkazy clone, pull nebo rebase jsou v pořádku, o push na server se ani nepokoušejte! S výhodou však můžete "commitovat" do své lokální kopie repository, jen nezapomínejte dělat často "pull" nebo "rebase" z master serveru!

Organizace repository

V trunku repository jsou umístěny adresáře obsahující kód k jednotlivým cvičením. Obvykle platí: jedno cvičení -> jedno "solution" (.sln).
Někdy však budou k dispozici tzv. "frameworks" (např. 117raster, 062animation-script nebo 086shader), v jejichž prostředí lze pracovat na mnohých úkolech. Sledujte konkrétní zadání úloh a při odevzdávání řešení použijte označení číslem úlohy, ne frameworku!

Knihovny třetích stran

Studenti pracující na platformě Windows mají DLL binárky připraveny v repository. Ostatní si budou muset potřebné soubory opatřit a nakopírovat na správné místo (resp. nainstalovat příslušné balíčky).
Používáme externí knihovnu OpenTK, která integruje OpenGL, OpenCL a OpenAL (GitHub repository).
Knihovna Cloo je wrapper a integrace OpenCL.
Knihovna NCalc obsahuje malý evaluátor aritmetických výrazů.

Vývojové prostředí pro C#

V repository je primárně podporováno prostředí "Visual Studio 2022 Community" (je nainstalováno v laboratořích, i domů si ho můžete stáhnout Visual Studio Community).

Galerie výsledků

V galerii budou shromažďovány zajímavé obrázky vytvořené s pomocí knihovny, buď k demonstračním účelům, nebo jenom jako ukázka práce šikovných studentů. V případě zájmu o některý výsledek se na nás můžete obrátit mailem, měli bych mít v archivu všechny zdrojáky, pokud nejsou součástí veřejné distribuce GrCis.

Práce v Linuxu

Tento návod napsal Michal Wirth - děkujeme.

Projekty v .NET frameworku, které jsou vytvořené pomocí Microsoft Visual Studia, je možné provozovat i v linuxovém prostředí. K tomuto slouží open-source implementace .NETu s názvem Mono. Je velice pravděpodobné, že Mono najdete již předpřipravené v balíčkovacím systému Vaší linuxové distribuce.

Jako IDE pro vývoj lze snadno použít prostředí MonoDevelop. Toto IDE umí korektně otevřít projektový .sln soubor (alespoň tomu tak je ve verzi 2.4), který je součástí každé úlohy v SVN repository. Např. v distribuci Debian prostředí získáte nainstalováním balíčku "monodevelop".

Pokud nechcete MonoDevelop z nějakého důvodu používat, nabízí se také možnost provádět kompilaci přímo v terminálu. K tomuto slouží program "xbuild" (verze 2.6.7 funguje bez problémů). Jako parametr přijímá cestu k již zmíněnému .sln souboru. Po spuštění programu proběhne kompilace projektu a případné kompilační chyby jsou následně vypsány na konci výstupu. Samotná binárka bude umístěna v "./bin/Debug/" v rámci adresáře celého projektu. Binárku je poté již možné přímo spustit v běhovém prostředí programu "mono" (cesta k binárce se opět předá jako parametr programu). Takto lze snadno k vývoji použít Váš oblíbený textový editor. Program "xbuild" získáte v Debianu instalací balíčku "mono-xbuild". V ostatních distribucích to bude stejné nebo velmi podobné.

Odkaz na další návod: Running Windows Forms on Linux with Mono.

Budoucnost GUI v .NET

Letos vydal Microsoft první verzi multi-platformního systému pro GUI aplikace v .NET. Jmenuje se .NET MAUI.

Bohužel to zatím (září 2022) vypadá, že je to nezralý produkt a bude potřeba počkat minimálně rok, než ho půjde spolehlivě používat (viz např. tento článek). My tedy budeme ještě jeden rok používat .NET framework spolu s WinForms, což je kombinace použitelná i v Linux/OSX (Mono + MonoDevelop).


Copyright (C) 2010-2022 J.Pelikán, last change: 2022-10-03 00:56:53 +0200 (Mon, 03 Oct 2022)