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

37 lines
955 B
Plaintext

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;
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;
fragPosLightSpace = uLightFromCamera * eyePos;
fragNormal = mat3(ModelViewMatrix) * normal;
}