cos426.jpg (39279 bytes)

Computer Graphics, Fall 00

Thomas Funkhouser


Assignment 2: Ray Tracing

Due: 10/13/00 at 11:59PM.

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 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 /u/cs426/2/, on the MECA 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:

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

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

    % image -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 relavent instructions on how to run your interface.

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

Always remember the late policy and the collaboration policy.
 

Hints

Stay tuned for more hints.
 

Notes

FAQ

Stay tuned for more questions.
 


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