Computer Graphics
Z Sweedyk


Project 2: Ray Tracing

Due Dates:

This assignment is worth 100 points. See the course web page for the intermediate and final project due dates. Each team gets two late days for this assignment. These days (and any left over from project 1) will be used extend intermediate or final deadlines as needed. Failure to meet any (possibly extended) deadline incurs a cost of 5 points per day until the work is completed. You are strongly urged to work early and often!

Overview

In this assignment you will implement a basic raytracer. The program reads the description of a 3D scene from a ray file and produces a rendered image of that scene. The program works in interactive and batch mode.

We provide skeleton code that includes a host of support classes to help you get started. (Do not change any class interfaces or control.cpp without talking to me first!) We also provide a solution executable to help you test and debug your code.

What You Have to Do

The project is broken down into three parts. At the end of the first and second parts you'll run a series of tests to demonstrate you've implemented the required features. See the course web page for specific deadlines. Features listed in bold are required. (You cannot receive points for extensions unless you've made a good faith effort at implementing the required features.)

Part I: Ray Casting (30 points):


In this part you'll build a simple ray casting system. Your program will cast rays into the scene and find the closest intersecting object; i.e. triangle or sphere. You will also support scale, rotate, and translate modeling transforms. Sample test files are provided with the skeleton code; you should supplement them with your own test files to properly test your implementation.

Part II: Recursion (35 pts.)

The next step is to add recursion and point lights. Note the number of recursive steps is a program parameter that can be set through the interface in the Render menu. The default is 0, which will not reveal any recursive effects other than shadows. You must set the recursive depth to an appropriate value for a given ray file.


Part III: Bells and Whistles: (37 points)

Next you'll add some bells and whistles.

What to Submit

You should upload a zipped floater that contains:

Make sure the source code compiles and runs under Visual studio 8.

Remember our standing late policy and collaboration policy.

You may submit a project worth more than 100 however after 100 points, each point is divided by 2, after 110 points, each points is divided by 4, etc.

Notes

Links


Last Update: Feb. 2013