33 lines
656 B
GLSL
33 lines
656 B
GLSL
|
|
layout(std140) uniform shadow_render_block
|
|
{
|
|
/* Use vectors to avoid alignement padding. */
|
|
ivec4 shadowSampleCount;
|
|
vec4 shadowInvSampleCount;
|
|
vec4 filterSize;
|
|
int viewCount;
|
|
int baseId;
|
|
float cubeTexelSize;
|
|
float storedTexelSize;
|
|
float nearClip;
|
|
float farClip;
|
|
float exponent;
|
|
};
|
|
|
|
out int layerID_g;
|
|
|
|
void main()
|
|
{
|
|
int v = gl_VertexID % 3;
|
|
layerID_g = gl_VertexID / 3;
|
|
float x = -1.0 + float((v & 1) << 2);
|
|
float y = -1.0 + float((v & 2) << 1);
|
|
gl_Position = vec4(x, y, 1.0, 1.0);
|
|
|
|
/* HACK avoid changing drawcall parameters. */
|
|
if (layerID_g >= viewCount) {
|
|
gl_Position = vec4(0.0);
|
|
}
|
|
layerID_g += baseId;
|
|
}
|