All Projects → azhirnov → Framegraph

azhirnov / Framegraph

Licence: bsd-2-clause
vulkan abstraction layer that represent frame as a task graph

Programming Languages

cplusplus
227 projects
cpp17
186 projects

Projects that are alternatives of or similar to Framegraph

MoonMotion
Moon Motion Toolkit - Free and open source toolkit for VR locomotion
Stars: ✭ 38 (-86.71%)
Mutual labels:  vr
TJUCam
SteamVR Compatible Motion Controller with ESP8266 and Raspberry Pi
Stars: ✭ 29 (-89.86%)
Mutual labels:  vr
Pumex
Vulkan library oriented on high speed rendering
Stars: ✭ 259 (-9.44%)
Mutual labels:  vulkan-api
ACLS-Shader
Unity HLSL VR ready "Toony/PBR hybrid" avatar shader for VRCHAT and similar platforms. Built with game industry standard toony appearances and adaptive to vrchat render constraints and reactive to common incorrect user generated map lighting.
Stars: ✭ 20 (-93.01%)
Mutual labels:  vr
makma
Makma is a deferred Vulkan renderer written in C++.
Stars: ✭ 77 (-73.08%)
Mutual labels:  vulkan-api
lodr
Live-reload wrapper for Lovr
Stars: ✭ 23 (-91.96%)
Mutual labels:  vr
Yggdrasil-Legacy
Experimental Vulkan Renderer / Game Engine written in C++20.
Stars: ✭ 20 (-93.01%)
Mutual labels:  vulkan-api
Liblava
🌋 A modern and easy-to-use library for the Vulkan API
Stars: ✭ 275 (-3.85%)
Mutual labels:  vulkan-api
SFE-Engine
A real time renderer based on Vulkan(LWJGL).
Stars: ✭ 20 (-93.01%)
Mutual labels:  vulkan-api
Viveinpututility Unity
A toolkit that helps developing/prototyping VR apps.
Stars: ✭ 256 (-10.49%)
Mutual labels:  vr
pipano-sdk-ios
A Panorama SDK for iOS
Stars: ✭ 20 (-93.01%)
Mutual labels:  vr
UE4-Plugin-OffAxis
This plugin provides a fishtank-VR via a so-called OffAxisProjection by modifying the projection matrix using a custom ULocalPlayer
Stars: ✭ 59 (-79.37%)
Mutual labels:  vr
3dio Js
JavaScript toolkit for interior apps
Stars: ✭ 255 (-10.84%)
Mutual labels:  vr
CodeAndQuestsEveryDay
Regular research on the Quest for developers.
Stars: ✭ 27 (-90.56%)
Mutual labels:  vr
Diligentcore
Core functionality of Diligent Engine
Stars: ✭ 263 (-8.04%)
Mutual labels:  vulkan-api
ARKitPlusVR
Make VR with SceneKit & ARKit.
Stars: ✭ 83 (-70.98%)
Mutual labels:  vr
openvr-input-recorder
🔴 Record and ▶️ playback OpenVR device tracking/input data
Stars: ✭ 20 (-93.01%)
Mutual labels:  vr
Openvslam
OpenVSLAM: A Versatile Visual SLAM Framework
Stars: ✭ 2,945 (+929.72%)
Mutual labels:  vr
Virocore
ViroCore cross-platform AR/VR renderer
Stars: ✭ 270 (-5.59%)
Mutual labels:  vr
Openxr Sdk
Generated headers and sources for OpenXR loader.
Stars: ✭ 256 (-10.49%)
Mutual labels:  vr

Build Status Build Status Build Status Discord Chat

FrameGraph

FrameGraph simplifies prototyping on Vulkan and can be used as a base layer for the graphics engine. FrameGraph designed for maximum performance but not at the expense of usability. API developed as simple as possible, it hides all synchronizations, memory allocations and all this boilerplate code that is needed to get Vulkan work. Builtin validations together with Vulkan validation layers allow you to quickly find and fix errors.

Features

  • multithreaded command buffer building and submission.
  • simple API, hides memory allocation, host<->device transfers, synchronizations.
  • shader debugging and profiling.
  • supports RTX extensions.
  • supports async compute and async transfer queues.
  • all render tasks are stateless.

Used vulkan features and extensions:

  • push constants
  • dynamic buffer offset
  • specialization constants
  • VK_EXT_debug_utils
  • VK_KHR_dedicated_allocation
  • VK_KHR_sampler_mirror_clamp_to_edge
  • VK_EXT_descriptor_indexing
  • VK_NV_mesh_shader
  • VK_NV_shading_rate_image
  • VK_NV_ray_tracing
  • VK_KHR_shader_clock

Samples

FrameGraph-Samples

Documentation

Suported Platforms

  • Windows (with MSVC 2017, 2019)
  • Linux (with GCC 8.2, Clang 9)
  • Android (Clang)

Building

Generate project with CMake and build.
Required C++17 standard support and CMake 3.10.
Reequired internet connection to download external dependencies.

Dependencies:
Vulkan-headers or Vulkan SDK - required.
VulkanMemoryAllocator - required.
glfw or SDL2 - required for framework and some tests.
glslang - required for glsl compiler.
SPIRV-Tools, SPIRV-Headers and Python 3.7 - (optional) for spirv optimization.
GLSL-Trace - (optional) for shader debugging.
lodepng - (optional) for screenshots.
graphviz - (optional) for graph visualization.
Assimp - (optional) for Scene extension.
DevIL - (optional) for Scene extension.
imgui - (optional) for UI extension.
OpenVR - (optional) for VR support.
GLM - (optional) for Scene extension.
ffmpeg - (optional) for video recording.

References

  1. FrameGraph in Frostbite.
  2. Handles vs pointers
  3. Porting engine to vulkan.
  4. FrameGraph from Ubisoft
  5. RenderGraph from EA
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].