BobLChen
VulkanDemos
C++

Some simple vulkan examples.

Last updated Jun 20, 2026
856
Stars
102
Forks
7
Issues
0
Stars/day
Attention Score
56
Language breakdown
No language data available.
Files click to expand
README

简要

Vulkan Samples

码云

码云地址

说明

按照序号的顺序开始看,例如从2Triangle3DemoBase一直到最后一个。Demo一步一步的展示了如何对Vulkan进行简单的封装以使得更加易用,如果从较高的序号开始阅读可能出现由于封装过度从而导致阅读理解困难。每一个Demo都会尽量配一个粗浅的文档,文档里面会大致说明该Demo的意图。

环境要求

Windows

  • CMake 3.13.0:下载安装最新版本即可。
  • Visual Studio 2017 (64位):比它高的应该也没问题。
  • VulkanSDK:https://www.lunarg.com/vulkan-sdk/

MacOS

  • CMake 3.13.0:下载安装最新版本即可。
  • XCode 10:比它高应该也没什么问题。
  • macOS 10.11 or iOS 9:因为Vulkan在苹果那边没有得到官方支持,是通过对Metal进行的封装,因此需要10.11系统以上。

Linux

  • CMake 3.13.0:下载安装最新版本即可。
  • Ubuntu 18.04:目前我使用的是Ubuntu 18.04系统,其它版本的没有尝试。
  • VSCode:Ubuntu下我使用了VSCode作为开发环境,VSCode下Configure(Task),Build(Task),Debug我都配置好了,但是需要安装VSCode C++插件,插件名称:C/C++。

Window环境搭建

  • 参考文档:https://github.com/BobLChen/VulkanDemos/blob/master/document/BUILD_Windows.md

Ubuntu环境搭建

  • 参考文档:https://github.com/BobLChen/VulkanTutorials/blob/master/document/BUILD_Ubuntu.md

MacOS环境搭建

  • 参考文档:https://github.com/BobLChen/VulkanTutorials/blob/master/document/BUILD_MacOS.md

Android环境搭建

  • 参考文档:https://github.com/BobLChen/VulkanTutorials/blob/master/document/BUILD_Android.md

Introduction

Vulkan Examples

Requirements

Windows

  • CMake 3.13.0
  • virtual studio 2017
  • VulkanSDK:https://www.lunarg.com/vulkan-sdk/

MacOS

  • XCode 10
  • CMake 3.13.0
  • macOS 10.11 or iOS 9

Linux

  • CMake 3.13.0

Android

  • Android Studio 3.2
  • NDK r16b

Usage

Command line

  • git clone https://github.com/BobLChen/VulkanDemos.git
  • cd VulkanDemos
  • mkdir build
  • cd build
  • cmake ..

CMake-GUI

  • git clone https://github.com/BobLChen/VulkanDemos.git
  • Open CMake-GUI
  • Where is the source code : VulkanDemos
  • Where to build the binaries : VulkanDemos/build
  • Click Configure button
  • Choose your generator
  • Click Generate button

Example

2_Triangle

博客地址 2</em>Triangle

3_DemoBase

博客地址

4_OptimizeBuffer

博客地址

5_OptimizeCommandBuffer

博客地址

6_ImageGUI

博客地址 6</em>ImageGUI

7_UniformBuffer

博客地址 7</em>UniformBuffer

8_OptimizeVertexIndexBuffer

博客地址

9_LoadMesh

博客地址 9</em>LoadMesh

10_Pipelines

博客地址 10</em>Pipelines

11_Texture

博客地址 11</em>Texture

12_PushConstants

博客地址 12</em>PushConstants

13_DynamicUniformBuffer

博客地址 13</em>DynamicUniformBuffer

14_TextureArray

博客地址 14</em>TextureArray

15_Texture3D

博客地址 15</em>Texture3D

16_OptimizeShaderAndLayout

博客地址

17_InputAttachments

17</em>InputAttachments

18_SimpleDeferredShading

