vulkan 1.4 simple cross platform multiplayer gltf file viewer. can load any gltf model, pbr materials, textures, alpha blending, fk and ik animations, actions and non-linear animations full support for glsl shaders ( compile with glslc/glslangvalidator for vulkan ). gltf extensions are wip.
needed for default models: ⏬resources
wip
left click - move default model to location
ESC - exit
wasdeq - camera controls, for debugging
Debug Menu - allows u to choose model to move/scale/rotate/change animation etc.
Drag & Drop - any model can be loaded if u drag and drop it in the window
All builds are x64. windows builds are compiled with mingw. The binary is only linked to the libraries statically.
- c++20 compiler
- vulkan 1.4
- sdl3
- glm
- 🌟 fastgltf -> simdJSON
- stb
- GameNetworkingSockets -> OpenSSL and Protobuf -> abseil
- ninja (not required but highly preferred)
- cmake
- vulkan sdk ( with glslc or 🌟slangc ) | slang comes with the vulkan sdk since version 1.3.296.0.
- gcc | mingw (for windows or cross compiling)
- openssl | openssl compiled with mingw -> msys/strawberry perl (windows)
- install/make sure vulkan sdk is installed and make sure VULKAN_SDK is set and glslc is under VULKAN_SDK/Bin/
- install openssl on linux or build OpenSSL and ensure it's compiled and configured with mingw64 with no-shared and make sure OPENSSL_ROOT_DIR is set, msys2 can be used to make it easier, instructions follow if needed.
- make sure resources are in resources directory
- clone recursively
git clone --recursiveor run eithergit pull --recurse-submodulesorgit submodule update --init --recursiveafter cloning to install the dependancy submodules
- download resources and extract to resources directory in project root
- install vulkan sdk
- install openssl
- configure cmake from project source e.g:
- cmake -G Ninja -S . -B build -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
- build the project:
- cmake --build build
- download resources and extract to resources directory in project root
- install vulkan sdk
- use msys2 to build openssl from source
- cd /path/to/openssl
- export PATH="/path/to/mingw/bin:$PATH"
- export OPENSSL_USE_STATIC_LIBS=ON
- ./Configure --prefix=$PWD/dist no-idea no-mdc2 no-rc5 no-shared mingw64
- make depend && make && make install
- set OPENSSL_ROOT_DIR environment variable to /path/to/openssl/dist or wherever u set the install prefix for openssl to
- configure cmake from project source e.g:
- cmake -G Ninja -S . -B build -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++
- compilers have to match, if u build with mingw, then openssl has to be built with mingw too and the other external projects in cmake
- build the project:
- cmake --build build