--- layout: stdlib-reference --- # TraceRay ## Description Traces a ray through the acceleration structure. ## Signature
void TraceRay<payload_t>(
    RaytracingAccelerationStructure AccelerationStructure,
    uint RayFlags,
    uint InstanceInclusionMask,
    uint RayContributionToHitGroupIndex,
    uint MultiplierForGeometryContributionToHitGroupIndex,
    uint MissShaderIndex,
    RayDesc Ray,
    inout payload_t Payload);

## Generic Parameters #### payload\_t ## Parameters #### AccelerationStructure : [RaytracingAccelerationStructure](../types/raytracingaccelerationstructure-0am/index.html) The acceleration structure to traverse #### RayFlags : uint Flags controlling ray behavior #### InstanceInclusionMask : uint Mask for filtering instance visibility #### RayContributionToHitGroupIndex : uint Offset for hit group indexing #### MultiplierForGeometryContributionToHitGroupIndex : uint Multiplier for geometry-based hit group indexing #### MissShaderIndex : uint Index of the miss shader to execute if no hit is found #### Ray : [RayDesc](../types/raydesc-03/index.html) Description of the ray to trace #### Payload : [payload\_t](traceray-05.html#typeparam-payload_t) Structure for passing data between shaders ## Remarks Core ray tracing function for initiating traversal ## Availability and Requirements Defined for the following targets: #### hlsl Available in stages: `raygen`, `closesthit`, `miss`. #### glsl Available in stages: `raygen`, `closesthit`, `miss`. #### cuda Available in stages: `raygen`, `closesthit`, `miss`. #### spirv Available in stages: `raygen`, `closesthit`, `miss`. Requires capability: `spvRayTracingKHR`.