COS 426 Computer Graphics - Fall 1997
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
COS 426 Home Projects
|
Project 5 - Rayshade
In this assignment you will implement a basic ray tracer. Use a recursive approach, as suggested in Hearn and Baker, section 14.6 (read sections 14.1, 14.2 and 14.6, and the appropriate lecture notes). Ray tracers can be extremely small programs. Check out Paul Heckbert's ray tracer on the back of a business card. Ray tracers often generate really beautiful pictures; for inspiration, check out The Raytracing Competition. To implement the ray tracer, you will have to intersect rays with a list of primitives. Your program will support at least one kind of primitive: a triangle. In addition, you may optionally handle spheres, cones, cylinders or anything else you can think of. Your ray tracer may use any kind of input file to describe the scene. However, we recommend that you use as a starting point your program from project 4, which reads Inventor models. For output, you program should at least produce a ppm image, although it would be nice if you could display the results of your ray tracer on the screen as well. As with the last project, we are working in teams of two people. Please choose a different partner this time. In all but extreme cases, you will both receive the same grade. In the writeup, please say who implemented what features of the assignment. You should both be familiar (at least at a high level) with all of the parts of the project, even if you each only implement part of it. Required features (20 points total)
Optional features If you support all the features listed above, you will get 20 out of 25 points. To get the remaining credit, you can choose from the laundry list below. If you have ideas for extensions which are not on the list, let us know. These point values are somewhat fuzzy in that you can do an amazing job and get significantly more than the value here. Likewise, you can do a shoddy job and get less. Please note in your writeup if you implement an optional feature (eg. texture mapping) that you had already implemented in a previous project, and if so, what you did differently this time.
Getting started The interface is basically the same as it was for Project 4. A few bug fixes were made, and transparency was added to the material node. The files may be unpacked in your directory by typing: % gunzip project5.tar.gz % tar xvf project5.tar % rm project5.tar The first thing to try is: % make depend % make % raytrace.tcl simple.iv Hints Keep an eye on the hints that will appear during the course of this project, from frequently asked questions, precepts, etc. Credit Same as before. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Last update: Sun Nov 30 18:08:57 EST 1997 |