Realtime Sponza scene with raytraced GI, AO and reflections (model from Intel Graphics Research Sample Library)
This is a cross platform toy engine developed in my spare time that is available on Linux, Windows and MacOS.
Note: The current version (0.2.0) contains many API changes and is still an active WIP
- Vulkan SDK
- C++20 compatible compiler
- CMake
- Vcpkg
Dependencies are managed through vcpkg. You can either install the packages manually or while doing the build configuration with CMake. To use vcpkg together with CMake follow the steps described here.
Run CMake with the option ATLAS_DEMO=ON to include the demo application in the project. For easier use, the vsbuild.bat does exactly that and launches Visual Studio afterwards. After launching the IDE, set AtlasEngineDemo as your target.
It is possible to compile the engine either as a shared or static library. Set the ATLAS_BUILD_SHARED option accordingly. To make the library work with its dependencies, the root CMakeLists.txt of this repository has to be added as a subdirectory. As an entry point to create an application from scratch take a look at the Hello World tutorial. For reference, the source folder contains an empty app header and an empty app source.
- ATLAS_BUILD_SHARED Force project to be build as a shared library
- ATLAS_EXPORT_MAIN Export the main file to be added as executable to parent project (only if main function cannot be found)
- ATLAS_NO_APP Disables the engines main function and app functionality. You have to code the main function and initialize the engine yourself
- ATLAS_IMGUI Enables the ImGui integration. Is enabled by default if the demo project is build.
- ATLAS_ASSIMP Enables the Assimp integration. Is enabled by default.
- ATLAS_HEADLESS Enables the headless support, which means no window needs to be created. Is disabled by default.
- ATLAS_BINDLESS Enables support for bindless resources. Might be problematic on MacOS. Enabled by default.
- ATLAS_TESTS Generates the testing project and allows to target it.
- ATLAS_BUNDLE Allows the applications to be bundled and installed on MacOS. Disabled by default
If you want more information have a look into the Documentation.
The source code is licensed under the MIT license. The copyright notices of the dependencies can be found in the LICENSE.md file in the dependency directory.
Note: The files in the data folder (except the shaders) use a different license.
For a code example have a look at the demo application.
The latest non-release executables can be found in the latest run of the build pipeline. They contain both the demo application and the editor.
Sponza demo scene opened in the editor
Rasterized image using real time global illumination
Path traced scene