Jaroslav Křivánek |
Schedule: | Lecture - Wed 14:00-15:30 S4 | Labs - Wed 15:40-17:10 SW1 (Malá Strana) |
Lecturer: | Jaroslav Křivánek, e-mail: jaroslav.krivanek at mff.cuni.cz |
Organization: | 2/2 C + Ex  link to SIS |
The class loosely follows up on Computer Graphics II (NPGR004) and it is aimed mostly at students with a deeper interest in realistic rendering methods. The course covers methods for physically-based realistic rendering used for special effects in movie production, computer animation, architectural and product visualizations etc. Specifically, we start off by briefly covering some of the math and physics behind light transport. We then give a detailed treatment of the industry-standard Monte Carlo methods for light transport simulation, such as path tracing, photon mapping etc. We also cover some of the more advanced techniques such as bidirectional path tracing.
Oct 16th | Assignment 0 due (your renderings) | ||
Nov 13th | Assignment 1 due | ||
Dec 4th | Assignment 2 due | ||
Dec 11th | Assignment 3 due | ||
Dec 18th | Assignment 4 due | ||
Jan 8th | Assignment 5 due |
Lecture topic | Slides & notes | Auxiliary materials |
Organization, Intro | Lecture: pdf | pptx / pdf | pptx | |
Radiometry |
Lecture:
pdf |
pptx Labs pdf | pptx |
Petr Olšák - dOmega (in Czech) Petr Olšák - Radiometric units (in Czech) Scratchpixel - Concenpts Scratchpixel - The Mathematics of Shading Scratchpixel - Introduction to Radiometry Scratchpixel - Radiometric Relationships Scratchpixel - Light Sources Scratchpixel - What is Radiometry Really Useful For? Wikipedie - Radiometric units |
Light reflection, BRDF |
Lecture:
pdf |
pptx Labs: pdf | pptx |
Scratchpixel - Materials |
Monte Carlo methods, Direct illumination calculation |
Lecture:
pdf |
pptx Labs: pdf | pptx |
|
Monte Carlo methods II, Image-based lighting |
Lecture:
pdf |
pptx |
|
Combined estimators & Multiple Importance Sampling |
Lecture:
pdf |
pptx |
|
Rendering equation and its solution |
Lecture:
pdf |
pptx |
|
Path tracing |
Lecture:
pdf |
pptx |
|
Quasi-Monte Carlo methods |
Lecture:
pdf |
pptx |
|
Volumetric light transport and participating media rendering |
Lecture:
pdf |
pptx Monte Carlo methods for physically based volume rendering”, SIGGRAPH 2018 course |
Steve Marschner: “Multiple Scattering” Note that the pseudocode in the above material is buggy: In the Kajiya-style path tracing, homogeneous volume, version 1.0, in the function directScatteredEst(x, ω) a multiplication by sigma_s/sigma_t (i.e. scattering albedo) is missing. Steve Marschner: “Volumetric path tracing” |
Bidirectional path tracing |
Lecture:
pdf |
pptx |
|
Photon mapping |
Lecture:
pdf |
pptx |
|
Approximate global illumination computation |
Lecture:
pdf |
pptx |
Using other peoples' work and presenting it as yours is an infringement of the code of conduct and is held as a reason for failing the class immediately.
Assignments can be handed in only in person during the labs. Failure to meet a given deadline is penalized by 50% of the maximum amount of points obtainable for the respective assignment for each week of delay (i.e. if you miss the deadline by two or more weeks, you will not receive any points for the assigment. Nonetheless, you are still required to hand the assignment in to be able to pass the class). When delivering the assignment, I will assume that you have a complete and detailed knowledge of the code. Not knowing how the code works is an indication of presenting other person's work as yours with the consequence given above.Isotropic point lightDiffuse surfaces | Isotropic point lightGlossy surfaces | Large area lightDiffuse surfaces | Large area lightGlossy surfaces |
Small area lightDiffuse surfaces | Small area lightGlossy surfaces | Const. environment mapDiffuse surfaces | Const. environment mapGlossy surfaces |
Altogether you can get up to 4 points for this assignment. The following table gives a breakdown of the points for the individual parts of the assignment. I recommend working in this very order, always first testing only the diffuse BRDF component and only then moving to the glossy version.
Area light source | 2 points |
Environment map with a constant emission: | 2 points |
Image-based environment map (for directions see PBRT, Section 14.6.5.): | 3 extra points |
Implementation of any anisotropic BRDF model (e.g. anisotropic Ward, anisotropic Ashikmin-Shirley): | 2 extra points |
Extra assignment of your own choice: | max 3 extra points |
The goal is to implement an estimator of direct illumination based on randomized sampling of directions. To get this done, you will need to implement a) sampling of random directions from a uniform distribution on a hemisphere, and b) sampling of random directions proportional to the BRDF (importance sampling). You will then use this functionality to implement the estimator itself. Note that the estimator only works for area light sources and environment maps but not for point lights (the latter cannot be hit by a ray with a randomly chosen direction). Show that an estimator based on BRDF importance sampling is more efficient than an estimator based on uniform hemisphere sampling. Show that the solution converges to the same reference results as in Assignment 1.
You may receive up to 4 points for this assignment.
Uniform hemisphere sampling: | 2 points |
BRDF importance sampling: | 2 points |
Possible extra assignment: | max 3 extra points |
You may receive up to 6 points for this assignment.
Possible extra assignment: | max 3 extra points |
In this assignment, you will build on the infrastructure from the previous assignments to implement the following methods:
Congratulations! By finishing this assignment, you have built a rendering core of state-of-the-art production renderers such as Corona or Arnold.
You may receive up to 8 points for this assignment.
Quasi-Monte Carlo path tracing (e.g. the Halton sequence): | 2 extra points |
Extra assignment of your own choice: | max 3 extra points |
Isotropic point lightDiffuse surfaces | Isotropic point lightGlossy surface | Large area lightDiffuse surfaces | Large area lightGlossy surface |
Small area lightDiffuse surfaces | Small area lightGlossy surface | Const. environment mapDiffuse surfaces | Const. environment mapGlossy surface |
Extend your MIS path tracer such that it supports rendering scenes with a global homogeneous and isotropic participating medium. The medium is ‘global’ in the sense that it fills the entire space. (This makes the task much simpler for you because you don’t need to deal with the complex infrastructure for tracking which medium you are currently in.) The homogeneity refers to the fact that all the optical parameters of the medium are constant in space. Isotropic medium has a constant phase function (1/4π). The medium parameters are:
The reference images that I provide are for the diffuse scene with a small area light (the -s 4 command line parameter) where the path tracer converges relatively quickly. To make the rendering faster, I use a resolution of 300x300 pixels. Still, bear in mind that rendering multiple scattering in a medium using a basic path tracer is a computationally intensive process.
To make the debugging of your code simpler, I have prepared a number of tests:
Direct illuminationNo medium | Full global illuminationNo medium | Direct illumination-onlyPurely absorbing medium | Full global illuminationPurely-absorbing medium |
Direct illumination-onlyScattering medium | Full global illuminationScattering medium |