| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- uniform mat4 m_LightViewProjectionMatrix0;
- uniform mat4 m_LightViewProjectionMatrix1;
- uniform mat4 m_LightViewProjectionMatrix2;
- uniform mat4 m_LightViewProjectionMatrix3;
- uniform mat4 g_WorldViewProjectionMatrix;
- uniform mat4 g_WorldMatrix;
- varying vec4 projCoord0;
- varying vec4 projCoord1;
- varying vec4 projCoord2;
- varying vec4 projCoord3;
- #ifdef POINTLIGHT
- uniform mat4 m_LightViewProjectionMatrix4;
- uniform mat4 m_LightViewProjectionMatrix5;
- varying vec4 projCoord4;
- varying vec4 projCoord5;
- varying vec4 worldPos;
- #endif
- #ifdef PSSM
- varying float shadowPosition;
- #endif
- varying vec2 texCoord;
- attribute vec3 inPosition;
- #ifdef DISCARD_ALPHA
- attribute vec2 inTexCoord;
- #endif
- 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);
- #ifdef PSSM
- shadowPosition = gl_Position.z;
- vec4 worldPos=vec4(0.0);
- #endif
- // get the vertex in world space
- worldPos = g_WorldMatrix * vec4(inPosition, 1.0);
- #ifdef DISCARD_ALPHA
- texCoord = inTexCoord;
- #endif
- // populate the light view matrices array and convert vertex to light viewProj space
- projCoord0 = biasMat * m_LightViewProjectionMatrix0 * worldPos;
- projCoord1 = biasMat * m_LightViewProjectionMatrix1 * worldPos;
- projCoord2 = biasMat * m_LightViewProjectionMatrix2 * worldPos;
- projCoord3 = biasMat * m_LightViewProjectionMatrix3 * worldPos;
- #ifdef POINTLIGHT
- projCoord4 = biasMat * m_LightViewProjectionMatrix4 * worldPos;
- projCoord5 = biasMat * m_LightViewProjectionMatrix5 * worldPos;
- #endif
- }
|