Počítačová grafika a vývoj počítačových her

7. Počítačová grafika a vývoj počítačových her

Garantující pracoviště: Katedra softwaru a výuky informatiky
Oborový garant: Doc. Alexander Wilkie, Dr.

Zaměření:

 počítačová grafika
 vývoj počítačových her

Absolvent oboru je zdatným programátorem se znalostí příslušných postupů a technologií. Podle zvoleného zaměření je vybaven buď hlubokými znalostmi z počítačové grafiky a analýzy obrazu, anebo - v zaměření 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   5 2/1 Z+Zk
NTIN066 Datové struktury I   5 2/1 Z+Zk
NMAI060 Pravděpodobnostní metody   3 2/0 Zk
NPRG027 Zápočet k projektu   6 0/4 Z 0/4 Z
NPRG023 Softwarový projekt   9 0/6 Z 0/6 Z
NSZZ023 Diplomová práce I   6 0/4 Z 0/4 Z
NSZZ024 Diplomová práce II   9 0/6 Z 0/6 Z
NSZZ025 Diplomová práce III   15 0/10 Z 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ň 47 kreditů:

kód Předmět Kredity ZS LS
NPGR007 Pokročilá 2D počítačová grafika   5 2/1 Z+Zk
NPGR010 Počítačová grafika III   6 2/2 Z+Zk
NPGR001 Autonomní robotika   5 2/2 Z+Zk
NPGR021 Geometrické modelování   6 2/2 Z+Zk
NPGR026 Predictive Image Synthesis Technologies   6 2/2 Z+Zk
NPGR027 Shading Languages   5 2/1 Z+Zk
NPGR028 High Performance Ray Tracing   3 2/0 Zk
NPGR033 Grafika pro počítačové hry   6 2/2 Z+Zk
NPGR024 Seminář z vědecké práce   3 0/2 Z
NPGR029 Variační metody ve zpracování obrazu   3 2/0 Zk
NSWI115 Vývoj počítačových her   6 2/2 Z+Zk
NPRG056 Vývoj aplikací pro mobilní zařízení   3 0/2 Z
NSWI035 Principy distribuovaných systémů   3 2/0 Zk
NPRG054 Vývoj vysoce výkonného software   5 2/2 Z+Zk
NPRG042 Programování v paralelním prostředí   6 2/2 Z+Zk
NAIL069 Umělá inteligence I   5 2/1 Z+Zk
NAIL070 Umělá inteligence II   3 2/0 Zk
NPRG059 Praktikum z pokročilého objektového programování   2 0/1 Z
NSWI026 Pokročilé aspekty softwarového inženýrství   5 2/2 Z+Zk
NAIL068 Umělé bytosti   6 2/2 Z+Zk
NAIL071 Plánování a rozvrhování   3 2/0 Zk
NPRG043 Doporučené postupy v programování   6 2/2 Z+Zk
NMAI061 Metody matematické statistiky   5 2/1 Z+Zk
NAIL106 Multiagentní systémy   6 2/2 Z+Zk
NPGR016 Aplikovaná výpočetní geometrie   5 2/1 Z+Zk
NPRG014 Koncepty moderních programovacích jazyků   3 0/3 Z
NPFL114 Hluboké učení   7 3/2 Z+Zk

Doporučené volitelné předměty

kód Předmět Kredity ZS LS
NPGR005 Speciální seminář z počítačové grafiky   2 0/2 Z 0/2 Z
NPGR013 Speciální funkce a transformace ve zpracování obrazu   3 2/0 Zk
NPGR022 Speciální seminář ze zpracování obrazu   2 0/2 Z 0/2 Z
NAIL028 Úvod do robotiky   6 2/2 Z+Zk
NAIL108 Mobilní robotika   3 1/1 KZ
NSWI072 Algoritmy komprese dat   3 2/0 Zk
NPGR012 Interaktivní 3D grafika na webu   6 2/2 Z+Zk 2/2 Z+Zk
NPGR030 Optika pro počítačovou grafiku   3 2/0 Zk
NPGR023 Visualizace   5 2/1 Z+Zk
NAIL025 Evoluční algoritmy I   6 2/2 Z+Zk
NAIL082 Seminář z umělých bytostí   3 0/2 Z 0/2 Z
NAIL087 Informatika a kognitivní vědy I   6 3/1 Z+Zk
NSWI149 Softwarové inženýrství v praxi   3 2/0 Z
NPRG058 Pokročilé programování v paralelním prostředí   3 0/2 Z
NSWI159 Praktikum z vývoje počítačových her   2 0/1 Z 0/1 Z
NSWI160 Herní middleware   6 0/4 Z

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

Zaměření: Počítačová grafika

Ke dvěma povinným okruhům společným pro všechny obory si student vybere alespoň dva z následujících okruhů:

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

