diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2019-03-27 11:58:23 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2019-03-27 11:58:23 +0300 |
commit | 82e23e4221d98a67e2434dd114910a863dba55bd (patch) | |
tree | 6c77df69a690e9d1379756df99b618725e39be01 /shaders | |
parent | 736703fe3beea590e5ada820e65d12721932fa66 (diff) | |
parent | 0f72199b8f99d5a3b8ea68d66d8454dddf927b26 (diff) |
Merge branch 'SPV_NV_ray_tracing' of git://github.com/pmoursnv/SPIRV-Cross
Diffstat (limited to 'shaders')
-rw-r--r-- | shaders/vulkan/rchit/ray_tracing.vk.rchit | 9 | ||||
-rw-r--r-- | shaders/vulkan/rgen/pure_call.vk.rgen | 18 | ||||
-rw-r--r-- | shaders/vulkan/rgen/ray_tracing.vk.rgen | 16 | ||||
-rw-r--r-- | shaders/vulkan/rmiss/ray_tracing.vk.rmiss | 9 |
4 files changed, 52 insertions, 0 deletions
diff --git a/shaders/vulkan/rchit/ray_tracing.vk.rchit b/shaders/vulkan/rchit/ray_tracing.vk.rchit new file mode 100644 index 00000000..107f9751 --- /dev/null +++ b/shaders/vulkan/rchit/ray_tracing.vk.rchit @@ -0,0 +1,9 @@ +#version 460 +#extension GL_NV_ray_tracing : require + +layout(location = 0) rayPayloadInNV float payload; + +void main() +{ + payload = 1.0; +} diff --git a/shaders/vulkan/rgen/pure_call.vk.rgen b/shaders/vulkan/rgen/pure_call.vk.rgen new file mode 100644 index 00000000..3e362ed0 --- /dev/null +++ b/shaders/vulkan/rgen/pure_call.vk.rgen @@ -0,0 +1,18 @@ +#version 460 +#extension GL_NV_ray_tracing : require + +layout(set = 0, binding = 1) uniform accelerationStructureNV as; +layout(location = 0) rayPayloadNV float payload; + +float pure_call(vec2 launchID, vec2 launchSize) +{ + vec3 origin = vec3(launchID.x / launchSize.x, launchID.y / launchSize.y, 1.0); + vec3 direction = vec3(0.0, 0.0, -1.0); + traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); + return 0.0; +} + +void main() +{ + pure_call(vec2(gl_LaunchIDNV.xy), vec2(gl_LaunchSizeNV.xy)); +} diff --git a/shaders/vulkan/rgen/ray_tracing.vk.rgen b/shaders/vulkan/rgen/ray_tracing.vk.rgen new file mode 100644 index 00000000..e3f7c1ac --- /dev/null +++ b/shaders/vulkan/rgen/ray_tracing.vk.rgen @@ -0,0 +1,16 @@ +#version 460 +#extension GL_NV_ray_tracing : require + +layout(set = 0, binding = 0, rgba8) uniform image2D image; +layout(set = 0, binding = 1) uniform accelerationStructureNV as; +layout(location = 0) rayPayloadNV float payload; + +void main() +{ + vec4 col = vec4(0.0, 0.0, 0.0, 1.0); + vec3 origin = vec3(float(gl_LaunchIDNV.x) / float(gl_LaunchSizeNV.x), float(gl_LaunchIDNV.y) / float(gl_LaunchSizeNV.y), 1.0); + vec3 direction = vec3(0.0, 0.0, -1.0); + traceNV(as, 0u, 255u, 0u, 1u, 0u, origin, 0.0, direction, 1000.0, 0); + col.y = payload; + imageStore(image, ivec2(gl_LaunchIDNV.xy), col); +} diff --git a/shaders/vulkan/rmiss/ray_tracing.vk.rmiss b/shaders/vulkan/rmiss/ray_tracing.vk.rmiss new file mode 100644 index 00000000..ff438ce7 --- /dev/null +++ b/shaders/vulkan/rmiss/ray_tracing.vk.rmiss @@ -0,0 +1,9 @@ +#version 460 +#extension GL_NV_ray_tracing : require + +layout(location = 0) rayPayloadInNV float payload; + +void main() +{ + payload = 0.0; +} |