| 1234567891011121314151617181920212223242526272829 |
- #version 330 core
- layout (triangles) in;
- layout (triangle_strip, max_vertices=18) out;
- uniform mat4 u_shadowMatrices[6];
- uniform int u_lightIndex;
- out vec4 v_fragPos; // FragPos from GS (output per emitvertex)
- out vec2 v_finalTexCoord;
- in vec2 v_texCoord[3];
- void main()
- {
- for(int face = 0; face < 6; ++face)
- {
- gl_Layer = face + u_lightIndex * 6; // built-in variable that specifies to which face we render.
- for(int i = 0; i < 3; ++i) // for each triangle vertex
- {
- v_fragPos = gl_in[i].gl_Position;
- v_finalTexCoord = v_texCoord[i];
- gl_Position = u_shadowMatrices[face] * v_fragPos;
- EmitVertex();
- }
- EndPrimitive();
- }
- }
|