../cos526.jpg (39279 bytes)

Advanced Computer Graphics, Fall 2016


Programming Assignment 1: Photon Mapping

Due on Sun, Oct 9 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_assn1.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. 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 to CS dropbox one zip file named programming_assignment1.zip with the following internal directory structure to CS dropbox:

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 with a description of the command/process used to create the results in the caption. 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 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 clean) before submitting.

Please see the course's webpage with submission instructions for more details.


Useful resources




Example solutions from previous years