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 andVkImagewith automatic binding forVkDeviceMemory` - Separated graphics VkPipeline and compute
VkPipelineworkflow with prefixes "PrepareGraphics_" and "PrepareCompute_", respectively. - Nice to have: Previously, the
vulkan-1.libandglfw3.libhad 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\thirdpartyPATH_TO_GLFW\glfw\includePATH_TO_VULKAN_SDK\VulkanSDK\1.0.26.0\IncludePATH_TO_GLM\glm
- Linker -> General -> Additional Library Directories:
PATH_TO_VULKAN_SDK\VulkanSDK\1.0.26.0\BinPATH_TO_GLM\glfw-3.2.1.bin.WIN64\lib-vc2015
- Linker -> Input -> Additional Dependencies:
vulkan-1.libglfw3.lib
- C/C++ -> General -> Additional Include Directories:
