MINI MAYA

CIS560: Interactive Computer Graphics, PENN Engineering - FALL 2019

C++ / OpenGL

OVERVIEW

This is one of two projects I created as a part of my Computer Graphics course. This individual project involved implementing a basic mini-maya system and interface. The program leverages the Half-edge data structure in order to complete operations efficiently and uses a polar spherical camera.

FEATUREs

  • Select and Move Edges, Vertex, and Joints

  • Change Color of Faces

  • Add Midpoints

  • Triangulate Faces

  • Catmull-Clark Subdivision

  • Face Extrusion

  • OBJ Importing (Mesh)

  • JSON Importing (Skeleton / Joints)

  • Shader-based Skin Deformation: Involved Skinning with Bind Matrices and Joint Weights

Supplemental Features

  • Planarity Test: Triangulates faces that are no longer planar when created new midpoints

  • OBJ Exporting: So you can save and come back to your creation

  • Beveling: A fun extension of face extrusion