CS155 - Fall 01

Z Sweedyk


Project 2: Ray Tracing

Due: 10/18/00 at 11:59PM.
This assignmehnt is adopted with minor modification from Assignment 2 of COS426 at Princeton as taught by Tom Funkhouser.
Read it and still have questions? The answer might be here . If not ask!
Examples are here.

Overview

In this assignment you will implement a basic raytracer.  To allow you to focus on the nuts and bolts of the actual ray tracing, you are provided with a host of data structures for managing the ray traced objects, linear algebra functions (vector and matrix objects and operations), a function for loading scene graph files into a prescribed node tree stucture, a BMP image file importer/exporter (for images and textures, etc), and a couple of supporting data structures for lights, materials, etc.
Additionally a utility is provided to allow you to view your ray-files. This will help you out in debugging your code and ensuring that the images come out looking as they should. The utility is implemented in OpenGL and so does not support recursive ray-casting and transparency, but at least for the first few parts of the assignment your image should agree with the image generated by the viewer.
An overview of the code you will be using can be found here.
An overview of the .ray file syntax can be found here.
Some results at different steps of the process by students at Princeton can be found here.

What You Have to Do

The assignment is worth 20 points. The following is a list of features that you may implement. The number in parentheses corresponds to how many points it is worth.  Options in bold are mandatory. By implementing all the required features, you get 13 points. There are many ways to get more points: It is possible to get more than 20 points. However, after 20 points, each point is divided by 2, and after 22 points, each point is divided by 4.

Getting Started

You should use the code available at /cs/cs155/proj2/src, on the graphics machines, as a starting point for your assignment. We provide you with: After you copy the provided files to your directory, the first thing to do is compile the program.
If you are developing on a Windows NT machine, double click on tracer.dsp and select build from the build menu.

If you are developing on a UNIX machine, type make.

In either case an executable called tracer (or tracer.exe) will be created.

How the Program Works
The program takes in to mandatory arguments, the input (.ray) file name and the output file name (.bmp). It is invoked from the command line with:

    % tracer -src in.ray -dst out.bmp

Additionally, you can specify height, width, recursion depth and contribution limit as follows:

    % tracer -src in.ray -dst out.bmp -width w -height h -rlim r -clim c

What Has Not Been (Completely) Implemented

What to Submit

You should submit: The writeup should be a HTML document called assignment2.html which may include other documents or pictures. It should be brief, describing what you have implemented, what works and what doesn't, how you created the art contest images and/or movies, and any relevent instructions on how to run your interface. Make sure that any linked images/movies are world readable.

Make sure the source code compiles on the graphics machines. workstations. If it doesn't, you will have to attend to a grading session with a TA, and your grade will suffer.

Remember our standing late policy and collaboration policy.
 

Hints

Stay tuned for more hints.
 

Notes

FAQ

Stay tuned for more questions.
 


Last update: 9/24/00 09:53 PM