Skip to content
forked from YoutaVen/Vulkan

Vulkan examples using VulKan ToolS (VKTS)

License

Notifications You must be signed in to change notification settings

pdaniell-nv/Vulkan

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Travis CI Coverity Scan MIT licensed Join the chat at https://gitter.im/McNopper/Lobby

Vulkan 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_Example13 - glTF 2.0 with PBR materials (WIP).
VKTS_Example13

This example is not finished yet.

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.

About

Vulkan examples using VulKan ToolS (VKTS)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 78.1%
  • C 16.0%
  • Python 2.5%
  • CMake 1.6%
  • Makefile 1.2%
  • Objective-C 0.6%