Ajoute la possibilité de rendre une shadow map pour les objets de la scène.
Supprime la dépendance de la texture du depth shader et ajoute une option pour caster les ombres sur les RenderComponents.
Modifie la taille de la fenêtre dans l'imgui.ini
Avoids duplicated ImGui labels in the object list by adding the entity ID to the item label.
Also, corrects ImGui layout issues, preventing window overlap.
Refactors camera input handling for smoother and more intuitive control.
This change introduces a dedicated CameraInput structure and updates the
camera class to use it for movement and rotation based on user input.
It removes the old position class camera related logic and integrates mouse
delta for precise rotation control and scroll wheel for speed adjustments.
Updates ImGui layout to reflect the new size for the docked space.
Addresses minor issues across the engine to improve stability and UI.
- Updates ImGui window size for better rendering
- Adds macro for boolean returns (R_TRUE and R_FALSE)
- Adds missing includes and removes unused code
- Updates shader code to use the new macros and improve readability
Adds functionality to control the target FPS of the engine via the ImGui settings panel.
This includes:
- Adding target FPS variables and accessors in the application class.
- Adding a set_target_fps function to the fps_limiter class.
- Updating the ImGui engine settings panel to include a target FPS setting.
- Modifying the main loop to make use of the fps limiter and the engine target FPS.
Implements dynamic adjustment of screen depth and near clipping plane distances via the ImGui interface.
This allows users to modify the perspective projection in real-time, affecting the rendering of the scene.
The changes involve:
- Adding screen depth and near variables to the application class.
- Exposing these variables in the ImGui settings window.
- Adding functions to the application and d3d classes to update the projection matrix based on new screen depth and near values.
- Updates the sky sphere size to use world scale.
Refactors the Engine Settings window into a tabbed interface, enhancing usability.
Updates the sky sphere implementation to use a configurable distance.
Adjusts ImGui layout for better docking and window arrangement.
Implements a build versioning system to track and display the engine's build information.
- Adds a version header file defining version constants.
- Increments the build number automatically from a configuration file on each build in the binary folder.
- Displays the build version in the ImGui menu bar for easy identification.
- Persists version information by reading/writing to the config file
This provides better tracking and identification of specific engine builds.
Adds scene saving and loading functionality, using a component factory for dynamic component creation and serialization.
This allows users to save and load the state of entities, including their components and textures.
A new component factory is introduced to register and create different component types.
Each component implements serialization and deserialization methods, which are used to store and restore the component's state.
A new .ker scene file format is introduced to serialize entity data and to load it back into memory to restore the scene.
Also adds a DemoScene_V12.9.0.ker file to showcase the engine.
Adds serialization and deserialization functionality to the ECS component system.
This allows components to be saved and loaded, enabling scene persistence.
The IdentityComponent is updated to support serialization/deserialization.
The scene saving logic in scene_manager is updated to serialize components instead of hardcoded values.