spv.RayGenShaderArray.rgen 749 B

1234567891011121314151617181920212223
  1. #version 460
  2. #extension GL_NV_ray_tracing : enable
  3. #extension GL_EXT_nonuniform_qualifier : enable
  4. layout(binding = 0, set = 0) uniform accelerationStructureNV accNV0[];
  5. layout(binding = 1, set = 0) uniform accelerationStructureNV accNV1[2];
  6. layout(location = 0) rayPayloadNV vec4 payload;
  7. layout(shaderRecordNV) buffer block
  8. {
  9. vec3 dir;
  10. vec3 origin;
  11. int i;
  12. };
  13. void main()
  14. {
  15. uint lx = gl_LaunchIDNV.x;
  16. uint ly = gl_LaunchIDNV.y;
  17. uint sx = gl_LaunchSizeNV.x;
  18. uint sy = gl_LaunchSizeNV.y;
  19. traceNV(accNV0[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
  20. traceNV(accNV1[i], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
  21. traceNV(accNV0[nonuniformEXT(i)], lx, ly, sx, sy, 0u, origin, 0.5f, dir, 0.75f, 1);
  22. }