diff --git a/projects/mesh_shader/resources/shaders/shader.frag b/projects/mesh_shader/resources/shaders/shader.frag index bdae07874750818928c0fbc7355e377d0f9f1f09..67075c6f0a52605c36bd6dd20716b19d18ccc31f 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 4f6e1fa572f7501cbb35006f93cfcce6753298aa..c21cf2097dbadcc14475323d39c127dbcea5394d 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