VulkanSceneGraph (VSG), is a modern, cross platform, high performance scene graph library built upon Vulkan
VSG 是一个基于vulkan的现代的、跨平台的高性能场景管理库
VSg特性:
- 使用C++17作为c++规范编码,
- 支持 CppCoreGuidelines
- 支持 FOSS Best Practices.
- 使用MIT License开源协议发布,商业友好
- 跨平台
主要链接地址
主页: vulkanscenegraph.org website 提供详细的技术特性说明,示例和文档以及先关资源
- Features - tour of features you’ll find in the VulkanSceneGraph and companion projects.
- Screenshots - screenshots from VulkanSceneGraph examples and 3rd party libraries and applications
- Tutorials - mulit-part tutorial that takes you from introduction to scene graphs to multi-threading and optimization.
- Documentation - doxygen generated reference documentation and links to 3rd party learning materials
- Discussion - Discussion forum hosted on github.
- Services - List of companies connected to the VulkanSceneGraph project that can provide professional services
关联项目
Hosted as part of the vsg-dev:
- vsgXchange reading and writing of 3rd party images and 3d models and HTTP support.
- vsgExamples tests & examples.
- osg2vsg OpenSceneGraph integration library that enables converting of OSG to VSG scene graph and use of OpenSceneGraph loaders.
- vsgImGui ImGui integration enabling UI in graphics window.
- vsgQt Qt integration with VulkanSceneGraph.
- vsgPoints 3d point cloud loading and rendering for VulkanSceneGraph with database paging support and scalability up to billions of points.
- vsgUnity plugin for Unity that provides export to native VulkanSceneGraph binary/ascii format.
- MyFirstVsgApplication simple standalone VSG application that can be used as a template for your own applications.
- vsgFramework template project that uses CMake FetchContent to pull in all the main libraries associated with VulkanSceneGraph and dependencies and builds them together.
Community projects:
- vsgSDL SDL integration with VulkanSceneGraph.
- vsgvr OpenVR integration with VulkanSceneGraph.
- vsgCs 3D Tiles and Cesium ion integration
- vsgEarth osgEarth integration
VSG快速编译
先决条件:
- 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 VULKAN_SDK environment variable to the include/lib directory within it. For Linux it would typically 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 environment variable setup so that CMake’s find_package(Vulkan) can find the VulkanSDK’s location.
命令行编译:
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 the VSG (Unix/Windows/Android/macOS) can be found in the INSTALL.md file.