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ód | Předmět | Kredity | ZS | LS | |
NTIN090 | Základy složitosti a vyčíslitelnosti | 4 | 2/1 Z+Zk | — | |
NTIN066 | Datové struktury 1 | 6 | 2/2 Z+Zk | — | |
NSZZ023 | Diplomová práce I | 6 | — | 0/4 Z | |
NSZZ024 | Diplomová práce II | 9 | 0/6 Z | — | |
NSZZ025 | Diplomová práce III | 15 | — | 0/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ód | Předmět | Kredity | ZS | LS | |
NPRG071 | Firemní projekt | 6 | 0/4 Z | 0/4 Z | |
NPRG070 | Výzkumný projekt | 9 | 0/6 Z | 0/6 Z | |
NPRG069 | Softwarový projekt | 12 | 0/8 Z | 0/8 Z | |
NPRG072 | Zvýšený rozsah projektu | 3 | 0/2 Z | 0/2 Z | |
NMAI060 | Pravděpodobnostní metody | 3 | 2/0 Zk | — | |
NMAI061 | Metody matematické statistiky | 5 | — | 2/1 Z+Zk | |
NPGR001 | 3D počítačové vidění | 5 | 2/2 Zk | — | |
NPGR010 | Pokročilá 3D grafika pro film a hry | 5 | 2/2 Z+Zk | — | |
NPGR013 | Speciální funkce a transformace ve zpracování obrazu | 3 | — | 2/0 Zk | |
NPGR016 | Aplikovaná výpočetní geometrie | 5 | — | 2/1 Z+Zk | |
NPGR021 | Geometrické modelování | 5 | 2/2 Z+Zk | — | |
NPGR024 | Seminář z vědecké práce | 3 | — | 0/2 Z | |
NPGR026 | Predictive Image Synthesis Technologies | 4 | — | 2/1 Z+Zk | |
NPGR027 | Shading Languages | 5 | — | 2/1 Z+Zk | |
NPGR028 | High Performance Ray Tracing | 3 | — | 2/0 Zk | |
NPGR029 | Variační metody ve zpracování obrazu | 3 | — | 2/0 Zk | |
NPGR033 | Počítačová grafika pro vývoj her | 5 | — | 2/2 Z+Zk | |
NPGR041 | Vybrané kapitoly z počítačového vidění | 5 | 2/2 Z+Zk | — | |
NCGD001 | Vývoj počítačových her 1 | 6 | — | 2/2 Z+Zk | |
NCGD003 | Programování herních mechanik | 4 | 1/2 Z+Zk | — | |
NCGD004 | Úvod do herního designu | 3 | 1/1 Z+Zk | — | |
NCGD005 | Konstrukce herního zážitku | 3 | 1/1 Z+Zk | — | |
NCGD007 | Praktikum z herního vývoje v nativním kódu | 3 | 0/2 Z | — | |
NCGD008 | Praktikum z herního vývoje s řízeným kódem | 3 | 0/2 Z | — | |
NAFF003 | Introduction to Game Studies | 3 | 0/2 Zk | — | |
NAFF004 | Contemporary Issues in Game Studies | 3 | — | 0/2 Zk | |
NPRG043 | Doporučené postupy v programování | 5 | — | 2/2 KZ | |
NPRG058 | Pokročilé programování v paralelním prostředí | 6 | 2/2 Z+Zk | — | |
NSWI026 | Pokročilé aspekty softwarového inženýrství | 5 | — | 2/2 Z+Zk | |
NSWI072 | Algoritmy komprese dat | 3 | 2/0 Zk | — | |
NSWI130 | Architektury softwarových systémů | 5 | 2/2 Z+Zk | — | |
NSWI131 | Vyhodnocování výkonnosti počítačových systémů | 4 | — | 2/1 Z+Zk | |
NSWI145 | Webové služby | 5 | — | 2/2 Z+Zk | |
NSWI153 | Pokročilé programování webových aplikací | 5 | — | 2/2 Z+Zk | |
NTIN043 | Formální základy softwarového inženýrství | 5 | 2/2 Z+Zk | — | |
NDBI034 | Vyhledávání multimediálního obsahu na webu | 4 | 2/1 Z+Zk | — | |
NAIL068 | Umělé bytosti | 5 | — | 2/2 Z+Zk | |
NAIL069 | Umělá inteligence 1 | 4 | 2/1 Z+Zk | — | |
NAIL070 | Umělá inteligence 2 | 3 | — | 2/0 Zk | |
NAIL106 | Multiagentní systémy | 5 | — | 2/2 Z+Zk | |
NAIL122 | Umělá inteligence pro počítačové hry | 3 | — | 1/1 Z+Zk | |
NAIL123 | Procedurální generování obsahu počítačových her | 3 | — | 1/1 Z+Zk | |
NPFL114 | Hluboké učení | 7 | — | 3/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ód | Předmět | Kredity | ZS | LS | |
NPGR004 | Fotorealistická grafika | 5 | — | 2/2 Z+Zk | |
NPGR005 | Seminář z počítačové grafiky a vidění | 2 | 0/2 Z | 0/2 Z | |
NPGR019 | Realtime grafika na GPU | 5 | — | 2/2 Z+Zk | |
NPGR022 | Speciální seminář ze zpracování obrazu | 2 | 0/2 Z | 0/2 Z | |
NPGR030 | Optika pro počítačovou grafiku | 3 | 2/0 Zk | — | |
NPGR036 | Počítačové vidění | 5 | — | 2/2 Z+Zk | |
NCGD002 | Vývoj počítačových her 2 | 3 | 1/1 Z+Zk | — | |
NCGD006 | Praktikum z vývoje počítačových her v limitovaném čase | 2 | — | 0/1 Z | |
NPRG042 | Programování v paralelním prostředí | 6 | — | 2/2 Z+Zk | |
NPRG054 | Vývoj vysoce výkonného software | 6 | — | 2/2 Z+Zk | |
NPRG056 | Programování mobilních zařízení | 3 | 0/2 Z | — | |
NPRG059 | Praktikum z pokročilého objektového programování | 2 | 0/1 Z | — | |
NSWI041 | Úvod do softwarového inženýrství | 5 | — | 2/2 Z+Zk | |
NSWI158 | Seminář z počítačových her | 3 | 0/2 Z | 0/2 Z | |
NAIL025 | Evoluční algoritmy 1 | 5 | 2/2 Z+Zk | — | |
NAIL028 | Úvod do robotiky | 5 | 2/2 Z+Zk | — | |
NAIL071 | Plánování a rozvrhování | 3 | — | 2/0 Zk | |
NAIL082 | Seminář z umělých bytostí | 3 | 0/2 Z | 0/2 Z | |
NAIL087 | Informatika a kognitivní vědy 1 | 6 | 3/1 Z+Zk | — | |
NAIL108 | Mobilní robotika | 3 | — | 1/1 KZ | |
NDBI045 | Vyhledávání a explorace ve videu | 5 | — | 2/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
- 2. Analýza a zpracování obrazu, komprese obrazu, počítačové vidění
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ód | Předmět | Kredity | ZS | LS | |
NPGR010 | Pokročilá 3D grafika pro film a hry | 5 | 2/2 Z+Zk | — | |
NPGR026 | Predictive Image Synthesis Technologies | 4 | — | 2/1 Z+Zk | |
NPGR027 | Shading Languages | 5 | — | 2/1 Z+Zk | |
NPGR028 | High Performance Ray Tracing | 3 | — | 2/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ód | Předmět | Kredity | ZS | LS | |
NPGR041 | Vybrané kapitoly z počítačového vidění | 5 | 2/2 Z+Zk | — | |
NPGR029 | Variační metody ve zpracování obrazu | 3 | — | 2/0 Zk | |
NPGR013 | Speciální funkce a transformace ve zpracování obrazu | 3 | — | 2/0 Zk | |
NSWI072 | Algoritmy komprese dat | 3 | 2/0 Zk | — | |
NPGR001 | 3D počítačové vidění | 5 | 2/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ód | Předmět | Kredity | ZS | LS | |
NPGR021 | Geometrické modelování | 5 | 2/2 Z+Zk | — | |
NPGR016 | Aplikovaná výpočetní geometrie | 5 | — | 2/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.
- 2. Buď okruh ``Počítačová grafika pro hry", nebo libovolný z okruhů ze zaměření Vizuální výpočty.
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ů
- 2. Počítačová grafika pro hry
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ód | Předmět | Kredity | ZS | LS | |
NCGD001 | Vývoj počítačových her 1 | 6 | — | 2/2 Z+Zk | |
NCGD003 | Programování herních mechanik | 4 | 1/2 Z+Zk | — | |
NCGD004 | Úvod do herního designu | 3 | 1/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ód | Předmět | Kredity | ZS | LS | |
NPGR033 | Počítačová grafika pro vývoj her | 5 | — | 2/2 Z+Zk | |
NSWI072 | Algoritmy komprese dat | 3 | 2/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ód | Předmět | Kredity | ZS | LS | |
NAIL068 | Umělé bytosti | 5 | — | 2/2 Z+Zk | |
NAIL106 | Multiagentní systémy | 5 | — | 2/2 Z+Zk | |
NAIL122 | Umělá inteligence pro počítačové hry | 3 | — | 1/1 Z+Zk | |
NAIL123 | Procedurální generování obsahu počítačových her | 3 | — | 1/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ód | Předmět | Kredity | ZS | LS | |
NCGD005 | Konstrukce herního zážitku | 3 | 1/1 Z+Zk | — | |
NAFF003 | Introduction to Game Studies | 3 | 0/2 Zk | — | |
NAFF004 | Contemporary Issues in Game Studies | 3 | — | 0/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ód | Předmět | Kredity | ZS | LS | |
NSWI130 | Architektury softwarových systémů | 5 | 2/2 Z+Zk | — | |
NSWI026 | Pokročilé aspekty softwarového inženýrství | 5 | — | 2/2 Z+Zk | |
NTIN043 | Formální základy softwarového inženýrství | 5 | 2/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ód | Předmět | Kredity | ZS | LS | |
NSWI130 | Architektury softwarových systémů | 5 | 2/2 Z+Zk | — | |
NSWI153 | Pokročilé programování webových aplikací | 5 | — | 2/2 Z+Zk | |
NSWI145 | Webové služby | 5 | — | 2/2 Z+Zk | |
NDBI034 | Vyhledávání multimediálního obsahu na webu | 4 | 2/1 Z+Zk | — | |
NPRG043 | Doporučené postupy v programování | 5 | — | 2/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ód | Předmět | Kredity | ZS | LS | |
NPRG058 | Pokročilé programování v paralelním prostředí | 6 | 2/2 Z+Zk | — | |
NSWI131 | Vyhodnocování výkonnosti počítačových systémů | 4 | — | 2/1 Z+Zk |