swr06 / Candela

Pathtraced Realtime Engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.txt for engine controls/shortcuts.
  • Refer Additional Notes.txt for additional general info.

License

See LICENSE in the project's root directory.

Credits

See Credits.txt.

Screenshots


s18



s19



s20



s1



s2



s3



s12



s13



s4



s5



s6



s7



s8



s9



s10



s14



s15



s16



s17



s21


Supporting

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

About

Pathtraced Realtime Engine

License:GNU General Public License v3.0


Languages

Language:C++ 67.6%Language:C 27.7%Language:GLSL 4.4%Language:Objective-C 0.2%Language:CMake 0.1%