Home

Awesome

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

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

1 - Base

Implements Vulkan state holder, utility functions, Dear ImGui layer and base structure for examples.

2 - Hello triangle

Basic example of rendering colored triangle to screen with Logi framework.

triangle

3 - Texture

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

texture

4 - Vulkan tutorial port

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

tutorial_port

5 - Fractals

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

box1
box2
box3
serpinski
sponge
bulb

6 - Path tracing

Nvidia RTX and rasterization implementation of path tracing.