About CS667
Professor:
Steve Marschner, srm@cs.cornell.edu
Office hours: W 3:30–5:30, 5159 Upson
Time and place:
Tuesday and Thursday, 1:25–2:40, 401 Hollister
Overview
This course covers rendering with an emphasis on the physical principles on which accurate rendering is based. Topics will include:
- Radiometry: The basic science of quantifying light as it moves through space.
- Light transport in vacuum: The equations that govern how light moves around in a scene consisting of surfaces with empty space between them, and algorithms based on them. This is the formulation most rendering algorithms use.
- Volumetric light transport: The equations that govern how light moves through a continuous medium that scatters and absorbs light, and algorithms based on them. These methods are used to render atmospheric effects (sky, sunsets, ...), participating media (smoke, clouds, ...), and translucent materials (marble, skin, ...), and for volume rendering.
- Light interaction with materials: How light reflects off of things and how we model that process for graphics. This includes surface scattering models (BRDF models including microfacet models, ...), subsurface scattering models (for translucent materials), phenomenological models, and models for scattering from things like fibers.
- Measuring light reflection: General approaches and laboartory techniques for measuring the appearance of things, and algorithms for processing the resulting data.
- Dynamics of particles: This part isn't really rendering, but it scratches the surface of another major application of physics to computer graphics. We'll look at the equations that govern a system of particles that interact with one another and, as time permits, some of the phenomena (fireworks, cloth, water, ...) that can be simulated this way.
- Special topics: We'll have guest lectures on a few related topics later on in the semester.
Coursework
There will be readings for most lectures, usually handed out as photocopies. The lectures will be fairly closely tied to the readings, so it will be important to read the articles in advance. Scans of the articles will be available from the web site if you didn't get a paper copy for whatever reason.
Homework problems will be handed out individually at most lectures and should be turned in in class within three lectures (one and a half weeks). Some may require you to write small programs.
You will be responsible for presenting one paper to the class. Each presentation will be on a paper relevant to the topic we're covering, and you'll get half the lecture time for that day. I will meet with you to go over your presentation a few days ahead of time.
You'll also be responsible for preparing lecture notes for one of the lectures (being the "scribe" for that lecture). A draft of the notes is due at the next lecture, and the revised final version is due one week from the lecture.
We will have a final project that will take approximately half the semester. Together with one or two partners, you will write a proposal for a significant implementation project related to one of the topics covered in the course. I expect rendering projects will be common, but measurement, dynamics, or other kinds of projects are also welcome. Part of the proposal will be two milestones to be due along the way to the complete system, and the project grade will come 25% from what you hand in for each milestone and 50% from the final product.
Your final grade will be computed as 30% homework, 10% lecture notes, 20% class presentation, and 40% final project.
Steve Marschner (srm@cs.cornell.edu)