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ódPředmětKredityZSLS
NTIN090Základy složitosti a vyčíslitelnosti 52/1 Z+Zk
NTIN066Datové struktury I 52/1 Z+Zk
NMAI060Pravděpodobnostní metody 32/0 Zk
NPRG027Zápočet k projektu 60/4 Z0/4 Z
NPRG023Softwarový projekt 90/6 Z0/6 Z
NSZZ023Diplomová práce I 60/4 Z0/4 Z
NSZZ024Diplomová práce II 90/6 Z0/6 Z
NSZZ025Diplomová práce III 150/10 Z0/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ódPředmětKredityZSLS
NPGR007Pokročilá 2D počítačová grafika 52/1 Z+Zk
NPGR010Počítačová grafika III 62/2 Z+Zk
NPGR001Počítačové vidění a inteligentní robotika 32/0 Zk
NPGR021Geometrické modelování 62/2 Z+Zk
NPGR026Predictive Image Synthesis Technologies 62/2 Z+Zk
NPGR027Shading Languages 52/1 Z+Zk
NPGR028High Performance Ray Tracing 32/0 Zk
NPGR033Grafika pro počítačové hry 62/2 Z+Zk
NPGR024Seminář z vědecké práce 30/2 Z
NPGR029Variační metody ve zpracování obrazu 32/0 Zk
NSWI115Vývoj počítačových her 62/2 Z+Zk
NPRG056Vývoj aplikací pro mobilní zařízení 30/2 Z
NSWI035Principy distribuovaných systémů 32/0 Zk
NPRG054Vývoj vysoce výkonného software 52/2 Z+Zk
NPRG042Programování v paralelním prostředí 62/2 Z+Zk
NAIL069Umělá inteligence I 52/1 Z+Zk
NAIL070Umělá inteligence II 32/0 Zk
NPRG059Praktikum z pokročilého objektového programování 20/1 Z
NSWI041Úvod do softwarového inženýrství 52/2 Z+Zk
NAIL068Umělé bytosti 62/2 Z+Zk
NAIL071Plánování a rozvrhování 32/0 Zk
NPRG043Doporučené postupy v programování 62/2 Z+Zk
NMAI061Metody matematické statistiky 52/1 Z+Zk
NAIL106Multiagentní systémy 62/2 Z+Zk
NPGR016Aplikovaná výpočetní geometrie 52/1 Z+Zk
NPRG014Koncepty moderních programovacích jazyků 30/3 Z
NPFL114Hluboké učení 73/2 Z+Zk

Doporučené volitelné předměty

kódPředmětKredityZSLS
NPGR005Speciální seminář z počítačové grafiky 20/2 Z0/2 Z
NPGR013Speciální funkce a transformace ve zpracování obrazu 32/0 Zk
NPGR022Speciální seminář ze zpracování obrazu 20/2 Z0/2 Z
NAIL028Úvod do robotiky 62/2 Z+Zk
NAIL108Mobilní robotika 31/1 KZ
NSWI072Algoritmy komprese dat 32/0 Zk
NPGR012Interaktivní 3D grafika na webu 62/2 Z+Zk2/2 Z+Zk
NPGR030Optika pro počítačovou grafiku 32/0 Zk
NPGR023Visualizace 52/1 Z+Zk
NAIL025Evoluční algoritmy I 62/2 Z+Zk
NAIL082Seminář z umělých bytostí 30/2 Z0/2 Z
NAIL087Informatika a kognitivní vědy I 63/1 Z+Zk
NSWI149Softwarové inženýrství v praxi 32/0 Z
NPRG058Pokročilé programování v paralelním prostředí 30/2 Z
NSWI159Praktikum z vývoje počítačových her 20/1 Z0/1 Z
NSWI160Herní middleware 60/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ódPředmětKredityZSLS
NPGR003Počítačová grafika I 62/2 Z+Zk
NPGR016Aplikovaná výpočetní geometrie 52/1 Z+Zk
NPGR021Geometrické modelování 62/2 Z+Zk
NPGR007Pokročilá 2D počítačová grafika 52/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ódPředmětKredityZSLS
NPGR003Počítačová grafika I 62/2 Z+Zk
NPGR002Digitální zpracování obrazu 53/0 Zk
NPGR029Variační metody ve zpracování obrazu 32/0 Zk
NPGR013Speciální funkce a transformace ve zpracování obrazu 32/0 Zk
NPGR007Pokročilá 2D počítačová grafika 52/1 Z+Zk
NPGR001Počítačové vidění a inteligentní robotika 32/0 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ódPředmětKredityZSLS
NPGR003Počítačová grafika I 62/2 Z+Zk
NPGR004Počítačová grafika II 52/1 Z+Zk
NPGR019Hardware pro počítačovou grafiku 52/1 Z+Zk
NPGR010Počítačová grafika III 62/2 Z+Zk
NPGR026Predictive Image Synthesis Technologies 62/2 Z+Zk
NPGR027Shading Languages 52/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ódPředmětKredityZSLS
NAIL054Adaptivní agenti 30/2 Z
NAIL068Umělé bytosti 62/2 Z+Zk
NAIL106Multiagentní systémy 62/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ódPředmětKredityZSLS
NPGR003Počítačová grafika I 62/2 Z+Zk
NPGR004Počítačová grafika II 52/1 Z+Zk
NPGR019Hardware pro počítačovou grafiku 52/1 Z+Zk
NPGR033Grafika pro počítačové hry 62/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ódPředmětKredityZSLS
NPRG042Programování v paralelním prostředí 62/2 Z+Zk
NPRG054Vývoj vysoce výkonného software 52/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ódPředmětKredityZSLS
NSWI004Operační systémy 52/1 Z+Zk
NSWI131Vyhodnocování výkonnosti počítačových systémů 52/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ódPředmětKredityZSLS
NPRG043Doporučené postupy v programování 62/2 Z+Zk
NSWI068Objektové a komponentové systémy 52/2 Z+Zk

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ódPředmětKredityZSLS
NSWI130Architektury softwarových systémů 52/2 Z+Zk
NSWI041Úvod do softwarového inženýrství 52/2 Z+Zk
NTIN043Formální základy softwarového inženýrství 52/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ódPředmětKredityZSLS
NPRG059Praktikum z pokročilého objektového programování 20/1 Z
NPRG014Koncepty moderních programovacích jazyků 30/3 Z
NPRG024Návrhové vzory 30/2 KZ
NPRG043Doporučené postupy v programování 62/2 Z+Zk
NSWI068Objektové a komponentové systémy 52/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ódPředmětKredityZSLS
NSWI130Architektury softwarových systémů 52/2 Z+Zk
NSWI153Pokročilé technologie 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í 62/2 Z+Zk

© 2013–2018 Univerzita Karlova, Matematicko-fyzikální fakulta. Design noBrother.
Za obsah odpovídá Studijní oddělení.