All Projects → martty → vuk

martty / vuk

Licence: MIT License
vuk - A rendergraph-based abstraction for Vulkan

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
GLSL
2045 projects

Projects that are alternatives of or similar to vuk

rend3
Easy to use, customizable, efficient 3D renderer library built on wgpu.
Stars: ✭ 546 (+226.95%)
Mutual labels:  vulkan, rendergraph
vulkan
Vulkan bindings for Nim
Stars: ✭ 15 (-91.02%)
Mutual labels:  vulkan
ZinoEngineV1
A custom Vulkan 3D game engine in C++ 3d that I make for fun.
Stars: ✭ 17 (-89.82%)
Mutual labels:  vulkan
pygfx
Like ThreeJS but for Python and based on wgpu
Stars: ✭ 72 (-56.89%)
Mutual labels:  vulkan
tokonoma
Graphics related projects/prototypes/playground (Vulkan, C++17)
Stars: ✭ 23 (-86.23%)
Mutual labels:  vulkan
osre
An open source render engine
Stars: ✭ 95 (-43.11%)
Mutual labels:  vulkan
netzhaut
Web Browser Engine Written In C99.
Stars: ✭ 20 (-88.02%)
Mutual labels:  vulkan
nanovg vulkan
Antialiased 2D vector drawing library on top of OpenGL for UI and visualizations. (added Vulkan support)
Stars: ✭ 26 (-84.43%)
Mutual labels:  vulkan
Xacor
Experimental Game Engine
Stars: ✭ 24 (-85.63%)
Mutual labels:  vulkan
YALCT
Yet Another Live Coding Tool - Powered by Veldrid and elbow grease
Stars: ✭ 25 (-85.03%)
Mutual labels:  vulkan
gl vk bk3dthreaded
Vulkan sample rendering 3D with 'worker-threads'
Stars: ✭ 80 (-52.1%)
Mutual labels:  vulkan
Vortex2D
Real-time fluid simulation engine running on GPU with Vulkan
Stars: ✭ 91 (-45.51%)
Mutual labels:  vulkan
gearoenix
Cross-platform C++ 3D game engine.
Stars: ✭ 33 (-80.24%)
Mutual labels:  vulkan
ncnn-android-squeezenet
The squeezenet image classification android example
Stars: ✭ 100 (-40.12%)
Mutual labels:  vulkan
hms-computer-graphics-demo
This is the demo project of CGKit(Short for computer graphics kit). CGKit is a vulkan-based rendering framework, which is designed to improve performance of vulkan devices, especially for Android platform. This project will show you how to load textures, models, add pbr effects and render with vulkan.
Stars: ✭ 19 (-88.62%)
Mutual labels:  vulkan
magma
Abstraction layer to facilitate usage of Khronos Vulkan API
Stars: ✭ 23 (-86.23%)
Mutual labels:  vulkan
VulkanResources
A list of resources for learning Vulkan
Stars: ✭ 50 (-70.06%)
Mutual labels:  vulkan
solo
Small C++ game engine with Lua scripting
Stars: ✭ 26 (-84.43%)
Mutual labels:  vulkan
demos
OpenGL and Vulkan graphics experiments and samples
Stars: ✭ 34 (-79.64%)
Mutual labels:  vulkan
Vulkan.jl
Simplify usage of Vulkan in Julia
Stars: ✭ 77 (-53.89%)
Mutual labels:  vulkan

vuk logo

vuk - A rendergraph-based abstraction for Vulkan

Discord Server Documentation

Quick Start

  1. Grab the vuk repository
  2. Compile the examples
  3. Run the example browser and get a feel for the library
git clone http://github.com/martty/vuk
cd vuk
git submodule init
git submodule update --recursive
mkdir build
cd build
mkdir debug
cd debug
cmake ../.. -G Ninja
cmake --build .
./vuk_all_examples

(if building with a multi-config generator, do not make the debug folder)

Overview of using vuk

  1. Initialize your window(s) and Vulkan device
  2. Create a vuk::Context object
  3. Each frame:
  4. Each frame, prepare high level description of your rendering, in the form of vuk::Pass
  5. Bind concrete resources as inputs and outputs
  6. Bind managed resources (temporary resources used by the rendergraph)
  7. Record the execution your rendergraph into a command buffer
  8. Submit and present

What does vuk do

  • Automatically deduces renderpasses, subpasses and framebuffers
    • with all the synchronization handled for you
    • including buffers
    • images
    • and rendertargets.
    • for multiple queues
    • using fine grained synchronization when possible (events)
  • Automatically transitions images into proper layouts
    • for renderpasses
    • and commands outside of renderpasses (eg. blitting).
  • Automates pipeline creation with
    • optionally compiling your shaders at runtime using shaderc
    • pipeline layouts and
    • descriptor set layouts
    • by reflecting your shaders
    • and deducing parameters based on renderpass and framebuffer.
  • Automates resource binding with hashmaps, reducing descriptor set allocations and updates.
  • Handles temporary allocations for a frame
  • Handles long-term allocations with RAII handles
  • Comes with lots of sugar to simplify common operations, but still exposing the full Vulkan interface:
    • Matching viewport/scissor dimensions to attachment sizes
    • Simplified vertex format specification
    • Blend presets
    • Directly writable mapped UBOs
    • Automatic management of multisampling
  • Helps debugging by naming the internal resources
  • dear imgui integration code
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].