Computer Graphics I
4003-570-02 / 4005-761-02
Assignment #3: 3D Drawing /
Animation in OpenGL
Date posted:
October 18, 2010
Date due: November 1, 2010 at 11:59 p.m.
Drop box available
at myCourses
Purpose
The purpose of this programming assignment is
to provide
- an
understanding of modeling in 3D,
- an
understanding of the 3D viewing model, particularly OpenGL's version,
- an
understanding of how to create animation
- an
understanding of OpenGL shading capabilities (lighting, materials, textures)
- an understanding of the use of callback
functions in creating interactive graphics.
Task
In this project, you will develop a program
which illustrates the use of OpenGL in creating an animated 3D scene.
What you draw is completely up to you, within the constraints of the following
requirements:
- Your 3D scene must contain at least four objects.
You are free to use the GLUT and/or GLU objects (teapot, sphere, etc. -- See
Chapter 8 in text for some examples) if you wish, or you may define your
own. Your objects must be obviously different in some characteristic (shape,
color, etc.) so that they are easy to spot.
- You must use at least two different, explicit (i.e., not the default)
camera positions. Initially, your program should be using the first camera
position. Using the keyboard type 'c' to switch between camera positions.
- Animate one or more of the objects or object parameters in your scene.
Animation should not begin until the user types an 'a' on the
keyboard. Once animation has begun, you may use other user input to control
it (e.g., dragging the right mouse button to control rotation, etc.).
- Once animation has started, it must continue even without further user
input; this can be a repetitive event (e.g., blinking eyes in a character),
or a series of random changes (e.g., an ice skater randomly skating around a
pond).
- The scene must include between two and four different, explicit (i.e., not
default) lights. Using the keyboard type '1' to turn light 1 on/off,
'2' to turn light 2 on/off etc.
- The scene must include at least two different materials.
- The scene must include at least one texture.
- Recognize the character 'q' as a request to quit the program.
Note that points will be given based on
creativity in the scene generated. You may provide additional input to the program (keystrokes and mouse
motion) but please include a README to indicate how I should
interact with the scene.
Notes:
Useful sample OpenGL applications for OpenGL
can be found
here and
here. Please feel free to use these as a starting point.
What to submit
Please submit an
executable and all files
necessary to build and run your program. This includes source files, header
files, project files, and Makefiles. In
addition, the submission should include a README that indicates the platform on
which your assignment is built, as well as notes on how to build and run your
project.
All submission should be made using mycourses. Look for the folder named
"CG1 Assignment 3" in the dropbox area.
Assessment
Your grade will be based on the complexity of your output
(i.e., how interesting it is, how many objects you have, etc.), your animation,
how your program responds to user input, your program design, and your internal
documentation.
While the primary goal of this project is for you to draw
something using the required elements described above, a portion of
your grade is based (subjectively) on how ``interesting'' (complex, unusual,
etc.) your design is. I realize that not everyone is an accomplished artist;
photorealistic depiction of objects is not a requirement - effort is
more important.