This is my current (work in progress) hobby render engine that I like to work on in my free time. It is written in C++ and uses a custom abstraction layer to access both Vulkan and D3D12 as rendering API. See https://doerriest.github.io/project/vengine2/ for more details.
Among other things, it has these features:
- Static Global Illumination based on "Dynamic Diffuse Global Illumination (DDGI)" by Majercik et al.
- Relightable Reflection Probes
- Volumetric Fog
- TAA, SSAO/GTAO, bloom and automatic exposure.
- Skinned animation with blend trees authored as node graphs
- Lua scripting
- Archetype Entity Component System (ECS)
- Fiber based job system, inspired by "Parallelizing the Naughty Dog Engine Using Fibers" as presented by Christian Gyrling.
- Physics (thanks to PhysX)
- Right click + mouse rotates the camera.
- WASD moves the camera
- Global illumination can be baked by clicking "Scene->Bake Irradiance Volumes" in the menu bar at the top left.
The project comes as a Visual Studio 2019 solution and already includes all code dependencies. The Application should be build as x64. Since project/level saving and loading is not yet properly implemented, the scene and its asset dependencies are currently hardcoded in main.cpp. The assets are not part of this repository, so they must be manually copied into the Game/assets folder from one of the releases.