• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1uniform mat4 m_LightViewProjectionMatrix0;
2uniform mat4 m_LightViewProjectionMatrix1;
3uniform mat4 m_LightViewProjectionMatrix2;
4uniform mat4 m_LightViewProjectionMatrix3;
5
6uniform mat4 g_WorldViewProjectionMatrix;
7uniform mat4 g_WorldMatrix;
8
9varying vec4 projCoord0;
10varying vec4 projCoord1;
11varying vec4 projCoord2;
12varying vec4 projCoord3;
13
14varying float shadowPosition;
15
16attribute vec3 inPosition;
17
18const mat4 biasMat = mat4(0.5, 0.0, 0.0, 0.0,
19                          0.0, 0.5, 0.0, 0.0,
20                          0.0, 0.0, 0.5, 0.0,
21                          0.5, 0.5, 0.5, 1.0);
22
23
24void main(){
25    gl_Position = g_WorldViewProjectionMatrix * vec4(inPosition, 1.0);
26
27    shadowPosition = gl_Position.z;
28    // get the vertex in world space
29    vec4 worldPos = g_WorldMatrix * vec4(inPosition, 1.0);
30
31
32    // populate the light view matrices array and convert vertex to light viewProj space
33    projCoord0 = biasMat * m_LightViewProjectionMatrix0 * worldPos;
34    projCoord1 = biasMat * m_LightViewProjectionMatrix1 * worldPos;
35    projCoord2 = biasMat * m_LightViewProjectionMatrix2 * worldPos;
36    projCoord3 = biasMat * m_LightViewProjectionMatrix3 * worldPos;
37}