Final Project
Your final project will be due during the exam period for this course,
Thursday, December 16 at 2PM. You will be expected to give a brief
presentation and demo of your project. In addition, you must submit your
source code and related files including a write up. Your project must
compile and run on the graphics machine or my laptop in order for me to
grade it. Be sure you test this out in advance of the due date.
In addition to the final deadline, you are required to submit a project
proposal by Monday, November 22 during class. This proposal should describe
your project and include a bibliography citing relevant work as well as
detailed milestones spaced about a week apart.
(Your grade for the final project will be based, in part, on how well you
stick to your schedule.) You will give a brief presentation on
Monday, November 22, describing your project and (hopefully) giving a
demo of your initial prototype.
Be careful to design your project with several intermediate goals
so you have SOMETHING to turn in by the due date.
You should also 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.
For ideas on a project, you may want to explore
projects assigned in graphics courses at other universities. (Stanford is
a good place to look.)
Or you may consider implementing an algorithm presented at a recent Siggraph conference; I have proceedings in my office.
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.
-
Virtual Mudd:
This is an advanced modeling project. You should create a "room"
in the Libra complex that a user can explore interactively. For example
you may want to build the "robotics lab." The lab might include
some of our very own robots from project 3. It might include Zach
Dodd's head! The goal is not to realistically model the actual space!
Rather to make a room around a course theme
that is fun, interesting to explore, visually appealing,
and that incorporate a variety of advanced modeling techniques beyond those
you used in project 3.
-
Radiosity or photon mapping:
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!
-
Interactive Modeler:
Build an interactive program to help a user build a model that incorporates
one or more of the following:
a.) Metaballs: see http://www.cs.wpi.edu/~matt/courses/cs563/talks/metaballs.html
b.) Particle Systems: see http://www.intel.com/ial/3dsoftware/particle.htm
and http://www-2.cs.cmu.edu/~baraff/sigcourse/notesc.pdf
for info
c.) Surface Subdivision: see http://www.cs.princeton.edu/courses/archive/fall01/cs426/assignments/assn3/assn3.html
d.)
e.) Fractals. (See the warnings in the Waterloo notes about this
one.)
You should use your program to create some interesting models.
-
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!
-
Video Game
Yes, you may write a video game. But you should follow the guidelines
of the video game assignment in Stanford' graphics course. http://graphics.stanford.edu/courses/cs248-01/proj3.htm.