uniform mat4 m_LightViewProjectionMatrix; | |
uniform mat4 g_WorldViewProjectionMatrix; | |
uniform mat4 g_WorldMatrix; | |
varying vec4 projCoord; | |
attribute vec3 inPosition; | |
const mat4 biasMat = mat4(0.5, 0.0, 0.0, 0.0, | |
0.0, 0.5, 0.0, 0.0, | |
0.0, 0.0, 0.5, 0.0, | |
0.5, 0.5, 0.5, 1.0); | |
void main(){ | |
gl_Position = g_WorldViewProjectionMatrix * vec4(inPosition, 1.0); | |
// get the vertex in world space | |
vec4 worldPos = g_WorldMatrix * vec4(inPosition, 1.0); | |
// convert vertex to light viewProj space | |
//projCoord = biasMat * (m_LightViewProjectionMatrix * worldPos); | |
vec4 coord = m_LightViewProjectionMatrix * worldPos; | |
projCoord = biasMat * coord; | |
//projCoord.z /= gl_DepthRange.far; | |
//projCoord = (m_LightViewProjectionMatrix * worldPos); | |
//projCoord /= projCoord.w; | |
//projCoord.xy = projCoord.xy * vec2(0.5, -0.5) + vec2(0.5); | |
// bias from [-1, 1] to [0, 1] for sampling shadow map | |
//projCoord = (projCoord.xyzw * vec4(0.5)) + vec4(0.5); | |
} |