attribute vec3 vPosition; attribute vec2 vTexCoord; attribute vec3 vNormal; varying vec2 texCoord; varying float fogDistance; varying vec3 fragViewPos; varying vec3 fragNormal; varying vec2 fragWorldXZ; uniform mat4 ProjectionModelViewMatrix; uniform mat4 ModelViewMatrix; uniform vec3 uPlayerEyePos; void main() { vec4 eyePos = ModelViewMatrix * vec4(vPosition.xyz, 1.0); fogDistance = length(eyePos.xyz - uPlayerEyePos); gl_Position = ProjectionModelViewMatrix * vec4(vPosition.xyz, 1.0); texCoord = vTexCoord; fragViewPos = eyePos.xyz; fragNormal = mat3(ModelViewMatrix) * vNormal; fragWorldXZ = vPosition.xz; }