This project aims to be an attempt at a modern renderer written in C++ with a C interface utilizing Vulkan 1.3 for the bulk of the rendering work.
Modern Renderer uses Vulkan 1.3 to take advantage of features like dynamic rendering, timeline semaphores, and bindless rendering. It can also take advantage of other features like Debug Utilities if they are available on the host machine.
As it stands, all tests are in tests/, the main application used for testing the renderer
is test-app/, and the renderer itself is in renderer/. To use the renderer in your own
project, add this repository as a Git submodule and add the following to your CMakeLists.txt
file.
add_subdirectory(modern-renderer)
# add your executable
target_link_libraries(my-game PRIVATE modern_renderer)Don't forget to recursively clone your submodules, as this project depends on several submodules
in 3rd/. To build tests, use -DBUILD_TESTS=ON, to build the sample app use -DBUILD_SAMPLE_APP=ON.
The option -DBUILD_WITH_COVERAGE=ON can also be used to enable the --coverage flag for the compiler
and linker on Unix systems. This mainly exists for the Github Actions to be able to automatically
grab a coverage number for this readme.
See LICENSE-3RD-PARTY for information on 3rd-party tools and their associated licenses.