Files
shadow-over-bishkek001/resources/shaders/night_fog_shadow_web.vertex
T

42 lines
1.1 KiB
Plaintext

precision highp float;
attribute vec3 vPosition;
attribute vec2 vTexCoord;
attribute vec3 vNormal;
#ifdef INSTANCED
attribute vec4 iModel0;
attribute vec4 iModel1;
attribute vec4 iModel2;
attribute vec4 iModel3;
#endif
varying vec2 texCoord;
varying vec4 fragPosLightSpace;
varying vec3 fragNormal;
varying float fogDistance;
varying vec3 fragViewPos;
varying vec2 fragWorldXZ;
uniform mat4 ProjectionModelViewMatrix;
uniform mat4 ModelViewMatrix;
uniform mat4 uLightFromCamera;
uniform vec3 uPlayerEyePos;
void main()
{
vec4 worldPos = vec4(vPosition, 1.0);
vec3 normal = vNormal;
#ifdef INSTANCED
mat4 instanceModel = mat4(iModel0, iModel1, iModel2, iModel3);
worldPos = instanceModel * worldPos;
normal = normalize(mat3(instanceModel) * normal);
#endif
vec4 eyePos = ModelViewMatrix * worldPos;
fogDistance = length(eyePos.xyz - uPlayerEyePos);
gl_Position = ProjectionModelViewMatrix * worldPos;
texCoord = vTexCoord;
fragViewPos = eyePos.xyz;
fragNormal = mat3(ModelViewMatrix) * normal;
fragPosLightSpace = uLightFromCamera * eyePos;
fragWorldXZ = worldPos.xz;
}