All Projects → vsg-dev → Vulkanscenegraph

vsg-dev / Vulkanscenegraph

Licence: mit
Vulkan & C++17 based Scene Graph Project

Programming Languages

cpp17
186 projects

Projects that are alternatives of or similar to Vulkanscenegraph

Vulkan Samples
One stop solution for all Vulkan samples
Stars: ✭ 2,009 (+334.85%)
Mutual labels:  vulkan, best-practices
Vulkan Cookbook
Code repository for Vulkan Cookbook by Packt
Stars: ✭ 442 (-4.33%)
Mutual labels:  vulkan
Glove
GLOVE (GL Over Vulkan) is a cross-platform software library that acts as an intermediate layer between an OpenGL application and Vulkan
Stars: ✭ 394 (-14.72%)
Mutual labels:  vulkan
Vulkan best practice for mobile developers
Vulkan best practice for mobile developers
Stars: ✭ 424 (-8.23%)
Mutual labels:  vulkan
Vkvg
Vulkan 2D graphics library
Stars: ✭ 394 (-14.72%)
Mutual labels:  vulkan
Secure Mobile Development
A Collection of Secure Mobile Development Best Practices
Stars: ✭ 427 (-7.58%)
Mutual labels:  best-practices
Solidity Cheatsheet
Cheat sheet and best practices for solidity. Write smart contracts for Ethereum.
Stars: ✭ 384 (-16.88%)
Mutual labels:  best-practices
Flexengine
Cross-platform game engine with Vulkan backend
Stars: ✭ 452 (-2.16%)
Mutual labels:  vulkan
Island
🌋🐎 Project Island is an experimental, hot-reloading Vulkan renderer/proto-engine for Linux, written in C/C++.
Stars: ✭ 441 (-4.55%)
Mutual labels:  vulkan
Fiber2d
Cross-platform 2D Game Engine in pure Swift
Stars: ✭ 415 (-10.17%)
Mutual labels:  vulkan
Vulkandemos
Some simple vulkan examples.
Stars: ✭ 413 (-10.61%)
Mutual labels:  vulkan
Frontend Playbook
The Frontend Playbook
Stars: ✭ 395 (-14.5%)
Mutual labels:  best-practices
Oreon Engine
OpenGL/Vulkan Java 3D Engine
Stars: ✭ 431 (-6.71%)
Mutual labels:  vulkan
Shadergen
Proof-of-concept library for generating HLSL, GLSL, and Metal shader code from C#,
Stars: ✭ 395 (-14.5%)
Mutual labels:  vulkan
Graphicsfuzz
A testing framework for automatically finding and simplifying bugs in graphics shader compilers.
Stars: ✭ 448 (-3.03%)
Mutual labels:  vulkan
Waifu2x Extension Gui
Video, Image and GIF upscale/enlarge(Super-Resolution) and Video frame interpolation. Achieved with Waifu2x, Real-ESRGAN, SRMD, RealSR, Anime4K, RIFE, CAIN, DAIN, and ACNet.
Stars: ✭ 5,463 (+1082.47%)
Mutual labels:  vulkan
Spark Syntax
This is a repo documenting the best practices in PySpark.
Stars: ✭ 412 (-10.82%)
Mutual labels:  best-practices
Clean Code Typescript
Clean Code concepts adapted for TypeScript
Stars: ✭ 5,075 (+998.48%)
Mutual labels:  best-practices
Vim Practice
💘 Vim is awesome! Here is my practice and study log.
Stars: ✭ 452 (-2.16%)
Mutual labels:  best-practices
Rust Skia
Safe Skia Bindings for Rust
Stars: ✭ 450 (-2.6%)
Mutual labels:  vulkan

VulkanSceneGraph

VulkanSceneGraph (VSG), is a modern, cross platform, high performance scene graph library built upon Vulkan graphics/compute API. The software is written in C++17, and follows the CppCoreGuidlines and FOSS Best Practices. The source code is published under the MIT License.

The project aims to bring the performance of Vulkan to the wider developer community by providing a modern, high quality software library that is easy to use and focused on making the development of high performance graphics and compute applications a productive and fun experience.

This repository contains basic documentation, C++ headers and source and CMake build scripts to build the prototype libvsg library. Additional support libraries and examples are provided in separate repositories, links to these are provided below. The software currently builds under Linux, Windows, Android and macOS (using MoltenVk).

Public discussion list/forum

The VulkanSceneGraph Discussion Group vsg-users is the place for project news, discussions of latest developments and any questions you have on how to use the software in your applications. The discussion group can be read by anyone, to post to the group you'll need register.

Useful links in codebase and to associated projects


Quick Guide to building the VSG

Prerequisites:

  • C++17 compliant compiler i.e.. g++ 7.3 or later, Clang 6.0 or later, Visual Studio S2017 or later.
  • Vulkan 1.1 or later.
  • CMake 3.7 or later.

The above dependency versions are known to work so they've been set as the current minimum, it may be possible to build against older versions. If you find success with older versions let us know and we can update the version info.

Download VulkanSDK from LunarG, unpack into local directory and set VUKAN_SDK environemt variable to the include/lib directory within it. For Linux it would tyically be along the lines of:

export VULKAN_SDK_VERSION=1.2.162.1
export VULKAN_SDK=${PWD}/VulkanSDK/${VULKAN_SDK_VERSION}/x86_64

mkdir VulkanSDK
wget https://sdk.lunarg.com/sdk/download/${VULKAN_SDK_VERSION}/linux/vulkansdk-linux-x86_64-${VULKAN_SDK_VERSION}.tar.gz -O VulkanSDK/vulkansdk-linux-x86_64-${VULKAN_SDK_VERSION}.tar.gz
tar zxf VulkanSDK/vulkansdk-linux-x86_64-${VULKAN_SDK_VERSION}.tar.gz -C VulkanSDK/

Once you've downloaded and unpacked the VulkanSDK you'll want to put VULKAN_SDK into your user environemt variable setup so that CMake's find_package(Vulkan) can find the VulkanSDK's location.

Command line build instructions:

To build and install the static libvsg library (.a/.lib) in source:

git clone https://github.com/vsg-dev/VulkanSceneGraph.git
cd VulkanSceneGraph
cmake .
make -j 8
sudo make install

Full details on how to build of the VSG (Unix/Windows/Android/macOS) can be found in the INSTALL.md file.


Examples of the VSG in use

It's still very early days for the project so we don't have many projects that use to the VSG to reference, for our own testing purposes we have two project which may serve as an illustration of how to compile against the VSG and how to use parts of it's API. These projects are:

  • MyFirstVsgApplication simple standalone VSG application that can be used as a template for your own applications.
  • vsgExamples set of example programs that we are using to test out VSG functionality and illustrates usage.
  • vsgXchange utility library that adds suport for reading/writing files from 3rd party source. Includes GLSL shader compilation to SPIR-V. When OpenSceneGraph is available support for all model or image formats supported by the OpenSceneGraph are available. Provides vsgconv utility for converting different file types - mdoels, images, shaders to VSG native formats. The vsgviewer and MyFrstVsgApplication examples also automatically add support for reading files from vsgXchange when they area built with vsgXchange avaulable.
  • vsgUnity is a plugin for the Unity Editor allowing you create export models directly into native VSG format.

Two examples within the vsgExamples project that may be of particular interest are ports of Vulkan tutorials to the VSG API. In each case the VSG version requires less than 1/5th the amount of code to achieve the same functionality.

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].