Degree Plans - Computer Graphics, Vision and Game Development
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.)
- – 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.)
The specialization Computer Graphics, Vision and Game Development has the following branches:
- –
Computer Graphics
- – Computer Vision
- – Game Development
- – Computer Vision
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
Code | Subject | Credits | Winter | Summer | |
NPGR003 | Introduction to Computer Graphics | 5 | 2/2 C+Ex | — | |
NMAX055 | Mathematical Analysis 2 | 5 | 2/2 C+Ex | — | |
NPRX041 | Programming in C++ | 5 | 2/2 C+Ex | — | |
NPRX035 | Programming in C# | 5 | 2/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.
Code | Subject | Credits | Winter | Summer | |
NPGR025 | Introduction to Colour Science | 3 | 2/0 Ex | — | |
NPGR002 | Digital Image Processing | 4 | 3/0 Ex | — | |
NPGR035 | Machine learning in computer vision | 5 | 2/2 C+Ex | — | |
NPGR037 | Matlab Practice | 3 | 0/2 C | — | |
NSWI160 | Game Development Middleware | 6 | 0/4 C | — | |
NSWI159 | Practical Course on Game Development | 1 | 2 | 0/1 C | 0/1 C |
NPGR004 | Photorealistic Graphics | 5 | — | 2/2 C+Ex | |
NPGR019 | Realtime Graphics on GPU | 5 | — | 2/2 C+Ex | |
NPGR020 | Geometry for Computer Graphics | 3 | — | 2/0 Ex | |
NPGR036 | Computer Vision | 5 | — | 2/2 C+Ex | |
NPGR038 | Introduction to computer game development | 5 | — | 2/2 C+Ex | |
NSWX004 | Operating Systems | 4 | 2/1 MC | — | |
NAIX028 | Introduction to Robotics | 5 | 2/2 C+Ex | — | |
NMAX073 | Probability and Statistics 2 | 5 | 2/2 C+Ex | — | |
NMAX056 | Mathematical Analysis 3 | 5 | — | 2/2 C+Ex | |
NPRX051 | Advanced C++ Programming | 5 | — | 2/2 C+Ex | |
NPRX038 | Advanced C# Programming | 5 | — | 2/2 C+Ex | |
NPRX005 | Non-procedural Programming | 5 | — | 2/2 C+Ex | |
NAIL120 | Introduction to Artificial Intelligence | 5 | — | 2/2 C+Ex | |
NPRG054 | High Performance Software Development | 6 | — | 2/2 C+Ex | |
NPRG042 | Programming in Parallel Environment | 6 | — | 2/2 C+Ex | |
NMAX042 | Numerical Mathematics | 5 | — | 2/2 C+Ex | |
NDBI045 | Video retrieval and exploration | 5 | — | 2/2 C+Ex | |
NOPX046 | Discrete and Continuous Optimization | 5 | — | 2/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.
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
Code | Subject | Credits | Winter | Summer | |
NTIX061 | Algorithms and Data Structures 2 | 5 | 2/2 C+Ex | — | |
NDMX011 | Combinatorics and Graph Theory 1 | 5 | 2/2 C+Ex | — | |
NMAX055 | Mathematical Analysis 2 | 5 | 2/2 C+Ex | — | |
NPRX041 | Programming in C++ | 5 | 2/2 C+Ex | — | |
NPRX035 | Programming in C# | 5 | 2/2 C+Ex | — | |
NPGR003 | Introduction to Computer Graphics | 5 | 2/2 C+Ex | — | |
NTIX071 | Automata and Grammars | 5 | — | 2/2 C+Ex | |
NMAX059 | Probability and Statistics 1 | 5 | — | 2/2 C+Ex | |
NPRG045 | Individual Software Project | 4 | — | 0/1 C | |
NPGR004 | Photorealistic Graphics | 1 | 5 | — | 2/2 C+Ex |
NMAX056 | Mathematical Analysis 3 | 2 | 5 | — | 2/2 C+Ex |
NPRX051 | Advanced C++ Programming | 2 | 5 | — | 2/2 C+Ex |
NMAX042 | Numerical Mathematics | 5 | — | 2/2 C+Ex |
Third year – Computer Graphics
Code | Subject | Credits | Winter | Summer | |
NAIX062 | Propositional and Predicate Logic | 5 | 2/2 C+Ex | — | |
NDBX025 | Database Systems | 5 | 2/2 C+Ex | — | |
NPGR025 | Introduction to Colour Science | 1 | 3 | 2/0 Ex | — |
NPGR002 | Digital Image Processing | 2 | 4 | 3/0 Ex | — |
NMAX073 | Probability and Statistics 2 | 2 | 5 | 2/2 C+Ex | — |
NPGR037 | Matlab Practice | 3 | 0/2 C | — | |
NSWX004 | Operating Systems | 4 | 2/1 MC | — | |
NSZZ031 | Bachelor Thesis | 6 | — | 0/4 C | |
NPGR020 | Geometry for Computer Graphics | 1 | 3 | — | 2/0 Ex |
NPGR036 | Computer Vision | 2 | 5 | — | 2/2 C+Ex |
NPRG054 | High Performance Software Development | 6 | — | 2/2 C+Ex | |
NOPX046 | Discrete and Continuous Optimization | 5 | — | 2/2 C+Ex | |
NPGR019 | Realtime Graphics on GPU | 5 | — | 2/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
Code | Subject | Credits | Winter | Summer | |
NTIX061 | Algorithms and Data Structures 2 | 5 | 2/2 C+Ex | — | |
NDMX011 | Combinatorics and Graph Theory 1 | 5 | 2/2 C+Ex | — | |
NMAX055 | Mathematical Analysis 2 | 5 | 2/2 C+Ex | — | |
NPRX035 | Programming in C# | 5 | 2/2 C+Ex | — | |
NPGR003 | Introduction to Computer Graphics | 5 | 2/2 C+Ex | — | |
NPGR002 | Digital Image Processing | 1 | 4 | 3/0 Ex | — |
NPGR037 | Matlab Practice | 2 | 3 | 0/2 C | — |
NTIX071 | Automata and Grammars | 5 | — | 2/2 C+Ex | |
NMAX059 | Probability and Statistics 1 | 5 | — | 2/2 C+Ex | |
NPRG045 | Individual Software Project | 4 | — | 0/1 C | |
NPGR036 | Computer Vision | 1 | 5 | — | 2/2 C+Ex |
NPGR020 | Geometry for Computer Graphics | 2 | 3 | — | 2/0 Ex |
NMAX056 | Mathematical Analysis 3 | 2 | 5 | — | 2/2 C+Ex |
NOPX046 | Discrete and Continuous Optimization | 2 | 5 | — | 2/2 C+Ex |
Third year – Computer Vision
Code | Subject | Credits | Winter | Summer | |
NAIX062 | Propositional and Predicate Logic | 5 | 2/2 C+Ex | — | |
NDBX025 | Database Systems | 5 | 2/2 C+Ex | — | |
NPRX041 | Programming in C++ | 5 | 2/2 C+Ex | — | |
NPGR035 | Machine learning in computer vision | 1 | 5 | 2/2 C+Ex | — |
NAIX028 | Introduction to Robotics | 2 | 5 | 2/2 C+Ex | — |
NMAX073 | Probability and Statistics 2 | 2 | 5 | 2/2 C+Ex | — |
NSZZ031 | Bachelor Thesis | 6 | — | 0/4 C | |
NMAX042 | Numerical Mathematics | 2 | 5 | — | 2/2 C+Ex |
NPGR004 | Photorealistic Graphics | 5 | — | 2/2 C+Ex | |
NPGR019 | Realtime Graphics on GPU | 5 | — | 2/2 C+Ex | |
NPRG054 | High Performance Software Development | 6 | — | 2/2 C+Ex |
Second year – Game Development
Code | Subject | Credits | Winter | Summer | |
NTIX061 | Algorithms and Data Structures 2 | 5 | 2/2 C+Ex | — | |
NDMX011 | Combinatorics and Graph Theory 1 | 5 | 2/2 C+Ex | — | |
NMAX055 | Mathematical Analysis 2 | 5 | 2/2 C+Ex | — | |
NPRX035 | Programming in C# | 5 | 2/2 C+Ex | — | |
NPRX041 | Programming in C++ | 5 | 2/2 C+Ex | — | |
NPGR003 | Introduction to Computer Graphics | 5 | 2/2 C+Ex | — | |
NTIX071 | Automata and Grammars | 5 | — | 2/2 C+Ex | |
NMAX059 | Probability and Statistics 1 | 5 | — | 2/2 C+Ex | |
NPRG045 | Individual Software Project | 4 | — | 0/1 C | |
NPGR019 | Realtime Graphics on GPU | 1 | 5 | — | 2/2 C+Ex |
NPGR038 | Introduction to computer game development | 1 | 5 | — | 2/2 C+Ex |
NPRX038 | Advanced C# Programming | 2 | 5 | — | 2/2 C+Ex |
NPRX051 | Advanced C++ Programming | 2 | 5 | — | 2/2 C+Ex |
Third year – Game Development
Code | Subject | Credits | Winter | Summer | |
NAIX062 | Propositional and Predicate Logic | 5 | 2/2 C+Ex | — | |
NDBX025 | Database Systems | 5 | 2/2 C+Ex | — | |
NSWI160 | Game Development Middleware | 2 | 6 | 0/4 C | — |
NSWI159 | Practical Course on Game Development | 2 | 2 | 0/1 C | 0/1 C |
NAIX028 | Introduction to Robotics | 5 | 2/2 C+Ex | — | |
NSWX004 | Operating Systems | 4 | 2/1 MC | — | |
NPGR002 | Digital Image Processing | 4 | 3/0 Ex | — | |
NSZZ031 | Bachelor Thesis | 6 | — | 0/4 C | |
NPGR020 | Geometry for Computer Graphics | 1 | 3 | — | 2/0 Ex |
NAIL120 | Introduction to Artificial Intelligence | 5 | — | 2/2 C+Ex | |
NPGR004 | Photorealistic Graphics | 5 | — | 2/2 C+Ex | |
NPGR036 | Computer Vision | 5 | — | 2/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.