32 lines
941 B
Plaintext
32 lines
941 B
Plaintext
#version 460
|
|
#extension GL_NV_ray_tracing : require
|
|
|
|
struct Payload
|
|
{
|
|
float a;
|
|
float b;
|
|
};
|
|
|
|
struct Block
|
|
{
|
|
float a;
|
|
float b;
|
|
Payload c;
|
|
Payload d;
|
|
};
|
|
|
|
layout(set = 0, binding = 1) uniform accelerationStructureNV as;
|
|
layout(location = 1) rayPayloadNV Payload payload2;
|
|
layout(location = 0) rayPayloadNV float payload1;
|
|
layout(location = 2) rayPayloadNV Block _71;
|
|
layout(set = 0, binding = 0, rgba8) uniform writeonly image2D image;
|
|
|
|
void main()
|
|
{
|
|
traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(1.0, 0.0, 0.0), 0.0, vec3(0.0, 1.0, 0.0), 1000.0, 0);
|
|
traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(1.0, 0.0, 0.0), 0.0, vec3(0.0, 1.0, 0.0), 1000.0, 1);
|
|
traceNV(as, 0u, 255u, 0u, 1u, 0u, vec3(1.0, 0.0, 0.0), 0.0, vec3(0.0, 1.0, 0.0), 1000.0, 2);
|
|
imageStore(image, ivec2(gl_LaunchIDNV.xy), (vec4(payload1) + (vec4(payload2.a) + vec4(payload2.b))) + vec4(((((_71.a + _71.b) + _71.c.a) + _71.c.b) + _71.d.a) + _71.d.b));
|
|
}
|
|
|