460-2021/04 – Fundamentals of Computer Graphics (ZPG)

Gurantor departmentDepartment of Computer ScienceCredits4
Subject guarantorIng. Martin Němec, Ph.D.Subject version guarantorIng. Martin Němec, Ph.D.
Study levelundergraduate or graduateRequirementOptional
Study languageEnglish
Year of introduction2019/2020Year of cancellation
Intended for the facultiesFEIIntended for study typesBachelor
Instruction secured by
LoginNameTuitorTeacher giving lectures
NEM03 Ing. Martin Němec, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Credit and Examination 2+2

Subject aims expressed by acquired skills and competences

The aim of the course is to acquaint students with the basics of computer graphics. To provide overview of basics principles of 2D and 3D computer graphics. To acquaint with the vector and raster based objects displaying algorithms and methods in scenes, 2D objects rasterisation and trimming, 2D closed areas filling, objects transformations, 3D objects visibility solution, lighting, shading and texturing. To acquaint with the basic principles of the main graphical interfaces like OpenGL. To overrule the implementation and using of the interfaces in real graphical applications (camera, lights, models, shadows, etc.).

Teaching methods

Individual consultations
Project work


In this course, students get familiar with the basic posibilities of modern graphics card that are presented mainly by OpenGL. The main emphasis is aimed at showing the rendering pipeline (shaders) in modern OpenGL (version 3.3+).

Compulsory literature:

[1] Němec M.: Fundamentals of Computer Graphics. https://blender.vsb.cz/fundamentals-of-computer-graphics/. [2] Dave Shreiner, Graham Sellers, John M. Kessenich, Bill M. Licea-Kane: Opengl Programming Guide, ISBN 978-0-321-77303-6, http://it-ebooks.info/book/2138/. [3] Khronos Group, OpenGL: the industry’s foundation for high performance graphics,2020. See http://www.opengl.org/. [4] Khronos Group, OpenGL Overview - The Khronos Group Inc, 2020. See https://www.khronos.org/opengl/.

Recommended literature:

[1] Hirley, Peter, Michael Ashikhmin, Steve Marschner. Fundamentals of Computer Graphics. 3rd ed. A K Peters/CRC Press, 2009. ISBN: 9781568814698. [2] J. de Vries, Learn OpenGL: Learn Modern OpenGL Graphics Programming in a Stepby-step Fashion. Kendall & Welling, 2020. [3] S. Shekar, C++ Game Development By Example: Learn to build games and graphics with SFML, OpenGL, and Vulkan using C++ programming. Packt Publishing, 2019.

Way of continuous check of knowledge in the course of semester

Working out a series of tasks from tutorials. Carrying out the project.


Other requirements

Additional requirements are not placed on the student.


Subject has no prerequisities.


Subject has no co-requisities.

Subject syllabus:

Lectures 1. Introduction Computer Graphics. Raster and vector graphics (point, vector, line, curve, etc.). Interpolation. 2. Graphics hardware. Introduction to standard rendering pipeline (OpenGL). 3. 3D Object representation in CG (polygonal, CSG, procedural, etc.), object topology. Model formats (OBJ, FBX). 4. Transformations in CG (move, rotation, scale), projective space. 5. Projections (perspective vs. orthogonal projection), camera, clipping, rasterization. 6. Colors, human eye, light (pointlight, spotlight, directional light, area light). Color mixing (blending). 7. Lighting, local lighting models (Lambert, Phong), global lighting models, BRDF, radiosity, ray-tracing, ambient occlusion, shading. 8. Textures in OpenGL texture units, Texel. UV mapping. 9. Visible surface algorithms (z-buffer, painter's algorithm). Skybox, skydome. 10. Bump mapping, normal mapping. Displacement mapping. 11. Shadows in CG, shadow algorithm, shadow maps. 12. Curves (Bezier curve) . Exercises 1. Basic mathematics in CG, matrixs, etc. Project in C ++ with libraries. 2. Introduction to modern OpenGL. The structure of the project. 3. Objects in OpenGL VBO, IBO, glDrawElements, glDrawArrays. 4. View and projection transformations(MVP). 5. Shaders (vertex, fragment). 6. Phong reflection model. 7. Loading textures (OpenCV), uv-mapping. 8. Visibility, skybox, skydome. 9. Normal mapping. 10. Shadows, shadow maps. 11. Movement along the curve. 12. 3D printing.

Conditions for subject completion

Full-time form (validity from: 2019/2020 Winter semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of points
Credit and Examination Credit and Examination 100 (100) 51
        Credit Credit 45  20
        Examination Examination 55  10
Mandatory attendence parzicipation: Obligatory participation at all laboratory exercises.

Show history

Occurrence in study plans

Academic yearProgrammeField of studySpec.ZaměřeníFormStudy language Tut. centreYearWSType of duty
2021/2022 (B0613A140010) Computer Science INF P English Ostrava 3 Compulsory study plan
2021/2022 (B0541A170009) Computational and Applied Mathematics P English Ostrava 3 Optional study plan
2021/2022 (B2647) Information and Communication Technology (2612R025) Computer Science and Technology P English Ostrava 3 Optional study plan
2020/2021 (B0613A140010) Computer Science INF P English Ostrava 3 Compulsory study plan
2020/2021 (B0541A170009) Computational and Applied Mathematics P English Ostrava 3 Optional study plan
2019/2020 (B0613A140010) Computer Science INF P English Ostrava 3 Compulsory study plan
2019/2020 (B0541A170009) Computational and Applied Mathematics P English Ostrava 3 Optional study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner