Skip to content
Demonstrates order independent transparency on Vulkan using depth peeling.
C++ C GLSL CMake
Branch: master
Clone or download

Latest commit

openforeveryone Fix memory type selection not requiring
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT after
VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT could not be found. This fixes
performance problem seen with Nvidia Linux driver >= 370.28.
Latest commit 56d5687 Dec 16, 2016

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app Fix memory type selection not requiring Dec 15, 2016
gradle/wrapper Vulkan init working. May 20, 2016
nativeactivity Work on resbmiting command buffers. May 25, 2016
shaders Tidy up peel shader. Jul 27, 2016
README.md Updated Readme. Jul 27, 2016
ScreenShot.png Added ScreenShot. Jul 14, 2016
build.gradle Vulkan init working. May 20, 2016
local.properties Vulkan init working. May 20, 2016
settings.gradle Vulkan init working. May 20, 2016

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.

You can’t perform that action at this time.