Transform Hierarchy for Animated Characters, Perspective Projection Frustums, and Anaglyphs

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; left eye, right eye and center of these two. The center eye frustum is used regular OpenGL display while the 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