// inspired from // http://learnopengl.com/#!Advanced-Lighting/Shadows/Point-Shadows layout(triangles) in; layout(triangle_strip, max_vertices = 18) out; #ifdef POINT_LIGHT uniform mat4 MVP[6]; #elif defined CASCADED uniform mat4 frontShadowMVP; uniform mat4 midShadowMVP; uniform mat4 backShadowMVP; #endif out vec4 FragPos; // debug parameter flat out int fcolor_idx; void main(void){ for (int layerId = 0; layerId < 6; ++layerId){ for (int i = 0; i < gl_in.length(); ++i){ gl_Layer = layerId; fcolor_idx = layerId; FragPos = gl_in[i].gl_Position; gl_Position = MVP[layerId] * FragPos; EmitVertex(); } EndPrimitive(); } }