A (somewhat) batched, instanced renderer written in OpenGL. Includes ImGui for entity controls, scene loading/saving. A camera system, scene serialisation/deserialisation with TOML, directional and point lighting, and mesh loading with Assimp.
- Batched instanced rendering for efficient drawing
- Entity-component style scene management
- Material system with PBR-like properties
- Point and directional lighting
- Camera system with mouse/keyboard navigation
- Scene serialization with TOML
- ImGui integration for interactive editing
The project uses CMake with presets for easier build configuration.
- CMake 3.19 or newer
- C++20 compatible compiler
- Git
Clone the repository and initialize submodules:
git clone https://github.com/yourusername/gl-gfx.git
cd gl-gfx
git submodule update --init --recursivecmake --preset=debugcmake --build --preset=debug -jcmake --preset=releasecmake --build --preset=release -jAfter building, run the application:
./build-debug/gl-gfx/gl-gfx./build-release/gl-gfx/gl-gfx- Debug Mode: Includes ImGui panels for entity manipulation, scene editing, and performance metrics
- Release Mode: UI panels are disabled for better performance in deployed applications
Note: In a debug build toggle between camera and UI modes with tab key.
