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:
 

  1. Extend your image processor to include a paint program.
  2. 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.
  3. Radiosity or photon mapping: (2-3 people)

  4. 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.
     
  5. Non-photorealistic Rendering:

  6. 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!
     
  7. Image Based Rendering:

  8. 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!
     
  9. Interactive modeling:

  10. Build an interactive modeling tool. You may want to support subdivision surfaces or NURBS.