Informatika - Vizuální výpočty a vývoj počítačových her

Tato stránka vychází z podkladů pro tištěné studijní plány (tzv. Karolinku).

Garantující pracoviště: Katedra softwaru a výuky informatiky
Oborový garant: Doc. RNDr. Tomáš Dvořák, CSc.

Studijní plán nabízí posluchačům dvě úzce propojená zaměření, která se liší okruhy, z nichž jsou pokládány otázky u státní závěrečné zkoušky. Předměty je vhodné volit tak, aby svým obsahem tyto zkušební okruhy pokryly. Část výuky může probíhat v anglickém jazyce.

Zaměření:

vizuální výpočty
vývoj počítačových her

Absolvent je zdatným programátorem v jazycích typu C++, C# či Java, umí vytvářet programy pro klasické i masivně paralelní procesory (GPU) a pro malá zařízení (tablety, mobilní telefony). Umí využívat nástroje pro správu rozsáhlých softwarových projektů, je schopen navrhnout a realizovat komplexní grafický systém anebo počítačovou hru. Podle zvoleného zaměření je vybaven buď hlubokými znalostmi z počítačové grafiky a analýzy obrazu, anebo - v zaměření na vývoj počítačových her - jeho znalosti pokrývají programování rozsáhlých herních projektů, aplikací pracujících v reálném čase, programování malých zařízení, jakožto i základy umělé inteligence a základy počítačové grafiky v kontextu počítačových her. Absolvent umí tyto znalosti aplikovat při řešení konkrétních praktických úkolů.

Povinné předměty

kódPředmětKredityZSLS
NTIN090Základy složitosti a vyčíslitelnosti 42/1 Z+Zk
NTIN066Datové struktury 1 62/2 Z+Zk
NSZZ023Diplomová práce I 60/4 Z
NSZZ024Diplomová práce II 90/6 Z
NSZZ025Diplomová práce III 150/10 Z

Povinně volitelné předměty

Je požadováno splnění povinně volitelných předmětů z následujícího seznamu v rozsahu alespoň 56 kreditů, přitom je jako povinně volitelný třeba zvolit jeden z předmětů NPRG071 Firemní projekt, NPRG070 Výzkumný projekt a NPRG069 Softwarový projekt. Absolvuje-li posluchač další předmět z této trojice, počítá se již jen jako volitelný.

kódPředmětKredityZSLS
NPRG071Firemní projekt 60/4 Z0/4 Z
NPRG070Výzkumný projekt 90/6 Z0/6 Z
NPRG069Softwarový projekt 120/8 Z0/8 Z
NPRG072Zvýšený rozsah projektu 30/2 Z0/2 Z
NMAI060Pravděpodobnostní metody 32/0 Zk
NMAI061Metody matematické statistiky 52/1 Z+Zk
NPGR0013D počítačové vidění 52/2 Zk
NPGR010Pokročilá 3D grafika pro film a hry 52/2 Z+Zk
NPGR013Speciální funkce a transformace ve zpracování obrazu 32/0 Zk
NPGR016Aplikovaná výpočetní geometrie 52/1 Z+Zk
NPGR021Geometrické modelování 52/2 Z+Zk
NPGR024Seminář z vědecké práce 30/2 Z
NPGR026Predictive Image Synthesis Technologies 42/1 Z+Zk
NPGR027Shading Languages 52/1 Z+Zk
NPGR028High Performance Ray Tracing 32/0 Zk
NPGR029Variační metody ve zpracování obrazu 32/0 Zk
NPGR033Počítačová grafika pro vývoj her 52/2 Z+Zk
NPGR041Vybrané kapitoly z počítačového vidění 52/2 Z+Zk
NCGD001Vývoj počítačových her 1 62/2 Z+Zk
NCGD003Programování herních mechanik 41/2 Z+Zk
NCGD004Úvod do herního designu 31/1 Z+Zk
NCGD005Konstrukce herního zážitku 31/1 Z+Zk
NCGD007Praktikum z herního vývoje v nativním kódu 30/2 Z
NCGD008Praktikum z herního vývoje s řízeným kódem 30/2 Z
NAFF003Introduction to Game Studies 30/2 Zk
NAFF004Contemporary Issues in Game Studies 30/2 Zk
NPRG043Doporučené postupy v programování 52/2 KZ
NPRG058Pokročilé programování v paralelním prostředí 62/2 Z+Zk
NSWI026Pokročilé aspekty softwarového inženýrství 52/2 Z+Zk
NSWI072Algoritmy komprese dat 32/0 Zk
NSWI130Architektury softwarových systémů 52/2 Z+Zk
NSWI131Vyhodnocování výkonnosti počítačových systémů 42/1 Z+Zk
NSWI145Webové služby 52/2 Z+Zk
NSWI153Pokročilé programování webových aplikací 52/2 Z+Zk
NTIN043Formální základy softwarového inženýrství 52/2 Z+Zk
NDBI034Vyhledávání multimediálního obsahu na webu 42/1 Z+Zk
NAIL068Umělé bytosti 52/2 Z+Zk
NAIL069Umělá inteligence 1 42/1 Z+Zk
NAIL070Umělá inteligence 2 32/0 Zk
NAIL106Multiagentní systémy 52/2 Z+Zk
NAIL122Umělá inteligence pro počítačové hry 31/1 Z+Zk
NAIL123Procedurální generování obsahu počítačových her 31/1 Z+Zk
NPFL114Hluboké učení 73/2 Z+Zk

