Jiří Vorba 
Schedule:  Lecture  Wed 12:2013:50 Zoom  Labs  Wed 14:0015:30 Zoom 
Zoom:  Lecture  Labs 
Lecturer:  Jiří Vorba, email: jirka at cgg.mff.cuni.cz 
Organization:  2/2 C + Ex link to SIS 
This lecture was previously given by prof. Jaroslav Křivánek as
Oct 21th (originally Oct 16th)  Assignment 0 due (your renderings) 
Nov 13th  Assignment 1 due 
Nov 27th  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) Wikipedie  Radiometric units 
Light reflection, BRDF 
Lecture:
pdf 
pptx Labs: pdf  pptx 
Scratchpixel  Mathematics of shading Scratchpixel  Introduction to shading Scratchpixel  The Phong model, Reflection models and BRDF Fabrizio Duroni  How to calculate reflection vector 
Monte Carlo methods, Direct illumination calculation 
Lecture:
pdf 
pptx Labs: pdf  pptx 

Monte Carlo methods II, Imagebased 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 

QuasiMonte 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 Kajiyastyle 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.
The goal of the first assignment is to start building infrastructure for global illumination calculation, specifically to implement the evaluation of the BRDF and the classes representing various light sources. These components will be tested on the problem of calculating direct illumination due to point and area light sources using a Monte Carlo estimator based on explicit light source sampling. You will be required to show that your solution converges to this reference solution. (The difference image should only consist of uniform noise. Even better, use colorcoded positive/negative differences in HDRImageTools.)
Isotropic point light Diffuse surfaces 
Isotropic point light Glossy surfaces 
Large area light Diffuse surfaces 
Large area light Glossy surfaces 
Small area light Diffuse surfaces 
Small area light Glossy surfaces 
Const. environment map Diffuse surfaces 
Const. environment map Glossy 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 
Imagebased environment map (for directions see PBRT, Section 14.6.5.):  3 extra points 
Implementation of any anisotropic BRDF model (e.g. anisotropic Ward, anisotropic AshikminShirley):  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 
Use Multiple Importance Sampling with the balance heuristic for direct illumination calculation. Combine estimators implemented in Assignments 1 and 2 (i.e. explicit sampling of positions on the light source and BRDF importance sampling). Show that the solution is more robust than either of the two estimators in the mixture. Show that the solution converges to the same reference results as in Assignments 1 and 2.
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 stateoftheart production renderers such as Corona or Arnold.
You may receive up to 8 points for this assignment.
QuasiMonte Carlo path tracing (e.g. the Halton sequence):  2 extra points 
Extra assignment of your own choice:  max 3 extra points 
Isotropic point light Diffuse surfaces 
Isotropic point light Glossy surface 
Large area light Diffuse surfaces 
Large area light Glossy surface 
Small area light Diffuse surfaces 
Small area light Glossy surface 
Const. environment map Diffuse surfaces 
Const. environment map Glossy 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 illumination No medium 
Full global illumination No medium 
Direct illuminationonly Purely absorbing medium 
Full global illumination Purelyabsorbing medium 
Direct illuminationonly Scattering medium 
Full global illumination Scattering medium 