460-4033/03 – Computer Graphics II (PG II)

Gurantor departmentDepartment of Computer ScienceCredits4
Subject guarantorIng. Tomáš Fabián, Ph.D.Subject version guarantorIng. Tomáš Fabián, Ph.D.
Study levelundergraduate or graduateRequirementChoice-compulsory
Year1Semestersummer
Study languageEnglish
Year of introduction2015/2016Year of cancellation
Intended for the facultiesFEIIntended for study typesFollow-up Master
Instruction secured by
LoginNameTuitorTeacher giving lectures
FAB038 Ing. Tomáš Fabián, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Graded credit 2+2
Part-time Graded credit 10+5

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:

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

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

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

Part-time form (validity from: 2015/2016 Winter semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of pointsMax. počet pokusů
Graded credit Graded credit 100  51 3
Mandatory attendence participation: Participation in the exercises is compulsory and is monitored. The scope of the compulsory participation will be communicated to the students by the subject guarantor at the beginning of the semester.

Show history

Conditions for subject completion and attendance at the exercises within ISP: Completion of all mandatory tasks within individually agreed deadlines.

Show history

Occurrence in study plans

Academic yearProgrammeBranch/spec.Spec.ZaměřeníFormStudy language Tut. centreYearWSType of duty
2024/2025 (N0613A140035) Computer Science DZO P English Ostrava 1 Choice-compulsory type A study plan
2023/2024 (N0613A140035) Computer Science DZO P English Ostrava 1 Choice-compulsory type A study plan
2023/2024 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P English Ostrava 1 Choice-compulsory study plan
2022/2023 (N0613A140035) Computer Science DZO P English Ostrava 1 Choice-compulsory type A study plan
2022/2023 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P English Ostrava 1 Choice-compulsory study plan
2021/2022 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P English Ostrava 1 Choice-compulsory study plan
2020/2021 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P English Ostrava 1 Choice-compulsory study plan
2019/2020 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P English Ostrava 1 Choice-compulsory study plan
2019/2020 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology K English Ostrava 1 Choice-compulsory study plan
2018/2019 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P English Ostrava 1 Choice-compulsory study plan
2018/2019 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology K English Ostrava 1 Choice-compulsory study plan
2017/2018 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P English Ostrava 1 Choice-compulsory study plan
2017/2018 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology K English Ostrava 1 Choice-compulsory study plan
2016/2017 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P English Ostrava 1 Choice-compulsory study plan
2016/2017 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology K English Ostrava 1 Choice-compulsory study plan
2015/2016 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology P English Ostrava 1 Choice-compulsory study plan
2015/2016 (N2647) Information and Communication Technology (2612T025) Computer Science and Technology K English Ostrava 1 Choice-compulsory study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner

Assessment of instruction

Předmět neobsahuje žádné hodnocení.