CS295 Realistic Image Synthesis
University of California @ Irvine, Spring 2017
T/Th 3:30pm, ICS 180
Instructor: Shuang Zhao (office hour: by appointment)
Course Information
Contents: This course offers an introduction to physicsbased rendering at the graduate level. Starting from the fundamentals of light transport we will look at formulations of the Rendering Equation (RE) and the Radiative Transfer Equation (RTE), as well as a series of Monte Carlo methods for solving these equations to make pictures. We will look at light reflection from surfaces and scattering in volumes, illumination from luminaires and environments, and diffusion models for translucent materials. We will build working implementations of many of the algorithms we study, and learn how to make sure they are actually working correctly. It is fun to watch integrals and probability distributions transform into photographs of synthetic worlds.
Prerequisites: It is recommended (but not required) to have taken an introductory level course in computer graphics (e.g., CS112). We will rely on calculus, linear algebra and use basic concepts of algorithms and data structures. Students are expected to be familiar with the C++ programming language that is used in the programming assignments.
Announcements
 Mar 1: Course website is up!
 Apr 13: Homework 1 is out and will be due in one week.
 Apr 20: Programming Assignment 1 is out and will be due on May 2.
 May 1: The due date for Programming Assignment 1 is extended to May 4.
 May 5: Programming Assignment 2 is out and will be due in two weeks.
 June 3: The final presentation is scheduled on June 13 at 4:00 pm in ICS 180.
Schedule
date  topic  reading  assignment  

4  Apr  intro (slides)  
6  Apr  radiometry & BRDFs (slides) 
Preisendorfer 1976,
Sec. 1.1 Montes & Ureña 2012 

11  Apr  direct illumination & Monte Carlo integration I (slides)  
13  Apr  Monte Carlo integration II & sampling from PDFs (slides)  HW1 out  
18  Apr  sampling from PDFs II (slides)  Press et al. 1992, Ch. 7  
20  Apr  rendering equation & Monte Carlo path tracing I (slides)  Kajiya 1986  HW1 due, PA1 out 
25  Apr 
discussions on HW1 Monte Carlo path tracing II (slides) 
Veach 1997, Ch. 9  
27  Apr  Monte Carlo path tracing III & operator formulation of light transport (slides, code)  Veach 1997, Ch. 4  
2  May  operator formulation of light transport II (slides)  
4  May  path integral formulation (slides)  Veach 1997, Ch. 8  PA1 due, PA2 out 
9  May  no class  
11  May 
path integral formulation II & light path expressions (slides) hints for implementing path tracing 
Heckbert 1990  
16  May  bidirectional path tracing (slides)  Veach 1997, Ch. 10  
18  May 
bidirectional path tracing II (slides) instructions on final projects 

23  May  student presentation 1  
25  May  student presentation 2  
30  May  student presentation 3  
1  Jun 
refraction & BSDFs (slides) 
Veach 1997, Ch. 5.2  
6  Jun  radiative transfer & volume path tracing (slides)  Marschner 2015  
8  Jun  Metropolis light transport (slides)  Veach 1997, Ch. 11  
13  Jun  final presentations 
Readings
[Heckbert 1990]  Adaptive Radiosity Textures for Bidirectional Ray Tracing 
[Kajiya 1986]  The Rendering Equation 
[Marschner 2015]  Volume Light Transport (Course Notes) 
[Montes & Ureña 2012]  An Overview of BRDF Models 
[Preisendorfer 1976]  Hydrologic Optics 
[Press et al. 1992]  Numerical Recipes in C (Second Edition) 
[Veach 1997]  Robust Monte Carlo Methods for Light Transport Simulation 
Extra Readings
[Debevec et al. 2000]  Acquiring the Reflectance Field of a Human Face 
[Keller 1997]  Instant Radiosity 
[Matusik et al. 2003]  A DataDriven Reflectance Model 
[Ngan et al. 2005]  Experimental Analysis of BRDF Models 
[Lehtinen et al. 2011]  Temporal Light Field Reconstruction for Rendering Distribution Effects 
[Lehtinen et al. 2012]  Reconstructing the Indirect Light Field for Global Illumination 
[Walter et al. 2005]  Lightcuts: a Scalable Approach to Illumination 
[Walter et al. 2007]  Microfacet Models for Refraction through Rough Surfaces 
Assignments
Due date: Thursday, May 4 by 23:59pm
See it here.
Due date: Saturday May 20 by 23:59pm
See it here.
Course Policies
Questions, help, discussion: The instructor is available to answer questions, advise on projects, or just to discuss interesting topics related to the class at office hours and by appointment as needed. For electronic communication we are using Piazza (handy link also at the top of this page).
Academic integrity: We assume the work you hand in is your own, and the results you hand in are generated by your program. You're welcome to read whatever you want to learn what you need to do the work, but we do expect you to build your own implementations of the methods we are studying. If you're ever in doubt, just include a citation in your code or report indicating where some idea came from, whether it be a classmate, a web site, another piece of software, or anything—this always maintains your honesty, whether the source was used in a good way or not. The principle is that an assignment is an academic document, like a journal article. When you turn it in, you are claiming that everything in it is your original idea (or is original to you and your partner, if you're handing in as a pair) unless you cite a source for it.
School can be stressful, and your coursework and other factors can put you under a lot of pressure, but that is never a reason for dishonesty. If you feel you can't complete the work on your own, come talk to the professor, or your advisor, and we can help you figure out what to do. Think before you hand in!
Clearcut cases of dishonesty will result in failing the course.
For more information see UCI's Policy on Academic Honesty.
Collaboration: You are welcome (encouraged, even) to discuss projects among yourselves in general terms. But when it comes to writing up the homeworks or implementing the projects, you need to be working alone (or only with your partner if you are doing a project as a pair). In particular, it's never OK for you to see another student's homework writeup or another team's program code, and certainly never OK to copy parts of one person's or team's writeup, code, or results into another's, even if the general solution was worked out together.