Doporučené volitelné předměty

Seznam doporučených volitelných předmětů obsahuje pouze předměty, které doplňují či rozšiřují látku podstatnou pro tento studijní program. Volba dalších je ponechána na posluchači, který může volit ze široké nabídky předmětů nabízených na fakultě.

kódPředmětKredityZSLS
NPGR004Fotorealistická grafika 52/2 Z+Zk
NPGR005Seminář z počítačové grafiky a vidění 20/2 Z0/2 Z
NPGR019Realtime grafika na GPU 52/2 Z+Zk
NPGR022Speciální seminář ze zpracování obrazu 20/2 Z0/2 Z
NPGR030Optika pro počítačovou grafiku 32/0 Zk
NPGR036Počítačové vidění 52/2 Z+Zk
NCGD002Vývoj počítačových her 2 31/1 Z+Zk
NCGD006Praktikum z vývoje počítačových her v limitovaném čase 20/1 Z
NPRG042Programování v paralelním prostředí 62/2 Z+Zk
NPRG054Vývoj vysoce výkonného software 62/2 Z+Zk
NPRG056Programování mobilních zařízení 30/2 Z
NPRG059Praktikum z pokročilého objektového programování 20/1 Z
NSWI041Úvod do softwarového inženýrství 52/2 Z+Zk
NSWI158Seminář z počítačových her 30/2 Z0/2 Z
NAIL025Evoluční algoritmy 1 52/2 Z+Zk
NAIL028Úvod do robotiky 52/2 Z+Zk
NAIL071Plánování a rozvrhování 32/0 Zk
NAIL082Seminář z umělých bytostí 30/2 Z0/2 Z
NAIL087Informatika a kognitivní vědy 1 63/1 Z+Zk
NAIL108Mobilní robotika 31/1 KZ
NDBI045Vyhledávání a explorace ve videu 52/2 Z+Zk

Státní závěrečná zkouška

Posluchač si zvolí tři okruhy z nabídky daného zaměření dle podmínek specifikovaných níže. Z každého zvoleného okruhu obdrží po jedné otázce.

Zaměření: Vizuální výpočty

Posluchač si zvolí alespoň dva z okruhů 1 až 3. Třetí okruh zvolí libovolně ze všech okruhů nabízených v zaměřeních Vizuální výpočty a Vývoj počítačových her kromě okruhu ``Počítačová grafika pro hry".

Zkušební okruhy

1. Realistická syntéza obrazu
2. Analýza a zpracování obrazu, komprese obrazu, počítačové vidění
3. Geometrické modelování a výpočetní geometrie

Zkušební požadavky

