CS 563: Advanced Computer Graphics

Assignment 0: Warm-up

Due: January 30, 2007


This assignment was adapted from CS 348B, Stanford University, Spring 2005. This assignment is designed to get you acquainted with pbrt, the physically-based rendering system you will use throughout this course. Your goal should be to get comfortable with the software by rendering several test scenes and reading the beginning chapters of the text book. pbrt has been developed and tested extensively on Linux, MacOS, and Windows. Feel free to use whatever platform you desire, however your assignment code should be portable (so as to ease the grading process).

Step 1

All students should have a personal copy of pbrt, which comes with the text for this class. However, you should download the necessary update patches at the book's website. But please do not distribute this software. The README file on the book's CD provides information about configuring and running pbrt on different platforms. Note that if you are using windows there is a VS2003 solution in the win32 directory.

Step 2

Once you have successfully compiled pbrt, you should try rendering some images. The scenes directory (pbrt/scenes/) contains the scene file: sphere-over-plane.pbrt. From inside the scenes directory type: pbrt spheres-over-plane.pbrt

You will see some messages from pbrt. After a minute or so, the rendering will finish. You will have a new image, spheres.exr, in your directory. Use the imageview binary to view the image, or convert it to a tiff using exrtotiff. Congratulations! You've rendered your first image with pbrt. Imageview is also available on the book's CD. You should see something that looks like this:

Step 3

Open the sphere-over-plane.pbrt scene file in a text editor. You will see a perspective Camera description followed by a Film type. Try reducing the resolution to half the current size. Also, try reducing the Sampler pixelsamples count from 2 to 1, and render the scene again. It will be smaller and have some jaggies, but it will render much faster. This will be useful later in the course; you'll want to do lots of quick and dirty renders for debugging.

Next in sphere-over-plane.pbrt you will find the description of the scene. You should be able to figure out the meaning of the lines that describe the area light source and the sphere shapes. Experiment with changing the colors of materials and lights. Try to build some intuition for how the transformations affect the final image. The CD contains several other scene files. Feel free to experiment with more complex scenes. You can find detailed information about pbrt scene descriptions in appendix B of the text book.

Step 4

You should read through the first three chapters of the pbrt book. As a quick check on what you've read, answer the following questions about pbrt. One line (and sometimes one word) answers for each will suffice.

  1. What physical quantity do we measure along a ray?
  2. What pbrt class is used to describe the reflection of light at a point?
  3. How are vectors and normals treated differently?
  4. What's the difference between Intersect and IntersectP?
  5. What pbrt class is used to describe the intersection between a ray and a shape?  Give a brief description of each field in this class.
  6. What kind of coordinates are used to parameterize a triangle?
  7. The transform class has a reference to matrix. Why are matrices referenced and not stored in the transform class?


Write up the answers to the questions in part 4 as a web page, and mail the URL to me. When submitting assignments, NEVER mail me anything other than a URL. Each assignment will require you to create a small web page. Typically this page will contain answers to any written questions, links to source code, and images.


This homework does not count directly to your course grade except in the sense that you will not pass the course if you don't complete it. You need to get familiar with pbrt in order to be successful in the later assignments.