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