博客地址
  • Albedo:VKFORMATR8G8B8A8_UNORM
  • Normal:VKFORMATR16G16B16A16_SFLOAT
  • Position:VKFORMATR16G16B16A16_SFLOAT
18</em>DeferredShading

19_OptimizeDeferredShading

博客地址
  • Albedo: VKFORMATR8G8B8A8_UNORM
  • Normal: VKFORMATR8G8B8A8_UNORM
  • Position: Reconstructing world space position from depth buffer
19_OptimizeDeferredShading

20_Material

博客地址

21_Stencil

博客地址 21</em>Stencil

22_RenderTarget(30 Filter)

博客地址 22</em>RenderTarget

23_OptimizeRenderTarget

博客地址

24_EdgeDetect

博客地址 24</em>EdgeDetect

25_Bloom

博客地址 25</em>Bloom

26_SkeletonMatrix4x4

博客地址 26</em>Skeleton

27_SkeletonPackIndexWeight

博客地址
  • Pack 4 bone index(uint32) to 1 UInt32
  • Pack 4 bone weight(float) to 2 UInt32
Reduce 5 float per vertex

28_SkeletonQuat

博客地址
  • Dual quat animation, reduce 8 float per bone. From matrix4x4 to 2 vector.
28</em>SkeletonDualQuat

29_VertexTextureSkin

博客地址
  • Store skeleton datas in texture and used in vertex shader.

30_InstanceSkin

30</em>InstanceSkin

31_MSAA

31</em>MSAA

32_FXAA

32</em>FXAA

33_InstanceDraw

33</em>InstanceDraw

34_SimpleShadow

34</em>SimpleShadow

35_PCFShadow

35</em>PCFShadow

36_OmniShadow(Multiview)

36</em>OmniShadow

37_CascadedShadow

37</em>CascadedShadow

38_IndirectDraw

38</em>IndirectDraw

39_OcclusionQueries

39</em>OcclusionQueries

40_QueryStatistics

40</em>QueryStatistics

41_ComputeShader

41</em>ComputeShader

42_OptimizeComputeShader

43_ComputeParticles

43</em>ComputeParticles

44_ComputeRaytracing

44</em>ComputeRaytracing

45_ComputeFrustum

45</em>ComputeFrustum

46_GeometryHouse

46</em>GeometryHouse

47_DebugNormal

47</em>DebugNormal

48_GeometryOmniShadow

48</em>GeometryOmniShadow

49_SimpleTessellation

49</em>SimpleTessellation

50_PNTessellation

50</em>PNTessellation

51_Pick

51</em>Pick

52_HDRPipeline

52</em>HDRPipeline

53_SSAO

53</em>SSAO

54_ThreadedRendering

54</em>ThreadedRendering

55PBR_DirectLighting

55<em>PBR</em>DirectLighting

56PBR_IBL

56<em>PBR</em>IBL

57_GodRay

57</em>GodRay

58_Imposter

58</em>Imposter

59_MotionBlur

59</em>MotionBlur

60_DepthPeeling

60</em>DepthPeeling

61_CPURayTracing

61</em>CPURayTracing

62_RTXRayTracingBasic

62</em>RTXRayTracingBasic

63_RTXRayTracingMesh

63</em>RTXRayTracingMesh

64_RTXRayTracingSimple

64</em>RTXRayTracingSimple

65_RTXRayTracingReflection

65</em>RTXRayTracingReflection

66_RTXRayTracingHitGroup

66</em>RTXRayTracingHitGroup

67_RTXRayTracingMonteCarlo

67</em>RTXRayTracingMonteCarlo

68_RTXPathTracing

68</em>RTXPathTracing

69_TileBasedForwardRendering

69</em>TileBasedForwardRendering

70_SDFFont

70</em>SDFFont

71_ShuffleIntrinsics

71</em>ShuffleIntrinsics

72_MeshLOD

72</em>MeshLOD

© 2026 GitRepoTrend · BobLChen/VulkanDemos · Updated daily from GitHub