Skip to main content
Skip header

Fundamentals of Computer Graphics

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code460-2021/03
Number of ECTS Credits Allocated4 ECTS credits
Type of Course Unit *Optional
Level of Course Unit *First Cycle
Year of Study *Third Year
Semester when the Course Unit is deliveredWinter Semester
Mode of DeliveryFace-to-face
Language of InstructionCzech
Prerequisites and Co-Requisites Course succeeds to compulsory courses of previous semester
Name of Lecturer(s)Personal IDName
NEM03Ing. Martin Němec, Ph.D.
Summary
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+).
Learning Outcomes of the Course Unit
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.).
Course Contents
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 (PC classroom)
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.
Recommended or Required Reading
Required Reading:
[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/.
[1] Němec M.: Sylaby přednášek Základy počítačové grafiky.
[2] Sojka E., Němec M., Fabián T.: Matematické základy počítačové grafiky, http://mi21.vsb.cz.
[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 Reading:
[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.
[1] J. Žára, B. Beneš, J. Sochor, P. Felkel:Moderní počítačová grafika (2. vydání),Computer Press, 2005, ISBN 80-251-0454-0.
[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.
Planned learning activities and teaching methods
Lectures, Seminars, Individual consultations, Tutorials, Project work
Assesment methods and criteria
Task TitleTask TypeMaximum Number of Points
(Act. for Subtasks)
Minimum Number of Points for Task Passing
Credit and ExaminationCredit and Examination100 (100)51
        CreditCredit45 20
        ExaminationExamination55 10