Project 2: Ray Tracing

Due: Tuesday, February 23, 2010

Checkpoint 1: Thursday, February 4, 2010; Checkpoint 2: Thursday, February 11, 2010

CSC385 - Computer Graphics


Goal: 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.

This assignment will be graded on a 100 point scale. The checkpoints are worth 5 points each. The late policy applies to the final deadline.

For motivation, a gallery of images created by previous semesters of this class at Harvey Mudd College is maintained here.

Action

The project is broken down into three parts, each taking about a week. At the end of the first and second parts you'll run a series of tests to demonstrate you've implemented the required features. We provide skeleton code, available on blackboard, that includes many support classes to help you get started. We also provide a solution executable to help you test and debug your code.

Part I: Ray Casting (40 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.

Part II: Color (30 pts.): The next step is to compute the color at the intersection point.

Part III: Recursive Ray Casting (25 points): Next you'll extend your system to recursively cast rays

Extensions (min 5 points) : Following are list of possible extensions to your ray tracer. Add at least one optional feature. Notes Deliverables

You should upload a zipped folder on blackboard that contains:

Make sure the source code compiles and runs on the Olin 102 PCs. If it doesn't, I will not be able to grade your submission and it will not receive any points!

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.