From 074ee4e573ea2ecb06b4699390ac977c8d1cf3cb Mon Sep 17 00:00:00 2001
From: Artur Wasmut <awasmut@uni-koblenz.de>
Date: Sat, 3 Jul 2021 16:34:53 +0200
Subject: [PATCH] WIP: shader location black magic between mesh and fragment
 shader

---
 projects/mesh_shader/resources/shaders/shader.frag |  9 ++++++++-
 projects/mesh_shader/resources/shaders/shader.mesh | 11 +++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/projects/mesh_shader/resources/shaders/shader.frag b/projects/mesh_shader/resources/shaders/shader.frag
index bdae0787..67075c6f 100644
--- a/projects/mesh_shader/resources/shaders/shader.frag
+++ b/projects/mesh_shader/resources/shaders/shader.frag
@@ -4,6 +4,13 @@
 //layout(location = 0) in vec3 fragColor;
 layout(location = 0) out vec4 outColor;
 
+struct VertColor
+{
+	vec3 color;
+};
+
+layout(location = 0) in VertColor VertexInput;
+
 void main() {
-	outColor = vec4(1.0);
+	outColor = vec4(VertexInput.color, 1);
 }
\ No newline at end of file
diff --git a/projects/mesh_shader/resources/shaders/shader.mesh b/projects/mesh_shader/resources/shaders/shader.mesh
index 4f6e1fa5..c21cf209 100644
--- a/projects/mesh_shader/resources/shaders/shader.mesh
+++ b/projects/mesh_shader/resources/shaders/shader.mesh
@@ -18,6 +18,13 @@ layout( push_constant ) uniform constants{
 //    vec4 gl_Position;
 //} gl_MeshVerticesNV[];
 
+struct VertColor
+{
+	vec3 color;
+};
+
+layout(location = 0) out VertColor VertexOutputs[];
+
 void main()	{
 	if(gl_LocalInvocationID.x == 0)
 	{
@@ -29,5 +36,9 @@ void main()	{
 		gl_MeshVerticesNV[0].gl_Position = mvp * vec4(-0.5,  0.5, 0.5, 1);
 		gl_MeshVerticesNV[1].gl_Position = mvp * vec4( 0.5,  0.5, 0.5, 1);
 		gl_MeshVerticesNV[2].gl_Position = mvp * vec4( 0  , -0.5, 0.5, 1);
+		
+		VertexOutputs[0].color = vec3(1, 0, 0);
+		VertexOutputs[1].color = vec3(0, 1, 0);
+		VertexOutputs[2].color = vec3(0, 0, 1);		
 	}
 }
\ No newline at end of file
-- 
GitLab