Skip to main content
Skip header

Computer Graphics I

Type of study Follow-up Master
Language of instruction Czech
Code 460-4078/01
Abbreviation PG1
Course title Computer Graphics I
Credits 4
Coordinating department Department of Computer Science
Course coordinator Ing. Tomáš Fabián, Ph.D.

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 (ray marching, sphere tracing, participating media - clouds).
- Other methods of modeling and displaying solids (boundary models, CSG, SDF, fractals).


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 BRDFs.
- 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++.

Literature

[1] Pharr, M., Jakob, W., Humphreys, G.: Physically Based Rendering, Fourth Edition: From Theory to Implementation, MIT Press, 2024, 1312 pages, ISBN 978-0262048026 .
[2] 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 ).
[3] Sojka, E., Němec, M., Fabián, T.: Matematické základy počítačové grafiky, VŠB-TU Ostrava, 2011.

Advised literature

[1] Shirley, P., Morley, R. K.: Realistic Ray Tracing, Second Edition, AK Peters, 2003, 235 pages, ISBN 978-1568814612 .
[2] Haines, E., Akenine-Möller, T. (ed.): Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs. Apress, 2024, 607 pages, ISBN 978-1484244265 .
[3] Marrs, A., Shirley, P., Wald, I (ed.). Ray Tracing Gems II: Next Generation Real-Time Rendering with DXR, Vulkan, and OptiX. Springer Nature, 2024, 858 pages, ISBN 978-1484271841 .
[4] Akenine-Moller, T., Haines, E., Hoffman, N.: Real-Time Rendering, Fourth Edition, AK Peters/CRC Press, 2018, 1178 pages, ISBN 978-1138627000 .
[5] Dutré, P.: Global Illumination Compendium, 2003, 68 pages.
[6] Ryer, A. D.: The Light Measurement Handbook, 1997, 64 pages.