attribute vec3 vPosition; attribute vec2 vTexCoord; attribute vec3 vNormal; 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 eyePos = ModelViewMatrix * vec4(vPosition, 1.0); fogDistance = length(eyePos.xyz - uPlayerEyePos); gl_Position = ProjectionModelViewMatrix * vec4(vPosition, 1.0); texCoord = vTexCoord; fragPosLightSpace = uLightFromCamera * eyePos; fragNormal = mat3(ModelViewMatrix) * vNormal; }