The following 443 words could not be found in the dictionary of 615 words (including 615 LocalSpellingWords) and are highlighted below:

200px   able   about   absolute   academia   Acceleration   account   accounts   Additional   algorithm   algorithms   Algorithms   all   All   allow   allowed   Although   among   an   and   Anisotropic   Apr   Art   artistic   assigned   assignment   Assignment   Assignment1   Assignment2   Assignment3   Assignment4   Assignments   assignments   assumed   at   Attendees   automatically   available   awards   B08   Based   based   Basic   basic   be   below   best   Beyond   Bibliography   both   boxes   broad   buffer   builds   but   by   Caching   calculus   called   Camera   Cameras   campus   candle   capable   Carlo   case   cfm   Check   circumstances   clarify   class   Classic   Clusters   codebase   Collaboration   combined   comments   competition   compiling   completed   computer   Computing   computing   conference   consist   consult   contact   count   Course   course   courses   cover   covered   criteria   cs348b   current   Current   Dates   day   delight   demo   Description   design   develop   Diego   directories   discuss   disk   display   does   Dual   due   During   during   each   edu   encouraged   enhance   enhancing   Equation   etc   Evaluation   example   exams   exceptional   excerpts   exclusive   exert   expected   expenses   experts   exposure   extensions   extra   Field   Film   final   finals   flame   For   for   form   Friday   friends   from   From   Fs   fully   Gates   gemstone   geometric   get   Ghz   given   Glossy   Goals   grace   grade   grades   grading   grand   graphics   Greg   handed   Hardware   held   heroically   hidden   Home   home   hours   however   Humphreys   Ideal   ids   if   If   image   implement   Implementation   Importance   important   impression   in   In   Incompletes   increase   index   industry   information   Information   Instructors   integral   Integration   Investigating   involve   involves   Irradiance   journals   judged   judging   jury   Kauffmann   knowledge   language   last   late   Late   later   Lazy   learning   lecture   Lectures   lectures   Leland   level   Light   Lighting   like   Linux   list   lists   literate   located   machine   machines   made   mailing   map   Mapping   Materials   Matt   Media   members   merit   modeling   Models   Monday   monographs   Monte   Morgan   most   motivate   must   myth   myth1   myth29   named   neither   net   no   non   nor   object   of   On   on   one   online   Only   only   or   other   out   overview   own   page   paid   papers   part   Participants   Participating   particular   partition   Path   pbrt   penalized   people   per   permitted   personal   Pharr   Photon   physically   Physically   pipeline   planned   Please   polygons   posted   practice   Prerequisites   previous   priority   prize   probability   proceedings   processing   produced   Proficiency   programming   project   projects   provide   provides   public   puff   quadrics   quarter   quota   Radiometry   Ray   ray   readings   Readings   real   Realistic   Reconstruction   Reflection   Registered   remaining   Rendering   rendering   reproducing   required   research   results   Room   s2007   S248   S348   S348b   Sampling   San   see   select   Self   self   several   share   shared   should   shtml   siggraph   signal   signing   simple   Simulation   Since   smoke   so   software   solely   Solid   solutions   Some   spr0607   staff   stanford   Stanford   structured   students   Studio   style   successfully   sufficiently   support   surface   Syllabus   system   systems   team   Teams   teams   technical   Techniques   Text   text   textbook   Texture   that   The   the   their   theory   Theory   There   there   these   they   this   This   three   Thu   time   to   To   Topics   Total   tracer   tracing   Tracing   transformations   Translucent   Transport   Tree   trip   Tue   turned   tutorials   two   understand   unforeseeable   up   use   using   value   via   viewing   Visual   Volume   We   web   week   Week   weekday   weekdays   welcome   While   width   will   Windows   wish   with   within   working   writeup   written   Xeon   You   you   your   yourselves  


Course Description

This course provides a broad overview of the theory and practice of rendering. Classic rendering algorithms will be covered, however, most of the course will cover current results in physically-based rendering algorithms.


Attendees should have a working knowledge of computer graphics (at the level of CS248 and CS348A). In particular, you should fully understand the basic 3D display pipeline, viewing and modeling transformations, simple geometric modeling using polygons and quadrics, and hidden surface algorithms like the z-buffer algorithm.

Solid knowledge of integral calculus and basic geometric algorithms is an absolute must. Some exposure to signal processing and probability is also assumed. Proficiency is C++ programming.







Apr 3, 5

The Goals of Rendering

Basic Ray Tracing I: Basic Algorithms


Apr 10, 12

Acceleration Ray Tracing II: Acceleration Techniques



Apr 17, 19

The Light Field

Monte Carlo Integration I


Apr 24, 26

Cameras and Film

Monte Carlo Integration II


May 1, 3

Sampling and Reconstruction

Reflection Models I: BRDFs and Ideal Materials


May 8, 10

Reflection Models II: Glossy Materials



May 15, 17

Light Transport and the Rendering Equation

Monte Carlo Path Tracing


May 22, 24

Irradiance Caching and Photon Mapping

Participating Media and Volume Rendering


May 29, 31

Reflection Models III: Anisotropic and Translucent Materials

Current Topics in Rendering


Text and readings

There is one required text for the course.

  • Matt Pharr and Greg Humphreys
    Physically Based Rendering: From Theory to Implementation
    Morgan-Kauffmann, 2004.

Additional readings will be assigned from research monographs, papers from journals and conference proceedings, and excerpts from conference tutorials. Only papers NOT available online will be handed out in class. Readings for each lecture are available from the Lectures page.

Assignments and grading

The projects for this quarter involve enhancing a working ray tracer. We will use a a ray tracing system called pbrt. This system is a combined C++ codebase and textbook written in a literate programming language.

The first part of the course involves four assignments:

In the last 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. Check out the results produced by previous students.

Evaluation criteria: The first four structured programming assignments will each count as 10% of your grade, and the final programming project will count as 40%. The remaining 20% of your grade will be based on your posted comments on the lectures. There will be no exams in this course.

Collaboration: For the first four 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 (to clarify: an assignment due on Friday and turned in on Monday will use one late day). 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.

Hardware and software

You are welcome and encouraged to do class assignments on your own machines. Although PBRT builds successfully on most systems, the TAs will be able to provide support for compiling PBRT on Linux (on the public Stanford 'myth' machines, see below) and on Windows (via Visual 2003 or 2005). Check out the PBRTInfo page for information about working with the PBRT software.

If you do not wish to develop on a personal machine, you will have access to the 'myth' machines located in Gates B08 (3.2 Ghz DELL Dual-Xeon Linux boxes). The myth machines are named myth1 - myth29. CS348b students are given non-exclusive priority access to these machines.

All students with Leland accounts automatically have accounts on these machines. Home directories on these machines are shared with other Stanford Computing Clusters using AFS. If you do not have a Leland account, consult this ITSS web page. Registered students will get an extra 500MB of disk quota for the quarter (Please contact the course staff if your quota does not increase within 48 hours of signing up for the class).

Rendering competition

In case the delight of learning does not sufficiently motivate you to exert yourselves heroically on the programming assignments, there will also be a rendering competition. During finals week, a judging will be held to select the best rendering made using the ray tracer you have written in the course. While grades for the projects are based solely on "technical merit", the competition will be judged on both "technical merit" and "artistic impression". The jury, to be named later, will consist of computer graphics experts from both industry and academia. There will be several awards and one grand prize - an all-expenses-paid trip to SIGGRAPH 2007 in San Diego. Total value: about $1,000.