Třetí okruh student zvolí libovolně ze všech okruhů nabízených v zaměřeních Počítačová grafika a Vývoj počítačových her, kromě okruhu``Počítačová grafika pro hry". Z každého vybraného okruhu dostane po jedné otázce. Celkem tedy každý student dostane pět otázek.

 

Zkušební okruhy

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

Zkušební požadavky

1. Geometrické modelování a výpočetní geometrie
Homogenní souřadnice, afinní a projektivní transformace v rovině a v prostoru, kvaterniony v reprezentaci 3D orientace, diferenciální geometrie křivek a ploch, základní spline funkce, kubické spliny C2, interpolace kubickými spliny, Bézierovy křivky, Catmull-Rom spliny, B-spliny, de Casteljau a de Boor algoritmus, aproximační plochy, plochy zadané okrajem, Bézierovy plochy, plátování, B-spline plochy, NURBS plochy. Návrh geometrických algoritmů a jejich složitost, triangulace polygonů a množin bodů, Voronoi diagram a Delaunayova triangulace, konvexní obal, průsečíky a průniky geometrických útvarů, dualizace, lokalizace, geometrické vyhledávání, datové struktury pro efektivní prostorové vyhledávání.

Doporučené předměty

kód Předmět Kredity ZS LS
NPGR003 Základy počítačové grafiky   5 2/2 Z+Zk
NPGR016 Aplikovaná výpočetní geometrie   5 2/1 Z+Zk
NPGR021 Geometrické modelování   6 2/2 Z+Zk
NPGR007 Pokročilá 2D počítačová grafika   5 2/1 Z+Zk

2. Analýza a zpracování obrazu, komprese obrazu, počítačové vidění
Matematický model obrazu, 2D Fourierova transformace a konvoluce, vzorkování a kvantování obrazu, změna kontrastu a jasu, odstranění šumu, detekce hran, inverzní a Wienerův filtr, 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, wavelety a jejich použití, statistická teorie rozpoznávání, klasifikace s učením a bez učení, počítačové vidění.

Reprodukce barevné grafiky, rozptylování a půltónování, kompozice poloprůhledných obrázků, warping, morphing, komprese rastrové 2D grafiky, skalární a vektorové kvantování, prediktivní komprese, transformační kompresní metody, hierarchické a progresivní metody, komprese videosignálu, časová predikce (kompenzace pohybu), standardy JPEG a MPEG, snímání obrazu v digitální fotografii.

Doporučené předměty

kód Předmět Kredity ZS LS
NPGR003 Základy počítačové grafiky   5 2/2 Z+Zk
NPGR002 Digitální zpracování obrazu   5 3/0 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
NPGR007 Pokročilá 2D počítačová grafika   5 2/1 Z+Zk
NPGR001 Autonomní robotika   5 2/2 Z+Zk

3. 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, urychlovací metody pro ray-tracing, princip radiačních metod výpočtu osvětlení, fyzikální model šíření světla (radiometrie, zobrazovací rovnice), Monte Carlo integrování, Monte Carlo přístupy ve výpočtu osvětlení, přímé metody ve vizualizaci objemových dat, generování izoploch. Architektura grafického akcelerátoru, předávání dat do GPU, textury a GPU buffery, programování GPU - shadery. Základy OpenGL, GLSL, CUDA a OpenCL. Pokročilé techniky práce s GPU.

Doporučené předměty

kód Předmět Kredity ZS LS
NPGR003 Základy počítačové grafiky   5 2/2 Z+Zk
NPGR004 Počítačová grafika II   5 2/1 Z+Zk
NPGR019 Realtime grafika na GPU   5 2/1 Z+Zk
NPGR010 Počítačová grafika III   6 2/2 Z+Zk
NPGR026 Predictive Image Synthesis Technologies   6 2/2 Z+Zk
NPGR027 Shading Languages   5 2/1 Z+Zk

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

Ke dvěma povinným okruhům společným pro všechny obory student dostane po jedné otázce ze zvolených zkušebních okruhů:

1. povinný okruh ``Multi-agentní systémy" ze zaměření Inteligentní agenti oboru Umělá inteligence
2. buď okruh ``Počítačová grafika pro hry", nebo libovolný z okruhů ze zaměření Počítačová grafika
3. jeden ze zkušebních okruhů: ``Programování paralelních aplikací", ``Systémové aspekty počítačových systémů", ``Moderní koncepty programování", ``Analýza a architektury software", ``Rozšířené programování",``Webové technologie".

Celkem tedy každý student dostane pět otázek.

 

Zkušební okruhy

1. Multi-agentní systémy (povinný okruh pro zaměření Vývoj počítačových her)
2. Počítačová grafika pro hry
3. Programování paralelních aplikací
4. Systémové aspekty počítačů
5. Moderní koncepty programování
6. Analýza a architektury software
7. Rozšířené programování
8. Webové technologie

