Computer Graphics I

4003-570-01 / 4005-761-01 (Fall 2007)

Assignment #3: 3D Drawing / Animation in OpenGL



Date posted: October 10, 2007
Date due: October 24, 2007


Purpose

The purpose of this programming assignemnt is to provide

Task

In this project, you will develop a program which illustrates the use of OpenGL to perform animation using 3D objects.

What you draw is completely up to you, within the constraints of the following requirements:

You will need to use some or all of the following OpenGL/GLUT routines:

Routine(s) Purpose
glutKeyboardFunc
glutMouseFunc
glutMotionFunc
glutPassiveMotionFunc
Callbacks for handling keyboard and mouse input
glutIdleFunc Callback to use for continuous animation
glRotate*
glScale*
glTranslate*
OpenGL transformation routines
glPushMatrix
glPopMatrix
Transformation matrix stack controls

If you recognize user input other than the required keyboard input mentioned above ('1', '2', 'a', 'q'), put instructions for using your (e.g, how to use the mouse to control animation, other keys for selecting more camera positions, etc.) in a file named README, and submit this with your solution.

You may, if you wish, also experiment with lighting, materials and textures, fog, etc., but this is not a requirement for this assignment, as you will be using these in Project 4.

Notes:

  1. You are expected to use at least, EACH of the routines mentioned above..
  2. "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 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.

 

last updated 10/15/07