Computer Graphics: Project

Due: July 2, 1999

The final project gives you the chance to both apply what you have learned in the course thus far as well as hopefully develop some software that is either useful to you, of interest to you, or possibly both. As part of Assignment 2, you submitted a project proposal. For the project, you are to implement that proposal. You will also be required to submit a short paper (~3 pages) discussing what you implemented, your implementation strategy, and any problems you encountered. As I have said in class, if you are changing your proposal from the one you submitted in Assignment 2, you need to give me an updated proposal (preferably as early as possible).

The marking for the project will be similar to the assignments. The project is worth 40% of your final grade, with 26 of the possible 40 points available being awarded for a complete implementation of your proposal. 8 points will be awarded for extensions to the project that require significant design and implementation. The final 6 points will be awarded for the paper submission and the demonstration.

For example, if you are implementing a ray tracing program, I expect the final product to be able to render at least two primitive types, perform ambient, diffuse, and specular shading, implement shadows, reflection, and refraction. Such an implementation would receive 26 of the 40 marks. Extensions to the ray tracer, such as a rendering acceleration technique, texture mapping, an extended set of primitives, or anti-aliasing would receive extra marks to bring your final grade closer to 34. The final 6 points will be awarded based on the demonstration of your project and the paper you submit. I would strongly suggest that you discuss with me what you are implementing and any extensions that you might add for extra marks, as what you consider to be worth bonus marks I may not.

Project Submission

Submission of the project will be through demonstration and a short paper. The demonstration will be relatively short (15-20 minutes). You should be able to demonstrate all of the features of your system, especially those that you think are worth extra marks. You must make this clear to me at the demonstration and in the paper. If I don't know about the extra work I can't give any extra credit.

Again, I will use a ray tracer as an example. For the demonstration, I would expect at least one, perhaps more, relatively complex images to be shown that the ray tracer generated. The images should demonstrate all of the features of the ray tracer. I will also want to see a simple image that we can render in a few seconds and be able to manipulate it in some form. For example, I should be able to create a scene with a few spheres and a polygon and to change surface properties, such as the index of refraction or the specular reflection coefficient, of a given primitive and generate a new image. For a ray tracer, rendering such a simple scene should be relatively fast (on the order of a few seconds for a small image). I would suggest being able to read some sort of geometry description from an input file for a ray tracer implementation to make the demonstration simple. You should be prepared to demonstrate and explain any extensions to the project. If you have any problems with completing a full implementation of your proposal, you should be prepared to discuss the problems encountered and why they occurred.