460-2021/04 – Fundamentals of Computer Graphics (ZPG)
Gurantor department | Department of Computer Science | Credits | 4 |
Subject guarantor | Ing. Martin Němec, Ph.D. | Subject version guarantor | Ing. Martin Němec, Ph.D. |
Study level | undergraduate or graduate | Requirement | Optional |
Year | 3 | Semester | winter |
| | Study language | English |
Year of introduction | 2019/2020 | Year of cancellation | |
Intended for the faculties | FEI | Intended for study types | Bachelor |
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
Lectures
Seminars
Individual consultations
Tutorials
Project work
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+).
Compulsory literature:
Recommended literature:
Way of continuous check of knowledge in the course of semester
Working out a series of tasks from tutorials. Carrying out the project.
E-learning
Other requirements
Additional requirements are not placed on the student.
Prerequisities
Subject has no prerequisities.
Co-requisities
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
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction