Skip to content
Vulkan & C++17 based Scene Graph Project
Branch: master
Clone or download
vsg-dev Merge pull request #68 from vsg-dev/32bitDimensions
Changed the vsg::Data dimension type from size_t to uint32_t
Latest commit 755e871 May 21, 2019

README.md

| View as Website | View as GitHub repository |

VulkanSceneGraph/VkSceneGraph (VSG), currently under development, 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. Our aim is reach a standard usable professional compute and graphics applications in the second half of 2019.

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). Support for iOS will be added in 2019.

Public discussion list/forum

We have created a Vulkan/VkSceneGraph Developer Discussion Group, if you want discuss the project, how to contribute etc. then please join the discussion group.

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.

Command line build instructions:

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

git clone https://github.com/vsg-dev/VulkanSceneGraphPrototype.git
cd VulkanSceneGraphPrototype
cmake .
make -j 8
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:

  • vsgExamples example programs that we are using to test out VSG functionality and illustrates usage.
  • osg2vsg utility library that integrates OpenSceneGraph with the VSG to leverages 3d model and image loaders and converts them to VSG equivalents. Once converted they can be viewed with the osg2vsg application, or loaded and rendered by vsgviewer provided by vsgExamples.

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

You can’t perform that action at this time.