Time:  2:003:15 Tuesday and Thursday  
Place:  MEC 345  
Instructor:  Greg Humphreys, humper@cs.virginia.edu Office Hours: Monday 911 (Olsson 216) 

TA:  Pete Weistroffer, rpw7e@cs.virginia.edu Office Hours: Monday, Wednesday 3:00  4:30 Olsson 227 

Goals:  This course provides a broad overview of the theory and practice of rendering. We will discuss classic rendering algorithms, although most of the course will focus on either fundamentals of image synthesis or current methods for physically based rendering. The final project will be a rendering competition.  
Assignments:  Assignments are due at 11:59:59 PM on the day in question. See the late policy below for some more information about turning in assignments on time. All assignment descriptions will be made available as soon as possible.


Software:  Required:
Potentially useful:


Background:  Students should have a good working knowledge of computer graphics at the level of CS445 or its equivalent. Solid knowledge of integral calculus and some basic geometric algorithms is also a must. It is also expected that students have been exposed to probability at a high school level. We will review key relevant concepts in probability, statistics, and signal processing, but some previous exposure to any or all of these topics will make that material go down a lot smoother.  
Texts:  Physically Based Rendering: From Theory to Implementation, by Matt Pharr and Greg Humphreys  
Grading:  Grading will be based solely on the quality of your programming assignments, written assignments, and final project. There will be no exams. Each assignment (programming and written) will be worth 10% of your grade, and the final project will be worth 50%. The "Hello, World" assignment will not count towards your grade except in the sense that you will not pass the course if you do not complete it.  
Honor Code:  The honor code applies to all work turned in for this course. In particular, all code and documentation should be entirely your own work. You may consult with other students about highlevel design strategies, but you may not copy code or use the structure or organization of another students program. Said another way, you may talk with one another about your programs, but you cannot ever look at another student's code nor let another student look at your own code. Obviously, you may collaborate freely with your project partner.  
Late Policy:  You should strive to complete your assignments on time. To cope with unforeseen circumstances, you will be allowed four days of grace during the semester, to be used as you see fit. After these days are gone, assignments can be turned in one day late for 50% credit. After two days, assignments will not be accepted. No late days may be used for the final project or the final project writeup. Notice that these are calendar days, not weekdays, not class days, and not nonholiday days. The clock is running during weekends, spring break, and while you're partying. Exceptions can be made for sickness and/or family emergencies; see the instructor.
Note in particular that computer downtime is not an excuse for lateness. Computers crash and networks go down; the world is an imperfect place. Be prepared. Do not start assignments at the last minute. Do not forget to leave time for the render to complete (this is especially true of the final project). 
Date  Topics  Readings 

1/18  The Goals of Rendering; Course Logistics  A Framework for Realistic Image Synthesis 
1/23  Ray Tracing I: Basic Algorithm  Essential Ray Tracing Algorithms (handout) An Improved Illumination Model for Shaded Display Fast, MinimumStorage RayTriangle Intersection PBR Chapters 13 
1/25  Ray Tracing II: Acceleration  You've Been Raytracing Too Long If... 
1/30  Human Vision  PODIS Chapter 1 (handout) 
2/1  The Light Field I  Rendering Concepts 2.12.4 (handout) PBR Chapter 5 Radiometry FAQ 
2/6  The Light Field II  
2/8  Signals  
2/13  NO CLASS  
2/15  Fourier Analysis  PBR Chapter 7.1.1 
2/20  Cameras and Film  PBR Chapter 6 
2/22  Uniform Sampling and Reconstruction  Reconstruction Filters in Computer Graphics Generating Antialiased Images at Low Sampling Densities PBR Chapter 7 
2/27  Supersampling and Stochastic Sampling  Stochastic Sampling in Computer Graphics 
3/1  Monte Carlo Techniques I: Basics  Monte Carlo SIGGRAPH Notes, chapters 23 PBR Chapter 14.114.2 
3/6  SPRING BREAK  
3/8  SPRING BREAK  RayTracing JellO Brand Gelatin 
3/13  Monte Carlo Techniques II: Random Sampling Strategies 
Distributed Ray Tracing 
3/15  Monte Carlo Techniques III: Variance Reduction  Robust Monte Carlo Methods, Chapters 2.52.8 Robust Monte Carlo Methods, Chapter 9 PBR Chapter 13,15.115.6 
3/20  Dynamic Range  Recovering High Dynamic Range Radiance Maps... Rendering Synthetic Objects Into Real Scenes PBR Chapter 8 
3/22  Reflection Models I: BRDF's, DIffuse  Examples of Fresnel Reflectance 
3/27  Reflection Models II: Glossy  Models of Light Reflection for Synthesized Pictures Theory for the OffSpecular Reflection... (Handout) A Reflectance Model for Computer Graphics 
3/29  Participating Media and Volume Scattering  Display of Surfaces from Volume Data Hypertexture Rendering Fur With Three Dimensional Textures PBR Chapter 12 
4/3  Participating Media and Volume Scattering II  Ray Tracing Volume Densities PBR Chapter 15.7 
4/5  The Rendering Equation  Rendering Concepts 2.6 (handout) The Rendering Equation PBR Chapter 16.116.2 
4/10  Path Tracing  Robust Monte Carlo Methods, Chapter 10 PBR Chapter 16.3 
4/12  Photon Mapping  Energy Preserving NonLinear Filters A Ray Tracing Solution for Diffuse Interreflection Global Illumination Using Photon Maps PBR Chapter 16.416.5 
4/17  Radiosity  
4/19  Interactive Raytracing I: Software  
4/24  Interactive Raytracing II: Hardware  
4/26  Precomputed Radiance Transport I  Precomputed Radiance Transfer for RealTime Rendering in Dynamic LowFrequency Lighting Environments 
5/1  Precomputed Radiance Transport II 