| #version 460 |
| #extension GL_NV_ray_tracing : enable |
| #extension GL_EXT_nonuniform_qualifier : enable
|
| layout(binding = 0, set = 0) uniform accelerationStructureNV accNV0[]; |
| layout(binding = 1, set = 0) uniform accelerationStructureNV accNV1[2];
|
| layout(location = 0) rayPayloadNV vec4 payload; |
| layout(shaderRecordNV) buffer block |
| { |
| vec3 dir; |
| vec3 origin; |
| int i; |
| }; |
| void main() |
| { |
| uint lx = gl_LaunchIDNV.x; |
| uint ly = gl_LaunchIDNV.y; |
| uint sx = gl_LaunchSizeNV.x; |
| uint sy = gl_LaunchSizeNV.y; |
| traceNV(accNV0[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1); |
| traceNV(accNV1[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
|
| traceNV(accNV0[nonuniformEXT(i)], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
|
| } |