Candela is an experimental engine that prioritizes both performance and visuals. The primary objective of the engine was to serve as a tool for enhancing my knowledge and understanding of light transport, filtering, physically-based rendering, volumetrics and intersection algorithms. The engine is entirely built from scratch using C++17 and the modern OpenGL programmable pipeline.
Since I have to primarily focus on school, development on the engine will be slow. However, I have no intentions of abandoning it as of yet. It is also worth noting that I also work on other projects and shaders in my free time.
- Model loading, abstracted program/application API
- Procedural Normal Map Generation (Using sobel operator)
- Custom SAH BVH Constructor and Ray Intersection API
- Support for Stack/Stackless BVH traversal
- Physically based direct lighting (Cook Torrance BRDF)
- Cascaded Shadow Mapping + PCF Filtering
- Screenspace shadowing
- Ray traced Diffuse Global illumination
- Screenspace global illumination
- Infinite bounce GI using irradiance probes
- Ray traced Ambient Occlusion (RTAO)
- Hemispherical Shadow Maps for a sky shadowing approximation
- Hybrid Specular GI (SSR + World Space RT)
- Ground Truth Screen Space Ambient Occlusion (GTAO)
- SVGF + Specialized Specular Denoiser
- Temporal Anti Aliasing + Upscaling
- Fast Approximate Anti Aliasing (Based on FXAA 3.11 by Nvidia)
- Spatial Image Upscaling (Custom CAS + AMD FSR EASU)
- Volumetrics (Direct + Indirect light contribution)
- Upscaling (Temporal/Spatial)
- Culling (Frustum/Face Culling)
- HDR Environment Map Support
- Post Processing Pipeline (Bloom, DoF, Purkinje Effect, Grain, Chromatic Aberration, Color Dithering, ACES Tonemapping, Procedural Lens Flare etc.)
- Basic Editor Features + Debug Views
- Transparent/Refractive Material Support (Weighted Blended OIT, Stochastic OIT, Screenspace Refractions and Screenspace caustics)
- Realistic sky rendering (Volumetric atmosphere and clouds)
- Antileak algorithm for the probe system
- ReStir GI
- Fast Transparent Shadows
- IES lights
- LTC for area lighting
- RSM
- Bent Normals
- Particle system with screenspace lighting
- Voxelization and VXCT
- Screenspace cone tracing
- Constant time parallax mapping
- Raytraced Acoustics (WIP)
- Robust light precomputation system
- GPU : One with >= 2 GB of vRAM that supports OpenGL 4.5 and the bindless texture OpenGL extension (ARB_bindless_texture).
- CPU : A decent 64 bit CPU should be fine.
- RAM : >= 4 GB should be fine.
- Volumetrics and infinite bounce GI prone to light leaking.
- Temporal/Spatial artifacts (usually in the form of noise, ghosting or temporal lag) on aggressive movement or sudden lighting changes.
If you find a bug and want to report it, you could contact me by email/discord (see profile page) or alternatively, open a GitHub issue.
- Refer
Controls.txtfor engine controls/shortcuts. - Refer
Additional Notes.txtfor additional general info.
See LICENSE in the project's root directory.
Do not claim my work as your own
See Credits.txt.
If you like this project and would like to show your support, please consider starring the project on github. :)


























