../cos526.jpg (39279 bytes)

Advanced Computer Graphics, Fall 2012


Programming Assignment 3: Photon Mapping

Due on Sun, Dec 2 at 11:59PM


Overview

In this assignment you will implement photon mapping, an algorithm for image synthesis with global illumination. The following is a list of features that you may implement -- the features in bold face are required, and the others are optional. In addition to implementing these features, you should submit an image generated by your program to the art contest. The winner will get extra credit and a note on the course web page.

Phase 1: Photon Tracing:

Phase 2: Rendering:

Options:

To get started, you can use the code in (cos526_assn3.zip). This C++ code provides the basic infrastructre for reading scenes, computing ray intersections, etc. It also provides a simple program (scnview) for viewing scenes using OpenGL. You will probably need to augment this program to include command line arguments of your own to turn on and off specific features and/or provide parameters for specific applications.

The skeleton code is able to read scenes in a simple scene file format, This format was created to provide the features required by this assignment -- a simple scene graph along with materials, lights, and cameras. We provide several scenes in the input subdirectory of the zip file that you can use to test basic functionality of your program, and some sample scenes will be provided in this scene repository. However, these scenes are not enough to test all the interesting lighting effects your program should demonstrate. So, you should design your own scenes for testing/demonstration and include them in your writeup file.


What to Submit

You should submit one zip file named PUID_cos526_assn3.zip (i.e. funk_cos526_assn3.zip) with the following internal directory structure:

writeup.html should be an HTML document demonstrating the effects of the features you have implemented. There should be one "section" per feature. with a brief description of what you implemented and some images showing your results. For all features, it is sufficient to include images of your input and output -- you do not have to submit the mesh files. Wherever possible, you should show results for at least two sets of inputs.

The src directory should have all code required to compile and link your program (including the files provided with the assignment), along with a Visual Studio Solution file and a Makefile to rebuild the code.

Please submit images in JPEG format to save space. Also, to further save space, please remove binaries and backup files from the src directory (i.e., run make distclean (under Mac OS) and execute "Clean Solution" on the "Build menu" in MS Visual Studio) before submitting.


Useful resources