Degree Plans - Computer Graphics, Vision and Game Development

Coordinating Department: Department of Software and Computer Science Education Specialization Coordinator: RNDr. Josef Pelikán

The specialization Computer Graphics, Vision and Game Development is intended for students interested in visual disciplines of computer science – realistic image synthesis, digital image analysis and computer game development. A natural continuation of this specialization is the master degree study plan Visual Computing and Game Development. But this bachelor specialization consists in itself of a complete degree which can be easily utilized in industry:

Design of graphical systems, e.g. for visual effects or photorealistic visualizations (postproduction teams, visual effect departments, realistic rendering engines, shaders, etc.)
Employment in any field where digital image processing or computer vision is used (engineering, electronics, development of robotic systems, medicine, security, automatic quality check, remote sensing, etc.)
Computer game development at multiple levels (game engine developer, GPU programmer /shaders/, game content editing tools, game logic programming, artificial intelligence, data /game levels/ processing, etc.)

The specialization Computer Graphics, Vision and Game Development has the following branches:

Computer Graphics
Computer Vision
Game Development

Each of the three branches follows the same rules and conditions and has the same set of obligatory and elective courses. The first three topics (1. to 3. – see further below) of the State Final Exam requirements are shared among all three branches as well. The only difference is the last specific set of State Final Exam requirements: ``profile courses" are offered in order to cover these distinct requirements.

Common obligatory courses in Computer Science

Common obligatory courses for all specializations are listed above in the section giving general information.

7.1 Obligatory Courses

CodeSubjectCreditsWinterSummer
NPGR003Introduction to Computer Graphics 52/2 C+Ex
NMAX055Mathematical Analysis 2 52/2 C+Ex
NPRX041Programming in C++ 52/2 C+Ex
NPRX035Programming in C# 52/2 C+Ex

7.2 Elective Courses

A prerequisite for taking either part of the State Final Exam is to have obtained at least 43 credits from elective courses overall. Selection of courses should be based on the branch that will be taken in the State Final Exam. Please see the knowledge requirements section below.

CodeSubjectCreditsWinterSummer
NPGR025Introduction to Colour Science 32/0 Ex
NPGR002Digital Image Processing 43/0 Ex
NPGR035Machine learning in computer vision 52/2 C+Ex
NPGR037Matlab Practice 30/2 C
NSWI160Game Development Middleware 60/4 C
NSWI159Practical Course on Game Development120/1 C0/1 C
NPGR004Photorealistic Graphics 52/2 C+Ex
NPGR019Realtime Graphics on GPU 52/2 C+Ex
NPGR020Geometry for Computer Graphics 32/0 Ex
NPGR036Computer Vision 52/2 C+Ex
NPGR038Introduction to computer game development 52/2 C+Ex
NSWX004Operating Systems 42/1 MC
NAIX028Introduction to Robotics 52/2 C+Ex
NMAX073Probability and Statistics 2 52/2 C+Ex
NMAX056Mathematical Analysis 3 52/2 C+Ex
NPRX051Advanced C++ Programming 52/2 C+Ex
NPRX038Advanced C# Programming 52/2 C+Ex
NPRX005Non-procedural Programming 52/2 C+Ex
NAIL120Introduction to Artificial Intelligence 52/2 C+Ex
NPRG054High Performance Software Development 62/2 C+Ex
NPRG042Programming in Parallel Environment 62/2 C+Ex
NMAX042Numerical Mathematics 52/2 C+Ex
NDBI045Video retrieval and exploration 52/2 C+Ex
NOPX046Discrete and Continuous Optimization 52/2 C+Ex

1 Practical Course on Game Development is taught each semester and students are allowed to take it repeatedly (each successfully completed semester earns two credit points). In fact we recommend students following the branch Game Development to take this course more than once.

NDMX011Combinatorics and Graph Theory 1 52/2 C+Ex— NTIX071Automata and Grammars 5—2/2 C+Ex NMAX059Probability and Statistics 1 5—2/2 C+Ex NPRG045Individual Software Project 4—0/1 C NAIX062Propositional and Predicate Logic 52/2 C+Ex— NDBX025Database Systems 52/2 C+Ex— NSZZ031Bachelor Thesis 6—0/4 C –>

