460-4078/01 – Computer Graphics I (PG I)
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 | Optional |
Year | 1 | Semester | winter |
| | Study language | Czech |
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 deepen the basic knowledge of computer graphics, with which the student could get acquainted in the bachelor's study. After completing the course, the student will understand the basic principles of modern methods of photorealistic scene rendering. Selected methods will be able to describe, implement and create applications for rendering images based on the physical principles of world propagation, with emphasis on global methods.
The graduate of the course will able to:
- define the basic structures and operations used in computer graphics with a focus on image synthesis using ray tracing techniques,
- orientation in algorithms for recursive ray tracing,
- formulate the difference between local and global methods of lighting calculation,
- solve the rendering equation by Monte Carlo method,
- propose techniques to accelerate the convergence of stochastic methods,
- design acceleration structures to accelerate the passage of the beam through the scene,
- specify the main optical properties of selected types of materials,
- create powerful parallelized applications for photorealistic image synthesis.
Teaching methods
Lectures
Tutorials
Summary
The course is a free continuation of the introductory bachelor's course Basics of Computer Graphics and covers the main principles of photorealistic image synthesis. The following topics are discussed: ray tracing method, illumination models, light reflection models from the surface (BRDF), rendering equation, basics of Monte Carlo method for simulating light transport, ensuring physical correctness of results, accelerating calculation, image smoothing and description of basic optical material models. The course includes exercises, during which the topics discussed in lectures are practically implemented in the form of implementation of credit programs. 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:
Additional study materials
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. The condition for awarding the credits is to master these tasks with a point gain of at least 20 points out of 45 possible. In particular, the degree of understanding of the problem, the correctness of the implementation of the algorithm, its functionality and the visual level of the presented results are evaluated. Excellent orientation in the submitted source code is assumed.
The course is completed by an oral exam with written preparation.
E-learning
Other requirements
It is expected that students will have knowledge of mathematics and programming at the level taught during their undergraduate studies.
Prerequisities
Subject has no prerequisities.
Co-requisities
Subject has no co-requisities.
Subject syllabus:
Lectures:
- Physical and mathematical basics of image synthesis (light, radiometric and photometric quantities, color systems).
- Camera model, depth of field, affine spaces and transformations, matrix notation, change of basis, coordinate systems.
- Ray tracing method, calculation of ray intersections with geometrical objects.
- Basic types of materials, models of light reflection, textures, BRDF.
- Microsurface models (Cook-Torrance, Oren-Nayar), general BxDF.
- Supersampling and anti-aliasing, gamma correction.
- Acceleration methods, acceleration data structures and parallelization.
- Rendering equation (Kajiya) and its solution using Monte Carlo methods.
- Path tracing, variance reduction techniques (importance sampling, russian roulette, next event estimation, direct lighting).
- Light sources (sampling, image based lighting)
- Bi-directional path tracing, photon mapping.
- Spectral tracing, tone mapping.
- Other methods of photorealistic rendering of scenes.
- Other methods of modeling and displaying solids (boundary models, CSG, distance function).
Practical exercise on computer labs:
- Data loading and representation, used libraries (e.g. Embree, OptiX).
- Implementation of a simple camera.
- Basic ray casting (A. Appel).
- Implementation of diffusion materials and Phong's illumination model.
- Metal surfaces (reflection) and dielectric materials (refraction and attenuation), Whitted's recursive ray tracing.
- Supersampling and anti-aliasing, gamma correction.
- Acceleration of calculation.
- Basic path tracing.
- Acceleration of convergence, implementation of selected BRDF.
- Sampling of light sources.
- Improving the graphical output of the ray tracer (tone mapping).
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