Vulkan Guide: Home

Link Vulkan Guide Menu
  • Home
  • introduction
    • Vulkan API
    • Vulkan Usage
    • Project layout and libraries
  • 0. Project Setup
    • Building Project
    • Code Walkthrough
  • 1. Initializing Vulkan
    • Vulkan Initialization
    • Vulkan Initialization Code
    • Executing Vulkan Commands
    • Setting up Vulkan commands
    • Rendering Loop
    • Mainloop Code
  • 2. Drawing with Compute
    • Improving the render loop
    • Vulkan Shaders
    • Vulkan Shaders - Code
    • Setting up IMGUI
    • Push Constants and new shaders
  • 3. Graphics Pipelines
    • The graphics pipeline
    • Setting up render pipeline
    • Mesh buffers
    • Mesh Loading
    • Blending
    • Window Resizing
  • 4. Textures and Engine Architecture
    • Descriptor Abstractions
    • Textures
    • Engine Architecture
    • Setting up Materials
    • Meshes and Camera
  • 5. GLTF loading
    • Interactive Camera
    • GLTF Scene Nodes
    • GLTF Textures
    • Faster Draw
  • Extra Chapter
    • Implementing DearImgui to a Vulkan engine
    • Implementing an asset system.
    • A thin abstraction for descriptor sets
    • Configurable options through a CVAR system
    • CPU Architecture Essentials
    • Multithreading for game engines
    • Performance and frame analysis - Metaphor ReFantazio
    • Intro to practical SIMD for graphics
  • GPU Driven Rendering
    • GPU Driven Rendering Overview
    • Engine architecture overview
    • Draw Indirect
    • Compute Shaders
    • Material System
    • Mesh Rendering
    • Compute based Culling
  • Project Ascendant
    • Project Ascendant Overview
    • From tutorial to Engine
    • High-performance voxel and mesh rendering
    • Framegraph, synchronization, and lighting
  • Great resources
  • Korean VKGuide
    • introduction - ko
      • Vulkan API - KO
      • Vulkan Usage - KO
      • Project layout and libraries - KO
    • 0. Project Setup - KO
      • Building Project - KO
      • Code Walkthrough - KO
    • 1. Initializing Vulkan - KO
      • Vulkan Initialization
      • Vulkan Initialization Code
      • Executing Vulkan Commands
      • Setting up Vulkan commands
      • Rendering Loop
      • Mainloop Code
    • 2. Drawing with Compute - KO
      • Improving the render loop
      • Vulkan Shaders
      • Vulkan Shaders - Code
      • Setting up IMGUI
      • Push Constants and new shaders
    • 3. Graphics Pipelines - KO
      • The graphics pipeline
      • Setting up render pipeline
      • Mesh buffers
      • Mesh Loading
      • Blending
      • Window Resizing
    • 4. Textures and Engine Architecture- KO
      • Descriptor Abstractions
      • Textures
      • Engine Architecture
      • Setting up Materials
      • Meshes and Camera
    • 5. GLTF loading - KO
      • Interactive Camera
      • GLTF Scene Nodes
      • GLTF Textures
      • Faster Draw
  • Legacy VkGuide, Vulkan 1.1
    • 0. Initial Setup
      • Building Project
      • Code Walkthrough
    • 1. Initialization and Render Loop
      • Vulkan Initialization
      • Vulkan Initialization Code
      • Executing Vulkan Commands
      • Setting up Vulkan commands
      • Renderpasses
      • Setting up renderpass code
      • Rendering Loop
      • Mainloop Code
    • 2. The graphics pipeline, Hello Triangle
      • The render pipeline
      • Setting up Triangle shaders
      • Setting up render pipeline
      • Passing data between shader stages
      • Toggling shaders
      • Cleanup and deletion queue
    • 3. Drawing meshes
      • Vertex buffers
      • Implementing vertex buffers
      • Push Constants
      • OBJ Loading
      • Setting up depth buffer
      • Scene Management
    • 4. Buffers, Shader input/output
      • Double buffering
      • Descriptor Sets
      • Setting up descriptor sets
      • Dynamic Descriptor sets
      • Storage buffers
    • 5. Textures
      • Memory transfers
      • Vulkan Images
      • Loading Images
      • Drawing Images
Search
  • Vulkan Spec
  • Github Repo
  • Tutorial code 📖

scene End stage after the tutorial

Welcome to VulkanGuide

Welcome to a new work-in-progress Vulkan guide. The focus of this guide is to understand Vulkan correctly, and act as a stepping stone for then working in your own projects. Unlike most samples and other Vulkan guides, which like to hardcode rendering loops, in here we will have a focus around dynamic rendering, so that it can act as a better base code for a game engine.

While the guide is focused around game rendering, its concepts can be used in CAD and visualization just fine.

We will be using C++20, but we aren’t doing complex C++ unique features, so following this guide on C or Rust can be doable.

This guide is meant for the people who already know the basics about 3d graphics, and have worked with either OpenGL or DirectX in the past. This guide will not explain 3d rendering basics such as linear algebra math.

To contact the authors, email [email protected]

The code uses vulkan 1.3, and directly uses those new features to simplify the tutorial and engine architecture. If you need support for an older standard, the older version of the guide can be found here Legacy VKGuide

The guide is separated into multiple chapters for code organization.

  • Introduction: Overview about Vulkan API and the libraries used by this project
  • Chapter 0: Setting up the guide initial code
  • Chapter 1: Vulkan initialization and render loop setup. (Draws a flashing clear color)
  • Chapter 2: Vulkan compute shaders and drawing (Uses a compute shader to draw)
  • Chapter 3: Vulkan mesh drawing (Draws meshes using the graphics pipeline)
  • Chapter 4: Textures and better descriptor set management
  • Chapter 5: Full GLTF scene loading and high performance rendering.

Some extra sections of the guide contain more information that is not part of the main tutorial. Some of them are meant for the Legacy version of vkguide, and will be outdated if you are going with the current version. Outdated articles are flagged at the top.

  • GPU Driven Rendering: Using compute shaders to handle rendering for maximum scalability and hundreds of thousands of meshes
  • Extra chapter: Extra articles for various improvements to the engine shown in the tutorial.

Next: Introduction to vulkan

Từ khóa » Vulkan Graphics Api Tutorial