Skip to content

Latest commit

 

History

History
75 lines (52 loc) · 3.07 KB

README.md

File metadata and controls

75 lines (52 loc) · 3.07 KB

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.