Course detail

Modern Computer Graphics

FEKT-MKC-MPGAcad. year: 2023/2024

The course deals with computer graphics and 3D modelling. The objective is to introduce computer modelling of a scene both from the theoretical and the practical sides. The topics cover a wide range beginning with colour models, through the theory of polynomial 3D modelling, up to the implementation, including exploiting the possibilities of the GPU.

Language of instruction


Number of ECTS credits


Mode of study

Not applicable.

Entry knowledge

The subject knowledge on the Bachelor degree level (in Teleinformatics) is required. Knowledge of signal processing is of advantage.

Rules for evaluation and completion of the course

Individual project: 24points
Tests: 12 points
Tasks in exercises: 4 points
Main exam: 60 points, minimum 20

lectures are not obligatory
computer exercise are obligatory
individual project is obligatory


Students learn about 3D modelling, from the very definition of objects to the implementation at graphic processors. Students utilize the OpenGL to model and process 3D scenes.
Via the lectures, students get to know the theory of computer graphics, while exercises run on computers slead to a practical experience --- mainly implementing 2D and 3D models using the OpenGL library.

Study aids

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Žára, J., Beneš, B., Sochor, J., Felkel, P.: Moderní počítačová grafika. Druhé vydání. Computer Press, 2005. ISBN 80-251-0454-0 (CS)
RAJMIC, P.; SCHIMMEL, J. Moderní počítačová grafika. Brno: Vysoké učení technické v Brně, 2013. ISBN: 978-80-214-4906- 0. (CS)

Recommended reading

Foley, J.D., van Dam, A., Feiner, S.K., Hughes, J.F.: Computer Graphics, Principles and Practice, Addison Wesley, 1990 (EN)

Classification of course in study plans

  • Programme MKC-TIT Master's, 1. year of study, summer semester, compulsory-optional

Type of course unit



26 hours, optionally

Teacher / Lecturer


Colour models and colour spaces. Representation of images in the computer: number formats, memory organization, video modes.
2D graphics: curves, binding curves, polynomials, Bézier cubics.
2D graphics: rational Bézier cubics, NURBS. Rasterization of the line, circle, ellipse, and Bézier curves.
3D graphics: polygons, meshes, subdivisions, Catmull-Clark, T-splines.
3D Graphics: Parametric patch definition, patch binding, Bézier bicubics, NURBS.
3D graphics: homogeneous coordinates, geometric transformations, projection, perspective.
Lighting models, shading, shadow casting.
Visibility. Global imaging models.
Textures and their mapping. Bitmap texture. Texture compression, texture interpolation, aliasing. Procedural textures.
Graphic processors, graphic pipeline. Parallelization and CUDA.

Exercise in computer lab

26 hours, compulsory

Teacher / Lecturer


Introduction to OpenGL: description of the system, installing GLUT, working with windows; events, onDisplay, onReshape. Basics of rendering: vertex and rendering, 2D: points, lines, filled objects, plotting curves using a sequence of straight lines.
Basics of rendering in 2D: vertex properties -- color definition, set of coordinates and properties -- vertex arrays. Communication means -- keyboard, mouse, timers (animation without user interaction), double buffer, UI - menu
Bezier curves in 2D and user interaction. Working with bitmaps (pictures, texts). 3D: vertex arrays, quadrics, subdivisions.
3D: Bézier patches in 3D. Comparison of Bezier techniques with subdivisions. User interaction in subdivisions.
3D: Geometric transformations, transformation matrices, simple examples.
3D: view, perspective, clipping algorithms (painter, z-buffer), fog effects, phong lighting model, normals.
3D: texture and texture work, advanced features; mipmapping, blending, quadrics.
3D: scene graph - inheriting properties and transforming objects in 3D, moving 3D space, Bézier patches.
3D: High-level animation of linked segments
Test - OpenGL. Introduction to Blender.
Blender -- continuation, modeling of 3D formats, export model, loading and working with .obj within OpenGL.
OpenCV -- Accesses to 2D image pixels. Intel Peformance Primitives: gamma correction, conversion between color models.