top of page

About The Engine

​

Assimp and Own File Format

We use Assimp to read fbx and Dae files. Assimp helps us to get all the information we need from the files, then we sepparate and save it so we can have it in our own format as a resource.

Thanks to assimp we have on our own file formats meshes, skeletons, and animations sepparateds.   

Camera Culling

If you activate the camera culling, situated in the component camera of the root gameobject, you can see how meshes that doesn't collide with the camera frustum won't be drawn.
 

Doing this, we save a lot of time for other processes, because drawing meshes it's expensive and we don't want to draw meshes that we cannot see. 

Mouse Picking

When you click on a geometry a segment is created from the near plane of the camera to the far plane and first we store on a vector all the AABB that had intersected with this segment in order of distance to camera.
Next, we iterate all the geometry intersected and test the segment in local space with all the triangle of the mesh and if it intersects we continue iterating since we find the geometry intersected for the segment and closer to the camera to select it.

Scene Serialization
Resource Manager

Thanks to the resource manager, we use way less memory due to the use of pointers in components to point to their wanted resource. This implementations does that if 3 gameobjects want to use the same mesh or texture, we won't store memory for the 3 textures, we will keep it just once in memory.

In the resource manager we check every 3 seconds if a file in assets has been updated, if it has been updated, the engine will update the resource so it fits the new file.

Structure of GameObjects and Components

Every GameObject int the engine follows a hierarchy strucure with it's parent and childs. The components are avaible to be included in every gameobject so you have free will to use them.

 

All the gameobjects are created with a transform component that holds it's position, rotation and scale. You can also add a mesh to the gameobject, a texture, a camera, and an animation component that will be explained in detail later.

After being working in a scene, you can go to File->Save to have it saved on the Library. Everything you made with gameobjects, components, or engine configuration will be saved so you can continue working on it whenever you want.

bottom of page