EECE 478: Assignment #2


Due Date: Feb 7, 5pm.
Value: 8% of course grade.
Late Penalty: down 20% per day. No credit after 5 days.

This programming assignment will involve the modeling of a moving, articulated object. Try to think of something that will be useful for your game project (although it need not be). It must demonstrate an understanding of the basic modeling transformations, especially translation and rotation as they apply to the creation of articulated motion.

You will be required to write the program from scratch using OpenGL and GLUT (or the SDL) to the following specifications:
  1. You will create an object model that has at least two articulation points (i.e. joints) with one-degree of rotational freedom each.
  2. You will also create a limited area "ground plane" that should consist of a grid of squares (drawn either as a grid of lines or set of squares). The grid must be at least 8x8.
  3. Your object must be able to travel around on top of the ground plane under control of either the keyboard or mouse. It must not be able to leave the area delineated by the ground plane.
  4. Each of the joints must be movable with the angle of articulation controlled from the keyboard. You must ensure that as each joint rotates, the object cannot self-intersect (hint: limit the range of joint angles).
  5. All animation of motion should be smooth and independent of screen refresh rate.
  6. The camera is at a fixed position above the ground plane and away from the object and should automatically rotate to keep the object centered in the screen (hint: use gluLookAt).

The reason that this is considered to be an assignment about transformations is that it is simplest to model this system by modeling the object and its limbs in the coordinate system of the frame created by the position and orientation of the previous stage in the linkage.

The assignment submission will be by email (to eece478 AT gmail.com with cc: to leei+478 AT ece.ubc.ca), with a short (max. 80 lines) description of the means of accomplishing the requirements, the operating system you used, and the complete source code for your working program attached. It will be compiled and executed to test its functionality.