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