CS 184: COMPUTER GRAPHICS
First DRAFT: Final Project, Spring 2011
Tentative Submission deadline: Monday, May 9, 2011.
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 opprtunity to pick one additional technique that
you are particularly interested in and study it and pursue it in some
more detail.
Thus, the discussion below of ideas for your project is divided into two
parts: the "core" part that is based on course material
and on the first nine programming assignments, and then the "extension" part.
Your work should be done primarily in the C++ environment used in this
class and 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 familar
with; your project will probably incorporate some elements from each
one:
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.
Surface Decoration
The geometrical elements mentioned above can be provided with colors, textures, bumps, or can be made reflective or transparent.
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 subassemblies.
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.
Interaction
Real-time interaction could be as simple as starting or stopping an animation or controling its speed.
At the other extreme, the mouse-cursor could be used to interactively change the pose of a mannekin,
or to define a target point in a landscape for a creature to walk towards.
Interaction could also be used to control the camera or to change the lighting in the scene.
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 some default OpenGL rendering,
or on a mostly static or slowly varying scene, using more sophisticated rendering techiques.
(Don't try to mix the two).
Example Scene Contents:
Extend the roller-coaster model into a
carneval 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 rollercoaster 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.
An intricate interlocked arrangement of donuts and 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 multisegmented limb that will try to reach a target position controled by the mouse cursor.
Implement a simple spring-mass simulation system, that alows 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 mannekin by grabing 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
A fancier rendering technique that considers global illumination, such as photon mapping or path-tracing.
Some technique to do real-time shadows in a dynamic scene.
Ambient occlusion for proximity shadows.
With respect to the various effects you may want to incorporate into
your project
and the amount of work you should plan to invest for each technique, please consult
the score sheet.
[UPDATED 2011 VERSION WILL BE DONE LATER]
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 10 and 11, 2009, somewhere in Soda Hall (TBD).
-- either on one of our Lab machines or on your laptop.
A sign-up form with 15-minute 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