1uniform mat4 m_LightViewProjectionMatrix; 2uniform mat4 g_WorldViewProjectionMatrix; 3uniform mat4 g_WorldMatrix; 4 5varying vec4 projCoord; 6 7attribute vec3 inPosition; 8 9const mat4 biasMat = mat4(0.5, 0.0, 0.0, 0.0, 10 0.0, 0.5, 0.0, 0.0, 11 0.0, 0.0, 0.5, 0.0, 12 0.5, 0.5, 0.5, 1.0); 13 14void main(){ 15 gl_Position = g_WorldViewProjectionMatrix * vec4(inPosition, 1.0); 16 17 // get the vertex in world space 18 vec4 worldPos = g_WorldMatrix * vec4(inPosition, 1.0); 19 20 // convert vertex to light viewProj space 21 //projCoord = biasMat * (m_LightViewProjectionMatrix * worldPos); 22 vec4 coord = m_LightViewProjectionMatrix * worldPos; 23 projCoord = biasMat * coord; 24 //projCoord.z /= gl_DepthRange.far; 25 //projCoord = (m_LightViewProjectionMatrix * worldPos); 26 //projCoord /= projCoord.w; 27 //projCoord.xy = projCoord.xy * vec2(0.5, -0.5) + vec2(0.5); 28 29 // bias from [-1, 1] to [0, 1] for sampling shadow map 30 //projCoord = (projCoord.xyzw * vec4(0.5)) + vec4(0.5); 31}