This is a collection of open source C++ projects for Vulkan®, the new generation graphics and compute API from Khronos®. It includes the dependencies needed for building a Vulkan project.
- src: Different projects that use Vulkan
- Vk_1: The very basics. Triangle
- Vk_2: Buffers (Staging, Vertex, Index). Square.
- Vk_3: Descriptors (layout, buffer, pool, sets). Rotating 3D square.
- Vk_4: Texture mapping (image view and sampler). Rotating 3D textured square.
- Vk_5: Depth buffering. Two rotating 3D texture squares at different heights.
- Vk_6: OBJ models loaders. Loads a 3D scenario.
- Vk_7: Mipmapping. In software generation.
- Vk_8: Multisampling: Shader MSAA (MultiSampling AntiAliasing) & SS (Sample shading).
- Vk_9: Abstracting Vulkan (environment, model, render loop).
- Vk_10: Rendering many models simultaneously.
- Vk_11: Camera system (free camera).
- Vk_12: Render same model several times.
- extern: Dependencies
- files: Scripts and images
- textures: Images used as textures in our Vulkan projects
- GLFW (Window system and inputs)
- GLM (Mathematics library)
- stb_image (Image loader)
- tinyobjloader (Load vertices and faces from an OBJ file)
- Vulkan SDK (Set of repositories useful for Vulkan development) (installed in platform-specfic directories)
- Vulkan loader (Khronos)
- Vulkan validation layer (Khronos)
- Vulkan extension layer (Khronos)
- Vulkan tools (Khronos)
- Vulkan tools (LunarG)
- gfxreconstruct (LunarG)
- glslang (Shader compiler to SPIR-V) (Khronos)
- shaderc (C++ API wrapper around glslang) (Google)
- SPIRV-Tools (Khronos)
- SPIRV-Cross (Khronos)
- SPIRV-Reflect (Khronos)
The following includes the basics for setting up this project. For more details about setting up Vulkan, check Setting up Vulkan.
- Update your GPU's drivers
- Get:
- Compiler that supports C++17
- Make
- CMake
- Install Vulkan SDK
- Download tarball in
extern\
. - Run script
./files/install_vulkansdk
(modifypathVulkanSDK
variable if necessary)
- Download tarball in
- Build project using the scripts:
sudo ./files/build_dependencies_ubuntu
./files/build_project_ubuntu
- Update your GPU's drivers
- Install Vulkan SDK
- Download installer wherever
- Execute installer
- Get:
- MVS
- CMake
- Build project using the scripts:
build_dependencies_Win.bat
build_project_Win.bat
- Compile project with MVS (Set as startup project & Release mode) (first glfw and glm_static, then the Vulkan projects)
- Copy some project from /project and paste it there
- Include it in /project/CMakeLists.txt
- Modify project name in copiedProject/CMakeLists.txt
- Modify in-code shaders paths, if required