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. You get 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 host of support classes to help you get started. We also provide a solution executable to help you test and debug your code. A gallery of images created by previous semesters of this class is maintained here for motivation.

What You Have to Do

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.

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.

Part II: Color (35 pts.)

The next step is to compute the color at the intersection point.





Part III: Bells and Whistles: (35 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 on the LAC PC's. If it doesn't, we will not be able to grade your submission and it will not garner 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.

Notes

Links


Last Update: 9/2009