attribute vec3 vPosition; attribute vec2 vTexCoord; #ifdef INSTANCED attribute vec4 iModel0; attribute vec4 iModel1; attribute vec4 iModel2; attribute vec4 iModel3; #endif varying vec2 texCoord; varying float fogDistance; uniform mat4 ProjectionModelViewMatrix; uniform mat4 ModelViewMatrix; uniform vec3 uPlayerEyePos; void main() { vec4 worldPos = vec4(vPosition, 1.0); #ifdef INSTANCED worldPos = mat4(iModel0, iModel1, iModel2, iModel3) * worldPos; #endif vec4 eyePos = ModelViewMatrix * worldPos; fogDistance = length(eyePos.xyz - uPlayerEyePos); gl_Position = ProjectionModelViewMatrix * worldPos; texCoord = vTexCoord; }