Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/riari/glint-renderer
Attempt #2 at an OpenGL renderer written in C++
https://github.com/riari/glint-renderer
Last synced: about 2 months ago
JSON representation
Attempt #2 at an OpenGL renderer written in C++
- Host: GitHub
- URL: https://github.com/riari/glint-renderer
- Owner: Riari
- License: mit
- Created: 2024-01-09T21:06:50.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2024-03-11T22:29:33.000Z (10 months ago)
- Last Synced: 2024-10-13T12:27:00.248Z (3 months ago)
- Language: C++
- Homepage:
- Size: 18.7 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Glint Renderer
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++](https://www.udemy.com/course/graphics-with-modern-opengl/learn/) 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.
![Screenshot](content/screenshot.jpg)
## Project structure
* `assets`: Binary files ingested during runtime
* `external`: External libraries that aren't fetched by CMake
* `src/App`: Application-layer stuff
* `src/Renderer`: The bulk of the source - OpenGL abstractions, shader code, etc
* `src/Util`: Utility functions## Setup
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.
## Stretch goals
- [x] 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