CS 447/647: Image Synthesis

Spring 2003

Time: Tuesday and Thursday, 3:30-4:45
Place: MEC 339
Instructor: Greg Humphreys, humper@cs.virginia.edu
Office Hours: MW 10:00-12:00 in Olsson 216
Teaching Assistant: Nolan Goodnight, ngoodnight@virginia.edu
Office Hours: TTh 1:00-3:00 in Olsson 227 (Graphics Lab)
Students: Who took the class this year?
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.




Hello, World (written, programming) January 23
Height Field Intersection (programming) February 6
Radiometry and Cameras (written) February 13
Camera Simulation (programming) March 11
Monte Carlo Techniques (written) March 20
Image-Based Lighting (programming) April 3
Choose Final Project Topic (written) April 8
Final Project (programming) May 8
Description: 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, with a first prize of a trip for a week to San Diego in July to attend SIGGRAPH 2003.
Prerequisites: 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: Principles of Digital Image Synthesis, by Andrew Glassner.  Both volumes are available at the bookstore.  Make sure to check out the errata before you go down a (metaphorical) rathole.

Physically Based Image Synthesis: Design and Implementation, by Matt Pharr and Greg Humphreys.  This is an unpublished manuscript.  Do not distribute it.



lrt: The rendering system described in Physically Based Image Synthesis: Design and Implementation.

Potentially useful:

Moonlight 3D: free 3D modeling package for Linux

HDRShop: High dynamic range image processing and manipulation

Blue Moon Rendering Tools - a shareware RenderMan-compliant renderer for nearly all platforms (Windows, Linux, SGI, etc). They also have a pretty comprehensive listing of RenderMan related links.

Resources: The Renderman Interface Specification.  For all your RIB writing needs.

Exluna's list of modelers, plugins, and conversion tools.  For getting RIB out of your favorite modeling package.

The RenderMan Repository has a bunch of example RIB files, shaders, and documentation.

The RenderMan FAQ has a bunch of useful information about everything RenderMan.

Ray Tracing News - a newsletter with all sorts of useful code, news, and information on ray tracing.

Internet Raytracing Competition - a good source of inspiration about scene composition and modeling. The entries here really illustrate the artistic potential of ray tracing.

Scribing: Graduate students taking CS647 will take turns scribing lecture notes.  Please see the TA for scheduling immediately.

We expect scribed lecture notes to be of high quality.  They should accurately and eloquently reflect the material covered in class.  They will almost always include equations and diagrams.  Lecture notes will be scribed using LaTeX and the templates provided below.  Diagrams will be drawn as high-quality vector art (i.e., not hand-drawn, and not bitmaps), preferably in Adobe Illustrator.

The completed notes are due one week after the lecture in question.  To get started. download the three files from here, and run LaTeX twice on lect00.tex.  You have to run it twice to get the cross-referencing right.

You will submit your LaTeX file and all associated figures/images necessary to build it to the TA, who will review it for correctness.  The TA reserves the right to send the notes back to you for further editing.

Failing to complete your assigned scribed notes in a timely way is not an option.  If you are unable to do what you signed up for in the time allotted, it is your responsibility to switch with someone else.  If you do this, please let the TA know that you have done so.  The consequences for flaking on a scribing assignment will be dire.

For examples of high-quality scribed lecture notes, check out the notes from this course at Stanford.

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 high-level 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.
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.
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 non-holiday 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).

Schedule: Doing the readings before class will greatly improve your comprehension of the course material.  This cannot be emphasized enough.

Readings that are DIRECTLY related to your assignments are marked in italic boldThe colors mean nothing.

Date Topic Topic Details Readings
January 16 The Goals of Rendering, Course Logistics Details A Framework for Realistic Image Synthesis
January 21 Ray Tracing I: Basic Algorithm Details Essential Ray Tracing Algorithms (handout)
An Improved Illumination Model for Shaded Display
Fast, Minimum-Storage Ray-Triangle Intersection
LRT Chapters 1-3
January 23 Ray Tracing II: Acceleration Details

You've Been Raytracing Too Long If...
A Survey of Ray-Tracing Acceleration Structures (handout)
A Fast Voxel Traversal Algorithm for Ray Tracing
LRT Chapter 4

January 28 Human Vision Details PODIS Chapter 1
January 30 The Light Field I Details Rendering Concepts 2.1-2.4 (handout)
PODIS Chapter 13
Radiometry FAQ
February 4 The Light Field II Details PODIS Chapter 12
February 6 Signals Details PODIS Chapter 4
February 11 Fourier Analysis Details PODIS Chapter 5
February 13 Cameras and Film Details A Realistic Camera Model for Computer Graphics
February 18 Uniform Sampling and Reconstruction Details Reconstruction Filters in Computer Graphics
Generating Antialiased Images at Low Sampling Densities
PODIS Chapter 8
February 20 Supersampling and Stochastic Sampling Details PODIS Chapter 9
Stochastic Sampling in Computer Graphics
February 25 Monte Carlo Techniques I: Basics Details Monte Carlo SIGGRAPH Notes, chapters 2-3
PODIS Chapter 7
February 27 Review Session    
March 4 SPRING BREAK Details Ray-Tracing Jell-O Brand Gelatin
March 6 SPRING BREAK Details  
March 11 Dynamic Range Details Recovering High Dynamic Range Radiance Maps...
Rendering Synthetic Objects Into Real Scenes
March 13 Monte Carlo Techniques II: Random Sampling Strategies Details Distributed Ray Tracing
Distributed Ray Tracing, Theory and Practice
Statistically Optimized Sampling for Distributed Ray Tracing
Spectrally Optimal Sampling for Distribution Ray Tracing
March 18 Monte Carlo Techniques III: Variance Reduction Details Robust Monte Carlo Methods, Chapters 2.5-2.8
Robust Monte Carlo Methods, Chapter 9
March 20 Reflection Models I: BRDF's, Diffuse Details Examples of Fresnel Reflectance
Rendering Concepts 2.5 (handout)
March 25 NO CLASS    
March 27 Reflection Models II: Glossy Details Models of Light Reflection for Synthesized Pictures
Theory for the Off-Specular Reflection... (Handout)
A Reflectance Model for Computer Graphics
PODIS Chapter 15
April 1 Participating Media and Volume Scattering Details Display of Surfaces from Volume Data
Rendering Fur With Three Dimensional Textures
April 3 Participating Media and Volume Scattering II Details Ray Tracing Volume Densities
April 8 The Rendering Equation Details Rendering Concepts 2.6 (handout)
The Rendering Equation
PODIS Chapter 17
April 10 Path Tracing Details Robust Monte Carlo Methods, Chapter 10
April 15 Irradiance Caching and Photon Mapping Details Energy Preserving Non-Linear Filters
A Ray Tracing Solution for Diffuse Interreflection
Global Illumination Using Photon Maps
April 17 Radiosity Details PODIS Chapter 18
April 22 Interactive Raytracing I: Software Details  
April 24 Interactive Raytracing II: Hardware Details  
April 29 Current Research in Rendering Details