Zkušební požadavky

1. Multi-agentní systémy
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. Problém hledání cesty; navigační pravidla, reprezentace terénu. 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. Etologické motivace, modely populační dynamiky. Metody pro učení agentů; zpětnovazební učení, základní formy učení zvířat. Metodologie návrhu, jazyky a prostředí multiagentních systémů.

Doporučené předměty

kód Předmět Kredity ZS LS
NAIL054 Adaptivní agenti   3 0/2 Z
NAIL068 Umělé bytosti   6 2/2 Z+Zk
NAIL106 Multiagentní systémy   6 2/2 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, de Casteljau a de Boor algoritmus. Animace postav, skinning, rigging. Detekce kolizí.

2D Fourierova transformace a konvoluce, vzorkování a kvantování obrazu, anti-aliasing, textury, změna kontrastu a jasu, kompozice poloprůhledných obrázků, principy komprese rastrové 2D grafiky, komprese videosignálu, časová predikce (kompenzace pohybu), standardy JPEG a MPEG.

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.

Architektura grafického akcelerátoru, předávání dat do GPU, textury a GPU buffery, programování GPU - shadery. Základy OpenGL, GLSL, CUDA a OpenCL. Pokročilé techniky práce s GPU. Architektura herní engine.

Doporučené předměty

kód Předmět Kredity ZS LS
NPGR003 Základy počítačové grafiky   5 2/2 Z+Zk
NPGR004 Počítačová grafika II   5 2/1 Z+Zk
NPGR019 Realtime grafika na GPU   5 2/1 Z+Zk
NPGR033 Grafika pro počítačové hry   6 2/2 Z+Zk

3. Programování paralelních aplikací
Moderní hierarchie paměti (multiprocesory, GPU, NUMA), vztah efektivity přístupu a umístění dat. Podpora virtualizace. Transformace úloh na datově paralelní, paralelní řešení nehomogenních úloh. Efektivní paralelní implementace základních algoritmů. Synchronizace, vyvažování zátěže.

Doporučené předměty

kód Předmět Kredity ZS LS
NPRG042 Programování v paralelním prostředí   6 2/2 Z+Zk
NPRG054 Vývoj vysoce výkonného software   5 2/2 Z+Zk

4. Systémové aspekty počítačů
Správa procesů a vláken, komunikace, synchronizace, memory models. Správa paměti (stránkování, heap, garbage collection). Běhová podpora, volací konvence, virtualizace. Správa periferií. Systémy souborů. Metriky výkonnosti systému, měření výkonnosti, simulace a modelování. Vše v kontextu soudobých paralelních architektur.

Doporučené předměty

kód Předmět Kredity ZS LS
NSWI004 Operační systémy   5 2/1 Z+Zk
NSWI131 Vyhodnocování výkonnosti počítačových systémů   5 2/1 Z+Zk

5. Moderní koncepty programování
Moderní objektové koncepty, metaprogramování, reflexe, aspekty. Konstrukce moderních programovacích jazyků (například anotace, iterátory, generika, lambda funkce). Metriky kvality kódu, dokumentace, refaktoring, testování a ladění. Návrhové vzory. Vše v kontextu soudobých programovacích jazyků.

Doporučené předměty

kód Předmět Kredity ZS LS
NPRG043 Doporučené postupy v programování   6 2/2 Z+Zk
NPRG014 Koncepty moderních programovacích jazyků   3 0/3 Z

6. Analýza a architektury software
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

7. Rozšířené programování
Objektové koncepty moderních jazyků. Koncepty jazyků bez tříd. Generické programování a metaprogramování, generika a šablony, politiky, traits, type inference. Moderní konstrukce programovacích jazyků. Odkazy na objekty a jejich životnost. Pokročilé aspekty imperativních jazyků. Výjimky a bezpečné programování v prostředí s výjimkami. Implementace objektových vlastností, běhová podpora, volací konvence, garbage collection. Vliv moderních konstrukcí na výkonnost kódu. Návrhové vzory a jejich využití. Skriptovací jazyky, prototype-based jazyky. Domain Specific Languages. Funkcionální programování. Principy tvorby kvalitního kódu, doporučené postupy. Refaktorizace. Testování funkčnosti, hledání chyb, monitorování programů.

Doporučené předměty

kód Předmět Kredity ZS LS
NPRG059 Praktikum z pokročilého objektového programování   2 0/1 Z
NPRG014 Koncepty moderních programovacích jazyků   3 0/3 Z
NPRG024 Návrhové vzory   3 0/2 KZ
NPRG043 Doporučené postupy v programování   6 2/2 Z+Zk

8. 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é technologie 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í   6 2/2 Z+Zk