The focus of the document referenced in this article is to showcase a basic integration of ray tracing within an existing Vulkan sample, using the VK_KHR_ray_tracing extension.

This tutorial starts from a basic Vulkan application and provides step-by-step instructions to modify and add methods and functions. The sections are organized by components, with subsections identifying the modified functions.

We walk you through the various steps to add ray tracing to an existing Vulkan application. We assume the reader possesses a working knowledge of Vulkan in general. The code verbosity of classical components such as swapchain management, render passes etc. is reduced using C++ API helpers and NVIDIA's nvpro-samples framework. This framework contains many advanced examples and best practices for Vulkan and OpenGL. We also use a helper for the creation of the ray tracing acceleration structures, but we will document its contents extensively in this tutorial. The code is further simplified by using the Vulkan C++ API, whose type safety and constructors reduce both its verbosity and its potential for errors.

Please go to for further reading of the full Tutorial.