Final Project
The final project is (largely) up to you to define.
You may work alone or in a team
(max 3 people) but the end result should be commensurate with the number
of team members. You are strongly encouraged to talk with me about
your ideas before making a decision.
You are required to submit a project proposal and give a brief presentation
to the class. The proposal should describe your project, why and how you
chose it, and how you will approach the problem. You should also include a risk
analysis, weekly milestones, and a bibliography.
(See the web page for a deadline.)
You will be responsible for maintaining a wiki page for your project as
well as giving brief weekly status reports.
You will present your final project on the last day of class. You will also
submit all of your code, images, etc. as well as an html write up.
A good idea for a project is to choose a paper from a recent Siggraph conference
to implement. For other ideas you may want to explore projects assigned
in graphics courses at other schools. (Stanford is a good place to look!)
And you should read the advice about selecting a project from
the following document published at the University of Waterloo :
http://www.student.cs.uwaterloo.ca/~cs488/a5.pdf.
Here are some additional suggestions that may interest you:
-
Extend your image processor to include a paint program.
-
Extend your ray tracer.
There are countless (ok, so they are countable but you know what I
mean) extensions you can make to your ray-tracing project. Do a web
search on ray-tracing for some ideas. In addition to implementing
extensions you must also create some images/movies that demonstrate the
effects.
-
Radiosity or photon mapping: (2-3 people)
Write a program that implements global illumination using radiosity or photon mapping.
For details see http://freespace.virgin.net/hugo.elias/radiosity/radiosity.htm
or http://www.cs.utah.edu/~bes/graphics/radiosity/.
You must also create some images/movies with your program.
-
Non-photorealistic Rendering:
A major focus of computer graphics is to produce photorealistic images.
Is this always a good idea? See David Salesin's (UWash) page
http://www.red3d.com/cwr/npr/
, which describes the objectives of NPR and previous work in the area.
You might try reproducing some of these projects OR think up something
new!
-
Image Based Rendering:
Image based rendering uses photographs (or other other images) in lieu
of 3D models to create new images. See the Siggraph tutorial
http://www.debevec.org/IBMR99/
for details. You might try reproducing some of the work described
OR think up something new!
-
Interactive modeling:
Build an interactive modeling tool. You may want to support subdivision
surfaces or NURBS.