7.3 Recommended Course of Study

The recommended course of study gives all the obligatory courses, while only some elective courses and optional courses are listed. Students need to choose other such courses themselves. "Profile courses" are important because they cover material needed for State Final Exam. The three branches have different profile courses – see the section giving the requirements for the State Final Exam.

There are three recommended courses of study, one for each study branch. Obligatory courses are printed in boldface, elective courses in roman, and optional courses in italics. Profile courses (needed for the State Final Exam) are footnoted 1, generally recommended lectures are footnoted 2, and elective courses without a footnote can be freely substituted by others.

First year

Common to all specializations – see under general information above.

Second year – Computer Graphics

CodeSubjectCreditsWinterSummer
NTIX061Algorithms and Data Structures 2 52/2 C+Ex
NDMX011Combinatorics and Graph Theory 1 52/2 C+Ex
NMAX055Mathematical Analysis 2 52/2 C+Ex
NPRX041Programming in C++ 52/2 C+Ex
NPRX035Programming in C# 52/2 C+Ex
NPGR003Introduction to Computer Graphics 52/2 C+Ex
NTIX071Automata and Grammars 52/2 C+Ex
NMAX059Probability and Statistics 1 52/2 C+Ex
NPRG045Individual Software Project 40/1 C
NPGR004Photorealistic Graphics152/2 C+Ex
NMAX056Mathematical Analysis 3252/2 C+Ex
NPRX051Advanced C++ Programming252/2 C+Ex
NMAX042Numerical Mathematics 52/2 C+Ex

Third year – Computer Graphics

CodeSubjectCreditsWinterSummer
NAIX062Propositional and Predicate Logic 52/2 C+Ex
NDBX025Database Systems 52/2 C+Ex
NPGR025Introduction to Colour Science132/0 Ex
NPGR002Digital Image Processing243/0 Ex
NMAX073Probability and Statistics 2252/2 C+Ex
NPGR037Matlab Practice 30/2 C
NSWX004Operating Systems 42/1 MC
NSZZ031Bachelor Thesis 60/4 C
NPGR020Geometry for Computer Graphics132/0 Ex
NPGR036Computer Vision252/2 C+Ex
NPRG054High Performance Software Development 62/2 C+Ex
NOPX046Discrete and Continuous Optimization 52/2 C+Ex
NPGR019Realtime Graphics on GPU 52/2 C+Ex

1 Profile courses (for the given branch) covering material needed for the State Final Exam.

2 Recommended courses for the given branch (not formally obligatory but strongly recommended). Courses without a footnote may be freely substituted by others.

Second year – Computer Vision

CodeSubjectCreditsWinterSummer
NTIX061Algorithms and Data Structures 2 52/2 C+Ex
NDMX011Combinatorics and Graph Theory 1 52/2 C+Ex
NMAX055Mathematical Analysis 2 52/2 C+Ex
NPRX035Programming in C# 52/2 C+Ex
NPGR003Introduction to Computer Graphics 52/2 C+Ex
NPGR002Digital Image Processing143/0 Ex
NPGR037Matlab Practice230/2 C
NTIX071Automata and Grammars 52/2 C+Ex
NMAX059Probability and Statistics 1 52/2 C+Ex
NPRG045Individual Software Project 40/1 C
NPGR036Computer Vision152/2 C+Ex
NPGR020Geometry for Computer Graphics232/0 Ex
NMAX056Mathematical Analysis 3252/2 C+Ex
NOPX046Discrete and Continuous Optimization252/2 C+Ex

Third year – Computer Vision

CodeSubjectCreditsWinterSummer
NAIX062Propositional and Predicate Logic 52/2 C+Ex
NDBX025Database Systems 52/2 C+Ex
NPRX041Programming in C++ 52/2 C+Ex
NPGR035Machine learning in computer vision152/2 C+Ex
NAIX028Introduction to Robotics252/2 C+Ex
NMAX073Probability and Statistics 2252/2 C+Ex
NSZZ031Bachelor Thesis 60/4 C
NMAX042Numerical Mathematics252/2 C+Ex
NPGR004Photorealistic Graphics 52/2 C+Ex
NPGR019Realtime Graphics on GPU 52/2 C+Ex
NPRG054High Performance Software Development 62/2 C+Ex

