Arcane Engine is a real-time, physically based renderer built with OpenGL. A large focus of this project is to implement modern real-time graphical effects, while also making it easy to read and understand. Arcane supports forward and deferred rendering, by using the benefits of each to its advantage.
- Forward + Deferred Rendering
- Physically Based (Fresnel on Everything)
- Cook Torrance Specular BRDF w/ Lambertian Diffuse
- PBR Material System
- Parallax Occlusion Mapping
- Light Probes (IBL)
- Reflection Probes (IBL)
- Linear Lighting (w/ Gamma Correction)
- HDR w/ Reinhard Tonemapper
- Screen Space Ambient Occlusion (SSAO)
- MSAA (Forward Anti-Aliasing)
- FXAA (Deferred Anti-Aliasing)
- Directional, Point, and Spot Light Sources
- Directional Light Shadowmapping
- Skybox Support
- Terrain Material Blending
- Water + Wave Simulation
- Post Processing (Film Grain, Chromatic Aberration, Vignette)
- OpenGL 4.3+
- GLFW Input + Window
- Model Loading via ASSIMP
- ImGUI for UI
- SOIL for Image Loading
- LearnOpenGL
- Game Engine Architecture
- Real-Time Rendering
- GPU Gems
- GPU Pro
If you want to see what I am currently working on check out Arcane's roadmap:
I plan on adding many different features to the forward & deferred renderers. Here are some of the few things I am really looking forward to adding:
- Vulkan Support
- Decals
- Particles
- SSR
- Volumetric Effects
- Reverse Z Buffer
- Virtual Texture System (Terrain)
- Fork it
- Create your feature branch (
git checkout -b new-feature-branch
) - Commit your changes (
git commit -m "A description for your feature"
) - Push to the branch (
git push origin new-feature-branch
) - Create a new Pull Request