northerncat / vulkan-tutorial

Followed along the Vulkan Tutorial (vulkan-tutorial.com/) to implement a simple Vulkan application.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vulkan Tutorial

Followed the Vulkan tutorial to implement a simple graphics pipeline with Vulkan.

Features

  • Graphics pipeline from creation to presentation
    • Proper error and warning with the standard validation layer VK_LAYER_KHRONOS_validation
    • Examine device properties to create Vulkan instances of physical device, logical device and queue
    • Integrate with GLFW to create window surface for presentation
    • Create FIFO swap chain and image views to host rendered images and present to the window
    • Set up render pass and record commands in command buffer
    • Create structures to bind vertex/index buffer and MVP matrices to the device
    • Minimal vertex and fragment shaders compiled with glslc to render textured geometry
    • Handle resizing through swap chain recreation
  • OBJ file loading and rendering through tinyobjloader
  • Texture image mipmapping generation through vkCmdBlitImage
  • Multi-sampling up to the device's maximal sample counts for color and depth buffers

Usage

The application is created with Visual Studio 2019 in a Windows 10 (Macbook Bootcamp). After opening the repo with Visual Studio, correct the header and library dependency paths as instructed in the original tutorial - Development Environment.

Result

Final rendered image using the same assets as in the tutorial (Viking Room model by nigeloh from SketchFab): Final Image

About

Followed along the Vulkan Tutorial (vulkan-tutorial.com/) to implement a simple Vulkan application.


Languages

Language:C++ 99.0%Language:GLSL 0.9%Language:Batchfile 0.1%