Skip to content

Releases: trungtle/TLVulkanRenderer

V1.1 Raytracer, Rasterizer, with glTF

30 Nov 17:45
Compare
Choose a tag to compare

This release has several large improvements:

Changelist

1. Large code refactoring for Vulkan interface

Specifically:

  • Abstracted Vulkan devices, queues, and swapchain into its own class
  • Added more Vulkan convenience methods to intialize and populate Vulkan structs with default values
  • Added resource creation methods for VkBuffer andVkImagewith automatic binding forVkDeviceMemory`
  • Separated graphics VkPipeline and compute VkPipeline workflow with prefixes "PrepareGraphics_" and "PrepareCompute_", respectively.
  • Nice to have: Previously, the vulkan-1.lib and glfw3.lib had to be linked externally. I have moved them inside the project for convenient new build. A new clone project should work out of the box now!

2. Vulkan forward rasterizer

Complete Vulkan forward rasterizer as default renderer when the application starts.

3. Optional Vulkan raytracing mode

Can be toggle on and off with ERenderingMode renderindMode::RAYTRACING flag when passing the renderingMode argument to class Application

This is a migration from my GPU Programming final project in CIS565, Penn. This Vulkan raytracing isn't performant and still a work in progress, but this allows for comparison between rasterizer and raytracer performance.

4. Misc

  • Better ms/frame measurement
  • VS project filters for solution navigation
  • Project wide code reformating for reading consistency

5. Build

Away with the annoying absolute path configurations! This new release v1.1 now links all the dependencies into the same project so that a new clone can work out of the box. Do make sure you're using Visual Studion 2015 with target x64.

6. Usage

Added a command line argument to specify glTF input file:

./TLVulkanRenderer.exe [glTF file]                              Default scene is glTF rubber duck

V1.0 Generic triangle rasterization

22 Oct 20:21
Compare
Choose a tag to compare

Requirements

  • Build using x64 Visual Studio 2015 on Windows with a Vulkan support graphics card (Most discrete GPU in the last couple years should have Vulkan support). You can also check NVIDIA support.
  • glfw 3.2.1
  • glm library by G-Truc Creation
  • VulkanSDK by LunarG
  • Addthe following paths in Visual Studio project settings (for All Configurations):
    • C/C++ -> General -> Additional Include Directories:
      • PATH_TO_PROJECT\TLVulkanRenderer\thirdparty
      • PATH_TO_GLFW\glfw\include
      • PATH_TO_VULKAN_SDK\VulkanSDK\1.0.26.0\Include
      • PATH_TO_GLM\glm
    • Linker -> General -> Additional Library Directories:
      • PATH_TO_VULKAN_SDK\VulkanSDK\1.0.26.0\Bin
      • PATH_TO_GLM\glfw-3.2.1.bin.WIN64\lib-vc2015
    • Linker -> Input -> Additional Dependencies:
      • vulkan-1.lib
      • glfw3.lib