ChromaEngine is a real-time 3D rendering engine written in C++ with OpenGL, featuring a physically-based rendering pipeline, voxel-based global illumination, skeletal animation with state machines, and an ImGui-based scene editor with JSON serialisation.
Built as a personal deep-dive into real-time graphics and engine architecture — as a platform for understanding how renderers work under the hood.
The renderer supports both deferred and forward rendering paths, selecting per-object based on material properties (transparency, special effects). The deferred path handles the majority of opaque PBR geometry; the forward path handles transparency with depth-sorted draw calls.
- Voxel-based Global Illumination (Experimental) — scene geometry is voxelised into a 3D texture and used for cone-traced indirect diffuse and specular. Provides single-bounce GI with dynamic light bleeding and occlusion.
- PBR shading — Cook-Torrance BRDF with metallic/roughness workflow
- Image-Based Lighting (IBL) — HDR environment maps with split-sum approximation for specular
- Screen-Space Reflections (SSR)
- Screen-Space Ambient Occlusion (SSAO)
- Transparent geometry rendering with depth sorting
- Debug draw overlay (AABBs, normals, voxel visualisation)
- GPU skeletal animation — bone transforms uploaded as shader uniforms, skinning computed in vertex shader
- Animation state machine — state graph with transition conditions, blending between clips
- Bipedal third-person character and camera controller as a reference implementation
- Bullet Physics integration — rigid body dynamics, collision detection, character controller
- Physics components attached to scene entities via the component system
- ImGui-based editor — entity selection, component inspection, renderer debug panels
- Scene serialisation — entities and components serialised/deserialised via RapidJSON
- Entity-component architecture — scene objects composed from discrete, typed components
- Multithreaded resource loading — assets loaded off the main thread to avoid stalls
| Area | Technology |
|---|---|
| Language | C++14 |
| Graphics API | OpenGL |
| Windowing | GLFW |
| UI | Dear ImGui |
| Physics | Bullet Physics |
| Serialisation | RapidJSON |
| Build | Visual Studio / Windows |
Development process documented on YouTube.



