Шейдеры вычисления каскадов теней
This commit is contained in:
parent
1d2a659c46
commit
a272461d85
|
@ -0,0 +1,6 @@
|
||||||
|
#version 330 core
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
#version 420 core
|
||||||
|
|
||||||
|
layout(triangles, invocations = 4) in; // здесь invocations должно соответствовать количеству каскадов
|
||||||
|
layout(triangle_strip, max_vertices = 3) out;
|
||||||
|
|
||||||
|
layout(std140, binding = 3) uniform Sun
|
||||||
|
{
|
||||||
|
vec3 direction;
|
||||||
|
vec3 color;
|
||||||
|
mat4 vp[4];
|
||||||
|
} sun;
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
|
@ -4,14 +4,7 @@ layout (location = 0) in vec3 pos;
|
||||||
|
|
||||||
uniform mat4 model;
|
uniform mat4 model;
|
||||||
|
|
||||||
layout(std140, binding = 3) uniform Sun
|
|
||||||
{
|
|
||||||
vec3 direction;
|
|
||||||
vec3 color;
|
|
||||||
mat4 vp;
|
|
||||||
} sun;
|
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
gl_Position = sun.vp * model * vec4(pos, 1.0);
|
gl_Position = model * vec4(pos, 1.0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue