Class KHRRayQuery


  • public final class KHRRayQuery
    extends java.lang.Object
    Rasterization has been the dominant method to produce interactive graphics, but increasing performance of graphics hardware has made ray tracing a viable option for interactive rendering. Being able to integrate ray tracing with traditional rasterization makes it easier for applications to incrementally add ray traced effects to existing applications or to do hybrid approaches with rasterization for primary visibility and ray tracing for secondary queries.

    Ray queries are available to all shader types, including graphics, compute and ray tracing pipelines. Ray queries are not able to launch additional shaders, instead returning traversal results to the calling shader.

    This extension adds support for the following SPIR-V extension in Vulkan:

    • SPV_KHR_ray_query
    Sample Code

    Example of ray query in a GLSL shader

    
     rayQueryEXT rq;
     
     rayQueryInitializeEXT(rq, accStruct, gl_RayFlagsNoneEXT, 0, origin, tMin, direction, tMax);
     
     while(rayQueryProceedEXT(rq)) {
         if (rayQueryGetIntersectionTypeEXT(rq, false) == gl_RayQueryCandidateIntersectionTriangleEXT) {
             //...
             rayQueryConfirmIntersectionEXT(rq);
         }
     }
     
     if (rayQueryGetIntersectionTypeEXT(rq, true) == gl_RayQueryCommittedIntersectionNoneEXT) {
         //...
     }
    VK_KHR_ray_query
    Name String
    VK_KHR_ray_query
    Extension Type
    Device extension
    Registered Extension Number
    349
    Revision
    1
    Extension and Version Dependencies
    Contact
    Other Extension Metadata
    Last Modified Date
    2020-11-12
    Interactions and External Dependencies
    Contributors
    • Matthäus Chajdas, AMD
    • Greg Grebe, AMD
    • Nicolai Hähnle, AMD
    • Tobias Hector, AMD
    • Dave Oldcorn, AMD
    • Skyler Saleh, AMD
    • Mathieu Robart, Arm
    • Marius Bjorge, Arm
    • Tom Olson, Arm
    • Sebastian Tafuri, EA
    • Henrik Rydgard, Embark
    • Juan Cañada, Epic Games
    • Patrick Kelly, Epic Games
    • Yuriy O’Donnell, Epic Games
    • Michael Doggett, Facebook/Oculus
    • Andrew Garrard, Imagination
    • Don Scorgie, Imagination
    • Dae Kim, Imagination
    • Joshua Barczak, Intel
    • Slawek Grajewski, Intel
    • Jeff Bolz, NVIDIA
    • Pascal Gautron, NVIDIA
    • Daniel Koch, NVIDIA
    • Christoph Kubisch, NVIDIA
    • Ashwin Lele, NVIDIA
    • Robert Stepinski, NVIDIA
    • Martin Stich, NVIDIA
    • Nuno Subtil, NVIDIA
    • Eric Werness, NVIDIA
    • Jon Leech, Khronos
    • Jeroen van Schijndel, OTOY
    • Juul Joosten, OTOY
    • Alex Bourd, Qualcomm
    • Roman Larionov, Qualcomm
    • David McAllister, Qualcomm
    • Spencer Fricke, Samsung
    • Lewis Gordon, Samsung
    • Ralph Potter, Samsung
    • Jasper Bekkers, Traverse Research
    • Jesse Barker, Unity
    • Baldur Karlsson, Valve
    • Field Detail

      • VK_KHR_RAY_QUERY_SPEC_VERSION

        public static final int VK_KHR_RAY_QUERY_SPEC_VERSION
        The extension specification version.
        See Also:
        Constant Field Values
      • VK_KHR_RAY_QUERY_EXTENSION_NAME

        public static final java.lang.String VK_KHR_RAY_QUERY_EXTENSION_NAME
        The extension name.
        See Also:
        Constant Field Values
      • VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR

        public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR
        Extends VkStructureType.
        See Also:
        Constant Field Values