Ray Tracing for Global Illumination
Ray Tracing for Global Illumination
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.
Course Syllabus
This is the syllabus for ECS275, Fall 2012
Sep 21, 2012
Fall 2011 Student Project Presentations
Lecture 27 consists of the fall 2011 student project presentations.
Dec 2, 2011
1 hr 1 min
Video
Hierarchical Radiosity
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.)
Nov 30, 2011
52 min
Video
Ambient Occlusion
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.)
Nov 28, 2011
49 min
Video
Extinction and Scattering Coefficient
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.)
Nov 23, 2011
40 min
Video
Photon Mapping
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.)
Nov 21, 2011
49 min
Video
Bidirectional Path Tracing
Lecture 22 discusses bidirectional path tracing, irradiance caching, and the split-sphere irradiance error estimate.
Nov 18, 2011
48 min
Video
Point-to-Polygon Form Factor
Lecture 21 gives an analytic formula for an unobstructed point-to-polygon form factor. (At 9:43 minutes, "Sum beta*cos(alpha)" should be "(1/2) Sum beta*cos(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.
Nov 16, 2011
48 min
Video
Refraction
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.
Nov 14, 2011
49 min
Video
Global Lines
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").
Nov 7, 2011
50 min
Video
Load more