I developed this project for COMP 557 Fundamentals of Computer Graphics course using Java and OpenGL (JOGL).

Perspective Projection Frustums, and Anaglyphs

I began to develop this part by applying related perspective projection matrices, and drawing the frustums for visual debugging.

Three different frustums are drawn for left eye, right and center of these two. Center eye frustum is used regular OpenGL display while right and left eyes are used for anaglyph. OpenGL color mask is used for anaglyph display.

Transform Hierarchy for Animated Characters and a Simple Animation

For drawing the humanoid character and applying hierarchy of transformations I coded DAG nodes, and some joint types.

I created a hinge node joint, to perform a translation within a parent frame, to the location of an articulated joint, along with a rotation about a given axis. In addition to a hinge, I created a ball joint that uses 3 Euler angles to specify the pose (i.e., orientation, again at some fixed position/translation within the parent frame). Finally, I create a free joint for the root of your character so you can modify both translation and rotation of the root.

For displaying the character and its joints, I used basic 3D shapes using gluCylinder, gluSphere etc.

Transform hierarchy is created using the user interface we are given. Then, by applying the hierarchy, I created a key frame animation.

Screenshots

All Three Frustums

All Three Frustums

"Center eye" Frustum

“Center eye” Frustum

Red-Cyan Anaglyph

Red-Cyan Anaglyph

Rest Pose of the Character

Rest Pose of the Character

First Frame of the Animation

First Frame of the Animation