Second year – Game Development

CodeSubjectCreditsWinterSummer
NTIX061Algorithms and Data Structures 2 52/2 C+Ex
NDMX011Combinatorics and Graph Theory 1 52/2 C+Ex
NMAX055Mathematical Analysis 2 52/2 C+Ex
NPRX035Programming in C# 52/2 C+Ex
NPRX041Programming in C++ 52/2 C+Ex
NPGR003Introduction to Computer Graphics 52/2 C+Ex
NTIX071Automata and Grammars 52/2 C+Ex
NMAX059Probability and Statistics 1 52/2 C+Ex
NPRG045Individual Software Project 40/1 C
NPGR019Realtime Graphics on GPU152/2 C+Ex
NPGR038Introduction to computer game development152/2 C+Ex
NPRX038Advanced C# Programming252/2 C+Ex
NPRX051Advanced C++ Programming252/2 C+Ex

Third year – Game Development

CodeSubjectCreditsWinterSummer
NAIX062Propositional and Predicate Logic 52/2 C+Ex
NDBX025Database Systems 52/2 C+Ex
NSWI160Game Development Middleware260/4 C
NSWI159Practical Course on Game Development220/1 C0/1 C
NAIX028Introduction to Robotics 52/2 C+Ex
NSWX004Operating Systems 42/1 MC
NPGR002Digital Image Processing 43/0 Ex
NSZZ031Bachelor Thesis 60/4 C
NPGR020Geometry for Computer Graphics132/0 Ex
NAIL120Introduction to Artificial Intelligence 52/2 C+Ex
NPGR004Photorealistic Graphics 52/2 C+Ex
NPGR036Computer Vision 52/2 C+Ex

7.4 State Final Exam

