Logi is light-weight Vulkan abstraction framework, which attempts to bridge the gap between previous graphics APIs and Vulkan by making API easier to use while still preserving Vulkan semantics and introducing as little overhead as possible.
- Supports core Vulkan 1.2, Nvidia RTX extension and Khronos ray tracing
- Object-oriented Vulkan abstraction framework
- Correctly enforced construction and destruction order of Vulkan resources
- Integration of the dynamic dispatching of Vulkan functions
- Vulkan configuration structures that use standard library (STL) containers
- Shader reflection functionality (SPIR-V Cross)
- Simplified management of memory allocations and memory bindings (Vulkan Memory Allocator)
Requirements for Logi framework:
- Vulkan SDK 1.2 (Tested up to version 1.2.154.1)
- SPIRV-Cross
- Vulkan Memory Allocator
Requirements for running examples:
When cloning repository clone recursively:
git clone --recursive https://github.com/UL-FRI-LGM/Logi.git
Logi has been tested on Windows and Linux. Use the provided CMakeLists.txt with CMake to generate a build configuration for your favorite IDE or compiler.
Generate documentation with CMake by running doc_doxygen
target.
cmake --build <dir> --target doc_doxygen
For more detailed description of framework, please see Primož Lavrič master thesis or paper Vulkan Abstraction Layer for Large Data Remote Rendering System.
Implements Vulkan state holder, utility functions, Dear ImGui layer and base structure for examples.
Basic example of rendering colored triangle to screen with Logi framework.
Loads 2D texture from disk and renders it to quad.
Port of Vulkan tutorial to Logi framework. Note, that mipmapping and multisampling are not implemented.
Visualisation of 3D fractals. Also Dear ImGUI is used for setting window.
Nvidia RTX and rasterization implementation of path tracing.