Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vulkan Playground

A Vulkan toy renderer, built with C and SDL, currently supporting Windows and Android. 64-bit only.

Vulkan Playground

Features:

  • Deferred rendering
  • Shadow maps
  • Code hotreloading
  • Custom GPU memory arena allocator
  • Custom model format, includes a converter from gltf files
  • Texture Compression (BC7 for Windows and ASTC4x4 for Android) using NVTT
  • Debug GUI using Nuklear

Included libraries this project would not have been possible without:

Building from source

Windows builds

Requirements:

  • C11 Compiler (MSYS2 Clang is recommended)
  • CMake
  • Vulkan SDK

Libraries:

  • Create a lib folder
  • Vulkan Loader (vulkan-1.lib)
    • Copy this from the Vulkan SDK's lib folder
  • SDL3
    • Download SDL3-devel-3.2.6-VC.zip
    • Copy SDL3.lib from lib\x64

Building:

  • Create build folder: mkdir build
  • cd build
  • Put SDL3.dll (from the SDL3 zip) into the build folder
  • Run CMake: cmake ..
  • Run build: cmake --build .
  • Built binary is playground.exe

Strongly recommended debugging tools:

Android builds

Requirements:

  • Android SDK and NDK

Android only requires SDL3. Download this release ZIP, and put SDL3-3.2.6.aar in android/app/libs/

Other dependencies like the Vulkan loader and shader compiler are included with Android NDK. Running gradlew build will build the APK.

Optional Extras:

  • For Vulkan Validation Layers, create a arm64-v8a directory in android/app/libs/ with the khronos validation layer .so file. The file can be obtained here.
  • For graphics debugging, RenderDoc also works on Android.

Tools

Currently the only tool is the model converter. It requires NVTT, which you can download from here (requires NVIDIA Developer Account.)

To build the tools, follow the steps below:

  • copy lib/x64-v142/nvtt30205.lib from NVTT install to lib
  • copy include/nvtt/nvtt_wrapper.h from NVTT install to include
  • copy nvtt30205.dll from NVTT install to build
  • Enable tools building: in build directory, run cmake .. -DBUILD_TOOLS=ON
  • cmake --build .

Using model tool: model <input gltf file> <output model file>

About

Vulkan Playground

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages