Releases: trungtle/TLVulkanRenderer
V1.1 Raytracer, Rasterizer, with glTF
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 and
VkImagewith automatic binding for
VkDeviceMemory` - Separated graphics VkPipeline and compute
VkPipeline
workflow with prefixes "PrepareGraphics_
" and "PrepareCompute_
", respectively. - Nice to have: Previously, the
vulkan-1.lib
andglfw3.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
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
- C/C++ -> General -> Additional Include Directories: