Vulkan Ray Tracing Best Practices for Hybrid Rendering

Danny Chavez

Danny Chavez

Virtual Boy

Today, the Khronos® Vulkan® Working Group has released the final Vulkan Ray Tracing extensions that seamlessly integrate ray tracing functionality alongside Vulkan’s rasterization framework, making Vulkan the industry’s first open, cross-vendor, cross-platform standard for ray tracing acceleration. The final ray tracing functionality is defined by a set of 5 extensions, namely VK_KHR_acceleration_structure, VK_KHR_ray_tracing_pipeline, VK_KHR_ray_query, VK_KHR_pipeline_library, and VK_KHR_deferred_host_operations. ISVs played a pivotal role in shaping the extension to enable hybrid rendering—where rasterization and ray tracing are used in tandem to achieve compelling levels of visual fidelity and interactivity. One example of a game using this hybrid approach in Vulkan is the implementation of ray traced reflections in Wolfenstein: Youngblood, a technique which we will be looking at in-depth in this post, while also discussing more general aspects of real-time ray tracing with Vulkan. Wolfenstein: Youngblood necessarily shipped with an earlier version of Vulkan Ray Tracing extensions, but the techniques used in the game are described here, and can be fully implemented, using the final production extensions that all developers should use now they are available.

Shading Rate Extension to Increase Rendering Performance and Quality

Danny Chavez

Danny Chavez

Virtual Boy

The Vulkan® Working Group has just released the VK_KHR_fragment_shading_rate extension, which provides a new, flexible technique to control the fragment shading rate, enabling developers to perform shading at a lower resolution than the render targets. This fine level of control allows developers to focus shading resources where they are needed, which ultimately increases rendering performance and quality.