Ray Tracing for Global Illumination: Recent Episodes

Nelson Max

This course covers techniques for realistic computer graphics rendering that consider global illumination, that is, light from light sources bouncing multiple times on object surfaces in the scene before illuminating the surface being shaded. The radiosity method is briefly discussed, but most of the course is spent on recursive stochastic ray tracing, which uses Monte Carlo integration to estimate the multidimensional integrals involved in global illumination. Topics covered include direct and indirect illumination, penumbras from area light sources, anti-aliasing, irradiance caching, and bidirectional path tracing. These lectures are in conjunction with the textbook "Advanced Global Illumination," second edition by Philip Dutre, Philippe Bekaert and Kavita Bala.

View Details

This is the syllabus for ECS275, Fall 2012

View Details

Lecture 27 consists of the fall 2011 student project presentations.

View Details

Lecture 26 discusses multiple reflections in precomputed radiance transfer and hierarchical radiosity, with subdivision oracles and the push-pull method for shooting and gathering radiosity. (At 12 minutes, the factor of y_i(Psi_k) is not needed in the integral, since the integral for computing t_i^0 already involves that factor. The word "octtree" should be replaced many times by "quadtree", since we are doing quadtree subdivision.)

View Details

Lecture 25 discusses ambient occlusion, precomputed radiance transfer, spherical harmonics, and computing the coefficients of the spherical harmonics series by ray tracing. (At 24:24 minutes, the relation should read z^2 = 1 - x^2 - y^2, not z^2 = 1 - x^2 + y^2.)

View Details

Lecture 24 defines the extinction coefficient, scattering coefficient and albedo, derives the differential equation for radiance transport in a participating medium, shows how to create a photon map for a participating medium and how to integrate its inscattering along a viewing ray. (At 12 minutes "d omega" should be "d omega' ". The end of the bidirectional path tracing discussion should have included a factor of the transparency along the dotted line.)

View Details

Lecture 23 describes photon mapping on surfaces and extinction as well as transparency in participating media. (At 37:40 minutes, the fraction that gets through should be 1 - sigma_t*ds, not 1 - sigma_t.)

View Details

Lecture 22 discusses bidirectional path tracing, irradiance caching, and the split-sphere irradiance error estimate.

View Details

Lecture 21 gives an analytic formula for an unobstructed point-to-polygon form factor. (At 9:43 minutes, "Sum betacos(alpha)" should be "(1/2) Sum betacos(alpha)" since the area of a sector of a unit circle is half the subtended angle. In the formula for cos(alpha), V1 cross V2 must be normalized, because it it not a unit vector, even if V1 and V2 are.) Multipass global illumination methods are explained in terms of L D S G and E notation.

View Details

Lecture 20 gives the derivation of Snell's law for the refracted direction and discusses Fresnel's law for refracted energy fraction. (The rest of the energy goes to transmission). It also discusses pros and cons of the radiosity and path tracing methods and combining the best of both methods using final gathering as well as the Nusselt analog for unobstructed point to polygon form factor.

View Details

Lecture 19 explains the hemicube estimates for patch-to-patch form factors for "Galerkin" piecewise constant radiosity and for vertex-to-vertex form factors for "point collocation" piecewise linear radiosity. It also continues the proof that the global lines form factor computation is correct. (At 26:48 minutes, "cos(theta) = length/1" should be "cos(theta) = 1/length" and at 40:40 minutes, the sound track saying "is two at these other vertices" should say "is zero at these other vertices").

View Details

Lecture 18 describes putting direct illumination and indirect illumination together for recursive path tracing and completes the proof that the proposed method for sampling global lines gives the correct line density.

View Details

Lecture 17 discusses the progressive power shooting method for solving for radiosity and form factor estimates using local lines and global lines. (Stop at 35 minutes and 25 seconds, since the derivation from there on is done better in Lecture 19).

View Details

Lecture 16 discusses the linear equations for radiosity that come from using the Finite Element method and also the definition and properties of form factors, the convergence of the Neumann series for successive bounces and Jacobi and Gauss-Siedel iteration methods for solving the radiosity linear equations.

View Details

Lecture 15 discusses "backwards" path tracing from lights, the duality between flux propagating from lights and importance propagating from sensors as well as computing primary viewing rays from a camera with a lens (for depth of field effects).

View Details

Lecture 14 discusses the visual appearance of the results of different anti-aliasing filtering strategies and a method for reusing ray-traced samples in wide-filter Monte-Carlo integration. (The lower right corner of the large table should be "smoothly antialiased line", rather than "moves smoothly".)

View Details

Lecture 13 discusses signal processing, aliasing and anti-aliasing, Fourier transforms, convolution and the Shannon sampling theorem.

View Details

Lecture 12 discusses indirect illumination recursion and it's sampling strategies. (Routine computeRadiance finished at 26 minutes should end with "return radiance;" and also "elseif (u < q2)" at 45 minutes should read just "else".)

View Details

Lecture 11 discusses Russian roulette, direct illumination with shadow penumbra effects, and sampling environmental illumination.

View Details

Lecture 10 discusses sampling for Phong glossy reflection, variants of the Rendering Equation, and path tracing. (The words "incident" and "reflection" are reversed at the top of the board visible from 26 through 29 minutes.)

View Details

Lecture 9 discusses the Distributed Ray Tracing paper from the SIGGRAPH 1984 conference including motion blur, depth of field, anti-aliasing, shadow penumbras and glossy reflection. It analyzes a variance upper bound for jittered anti-aliasing sampling of a single high contrast edge and also gives methods for precomputing the diffuse and Phong specular reflection of an environment map.

View Details

Lecture 8 discusses sampling random variables using the cumulative distribution function or rejection sampling, and variance reduction using non-uniform sampling, or stratified sampling. (Start at 1 minute 50 seconds.)

View Details

Lecture 7 describes the concept of a continuous probability density, the cumulative distribution, independent random variables, expectation and variance of the mean of independent trials and Monte-Carlo integration.

View Details

Lecture 6 describes the rendering equation, in angular and area integrals and gives an introduction to discrete probability, mean and variance.

View Details

Lecture 5 describes the Cook-Torrance BRDF and gives some details not in the original paper on this BRDF.

View Details

Lecture 4 describes the bidirectional reflectance distribution function (BRDF) and Lambert's law as well as how to compute surface normals and viewing rays.

View Details

Lecture 3 gives the definition of radiant flux, radiance and solid angle as well as how to compute them.

View Details

Lecture 2 gives methods for intersecting rays with spheres, triangles, and convex polygons. (Please start at 1 minute 44 seconds.)

View Details

Lecture 1 discusses "Whitted" style recursive ray tracing. (Please start at 15 minutes 30 seconds.)