Demonstrates order independent transparency on Vulkan using depth peeling.
C++ C GLSL CMake
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
gradle/wrapper
nativeactivity
shaders
README.md
ScreenShot.png
build.gradle
local.properties
settings.gradle

README.md

Vulkan depth peel demo

Demonstrates order independent transparency on Vulkan using depth peeling. This code accompanies the blog post [Depth Peeling Order Independent Transparency in Vulkan] (https://matthewwellings.com/blog/depth-peeling-order-independent-transparency-in-vulkan/).

This demo will run on Linux (XCB) and Android. It makes use of subpasses, input attachments and reusable command buffers.

Keys (on Linux):

  • Space to toggle split-screen (left is traditional order dependent right is depth peeled)
  • Up and down to change number of layers used.
  • Left and right to change number of objects rendered.
  • W and S to display only one of the peeled layers and to select the currently displayed layer.

Screenshot

All blocks are the same size and rendered in arbitrary order in separate draw calls.