1. Realistická syntéza obrazu
Metody reprezentace 3D scén, výpočet viditelnosti, výpočet vržených stínů, modely osvětlení a stínovací algoritmy, rekurzivní sledování paprsku, textury, anti-aliasing, generování izoploch. Architektura grafického akcelerátoru, předávání dat do GPU, textury v GPU, programování GPU - shaderů, základy OpenGL, jazyka HLSL a GLSL, CUDA. Fyzikální model šíření světla (radiometrie, BRDF, zobrazovací rovnice), Monte Carlo integrování (importance sampling a MIS), Monte Carlo přístupy ve výpočtu osvětlení (path tracing, bi-directional path tracing), přibližné metody globálního osvětlení (photon mapping, irradiance caching). Monte Carlo metody výpočtu spektrálního osvětlení, participating media, měření a verifikace zobrazovacích metod. Stínovací jazyky (Renderman shading language, OSL). Obecné a specifické techniky pro urychlování ray-tracingu.

Doporučené předměty

kódPředmětKredityZSLS
NPGR010Pokročilá 3D grafika pro film a hry 52/2 Z+Zk
NPGR026Predictive Image Synthesis Technologies 42/1 Z+Zk
NPGR027Shading Languages 52/1 Z+Zk
NPGR028High Performance Ray Tracing 32/0 Zk

2. Analýza a zpracování obrazu, komprese obrazu, počítačové vidění
Změna kontrastu a jasu, HDR, odstranění šumu, detekce hran. Určení vzájemné polohy snímků, korespondence bodu a objektu, odstranění geometrických zkreslení, detekce hranic objektu, detekce oblastí. Příznaky pro popis a rozpoznávání 2D objektů, momentové invarianty, vlnková transformace a její použití. Statistická teorie rozpoznávání, klasifikace s učením a bez učení, konvoluční sítě. Komprese rastrové 2D grafiky, skalární a vektorová kvantizace, prediktivní komprese, transformační kompresní metody, komprese videosignálu, časová predikce (kompenzace pohybu), standardy JPEG a MPEG. Geometrie jedné a více kamer, esenciální matice, rekonstrukce 3D scény.

Doporučené předměty

kódPředmětKredityZSLS
NPGR041Vybrané kapitoly z počítačového vidění 52/2 Z+Zk
NPGR029Variační metody ve zpracování obrazu 32/0 Zk
NPGR013Speciální funkce a transformace ve zpracování obrazu 32/0 Zk
NSWI072Algoritmy komprese dat 32/0 Zk
NPGR0013D počítačové vidění 52/2 Zk

3. Geometrické modelování a výpočetní geometrie
Diferenciální geometrie křivek a ploch, jejich aproximace a interpolace. Bézierovy křivky a plochy, de Casteljau algoritmus. B-spline funkce a křivky, de Boor algoritmus, racionální křivky a plochy, NURBS, Coonsův plát.

Geometrické vyhledávání. Konvexní obálky. Voroného diagramy, jejich aplikace a zobecnění. Rovinné triangulace množiny bodů a jejich aplikace. Tetrahedronizace a jejich aplikace. Triangulace polygonu. Střední osa. Průsečíky a průniky.

Doporučené předměty

kódPředmětKredityZSLS
NPGR021Geometrické modelování 52/2 Z+Zk
NPGR016Aplikovaná výpočetní geometrie 52/1 Z+Zk

Zaměření: Vývoj počítačových her

Posluchač obdrží po jedné otázce z následujících okruhů:

1. Okruh ``Vývoj počítačových her", který je pro zaměření Vývoj počítačových her povinný.
2. Buď okruh ``Počítačová grafika pro hry", nebo libovolný z okruhů ze zaměření Vizuální výpočty.
3. Jeden ze zkušebních okruhů 3 až 7 dle výběru posluchače.

Zkušební okruhy

1. Vývoj počítačových her (povinný okruh pro zaměření Vývoj počítačových her)
2. Počítačová grafika pro hry
3. Umělá inteligence pro počítačové hry
4. Počítačové hry jako sociokulturní fenomén
5. Analýza a architektury softwaru
6. Webové technologie
7. Vývoj výkonných systémů

Zkušební požadavky

1. Vývoj počítačových her
Programování počítačových her; problematika herních mechanik, herní návrhové vzory, skriptování her. Architektura herních engine; vrstvy architektur, výpočetní modely, entity-component system, správa paměti, příklady konkrétních instancí architektur. Herní design; kdo je herní designér, osy herního designu, herní žánry, specifika herních platforem, game design dokument (vlastnosti, struktura, UML diagramy pro popis herních mechanismů, herní prostor, postavy, specifikace dialogů), historie herního trhu. Vývojový cyklus počítačové hry; fáze vývojového cyklu, herní design řízený daty, správa dat, testování počítačových her, vývojářské role, herní analytiky, vodopádový model a agilní metodiky návrhu her, obchodní modely komercializace her. Narativita a hry; rozdíl mezi games of emergence a games of progression, chtěná a nechtěná emergence, environmentální storytelling, procedurální rétorika, ludonarativní disonance.

