Skip to main content
Skip header

Computer Graphics II

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

Course Unit Code460-4033/02
Number of ECTS Credits Allocated4 ECTS credits
Type of Course Unit *Choice-compulsory type A
Level of Course Unit *Second Cycle
Year of Study *First Year
Semester when the Course Unit is deliveredSummer 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
FAB038Ing. Tomáš Fabián, Ph.D.
Summary
The content of this course aims to expand the student's knowledge acquired in the course Computer Graphics I on real-time image synthesis techniques using modern graphics APIs. Emphasis is placed on the description of individual parts of the standard rendering pipeline, but also advanced hybrid approaches combining rasterization with recursive ray tracing methods to achieve a realistic appearance of the resulting images are discussed. Theoretical knowledge gained during discussion of partial tasks serve as a basis for practical implementation of specific examples during exercises. Exercises closely correspond to the lectures and the implementation of the aforementioned topics in the C++ language environment is assumed.
Learning Outcomes of the Course Unit
The aim of the course is to supplement and expand the topics that the student could be acquainted with in the course Computer Graphics I with a focus on real-time image synthesis using rasterization and hybrid approaches. Emphasis is placed on the practical use of the graphical API OpenGL and Vulkan in creating programs for displaying 3D scenes demonstrating the individual discussed topics.

The graduate of the course will able to:

- define affine and projective transformations,
- describe the basic parts of a rendering pipeline,
- orient in the structure of the OpenGL API,
- configure individual parameters of the graphical interface and create program code for it in GLSL language,
- create more complex display chains of advanced techniques (deferred rendering, shadow generation, global lighting simulation),
- systematically analyze and eliminate errors in graphical output,
- combine rasterization with recursive ray tracing techniques,
- create applications for displaying interactive 3D graphics.
Course Contents
Lectures:

1. Basic structures and operations used in computer graphics, projective space, homogeneous coordinates.
2. Introduction to OpenGL and Vulkan standards, brief history, comparison, overview of application areas.
3. OpenGL rendering pipeline, focus on the programmable part, GLSL language.
4. Working with buffers, the way of their construction, possibilities of use, content mapping.
5. Advanced shading, work with many materials.
6. Advanced lighting models, deffered rendering, ambient occlusion, modification of surface normals, etc.
7. Techniques for generating shadows using shadow maps and shadow volumes.
8. Surface modeling, tessellation and geometry generation.
9. Advanced shaders and their combinations with recursive ray tracing.
10. Additional hardware acceleration options for recursive ray tracing on GPUs.
11. Visualization of specific data - particle systems.
12. Integration of a physical model into a scene.
13. Game engines and their basic structure.
14. 3D graphics in virtual and augmented reality.


Practical exercise on computer labs:

1. Building of C++ template for solving tasks given in exercises, introduction of basic classes for scene construction, loading scenes from graphic formats.
2. Creation of basic shaders in GLSL language, construction of MVP matrix, scene integration, application of simple shaders on selected objects.
3. Working with buffers (geometric and frame buffers).
4. Advanced shading, materials, working with many materials.
5. Advanced texturing techniques, texture mapping and their creation (PBR materials).
6. Advanced lighting models, ambient occlusion, etc.
7. Techniques of modification of surface normals, calculation of local coordinate system TBN (e.g. bump mapping, normal mapping, displacement mapping, parallax mapping).
8. Shadow generation using shadow mapping and stencil buffer.
9. Implementation of deferred shading and its use in conjunction with recursive ray tracing (focused on shadows, reflection, and refraction).
10. Use of libraries for hardware acceleration of recursive ray tracing methods (e.g. OptiX, Radeon Rays).
11. Creation and visualization of a selected particle system.
12. Integration of a physical model into a scene.
13. Examples of game engines.
14. Checking the assigned tasks.

The exercises solve specific tasks from the discussed area. The implementation language is C++.
Recommended or Required Reading
Required Reading:
[1] Gordon, V. S., Clevenger, J. Computer Graphics Programming in OpenGL with C++. Mercury Learning & Information, 2nd edition, 2020.
[2] Sellers, G., Wright, R. S., Haemel, N. OpenGL Superbible: Comprehensive Tutorial and Reference. Addison-Wesley Professional, 2015, 880 pages, 7th edition, ISBN 978-0672337475.
[3] De Vries, J.: Learn OpenGL: Learn modern OpenGL graphics programming in a step-by-step fashion. Kendall & Welling, 2020, 522 pages, ISBN 978-9090332567.
[4] Sojka, E.: Počítačová grafika II: metody a nástroje pro zobrazování 3D scén, VŠB-TU Ostrava, 2003, ISBN 80-248-0293-7.
[5] Sojka, E., Němec, M., Fabián, T.: Matematické základy počítačové grafiky, VŠB-TU Ostrava, 2011.
[6] Stroustrup, B. The C++ Programming Language. Addison-Wesley Professional, 4th edition, 2013.
[1] Gordon, V. S., Clevenger, J. Computer Graphics Programming in OpenGL with C++. Mercury Learning & Information, 2nd edition, 2020.
[2] Sellers, G., Wright, R. S., Haemel, N. OpenGL Superbible: Comprehensive Tutorial and Reference. Addison-Wesley Professional, 2015, 880 stran, 7th edition, ISBN 978-0672337475.
[3] De Vries, J.: Learn OpenGL: Learn modern OpenGL graphics programming in a step-by-step fashion. Kendall & Welling, 2020, 522 stran, ISBN 978-9090332567.
[4] Sojka, E.: Počítačová grafika II: metody a nástroje pro zobrazování 3D scén, VŠB-TU Ostrava, 2003, ISBN 80-248-0293-7.
[5] Sojka, E., Němec, M., Fabián, T.: Matematické základy počítačové grafiky, VŠB-TU Ostrava, 2011.
[6] Stroustrup, B. The C++ Programming Language. Addison-Wesley Professional, 4th edition, 2013.
Recommended Reading:
[1] Pharr, M., Jakob, W., Humphreys, G.: Physically Based Rendering, Third Edition: From Theory to Implementation, Morgan Kaufmann, 2016, 1266 pages, ISBN 978-0128006450.
[2] Haines, E., Akenine-Möller, T. (ed.): Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs. Apress, 2019, 607 pages, ISBN 978-1484244265.
[3] Shirley, P., Morley, R. K.: Realistic Ray Tracing, Second Edition, AK Peters, 2003, 235 pages, ISBN 978-1568814612.
[4] Akenine-Möller, T., Haines, E., Hoffman, N.: Real-Time Rendering, Fourth Edition, AK Peters, 2018, 1198 pages, ISBN 978-1351816151.
[1] Pharr, M., Jakob, W., Humphreys, G.: Physically Based Rendering, Third Edition: From Theory to Implementation, Morgan Kaufmann, 2016, 1266 stran, ISBN 978-0128006450.
[2] Haines, E., Akenine-Möller, T. (ed.): Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs. Apress, 2019, 607 stran, ISBN 978-1484244265.
[3] Shirley, P., Morley, R. K.: Realistic Ray Tracing, Second Edition, AK Peters, 2003, 235 pages, ISBN 978-1568814612.
[4] Akenine-Möller, T., Haines, E., Hoffman, N.: Real-Time Rendering, Fourth Edition, AK Peters, 2018, 1198 pages, ISBN 978-1351816151.
Planned learning activities and teaching methods
Lectures, Individual consultations, Tutorials
Assesment methods and criteria
Task TitleTask TypeMaximum Number of Points
(Act. for Subtasks)
Minimum Number of Points for Task Passing
Graded creditGraded credit100 51