Tesseract-Engine

This repository is created by Adrià Ferrer and Max Garcia in order to work in the "engines" subject. Here we will create our own videogame engine using SDL, OpenGL and ImGui.


Project maintained by Adria-F Hosted on GitHub Pages — Theme by mattgraham

3D Tesseract-Engine

This is a 3D Engine created as the main project of the Engines subject of the Bachelor’s Degree in Video Games by UPC at CITM. We are using different libraries to create our own 3D engine with some basics features and then, for the final delivery, we are a creating one “high-level” system. In this case, it will be skeletal animation.

Contributors:

This engine is created by Adrià Ferrer and Marc Garcia:

Members Tasks:

Both:

Adrià Ferrer:

Marc garcia:

Main Core Sub-systems

Skeletal Animation system

The importing of animations is done with Assimp, from fbx and dae files.

When creating meshes, it reads the bones that it is using and create the corresponding bone resource. It then reads all the animations of the scene and creates the animation resources, storing the corresponding transformations over time of the bones (linked by name).

When assigning a resource to a component animation, it looks for the used bones inside the gameObjects hierarchy and save the UID of the components to later usage.

On the Update, it loops through all the bones and apply the corresponding transformation to the gameObjects, calculating interpolations if activated, as well as animation blending when changing them.

To do the interpolation, it basically does a Lerp operation of the current frame and the next frame based on the percentage of time elapsed. For animation blending, it temporally keeps the new resource that will be assigned and do interpolation between the frame of the current animation and the first frame of the next animation before finally swaping the animations.

Before the render of the mesh, it calculates a morphed version of it, adapting to the linked bones and rendering it instead of the original one.

How does it work

If you want to take a look to our repository click Here.

If you want to download the latest release click here.

Libraries used

License

MIT License

Copyright (c) 2018 Adrià Ferrer and Marc Garcia.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.