CS 395T - Advanced Image Synthesis Techniques - Syllabus and Schedule

This course provides an overview of the theory and practice of photorealistic rendering. The primary aim of the course is to cover the principles and techniques of physically-based rendering algorithms, although classic rendering algorithms will be covered as needed.


You are expected to have a working knowledge of computer graphics at the level of an introductory course in the topics such as CS384G or CS354. You should fully understand the OpenGL style basic rendering pipeline, including viewing and modeling transformations, Gouraud and Phong lighting, simple geometric modeling using polygons and quadrics, and hidden surface algorithms like the z-buffer algorithm. You should also be familiar with principles of color spaces, and with the basic recursive ray tracing algorithm.

Facility in the use of integral calculus, linear algebra, and basic geometric algorithms is expected, along with some exposure to signal processing and probability.




Don Fussell
ACES 2.120
Office hours: MW 12:30-1:30 (subject to change)
O: (512) 471-9719
C: (512) 627-7659


Jacob Menashe
Office: TBD
Office hours: TBD

Required Text

Physically Based Rendering: From Theory to Implementation
Matt Pharr and Greg Humphreys
Morgan-Kauffmann, 2004.

Additional readings will be assigned from the research literature and will normally be available on the web.

Topics and Schedule

  1. The Goals of Rendering
  2. Ray Tracing I: Basic Algorithms
    Reading: Pharr/Humphries Ch 1-3
    Projective geometry slides
    More projective geometry, different application
    Algebraic surface animations
    More algebraic surfaces
    Still more
  3. Ray Tracing II: Acceleration Techniques
    Reading: Pharr/Humphries Ch 4
  4. Radiometry
    Reading: Pharr/Humphries Ch 5, 13 Radiometry FAQ
  5. The Light Field
  6. Monte Carlo Integration I
    Reading: Pharr/Humphries Ch 14 Siggraph Course Notes
  7. Monte Carlo Integration II
    Reading: Pharr/Humphries Ch 15 Eric Veach's Thesis
  8. Orthogonal Functions and Fourier Series
  9. Fourier Transforms
  10. Sampling and Reconstruction: Filtering, Aliasing and Antialiasing slides
    Reading: Pharr/Humphries Ch 7
  11. Cameras and Film slides
    Reading: Pharr/Humphries Ch 6,8 Kolb, Mitchell, and Hanrahan
  12. Reflection Models I: BRDFs, Diffuse slides
    Reading: Pharr/Humphries Ch 9
  13. Reflection Models II: Glossy slides
    Reading: Pharr/Humphries Ch 10
  14. Texture and Materials (Multiple Importance Sampling, Phases of the Moon) slides
    Reading: Pharr/Humphries Ch 11
  15. Participating Media and Volumetric Scattering slides
    Reading: Pharr/Humphries Ch 12, 17
  16. Light Transport and the Rendering Equation slides
    Reading: Pharr/Humphries Ch 16
  17. Monte Carlo Path Tracing slides
  18. Irradiance Caching and Photon Maps slides
  19. Current Topics in Rendering slides

All lecture slides will be placed online before each class. Please try to do the readings in advance.

Assignments and Grading

The projects for this quarter involve enhancing a working ray tracing system called pbrt (Physically-based Ray Tracer). This system is a combined C++ codebase and textbook written in a literate programming language.

The first part of the course involves a getting started assignment and three main programming assignments. The current plan is for the following three assignments:

In the second part of the course you will enhance your system so that it is capable of reproducing an image of a real object, for example, a gemstone, a puff of smoke, a candle flame, etc.

Evaluation criteria

The first three programming assignments are each worth 20% of your grade, and the last programming project is worth 40%. There will be no exams.


For the first three programming projects, you may discuss the assignment with friends, but you are expected to implement your own solutions. On the last programming project, you are permitted (and encouraged) to form teams of two people and partition your planned extensions among the team members. Teams may discuss their project with other teams, but may not share code.

Late assignments

Since each assignment builds on the previous one, it is important that assignments be completed on time. To allow for unforeseeable circumstances, you will be allowed three weekdays of grace during the quarter. Beyond this, late assignments will be penalized by 10% per weekday that they are late. On the last programming project, neither the demo nor the writeup may be late. Incompletes in this course are given only in exceptional circumstances.

Lab Facilities

Pbrt will be installed on the public Linux machines in Taylor Hall and in Painter Hall. You are welcome to do the assignments on your own machines if you prefer. However, it is your responsibility to ensure that your code runs on the public Linux machines before being turned in. I will run your code on those machines for evaluation and will expect it to work there.

Acknowledgement: Many thanks to Pat Hanrahan for providing materials from his Stanford course CS 348B, on which this course is modeled.

Last modified: 08/23/11 by Don Fussell fussell@cs.utexas.edu