Doporučené předměty

kódPředmětKredityZSLS
NCGD001Vývoj počítačových her 1 62/2 Z+Zk
NCGD003Programování herních mechanik 41/2 Z+Zk
NCGD004Úvod do herního designu 31/1 Z+Zk

2. Počítačová grafika pro hry
Homogenní souřadnice, afinní a projektivní transformace v rovině a v prostoru, kvaterniony. Spline funkce, interpolace kubickými spliny, Bézierovy křivky, Catmull-Rom spliny, B-spliny. Vzorkování a kvantování obrazu, anti-aliasing, textury, změna kontrastu a jasu, kompozice poloprůhledných obrázků. Reprezentace 3D scén, výpočet viditelnosti, výpočet vržených stínů, měkké stíny, rozptyl světla pod povrchem, modely osvětlení a stínovací algoritmy, rekurzivní sledování paprsku, fyzikální model šíření světla (radiometrie, zobrazovací rovnice), algoritmus sledování cest, předpočítané globální osvětlení, výpočet globálního osvětlení v reaálném čase, stínování založené na sférických harmonických funkcích, předpočítaný přenos radiance. Animace postav, skinning, rigging, morphing. Architektura grafického akcelerátoru, předávání dat do GPU, textury a GPU buffery, programování GPU - shaderů. Základy OpenGL, GLSL, CUDA a OpenCL. Principy komprese rastrové 2D grafiky, standard JPEG, komprese videosignálu.

Doporučené předměty

kódPředmětKredityZSLS
NPGR033Počítačová grafika pro vývoj her 52/2 Z+Zk
NSWI072Algoritmy komprese dat 32/0 Zk

3. Umělá inteligence pro počítačové hry
Architektura autonomního agenta; percepce, mechanismus výběru akcí, paměť; psychologické inspirace. Metody pro řízení agentů; symbolické a konekcionistické reaktivní plánování, hybridní přístupy, prostor rozhodování, if-then pravidla, skriptování, sekvenční konečný automat, stromy chování. Problém hledání cesty; lokální navigační pravidla (Raynoldsovy steeringy, VO, RVO, Context steering), hledání cesty (A*, JPS+, goal bounding, RRT, RRT*, LPA*, MPAA*, obousměrné prohledávání), reprezentace prostoru (geometrie, viditelnost). Komunikace a znalosti v multiagentních systémech, ontologie, řečové akty, FIPA-ACL, protokoly. Distribuované řešení problémů, kooperace, Nashova ekvilibria, Paretova efektivita, alokace zdrojů, aukce. Metody pro učení agentů; zpětnovazební učení, základní formy učení zvířat. Procedurální modelování stavového prostoru (forward model) a jeho prohledávání; A*, ABCD, MCTS a UCB a další varianty, PGS, PGS-II, prostor skriptů (Kiting, AV, NOK-AV), efektivní implementace. Klasifikace metod procedurálního generování. Přístupy pro generování terénu, vizuálních efektů, hudby, předmětů, bludišť a dungeonů. Šumové funkce (Perlin, Simplex, Worley). Celulární automaty, L-systémy, grafové a tvarové gramatiky. Answer set programming. Algoritmus kolapsu vlnové funkce. Metody smíšené iniciativy.

Doporučené předměty

kódPředmětKredityZSLS
NAIL068Umělé bytosti 52/2 Z+Zk
NAIL106Multiagentní systémy 52/2 Z+Zk
NAIL122Umělá inteligence pro počítačové hry 31/1 Z+Zk
NAIL123Procedurální generování obsahu počítačových her 31/1 Z+Zk

