CS 395T - Advanced Image Synthesis Techniques - Syllabus

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.

Prerequisites

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.

Logistics

Personnel

Instructor

Don Fussell
fussell@cs.utexas.edu
ACES 2.120
Office hours: 11:00-12:00 Monday
O: (512) 471-9719
C: (512) 627-7659

TA

Sigh

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
    slides
    Reading
  2. Ray Tracing I: Basic Algorithms
    slides
    Reading: Pharr/Humphries Ch 1-3
  3. Ray Tracing II: Acceleration Techniques
    slides
    Reading: Pharr/Humphries Ch 4
  4. The Light Field
    slides
  5. Radiometry
    slides
    Reading: Pharr/Humphries Ch 5, 13 Radiometry FAQ
  6. Monte Carlo Integration I
    slides
    Reading: Pharr/Humphries Ch 14 Siggraph Course Notes
  7. Monte Carlo Integration II
    slides
    Reading: Pharr/Humphries Ch 15 Eric Veach's Thesis
  8. Orthogonal Functions and Fourier Series
    slides
  9. Fourier Transforms
    slides
  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
  19. Radiosity\br Online slides in preparation from hard copies
  20. 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.

Collaboration

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. If you prefer working in your dorm room or workplace, you are welcome to do the assignments on your own machines. 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.

Rendering competition


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