Candela
Candela copied to clipboard
Pathtraced Realtime Engine
The Candela Engine
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.
Project Status
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.
Current Feature List
- 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)
- 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)
Planned Features
- 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
- GTAO
- Particle system with screenspace lighting
- Voxelization and VXCT
- Screenspace cone tracing
- Constant time parallax mapping
- Raytraced Acoustics (WIP)
Requirements
- 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.
Performance
Runs at around 24 fps on a AMD Vega 11 (desktop) iGPU.
Known Issues
- 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.
Reports
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.
Notes
- Refer
Controls.txtfor engine controls/shortcuts. - Refer
Additional Notes.txtfor additional general info.
License
See LICENSE in the project's root directory.
Credits
See Credits.txt.
Screenshots




















Supporting
If you like this project and would like to show your support, please consider starring the project on github. :)