Deferred Vulkan rendering playground using Crytek's Sponza scene
C++ GLSL CMake Other
Switch branches/tags
Nothing to show
Clone or download
SaschaWillems Merge pull request #1 from gwizdz/master
Fixes for the potential crashes and the compilation error on PER_MESH_BUFFERS code path.
Latest commit 31ef3bd Feb 12, 2018

Vulkan Sponza


A Vulkan deferred rendering playground

Partially based on my Vulkan examples (C++), with the goal of rendering a more complex scene outside of the example's scope.

As this is just a playground, expect frequent (and possibly breaking) changes.


Windows, Android and Linux

Visual Studio 2015 project is included along with a CMakeLists.txt for other compilers and platforms.


  • Deferred renderer (4 MRTs)
  • Separate pass for alpha masked objects (foliage)
  • Multiple dynamic light sources
  • Normal mapping
  • SSAO

The Sponza scene

The model used for this example is Crytek's Atrium Sponza Palace model. The repository contains an updated version of the (already updated) version from Morgan McGuire.

For this demo I imported it into Blender (so you can use it with your favorite open source 3D application), added some missing normal maps and assigned all the maps in blender so you can easily load up the scene using ASSIMP and extract all information required for rendering like names of the diffuse, normal and specular maps and information on wether the material has a mask for e.g. rendering in a separate pass for transparent objects. The demo will load this scene using the COLLADA file exported from blender.