Awesome
GLFramework
Work in this repository has been discontinued. The project lives on in a new repository, as it has been merged with my planet renderer: https://github.com/Illation/ETEngine
Framework using opengl to later use for personal projects
Acknowledgments
Currently used libraries: SDL2, GLM, DevIL, stb_image, GLAD and Assimp
for library licenses see Library Licenses.md
Structure inspired by the OverlordEngine from Digital Arts and Entertainment
Features:
- Basic Physically Based Rendering
- HighDynamicRange Environment maps
- Image Based Lighting
- Deferred and Forward rendering
- Lights rendered as Light Volumes
- Cascaded Shadow Maps
- Bloom with texture downsampling
- Frustum Culling
- Text Rendering
- Stereoscopic Normal map encoding and decoding for optimal use of G-Buffer
- Buffer Display mode
- Scenegraph Entity Hirachy
- Entity Component System
- Singleton Pattern for things like WINDOW, INPUT, TIME, CAMERA etc
- Observer Pattern for input
- Factory Pattern for Content Managment
- Mesh Filter -> Vertex buffer building depending on material needs
G-Buffer Layout
R Channel | G Channel | B Channel | A Channel |
---|---|---|---|
Position .x | Position .y | Position .z | AO .x |
Normal .x | Normal .y | Metalness.x | Specular .x |
BaseColor.r | BaseColor.g | BaseColor.b | Roughness.x |
Demo Video
Screenshots:
Combined buffer
IBL
Roughness
Spamming point lights
Buffer display mode
Legacy Shader:
For comparison of rendering quality between Legacy (Blinn-Phong Shading) and PBR