The initial set up of the engine was made individually, using OpenGL and the graphical user interface Dear ImGui . With this version of the engine basic camera movement was programmed and it was possible to load 3D models (GLTF files) . Here you can find this first version in a GitHub repository.
Developed the first version of physically based rendering shaders in the engine using the Phong BRDF (Bidirectional Reflectance Distribution Function) model. For this task I used the software SHADERed to edit the vertex and pixel shaders and have a more visual way of debugging.
Created the timer system in the engine.
Implemented functions to calculate and use the delta time. Also integrated the option to
limit the framerate
and prevent screen tearing using
Vsync .
Used ImGui to create a debugging screen for the Engine timer.
Worked on
importing the animation data
from GLTF files into the engine (timestamps, transforms, nodes, joints...).
Implemented the animation movement using timers (also being able to modify the
animation speed)
and by passing the data to the shaders to apply the
skinning
(deforming the mesh according to bone transformation) of the model.
Also created the
animation component
and its interface in the inspector, where the states can be set up,
the speed can be modified and the animation can be paused/played/restarted.
And finally integrated
blending between animation states, controlling the duration of the transitions.