About

For my Final Project in CPE 471 with professor Zoe Wood, I wanted to explore rigging and skeletal animation.

Rigging is basically the process of adding a variety of "bones" that are bound to a mesh in order to move around different parts of a model. There are different types of bones that I used such as control bones and IK bones. The control bones are those that you want to move around which move the others. The IK bones help to dictate how these movements happen.

In most modeling programs, this rig allows the artist to create different poses and keyframes that are put together to display an animation. Movements are interpolated between these different poses by the program. Skeletal animation is basically this idea implemented into OpenGL.

Libraries such as ASSIMP (or asset importer) contain the standard set of structures and functions in order to make such an import a little bit easier

Turns out the process of skeletal animation is very difficult and I could not complete it in the given amount of time. However, I did successfully rig the dragon, import parts of the model, and create a cool scene with a skybox, different textured objects, and different light sources (point, directional, and spotlight).

Here is the rig I made (there are about 90 bones)

This rig allows me to rotate and translate almost all the parts of the body. Wings, tail, claws, legs, the head and even the eyes!

References

Tutorials

I used a lot of different tutorials to create this project. The following list includes many of which were vital to my success

ASSIMP Setup and mesh class: https://www.youtube.com/watch?v=ZbnEMM7vwmU

ASSIMP Model Class and Loading A Model: https://www.youtube.com/watch?v=yQx_pMsYqzU

Combining Directional, Point and Spot Lights: https://www.youtube.com/watch?v=yQx_pMsYqzU

Cubemapping/Skybox: https://www.youtube.com/watch?v=_EjsL3B9CRY

How to rig a dragon: https://www.youtube.com/watch?v=f1CI5g2dc2Q

https://learnopengl.com/

http://ogldev.atspace.co.uk/

Libraries Used

ASSIMP - for importing the blender model
SOIL - for loading images used in textures
GLFW, GLM, GLSL