C++ Animation Engine
My biggest project while getting my master’s was building a 3D game/animation engine from scratch in C++.
The objective is to create a lean, fast engine that uses libraries built by myself. This means not using STL containers, except for some offline tools to generate the animation data.
While I was working on this project I wrote some blogs about a few of the concepts.
Features
Full memory system tracking allocations and deletions in a custom heap using a landgrab of Win32 memory
Parent-Child-Sibling tree hierarchy and iterator
Robust, custom Math library and functions: Vectors, Matrices, Quaternions, SLERP, LERP, and more
File system wrapper over the STL system to add better error reporting and file handling
Update and Draw loop logic containing various objects for models, textures, shaders, cameras, and more
Offline converter using the FBX SDK to convert complex models into readable data for our engine
Selective keyframe drop compression using a variable delta
Full 3D model viewer with interactive camera
Model skinning
Animation engine including key frames, blending, controllers
Multiple shader pipeline
Animation, skinning, and blending on the GPU