Photorealistic Graphics – current information (2021/2022)

All the dates are for the Czech course

Video content on YouTube (Czech language only)

Playlist for the lectures (2021/2022).
Playlist for the labs (2021/2022).

Lecture plan

Lecture #1 (15. 2. 2022)

Introduction, literature, introduction to Ray-tracing

Course content, additional sources, Ray-tracing principles revisited.
Video: Lecture 1 (2021/22).

Lab #1 (15. 2. 2022)

Credit system, programming environment (C# environment, SVN/Git repository grcis, MS Visual Studio), GrCis repository, ray-tracing example: 048rtmontecarlo-script.
Ray-based renderer architecture I (interfaces and core classes: RayScene, IIntersectable, IImageFunction, IRenderer, ISolid, ..)
Ray-tracing in GrCis (PDF slides)
Video: Lab 1 (2021/22) – lab credit, GrCis ray-tracer demo, some extension ideas, Ray-tracer architecture I.

Lecture #2 (22. 2. 2022)

Shading, shading interpolation, general BRDF concepts

Shading basics, continuous shading. Definition of BRDF, physics, general BRDF concepts...
Video: Lecture 2 (2021/22).

Lab #2 (22. 2. 2022)

Shading interpolation demo (Gouraud, Phong). Architecture of ray-based renderer II (Intersection, ISolid, IReflectanceModel, IMaterial), ICamera revisited, CS-script for scene definition (project 048rtmontecarlo-script)
Lab credit details, term projects. See lab page for details.
Video: Lab 2 (2021/22) – shading interpolation demo, Ray-tracer architecture II.

Lecture #3 (1. 3. 2022)

More reflectance models

General BRDF concepts revisited, Fresnel functions, microfacet models: Cook-Torrance, Oren-Nayar, looking for better microfacet distributions D(h) and geometric factors G, Lafortune's lobe model, Schlick's improvements...
Video: Lecture 3 (2021/22).

Lab #3 (1. 3. 2022)

Ray-based renderer architecture III IReflectanceModel, IMaterial, Intersection, ISolid, ICamera [revisited], CS-script for scene definitions (the 048rtmontecarlo-script project)
Video: Lab 3 (2021/22) – Ray-tracer architecture III.

Lecture #4 (8. 3. 2022)

Ray-scene intersections

Ray-scene intersection basics: planar shapes, convex polyhedron, implicit and algebraic surfaces, general and rotational quadrics, sphere (geometric solution), torus, surface of revolution, CSG representation. Spline surfaces, Bezier surfaces: subdivision, Newtonian iteration.
Video: Lecture 4 (2021/22).

Lab #4 (8. 3. 2022)

Intersections, ITimeDependent, 062animation-script application, video rendering, animators in a RayTracingScene, Glowing objects (RecursionFunction).
Video: Lab 4 (2021/22) – animation (ITimeDependent), Ray-tracer architecture IV.

Lecture #5 (15. 3. 2022)

Acceleration of R-T

Classification of acceleration techniques, bounding solid, bounding efficiency, bounding-volume-hierarchy (BVH), efficiency and construction, SAH heuristics.
Video: Lecture 5 (2021/22).

Lab #5 (15. 3. 2022)

Ray-tracing scene acceleration suggestions, triangle- and box- intersections, RecursionFunction II, glowing objects revisited.
Video: Lab 5 (2021/22) – acceleration, RecursionFunction, Ray-tracer architecture V.

Lecture #6 (22. 3. 2022)

Acceleration of R-T, Textures

space dividing methods: grid, 3DDDA, octree, KD-tree, subdivision approaches, adaptive tree pass. [Directional acceleration techniques, cube directory, light buffer, ray coherency, projection plane directory, generalized rays]
Textures in ray-tracing – 2D and 3D textures, table (bitmap) vs. procedural texture, table interpolations. "Bump-texture" (normal map), stochastic textures - introduction.
Video: Lecture 6 (2021/22).

Lab #6 (22. 3. 2022)

Texture filtering examples, textures in GrCis, simple bump-texture example.
Video: Lab 6 (2021/22) – textures, Ray-tracer architecture VI.

Lecture #7 (29. 3. 2022)

Noise functions

Synthetic noise functions (white noise, interpolation and convolution methods), Perlin noise, Lewis sparse convolution, turbulence, application of noise functions in texture synthesis: wood, marble. More applications of noise functions (water surface simulation, flame simulation).
Video: Lecture 7 (2021/22).

Lab #7 (29. 3. 2022)

More usage of noise functions (water surface simulation, flame simulation), complex RT-scene with a particle system driven by an Animator object.
Video: Lab 7 (2021/22) – noise functions, complex animated scene example, Ray-tracer architecture VII.

Lecture #8 (5. 4. 2022)

Anti-aliasing and sampling

Basics of sampling theory, anti-aliasing in R-T context, spatial/temporal alias, Anti-aliasing by numeric quadrature, sampling method survey (regular, random sampling, jittering, "N-rooks" sampling, Poisson disc sampling, Mitchell's algorithm, deterministic algorithms).
Video: Lecture 8 (2021/22).

Lab #8 (5. 4. 2022)

Anti-aliasing and sampling examples.
Video: Lab 8 (2021/22) – Anti-aliasing and sampling examples, Ray-tracer architecture VIII.

Lecture #9 (12. 4. 2022)

Monte-Carlo in Ray-tracing

Adaptive sampling, supersampling criteria, practical examples.
Distributed ray-tracing: glossy reflections and refractions, soft shadows, depth-of-field simulation, motion blur, light dispersion. Monte-Carlo quadrature, examples. Multi-dimensional sampling, hidden sampling.
Video: Lecture 9 (2021/22).

Lab #9 (12. 4. 2022)

Distributed Ray-tracing examples, hidden sampling, etc.
Video: Lab 9 (2021/22) – adaptive sampling, distributed ray-tracing, Ray-tracer architecture IX (hidden sampling).

Lecture #10 (19. 4. 2022)

Introduction to radiometry, radiosity

Basic radiometric terms, flux, radiance, irradiance, solid angles, BRDF, Kajiya's rendering equation. Problem discretization (FEM), system of linear equations for radiosity.
Video: Lecture 10 (2021/22).

Lab #10 (19. 4. 2022)

More examples.
Video: Lab 10 (2021/22) – examples of distributed Ray-tracing, radiosity.

Lecture #11 (26. 4. 2022)

General Monte-Carlo I

Monte Carlo integration: introduction, primary and secondary estimates, variance, stratified sampling, importance sampling, combined estimators, examples
Video: Lecture 11 (2021/22) – Monte Carlo integration (the simplest task)

Lecture #12 (3. 5. 2022)

Monte-Carlo II, Monte-Carlo rendering I

Integral equations, random walks, Russian roulette, next event estimation (NEE)...
Rendering equation revisited (Kajiya), symbolic light transport description (regular expressions)
Video: Lecture 12 (2021/22) – Monte Carlo estimation of Fredholm integral equation system

Lecture #13 (10. 5. 2022)

Monte-Carlo rendering II

Path-tracing (random paths), bidirectional path tracing, NEE, examples.
Video: Lecture 13 (2021/22) – Monte-Carlo rendering, Path tracing, Light tracing, Bidirectional path tracing

Lecture #14 (17. 5. 2022)

Photon mapping

Photon mapping.
Video: Lecture 14 (2021/22) – Photon mapping


Copyright (C) 2001-2022 J.Pelikán, last change: 2022-07-20 00:48:00 +0200 (Wed, 20 Jul 2022)