COS 526 - Advanced Computer Graphics

Fall 2018

Course home Outline and Lecture Notes Assignments


Assignment 3 - Photon Mapping

Part I due Fri, Dec 14
Part II due Tue, Jan 15


In this assignment you will implement photon mapping, an algorithm for image synthesis with global illumination. Part I of the assignment is to implement a basic system, while part II involves implementing an extension of your choosing, and producing a realistic rendering of some real-world object or scene.




I. Implementing a Photon Mapper

Photon Tracing:

Rendering:

Visualization: (helpful for debugging!)

Getting started:

To get started, download cos526_photon.zip (courtesy Tom Funkhouser). This contains some scenes to get you started, as well as C++ code providing 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.

If you are using a programming language other than C++, feel free to use the provided code as a starting point, and translate to your languange of choice. Also feel free to use any ray-tracing code you may already have as reference when implementing your photon mapper.

Useful resources:

Example solutions from previous years:

Submitting Part I

Part I of this assignment is due Friday, December 14.

Please submit a single .zip file containing your code and a writeup describing your implementation and showcasing some pretty pictures!

The Dropbox link to submit the assignment is here.




II. Implementing Advanced Effects

Implement at least one of the following:

Rendering a realistic object:


Submitting Part II

Part II of this assignment is due on Dean's date, Tuesday, Jan 15. Per university policy, no extensions of this deadline will be available.

Please submit a single .zip file containing your code and a writeup describing your implementation and showcasing some pretty pictures!

The Dropbox link to submit the assignment is here.


Last update 19-Nov-2018 13:57:44
smr at princeton edu