CS 970-Spring 2006 Assignment 1

Due date: Feb 6th (in 2 weeks)

FAQ

For this assignment, you will implement a ray tracer. Your program should be able to render the following kinds of objects:

  1. Spheres
  2. Triangles
  3. Lights (not rendered explicitly)
Objects will have, associated with them, the following information:
  1. Surface type:
  2. Color. This further specifies the surface properties, and will depend on the surface type:
  3. Transformation: This will be a 4x4 matrix, which expresses the affine transformation that converts a canonical (standard) object into the object in the scene.
  4. Bounding Volume: This can be a box or a more simply a sphere that contains the object.

Pseudocode

Your ray tracer should implement the pseudocode described here: NOTE! this pseudocode differs from the code given in the sample code described below, because the sample code does not include secondary rays. Read it carefully.

Base Code

I prepared a working ray caster (ray tracer without secondary rays). Working code is available at: The full specifications for this ray tracer are on last term's CS 770/870 assignment 4 web page. This includes:

Matrix Decomposition

To find the bounding sphere of a transformed sphere, you may want to get some information about a given transformation matrix.

Test Scene

Having trouble debugging your code? Try this test scene .
Alejo Hausner, Dept of Computer Science, University of New Hampshire
Last modified: Tue Feb 7 16:57:08 EST 2006