#version 460 #extension GL_EXT_ray_tracing : require layout(set = 0, binding = 0) uniform accelerationStructureEXT as; layout(set = 0, binding = 1, rgba32f) uniform writeonly image2D image; layout(location = 3) rayPayloadEXT vec4 payload; layout(location = 4) callableDataEXT float blend; void main() { vec3 origin = vec3(0.0); vec3 direction = vec3(0.0, 0.0, -1.0); traceRayEXT(as, gl_RayFlagsOpaqueEXT, 0xFF, 0u, 0u, 0u, origin, 0.0, direction, 100.0f, 3); executeCallableEXT(0u, 4); imageStore(image, ivec2(gl_LaunchIDEXT.xy), payload + vec4(blend)); }