1 uniform mat4 LightMVP; // world matrix
4 uniform float xyPerspectiveBias0;
5 uniform float xyPerspectiveBias1;
6 uniform float zPerspectiveBias;
8 vec4 getPerspectiveFactor(in vec4 shadowPosition)
10 float pDistance = length(shadowPosition.xy);
11 float pFactor = pDistance * xyPerspectiveBias0 + xyPerspectiveBias1;
12 shadowPosition.xyz *= vec3(vec2(1.0 / pFactor), zPerspectiveBias);
14 return shadowPosition;
20 vec4 pos = LightMVP * gl_Vertex;
22 tPos = getPerspectiveFactor(pos);
24 gl_Position = vec4(tPos.xyz, 1.0);
25 gl_TexCoord[0] = gl_TextureMatrix[0] * gl_MultiTexCoord0;