This is a WIP personal project started with the goal to learn real-time graphics programming and improve my C++ along the way.
- GPU abstraction
- Texture, Shader, Mesh loading
- Entity Component System
- Materal system for abstracting shader inputs
- Forward renderer with PBR shading
- Shadow maps for directional lights
- Point lights
- Texture tiling
- OpenGL programming
- PBR Theory
- Modern C++ features
- Support shadow mapping for point lights
- Improve input support
- Support transparent materials
- Image Based Lighting
- AA (FXAA, MSAA... tbd)]
- Bloom
- Motion Blur
- SSAO
- SSR
- Contact Shadows
- Improve building experience
- SceneGraph for collision, culling etc
- SceneHierarchy for proper scene organisation
- Assimp texture loading
- Make prettier demo
- Audio handling
Dependencies: glfw, assimp, glm
The easiest way to install these it with vcpkg: https://vcpkg.io/
To build:
mkdir build
cd build
cmake ..
msbuild ALL_BUILD.vcxproj