Vulkan examples using VulKan ToolS (VKTS)
C++ C Python CMake Makefile Objective-C
Latest commit b51f2d4 Jan 23, 2017 @McNopper Updated to GLM 0.9.8.4
Permalink
Failed to load latest commit information.
VKTS Improved image data converter. Jan 11, 2017
VKTS_Binaries Reorganized documents - continued. Nov 26, 2016
VKTS_Documentation Moved export scripts. Jan 7, 2017
VKTS_Example01 Improved scene asset handling and reloading. Jan 4, 2017
VKTS_Example02 Improved scene asset handling and reloading. Jan 4, 2017
VKTS_Example03 Improved scene asset handling and reloading. Jan 4, 2017
VKTS_Example04 Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_Example05 Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_Example06 Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_Example07 Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_Example08 Improved scene asset handling and reloading. Jan 4, 2017
VKTS_Example09 Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_Example10 Improved/fixed PBR pre-filter generation. Jan 9, 2017
VKTS_Example11 Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_Example12 Improved/fixed PBR pre-filter generation. Jan 9, 2017
VKTS_Exporter Improved/fixed PBR pre-filter generation. Jan 9, 2017
VKTS_External Updated to GLM 0.9.8.4 Jan 23, 2017
VKTS_Licenses Added missing license files again. Somehow they were emptied. Dec 29, 2016
VKTS_PKG_Core Fixed application CPU usage for Linux and Android. Jan 8, 2017
VKTS_PKG_Entity Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_PKG_Gui Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_PKG_Image Improved image data converter. Jan 11, 2017
VKTS_PKG_Interactive Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_PKG_Math Generating IBL images can now be done on the GPU. Jan 5, 2017
VKTS_PKG_Runtime Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_PKG_Scenegraph Continued with glTF loader. Jan 12, 2017
VKTS_PKG_VulkanComposition Improved/fixed PBR pre-filter generation. Jan 9, 2017
VKTS_PKG_VulkanGui Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_PKG_VulkanScenegraph Added minimum framebuffer size for pre-filtering again. Jan 9, 2017
VKTS_PKG_VulkanWindow Freeing image host memory as option. Added pipeline cache usage. Jan 4, 2017
VKTS_PKG_VulkanWrapper Generating IBL images can now be done on the GPU. Jan 5, 2017
VKTS_PKG_Window Improved mouse detection under Linux with DISPLAY configuration. Jan 22, 2017
VKTS_Test_General Improved scene asset handling and reloading. Jan 4, 2017
VKTS_Test_Input Improved scene asset handling and reloading. Jan 4, 2017
.gitignore Removed python cache/added git ignore for it. Jan 7, 2017
.travis.yml Added clang build. Dec 30, 2016
LICENSE.md Added license in root folder. Jan 3, 2017
README.md Fixed spelling. Jan 3, 2017
create_build_all_MSVC.py VKTS 1.0.33 becomes master branch. Dec 6, 2016
create_build_all_android.py Improved scene asset handling and reloading. Jan 4, 2017
create_build_all_make.py VKTS 1.0.33 becomes master branch. Dec 6, 2016
create_master_CMakeLists.py Moved/removed license folders Dec 29, 2016
deploy_all_android.py Added Android deploy script. Oct 3, 2016
get_binaries.py Continued refactoring layer 1. Nov 22, 2016
install_all_android.py Fixed top element bug in own container class. Oct 3, 2016
uninstall_all_android.py Added light export and import. Oct 13, 2016

README.md

Travis CI MIT licensed

Vulkan

Vulkan examples using VulKan ToolS (VKTS):

First steps

Building for Android, Linux and Windows

Assets used by the examples

Execute and debug examples

Features of VKTS

Architecture and API design

Gamepad, keyboard, touch and mouse input

Exporter for the scene file format

Used headers and pre-build libraries

Used tools, applications and libraries

Used licenses

Vulkan examples based on VKTS:

VKTS_Example01 - Initializing Vulkan and clearing the background.
VKTS_Example01

This example brings up a simple window and clears the content every frame. No shaders, buffers or graphics pipelines are used.

VKTS_Example02 - Rendering of a red triangle.
VKTS_Example02

This example renders a red triangle by passing NDC coordiantes. This example utilizes shaders, vertex buffers and a graphics pipeline.

VKTS_Example03 - Rendering of a full screen texture.
VKTS_Example03

This example renders a a full screen texture. Main topic of this example is on how to use staging buffers in Vulkan.

VKTS_Example04 - Loading and rendering of an animated, mip mapped textured cube.
VKTS_Example04

This example loads and renders an animated, textured cube modeled in Blender. The crate texture does have several mip levels.

VKTS_Example05 - Phong rendering of a tree and an animated plane with several animations.
VKTS_Example05

This example loads another scene modeled in Blender. This scene has a node tree, having several animations.

VKTS_Example06 - Skeletal animation plus camera movement depending on gamepad input.
VKTS_Example06

This example loads and renders a skeletal animated character modeled in Blender. Also, the scene can be cotrolled with a gamepad.

VKTS_Example07 - Multi-threaded terrain rendering using normal and displacement mapping.
VKTS_Example07

The terrain scene has 64 patches, which are processed in parallel by several threads. Only if a patch is visible by the camera, it is added to the secondary command buffers. After all patches are processed, the primary command buffer is drawing the terrain by executing the above secondary command buffers.

VKTS_Example08 - Calculating and drawing of the Mandelbrot set using the core Vulkan API.
VKTS_Example08

This example uses only the core Vulkan API, so no extensions are activated. A compute shader is calculating the Mandelbrot set and is storing the values into an offscreen image. As soon as the compute shader is done, the final image is saved as a TGA image to the file system.

VKTS_Example09 - Shadow mapping, blending and MSAA.
VKTS_Example09

This example renders into an offscreen framebuffer, writing only the depth value as the shadow map. In the following command, this depth texture is used to generate shadows. The spaceship does have transparent elements, so first the opaque and then the transparent elements are drawed. This content is also rendered into an offscreen multisample framebuffer, which is finally resolved to the visible window.

VKTS_Example10 - Deferred real-time physically based rendering (PBR).
VKTS_Example10 VKTS_Example10

This example uses the exported Cycles materials from Blender to render the diffuse and specular shader into an offscreen G-Buffer. The environment is pre-filtered and stored in several textures and cube maps. This allows to do image based lighting and to resolve the PBR materials in real-time. This example uses no anti-aliasing, which could be either done in a post process or using a multi-sample G-Buffer.

VKTS_Example11 - Voxel-global illumination (WIP).
VKTS_Example11

This example is not finished yet.

VKTS_Example12 - Forward real-time PBR using HDR images and MSAA.
VKTS_Example12

This example is based on Example 10, but a forward PBR renderer is used. Furthermore, the environment is a HDR image and used for the image based lighting. Finally, this example uses MSAA for anti-aliasing.

VKTS test programs:

VKTS_Test_General - VKTS internal test program, to verify general functions.

VKTS_Test_Input - VKTS internal test program, to verify input functions.

VKTS presentations:

Khronos Munich Chapter Meeting 04/08/2016 - "VulKan ToolS - Filling the gap between driver and application."