15/shaders/sun_shadow.geom

17 lines
482 B
GLSL

#version 420 core
layout(triangles, invocations = 4) in; // здесь invocations должно соответствовать количеству каскадов
layout(triangle_strip, max_vertices = 3) out;
uniform mat4 Sun_VP[4]; // Матрицы вида и проекции каскадов
void main()
{
for (int i = 0; i < 3; ++i)
{
gl_Position = Sun_VP[gl_InvocationID] * gl_in[i].gl_Position;
gl_Layer = gl_InvocationID;
EmitVertex();
}
EndPrimitive();
}