This is my second attempt at an OpenGL-based renderer written in C++. I followed the Udemy course Computer Graphics with Modern OpenGL and C++ to get the basics down, including phong lighting, shadowmapping (directional and omnidirectional), models and textures.
I intend to continue working on it from time to time until I feel confident enough with graphics programming principles to move onto a newer API like Vulkan.
assets
: Binary files ingested during runtimeexternal
: External libraries that aren't fetched by CMakesrc/App
: Application-layer stuffsrc/Renderer
: The bulk of the source - OpenGL abstractions, shader code, etcsrc/Util
: Utility functions
Requires Conan 2.0 or higher.
Run conan install . --output-folder=build --build=missing --settings=build_type=Debug
to install dependencies.
Conan will generate CMakeUserPresets.json
, which should inform CMake of the available presets for building the project.
- Encapsulate renderer passes
- Improve shadow rendering
- Implement a post-processing pass with at least one effect (e.g. bloom)
- Improve the asset manager
- Improve asset loaders
- Implement particle system
- Implement debug UI
- Expose performance stats through debug UI
- Implement water rendering