Skip to content

Logi is light-weight C++ 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.

License

Notifications You must be signed in to change notification settings

UL-FRI-LGM/Logi

Repository files navigation

Logi - Object-oriented Vulkan abstraction framework

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.

Features

  • 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

Requirements for Logi framework:

Requirements for running examples:

When cloning repository clone recursively:

git clone --recursive https://github.com/UL-FRI-LGM/Logi.git

Building

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.

Documentation

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.

Examples

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.

triangle

Loads 2D texture from disk and renders it to quad.

texture

Port of Vulkan tutorial to Logi framework. Note, that mipmapping and multisampling are not implemented.

tutorial_port

Visualisation of 3D fractals. Also Dear ImGUI is used for setting window.

box1
box2
box3
serpinski
sponge
bulb

Nvidia RTX and rasterization implementation of path tracing.

About

Logi is light-weight C++ 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.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published