WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

libvultra is the core library of Vultra, which can be used for rapidly creating graphics or game prototypes without the VultraEditor. (WIP)

License

Notifications You must be signed in to change notification settings

zzxzzk115/libvultra

Repository files navigation

libvultra

libvultra is the core library of Vultra, which can be used for rapidly creating graphics or game prototypes without the VultraEditor.

CodeFactor

(This project is under early development and WIP.)

Features

  • Modern Vulkan using Vulkan-Hpp, Vulkan-Memory-Allocator-Hpp and more
  • FrameGraph (RenderGraph) based rendering system
  • OpenXR support (now focusing on VR only, not AR)
  • Modern SDL using SDL3
  • ImGui docking + multiview

Showcase

Example: GLTF Viewer

Example: GLTF Viewer

[Example: Sponza with Meshlet Debug View]

[Example: Sponza]

Build Instructions

Prerequisites:

  • Git
  • XMake
  • Vulkan SDK
  • Visual Studio with MSVC if Windows
  • GCC or Clang if Linux/Unix
  • XCode with GCC or Apple Clang if macOS

Step-by-Step:

  • Install XMake by following this.

  • Clone the project:

    git clone --recursive https://github.com/zzxzzk115/libvultra.git
  • Build the project:

    cd libvultra
    git submodule update --init
    xmake -vD
  • Run the programs:

    xmake run

    or run a specific program:

    xmake run example-window
    xmake run example-rhi-triangle
    xmake run example-imgui
    xmake run example-framegraph-triangle
    xmake run example-openxr-triangle
    xmake run example-openxr-sponza
    xmake run example-raytracing-triangle
    xmake run example-raytracing-cornell-box
    xmake run example-rayquery
    xmake run example-meshshading-triangle
    xmake run example-gltf-viewer
    xmake run example-sponza

    Tips: For OpenXR programs, you may need to set the XR_RUNTIME_JSON environment variable. For debugging OpenXR programs without headsets, you may need Meta XR Simulator on Windows and macOS. On Linux, you can use Monado as the simulator.

TODO List

  • Wayland support
  • More powerful texture loader that supports KTX, KTX2, DDS and more
    • KTX
    • KTX2
    • DDS
    • EXR
  • ECS-based scene management with EnTT
  • Raytracing Pipeline
  • Mesh Shading Pipeline
  • Resource Pipeline
  • Lua or C# Scripting System
  • (Maybe?) AR support

Create your own graphics or game project

You can simply create a project by using this template.

Have fun!

License

This project is under the MIT license.

About

libvultra is the core library of Vultra, which can be used for rapidly creating graphics or game prototypes without the VultraEditor. (WIP)

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages