vulkanizer
vulkanizer copied to clipboard
Advanced Vulkan rendering engine prototype
About
Rendering engine prototype made with Vulkan 1.3
. Code is written using a simpler C++ coding style. Project is written for the C++11
standard and x64
system. Currently the code is tested only on Windows
, using MSVC
(Visual Studio) and MINGW
(Visual Studio Code) compilers. Linux
is not completely supported at the moment, but it should be easy to port, since all third party libraries are cross platform.
Features
- Vulkan meta loading using volk
- Window handling using glfw
- Mesh loading using fast_obj
- Mesh optimizations using meshoptimizer
- Single mesh rendering
- NVidia Mesh Shading Pipeline support, with traditional pipeline still supported
- Meshlet cone culling
- Programmable vertex fetching with 12 byte vertices
- Depth buffering with reversed-Z
- Automatic descriptor set layout creation with SPIRV-Reflect
- Vulkan's dynamic rendering, push descriptors and descriptor update templates support
- CPU profiling using easy_profiler
- GPU profiling using query timestamps and pipeline statistics
- Custom Dear ImGui Vulkan backend with Performance and Settings windows
- In-flight frames
Installation
This project uses CMake as a build tool. Since the project is built using Vulkan
, the latest Vulkan SDK is required.
License
Distributed under the MIT License. See LICENSE
for more information.