Computer Graphics I
4003-570-02 / 4005-761-02
Assignment #3: 3D Drawing /
Animation in OpenGL
Date posted:
October 13, 2008
Date due: October 27, 2008 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 model must contain at least three 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; use the keyboard 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 enters a specific character 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 at least two different, explicit (i.e., not
default) lights.
- 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.
Notes that points will be given based on
creativity in the scene generated. Input to the program (keystrokes and mouse
motion) is up to you, but please include a README to indicate how I should
interact with the scene.
Notes:
- "Best Of" selections from previous quarters are
available for your viewing from the page
http://www.cs.rit.edu/~ncs/Courses/570.shtml. You'll need to copy the
executable into your Unix account to run them. I will select the "best" of
your submittals to add to the web page and for use in future demonstrations.
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.
Platform specific OpenGL libraries should exist on each platform that supports
OpenGL. (In most cases, these libraries are supplied by the manufacturer of the
graphics card present on your system). If you are planning on using the Suns for
your project, please make use of the following
header.mak file to see the proper libraries
that need to be linked and the locations of those libraries. (Note that if you
use makemake or gmakemake, the contents of this file will be incorporated into
the Makefile produced).
All submission should be made using mycourses. Look for the folder named
"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.