CS 184: COMPUTER GRAPHICS
Final Project, Spring 2009 (Score sheet)
Submission deadline: Wednesday, May 20, 2009.
Aim
The goal of the final project is to integrate and reinforce the various
techniques learned in the first 11 weeks of this course, and also to
give you an opportunity to pick one additional technique that
you are particularly interested in and to study it and pursue it in
some
more detail.
Thus, we will split our discussion of ideas for your project into two
parts: the "core" part that is based on course material covered in depth
and on the first 8 programming assignment, and then the "extension" part.
Your work should be done primarily in the C++ environment used in this
class, and it may, of course, draw heavily on the frameworks created for
the various assignments.
Project Core
There are five key techniques that you should have become familiar
with; your project will probably incorporate some elements from each
one:
1. Modeling Interesting Geometry
Interesting primitives can be made from triangle meshes, B-spline patches, or sweeps;
they can also be procedurally generated, such as a fractal landscape based on
subdivision, or a B-rep terrain specified as a height function.
Interesting composites can be constructed from combinations of spheres, cubes, tori, and/or some of the above primitives.
The various instances could also be placed procedurally in arrays or along a curvy path.
2. Surface Decoration
The geometrical elements mentioned above can be provided with colors, textures, bumps, or can be made reflective or transparent.
3. Animation
The various geometric elements can be hooked together in a hierarchical manner with variable transformations,
so as to achieve kinematic, articulated limbs, or rotating wheels and sub-assemblies.
Alternatively, the geometry of the primitives itself could be
changing:
Individual parts could stretch non-uniformly, or the
control points of
a spline could move.
All these variables can simply be a function of time, or they could be controlled via the mouse or the keyboard.
4. Interaction
Real-time interaction could be as simple as starting or stopping an animation or controlling its speed.
At the other extreme, the mouse-cursor could be used to interactively change the pose of a mannequin,
or to define a target point in a landscape for a creature to walk toward.
Interaction could also be used to control the camera or to change the lighting in the scene.
5. Rendering
In the simplest case you can just call OpenGL with the right parameters to do the rendering for you.
For scenes with lots of reflecting surfaces and transparent objects it is better to use a ray-tracing renderer.
You should make a decision early on whether your project will focus
more on a changing interactive scene with real time OpenGL rendering,
or on a mostly static or slowly varying scene, using more offline rendering techniques.
(Don't try to mix the two).
Example Scene Contents:
Extend the roller-coaster model into a
carnival scene with one or two other rides that may involve intricate
articulated movements of beams with attached seats for the riders.
Create a "spider" or other multi-legged creature that
walks along your roller coaster track.
Some vehicle-creature transformer that can be controlled in its movement and transformation.
A glassy bubble-man composed of kinematically linked ellipsoid
limbs that walks along some fractal terrain -- rendered by raytracing.
An intricate interlocked arrangement of donuts and of higher-genus objects rendered with some attention to global illumination.
Project Extensions
Below are some suggestions of how you might extend your project along one of the five axes outlined above.
If
you strongly wish to try something else, you need to discuss that with
the instructors and obtain permission from Prof. Sequin.
Modeling Interesting Geometry
Implement CC-subdivision surfaces with texture mapping for higher-genus objects.
One ore two examples of geometry files with texture coordinates will be provided.
Surface Decoration
Implement some form of
displacement mapping.
Write your own
inventive shader.
Animation
Add
inverse kinematics to your articulated creature, so it can walk on uneven terrain;
or create some interactive claw on a multi-segmented limb that will try
to reach a target position controlled by the mouse cursor.
Implement a simple
spring-mass simulation system, that allows you to model a quivering piece of jello, or a waving flag.
Interaction
Use the mouse cursor to interactively change the shape of a sweep curve or the form of a subdivision surface.
Use the mouse cursor to interactively manipulate the poses of a mannequin by grabbing any part of its body or its limbs.
Use the mouse and/or various keyboard keys to control the movement of a vehicle or creature.
Rendering
For
offline rendering: A fancier rendering technique that considers
global illumination, such as photon mapping or path-tracing.
For
real-time rendering: Some technique to do
real-time shadows in a dynamic scene, such as shadow volumes,
or to otherwise bring in more non-local information, for example with
ambient occlusion.
To allow you to make an informed decision as how to best invest your time and effort, consult the Score-sheet;
it will give you an idea of how we value various possible
contributions and what combination might give you the best chance for
an A.
Project Deliverables:
-
a working program (obviously);
-
a representative screen shot, by which we can remember your project
(a 500x500pixel jpg should be just fine).
-
a 1-2 page report (500-1000 words) that describes your special
accomplishments
(this write-up and the above picture should remind us of your
project and accomplishments when we do the grading,
and it may also form the basis of description of your
project in any letter of recommendation that you may ask for).
-
a filled out score sheet with your own evaluation of what you have done
(the TA's will collect this score sheet during demo time (see below) and add their own notes on it).
-
a real-time demonstration that the claims on the score sheet are real and working.
Demonstrations of Final Course Project:
On Tuesday and Wednesday, May 19 and 20, 2009, in 330 Soda Hall.
-- either on one of our Lab machines or on your laptop.
A sign-up form with 12-minute interview/demo time slots on either
of the two days will be made available in due time.
Grading
I understand that there are some concerns about how difficult it may be to obtain an A-grade on the project.
The
score sheet should help you to invest the available time wisely so you
can obtain some interesting results with a reasonable amount of effort.
==> We would like to see 40% of the projects obtain a grade A- or better !
- - >
CS
184 HOME < - - - - >
CURRENT
< - -
Page Editor: Carlo H. Séquin