From d87a1284c18fdae9ae9001e3ffa1779e20df0773 Mon Sep 17 00:00:00 2001
From: Vanessa Karolek <vaka1997@uni-koblenz.de>
Date: Sat, 4 Sep 2021 17:09:34 +0200
Subject: [PATCH] [#92] add raytracing shader templates (TODO)

ToDo: implement shaders, adjust push_constants, descriptorSets / -Writes etc.
---
 projects/rtx/resources/shaders/raytrace.rchit | 16 ++++++++++++++
 projects/rtx/resources/shaders/raytrace.rgen  | 22 +++++++++++++++++++
 projects/rtx/resources/shaders/raytrace.rmiss |  6 +++++
 3 files changed, 44 insertions(+)
 create mode 100644 projects/rtx/resources/shaders/raytrace.rchit
 create mode 100644 projects/rtx/resources/shaders/raytrace.rgen
 create mode 100644 projects/rtx/resources/shaders/raytrace.rmiss

diff --git a/projects/rtx/resources/shaders/raytrace.rchit b/projects/rtx/resources/shaders/raytrace.rchit
new file mode 100644
index 00000000..7eda8bd4
--- /dev/null
+++ b/projects/rtx/resources/shaders/raytrace.rchit
@@ -0,0 +1,16 @@
+#version 460
+#extension GL_EXT_ray_tracing : require
+
+layout(binding = 3, set 0) buffer vertices
+{
+    vec3 vertices[];
+};
+
+layout(binding = 4, set 0) buffer indices
+{
+    uint indices[];
+};
+
+void main() {
+
+}
diff --git a/projects/rtx/resources/shaders/raytrace.rgen b/projects/rtx/resources/shaders/raytrace.rgen
new file mode 100644
index 00000000..313ecdb2
--- /dev/null
+++ b/projects/rtx/resources/shaders/raytrace.rgen
@@ -0,0 +1,22 @@
+#version 460
+#extension GL_EXT_ray_tracing : require
+
+// A location for a ray payload (we can have multiple of these)
+layout(location = 0) rayPayloadEXT RayPayload pay;
+
+layout(binding = 0, set = 0, rgba32f) uniform image2D outImg;           // the output image -> maybe use 16 bit values?
+layout(binding = 1, set = 0) uniform accelerationStructureEXT tlas;     // top level acceleration structure (for the noobs here (you!))
+
+layout( push_constant ) uniform constants {     // TODO: add push_constants in main.cpp!
+    vec4 camera_position;   // as origin for ray generation
+    vec4 camera_right;      // for computing ray direction
+    vec4 camera_up;         // for computing ray direction
+    vec4 camera_forward;    // for computing ray direction
+
+    uint frameCount;        // what is this? the actual frame?
+};
+
+
+void main() {
+    // TODO
+}
\ No newline at end of file
diff --git a/projects/rtx/resources/shaders/raytrace.rmiss b/projects/rtx/resources/shaders/raytrace.rmiss
new file mode 100644
index 00000000..32e919a1
--- /dev/null
+++ b/projects/rtx/resources/shaders/raytrace.rmiss
@@ -0,0 +1,6 @@
+#version 460
+#extension GL_EXT_ray_tracing : require
+
+void main() {
+
+}
-- 
GitLab