A modern OpenGL 3D rendering engine. The idea behind it is to be very simple to use: no weird abstraction layers, janky variable names, or massive 2000+ line classes. It's primarily a playground for me to implement (or at least try :P) different graphics programming techniques. Progress has been slow since I'm juggling full-time Univesity studies, work, and trying to be physically active. Eventually, I want to create a "scene-based" engine, where you can load up some model(s), add some fancy lights, and virtually explore it.
bash install-deps-ubuntu.sh
make
cd build/
./MP-APSAnti-aliased wireframe rendering:

(OLD VERSION) CPU-based terrain generation using Perlin noise:

- Assimp model loading.
- Post processing (HDR, vibrance, bloom).
- Parallel AABB frustum culling.
- XML engine configuration.
- Support for
#includedirectives in shaders. - Shader-based wireframe overlay.
- Physically-based rendering.
- Variance shadow mapping (soft shadows).
- Depth-buffer optimization (https://un5h17xwgkzupmm5x310c9gpc4.julianrbryant.com/2012/11/maximizing-depth-buffer-range-and.html).
- Shadow volumes (https://umn0mtkzgkyvzbntrct0j18gc5tg.julianrbryant.com/volumetric-lights/, https://un5gmtkzgjqjmfnmg3fvfgr9.julianrbryant.com/BenjaminGlatzel/volumetric-lighting-for-many-lights-in-lords-of-the-fallen).
- Per-material array textures:
- Re-implementing Forward+.
- More post-processing effects:
- Switch to sampler objects.
- Some kind of GUI.
- Atmospheric scattering: (https://github.com/korgan00/TFG-Atmospheric-Scattering) or (https://un5mjz9j1akujqegv78wpvjg1cf0.julianrbryant.com/precomputed_atmospheric_scattering/)
- CDLOD Terrain.
- Planetary rendering.
- Global illumination (Cascaded Light Propagation Volumes).
- Assimp.
- GLM.
- GLAD.
- GLFW.
- stb_image.
- pugixml.
- GLM AABB wrapper: (https://github.com/iauns/cpm-glm-aabb).
- Fast Extraction of Viewing Frustum Planes from the World-View-Projection Matrix (https://umn0mtkzgjwveek1wv2xy9q51e3m2.julianrbryant.com/postgrads/alexis/planeExtraction.pdf). Gribb, Hartman (2001).
- Forward+: Bringing Deferred Lighting to the Next Level (https://un5r7panxv1wwdhwzbxbet7uafgdp0jbh65v1dr.julianrbryant.com/2015/04/forward_plus.pdf). Harada, McKee, Yang (2012).
- Solid Wireframe (https://umn22j18xhuv2en6wjzx0qgchqg96hdyqpqep.julianrbryant.com/SDK/10/direct3d/Source/SolidWireframe/Doc/SolidWireframe.pdf). Nvidia (2007).
- Physically Based Rendering (https://un5hru497bruqa8.julianrbryant.com/#!PBR/IBL/Specular-IBL)
- Variance Shadow Mapping (https://umn22j18xhuv2en6wjzx0qgchqg96hdyqpqep.julianrbryant.com/SDK/10.5/direct3d/Source/VarianceShadowMapping/Doc/VarianceShadowMapping.pdf)
- Tessellated Terrain Rendering with Dynamic LOD (https://umn2d91awvzhjhj3.julianrbryant.com/2015/01/tessellated-terrain/)





