Vulkan renderer making use of modern Vulkan (version 1.3) features, such as dynamic rendering, buffer device addresses, and descriptor indexing. Core Vulkan concepts (like Swapchain, Pipeline, and Device) are abstracted away in classes to separate their responsibilities cleanly.
The easiest way to build the app is to use one of the CMake presets which can be referenced in the CMakePresets.json
file. Then use:
cmake --workflow --preset <compiler>-<type>where <compiler> can be clang, gcc and windows when on a windows system, and <type> can
be debug or release.
After building, the executable can be found in ./build/debug/src/app/.
| Button | Action |
|---|---|
| Escape | Quit |
| (Numpad) Plus | Move selector to the right |
| (Numpad) Minus | Move selector to the left |
| Left Mouse | When LMB is pressed the model can be rotated around its own axis |
The full list can be viewed in
vcpkg.jsonas well.
- fmt
- glm
- gtest
- ktx
- sdl3
- shader-slang
- spdlog
- tinyobjloader
- tinygltf
- volk
- vulkan-memory-allocator
