Giter Site home page Giter Site logo

kallr / vulkanscenegraph Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vsg-dev/vulkanscenegraph

1.0 0.0 0.0 5.43 MB

Vulkan & C++17 based Scene Graph Project

Home Page: http://www.vulkanscenegraph.org

License: MIT License

CMake 1.47% C 0.39% C++ 95.23% Objective-C 0.27% Objective-C++ 2.64%

vulkanscenegraph's Introduction

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.

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
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.
  • osg2vsg utility library that integrates OpenSceneGraph with the VSG to leverages 3d model and image loaders and converts them to VSG equivalents.
  • vsgXchange utility library that adds suport for reading/writing files from 3rd party source. Includes GLSL shader compilation to SPIR-V. When osg2vsg is available Enables loading of any model or image format loadable by the OpenSceneGraph. Provide 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 vsgXchagne 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.

vulkanscenegraph's People

Contributors

robertosfield avatar tomhog avatar vsg-dev avatar sbrkopac avatar laurensvoerman avatar olegded avatar wangii avatar xenonofarcticus avatar gupascal avatar solvingj avatar timoore avatar pol-zzz-ygoniq avatar

Stargazers

kallr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.