4. Počítačové hry jako sociokulturní fenomén
Teorie herních studií; definice herních studií, vztah herních studií k dalším vědním oborům, kulturní, sociální a politické aspekty počítačových her, definice počítačové hry, rozdíl mezi počítačovými hrami a jiných audiovizuálních médií a implikace pro výzkum. Historie počítačových her; okolnosti vzniku počítačových her, technologické a kulturní kořeny počítačových her, klíčové milníky historie počítačových her, archeologie médii v herních studiích, konvergentní evoluce. Metody výzkumu v herních studiích; druhy metod výzkumu, formální obsahová analýza her. Výzkum systémů pravidel ve hrách; metody výzkumu, subjektivní zkušenost ze hry, hráčské komunity. Sociální aspekty počítačových her; pozitivní a negativní sociální aspekty počítačových her, herní komunita, demografický profil hráče počítačových her a jeho vývoj v čase, MMO a výzkum sociálních aspektů her. Psychologické a kognitivní aspekty počítačových her; pozitivní a negativní psychologické aspekty počítačových her, metody výzkumu, vliv paměti, emoce, pozornost a motivace hráče na herní zážitek, vztah mezi násilím zobrazeným ve hrách a agresivním chování, vliv krátkodobého a dlouhodobého hraní her na rozvoj kognitivních schopností, imerze a flow ve vztahu k počítačovým hrám. Vážné, výukové a persvazivní hry; definice, procedurální rétorika a její význam pro herní studia, teoretické základy koncepce výuky pomocí počítačových her, výhody a nevýhody zapojení počítačových her do formální výuky, počítačové hry a jejich vliv na postoje hráčů, gamifikace a její výhody a limity.

Doporučené předměty

kódPředmětKredityZSLS
NCGD005Konstrukce herního zážitku 31/1 Z+Zk
NAFF003Introduction to Game Studies 30/2 Zk
NAFF004Contemporary Issues in Game Studies 30/2 Zk

5. Analýza a architektury softwaru
Procesy vývoje SW a jejich fáze. Podnikové procesy a jejich modelování pomocí BPMN. UML a jeho využití pro analýzu a návrh struktury a chování SW. Návrhové vzory. Testování SW, dopadová a změnová analýza. Plánování SW projektů, odhad nákladů, úrovně řízení projektů. Právní aspekty SW, hlavní zákony důležité pro IT projekty. Typy pohledů na SW architekturu. Modelování a dokumentace SW architektury. Klasifikace atributů kvality SW architektury, jejich popis pomocí scénářů a taktik. Servisně orientované architektury. Algebraické metody, vícedruhové algebry, iniciální modely. Formální základy jazyka UML. OCL jako specifikační jazyk a formální základy dle specifikace. Formální základy RDF a jazyka OWL, deskripční logika.

Doporučené předměty

kódPředmětKredityZSLS
NSWI130Architektury softwarových systémů 52/2 Z+Zk
NSWI026Pokročilé aspekty softwarového inženýrství 52/2 Z+Zk
NTIN043Formální základy softwarového inženýrství 52/2 Z+Zk

6. Webové technologie
Obecný přehled základní webových technologií. Síťové služby pro webové technologie. Webové služby. Architektura klient-server aplikací, skriptování na straně serveru a klienta, webové frameworky. Použití databázových systémů ve webových aplikacích, NoSQL databáze, multimediální databáze. Indexace a prohledávání dokumentů, principy fungování webových vyhledávačů. Linked Data, integrace sémantických dat do webových stránek. Zajištění bezpečnosti informačních systémů v prostředí internetu, autentizace, autorizace, bezpečnostní modely, základy šifrování, ochrana dat.

Doporučené předměty

kódPředmětKredityZSLS
NSWI130Architektury softwarových systémů 52/2 Z+Zk
NSWI153Pokročilé programování webových aplikací 52/2 Z+Zk
NSWI145Webové služby 52/2 Z+Zk
NDBI034Vyhledávání multimediálního obsahu na webu 42/1 Z+Zk
NPRG043Doporučené postupy v programování 52/2 KZ

7. Vývoj výkonných systémů
Toto zaměření ověřuje znalosti a dovednosti týkající se konstrukce softwarových systémů s vysokým výpočetním výkonem, zkoušené v rozsahu následujících profilujících předmětů:

Doporučené předměty

kódPředmětKredityZSLS
NPRG058Pokročilé programování v paralelním prostředí 62/2 Z+Zk
NSWI131Vyhodnocování výkonnosti počítačových systémů 42/1 Z+Zk