The goal is to create tesselation free procedural displacement. This implementation was created alongside a bachelor thesis (see the .pdf file). Forgive me for sloppy code, the program had to be ready in time and the coding style and performance suffered from it.
You will need several dependencies to compile and run this program.
Not all graphics cards support vulkan raytracing. You will have to see for yourself if your card support the necessary extensions. When running the program, it will throw an error if an extension is missing and also show which one in the console output. An unofficial website so check if your GPU supports the VK_KHR_acceleration_structure
extension can be found here.
While your graphics card driver only has to support at least Vulkan 1.3, it is recommended to just update to the latest version. NVIDIA drivers can be found on NVIDIAs official website and AMD drivers can be found on AMDs official website.
A version of CMake is required to build the project.
NVIDIAs nvpro_core is the framework on which this program is built. You will need to clone it from Github. The nvpro_core
folder should be on the same level as the vk_procedural_displacement
folder.
This program runs on the graphics card using the Vulkan API, so a version of the VulkanSDK is required. Which specific version is needed depends on the version of nvpro_core
, but a version higher than 1.3.221.0 is recommended.
- install all dependencies listed above
- create a
build
directory inside of thevk_procedural_displacement
folder - open
cmd
-> navigate tobuild
directory -> typecmake..
- open the Visual Studio solution named
vk_procedural_displacement
that can be found inside thebuild
directory - in Visual Studio, right click on
vk_ray_tracing__displacement_KHR
-> Set as Startup Project - now you can start running the program via the built in compiler