460-4033/03 – Computer Graphics II (PG II)
Gurantor department | Department of Computer Science | Credits | 4 |
Subject guarantor | Ing. Tomáš Fabián, Ph.D. | Subject version guarantor | Ing. Tomáš Fabián, Ph.D. |
Study level | undergraduate or graduate | Requirement | Choice-compulsory |
Year | 1 | Semester | summer |
| | Study language | English |
Year of introduction | 2015/2016 | Year of cancellation | |
Intended for the faculties | FEI | Intended for study types | Follow-up Master |
Subject aims expressed by acquired skills and competences
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.
Teaching methods
Lectures
Individual consultations
Tutorials
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.
Compulsory literature:
Recommended literature:
Way of continuous check of knowledge in the course of semester
The condition for granting the credits is the submission of individual assignments from the exercises. The functionality of individual parts will be presented within the exercise in the credit week. Excellent orientation in the submitted source code is assumed.
E-learning
Other requirements
It is supposed that the student has knowledge in C, C++ programming.
Prerequisities
Subject has no prerequisities.
Co-requisities
Subject has no co-requisities.
Subject syllabus:
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++.
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction
Předmět neobsahuje žádné hodnocení.