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:
- You will create an object model that has at least two
articulation points (i.e. joints) with one-degree of rotational freedom
each.
- 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.
- 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.
- 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).
- All animation of motion should be smooth and independent of screen refresh rate.
- 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.