Skip to main content
Skip header

Computer Graphics II

Type of study Follow-up Master
Language of instruction English
Code 460-4033/03
Abbreviation PG II
Course title Computer Graphics II
Credits 4
Coordinating department Department of Computer Science
Course coordinator Ing. Tomáš Fabián, Ph.D.

Subject syllabus

Lectures:

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


Practical exercise on computer labs:

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

The exercises solve specific tasks from the discussed area. The implementation language is C++.

Literature

[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.

Advised literature

[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 .