The State Final Exam knowledge requirements common to all specializations are described in the first section of this chapter (General Information on Computer Science bachelor's degree plans). Students of the Computer Graphics, Vision and Game Development specialization will be further tested according to the information below.

The Computer Graphics, Vision and Game Development specialization includes a further set of requirements shared among its three branches – topics 1. to 3. are covered by obligatory courses NMAI055 Mathematical Analysis 2 and NPGR003 Introduction to Computer Graphics.

1. Mathematical Analysis
Differential and integral calculus of several variables. Riemann integral. Extrema of functions of several variables. Metric space, closed and open sets, compactness.

2. Fundamentals of 2D Computer Graphics
Human visual system and its properties, colours and their perception. Colour representation on computers, colour spaces RGB, CMY, HSV. High dynamic range graphics (HDR). Raster and vector graphics, raster and vector image file formats and their reasonable use. Image transparency (alpha-channel), alpha-blending. Fundamentals of rasterization – converting 2D shapes into raster image. Basic halftoning and dithering used in digital printing.

3. Fundamentals of 3D Computer Graphics
3D coordinate spaces, homogeneous coordinates, matrix transforms. Compound transforms (useful examples), representation of orientation in space. Projection used in 3D scene rendering. GPU realtime rendering: OpenGL basics, GPU architecture, data formats sent to GPU, programming principles (shaders). 3D scene representations, scene hierarchies, visibility algorithms, fundamentals of shading (Phong). Principles of recursive ray tracing.

Knowledge requirements for individual branches

Students following a given individual branch must be prepared for questions from disciplines covered by ``profile courses" of the given branch.

Requirements for Computer Graphics

Topics 4. to 6. are covered by the courses NPGR004 Photorealistic Graphics, NPGR025 Introduction to Colour Science and NPGR020 Geometry for Computer Graphics.

4. Photorealistic Graphics
Recursive ray tracing: principles, naive algorithm and its properties. Ray versus 3D scene intersections, speed-up techniques – bounding volumes and bounding hierarchies (BVH), space partitioning, KD-tree, construction of speedup data structures. Reflectance models: empirical methods (Phong), physically more plausible approaches (microfacets). Textures, volumetric textures and modelling of natural phenonema, noise functions. Anti-aliasing in ray-based algorithms, sampling methods, distributed ray tracing. Monte-Carlo in realistic rendering: introduction to photometry, theory of light transport simulation, integral rendering equation. Random walks, Russian roulette, unbiased quadrature using Monte-Carlo, next event estimation (NEE). Combined estimators, path-tracing, bidirectional path-tracing.

5. Colour Science
Fundamental causes of colour, human eye and function of its parts, retina, metamerism. Colour spaces and colour collections, gamuts, colour mixing, colour matching experiments. CIE RGB, sRGB, CIE XYZ, L*a*b and L*u*v. Chromatic adaptation transforms (CAT), white balance operation in digital photography. Colour appearance models (CAM). Examples of colour ordering systems (Munsell, Pantone). Colour measurement devices. Printing technology, laser printers, inkjet printers, offset printing, ICC profiles, PCS, Device ling ICC profile, colour separation.

6. Geometry for Computer Graphics
Plane and solid Euclidean geometry, applications, animation of continuous movement. Quaternions and their application in animation, LERP and SLERP. Projective space and projective mapping, panoramic stitching in photography and scene reconstruction. Double ratio and its use in size readings from images.

Requirements for Computer Vision

Topics 7. to 9. are covered by the courses NPGR002 Digital Image Processing, NPGR036 Computer Vision and NPGR035 Machine Learning in Computer Vision.

7. Digital Image Processing
Image sampling and quantization, Shannon Theorem. Basic manipulations with images. Histogram, contrast stretching, denoising, sharpening. Linear filtering in image and frequency domains. Convolution and Fourier transform. Edge and corner detection. Image degradations and their modelling. Removing basic degradations (motion and out-of-focus blur), inverse and Wiener filter.

8. Computer Vision
Image acquisition, digital image properties. Mathematical morphology. Image segmentation. Image registration and matching. Description of planar objects – basic principles. Invariants for recognition of 2D objects Local feature detection, description and matching. Salient regions. Object detection and tracking (e.g. human faces), optical flow.

9. Machine Learning
Feature selection and preprocessing. Bayesian decision theory, minimum error criterion. Decision trees. Discriminant analysis, linear classifier. Object recognition, supervised classifiers (k-NN, linear, Bayes). Support Vector Machines (SVM). Cluster analysis, iterative and hierarchical methods. Classification quality evaluation.

Requirements for Game Development

Topics 10., 11. and 6. are covered by the courses NPGR038 Introduction to Computer Games Development, NPGR019 Realtime Graphics on GPU and NPGR020 Geometry for Computer Graphics.

10. Computer Games Development
2D games: sprite-based animation, 2D skeleton, parallax scrolling, tilemap systems, pixel art. 3D games: 3D scene, modeling, skeletal animation, rigging. 3D rendering: shaders, shadow casting, particle systems, billboards, screenspace effects. Audio: sound effects, 3D sound, sound engine, sound composition. Design of game architecture, design patterns for computer games. Game design: definition, history, player taxonomy. Introduction to game engine architectures, Unity engine. Management of computer game development, life-cycle of a videogame project.

11. GPU Graphics
Principles of programmable GPU pipeline. Buffers, constant buffers, efficient data streaming to a GPU. Textures and texturing units, purpose of individual shader types. Higher shader languages (GLSL, HLSL). 3D scene lighting (materials, shadows). Stencil buffer and its utilization. Multipass rendering, deferred shading and screen-space effects. Realtime raytracing. GPGPU – massively parallel algorithms on GPU, basics of CUDA/OpenCL.

6. Geometry for Computer Graphics
Plane and solid Euclidean geometry, applications, animation of continuous movement. Quaternions and their application in animation, LERP and SLERP. Projective space and projective mapping, panoramic stitching in photography and scene reconstruction. Double ratio and its use in size readings from images.