Skip to main content

Physically Based Rendering:  2017-2018



Schedule C1 (CS&P)Computer Science and Philosophy

Schedule C1Computer Science

Schedule C1Mathematics and Computer Science

Schedule CMSc in Advanced Computer Science



This is an advanced course in computer graphics, which will cover the fundamentals and techniques of physically-based rendering, global illumination and the realistic modelling of materials. Thanks to the exponential increase in computational power available to mainstream computing and gaming machines, the rendering of 3D scenes has now reached plausible results. Such a success can be ascribed to advancements in two complementary directions: increasingly sophisticated global illumination algorithms provided ever more accurate solutions to the physically-based Rendering Equation, while the constant development of new techniques for the modelling and rendering of materials lightened the computational load without compromise on realism.

In this course, the mathematical models behind physically-based rendering will be introduced, with particular focus on the Rendering Equation and on Bi-directional Reflectance Distribution Functions (BRDFs). In the first part of the course, the major global illumination algorithms used to approximate the rendering equation will be covered: Radiosity, Distributed Ray-Tracing, Path Tracing, Bi-directional Path Tracing, Metropolis Light Transport, and Photon Mapping. In the second part of the course, the focus will shift to the realistic modelling and rendering of materials, as well as computational photography techniques. This will include the estimation of BRDFs from real materials, as well as a number of advanced rendering techniques: Displacement Mapping, Parallax Occlusion Mapping, Subsurface Scattering, Shell Mapping, Reflectance Transformation Imaging, Photogrammetry, Structure from Motion and multispectral photography. Finally, the course will provide an overview of the methods used in assessing and validating the realism of rendered scenes, emphasising the distinction between believable and predictive rendering. The course includes four practicals covering two assignments in Javascript.

Learning outcomes

After studying this course, the students will:

  1. understand the fundamentals of physically-based rendering, from material modelling to global illumination;
  2. be able to implement common global illumination algorithms, including Radiosity, Path Tracing, and Photon Mapping;
  3. understand some advanced material rendering techniques, including Displacement Mapping, Parallax Occlusion Mapping, Subsurface Light Transport, Shell Mapping;
  4. understand key algorithms in computational photography literature, including: Reflectance Transformation Imaging, Photogrammetry, Structure from Motion, Multispectral Imaging.
  5. understand the techniques used in the realistic modelling of materials;
  6. be aware of the underlying assumptions and limitations of physically-based rendering, and understand the techniques used to validate the realism of rendered scenes


The course assumes knowledge of the material covered in Computer Graphics and assumes familiarity with Javascript/WebGL. A strong foundation in mathematics is recommended. The course does not make the assumption that the student has taken geometric modelling or animation, but a background in these subjects is a plus.


The course is structured as follows, for a total of 20 lectures:

  • Set 1: Course overview: introduction to the subject and practical matters. (1 lecture)
  • Set 2: Image synthesis validation: believable vs predictive rendering, and methods to assess/validate synthetic images. (1 lecture)
  • Set 3: Physically-based Light and materials: physical modelling of light as wave, rays/beams or particles; physical modelling of materials, using BRDFs and other methods for microstructure. (2 lectures)
  • Set 4: The Rendering Equation: physical derivation of the rendering equation from the modelling of light an materials; solution strategies, including finite-elements methods, path tracing, and sampling/Monte Carlo methods; issues and limitations of the rendering equation, including unbiased vs consistent solution strategies, participating media, and how to handle the mesostructure of materials. (4 lectures)
  • Set 5: Global illumination algorithms: radiosity; distributed ray-tracing, and the implementation of ray-tracing on CPU vs GPU; bidirectional path tracing and Metropolis light transport; photon mapping, and progressive photon mapping. (4 lectures)
  • Set 6: Computational photography: texture acquisition and processing; reflectance transformation imaging, photogrammetry, multispectral imaging, and surface depth hallucination. (4 lectures)
  • Set 7: Advanced Material Modelling: displacement mapping and parallax occlusion mapping; subsurface light transport; shell mapping. (4 lectures)


The following are major topics that will be covered. (Numbers in brackets give an approximation to the number of lecture hours spent on the topic.)

  • History of Rendering (1)
  • Image-synthesis validation (1)
  • The Rendering Equation (4)
  • Material Modelling (6)
  • Advanced Global Illumination Techniques (4)
  • Computational Photography (4)

There is practical work to supplement the lecture material; the course does assume previous experience of practical programming in a high-level language, and simple knowledge of matrices and vectors. The practicals themselves will be in Javascript.

Reading list


Students are formally asked for feedback at the end of the course. Students can also submit feedback at any point here. Feedback received here will go to the Head of Academic Administration, and will be dealt with confidentially when being passed on further. All feedback is welcome.

Taking our courses

This form is not to be used by students studying for a degree in the Department of Computer Science, or for Visiting Students who are registered for Computer Science courses

Other matriculated University of Oxford students who are interested in taking this, or other, courses in the Department of Computer Science, must complete this online form by 17.00 on Friday of 0th week of term in which the course is taught. Late requests, and requests sent by email, will not be considered. All requests must be approved by the relevant Computer Science departmental committee and can only be submitted using this form.