#version 150 in vec4 vPosition; in vec2 vTexCoord; out vec4 color; out vec2 texCoord; out float fog_factor; uniform int foggy; uniform vec3 eye_pos; uniform mat4 model_view; uniform mat4 projection; void main() { color = vec4(1.0, 1.0, 1.0, 1.0); texCoord = vTexCoord; gl_Position = projection * model_view * vPosition / vPosition.w; // fog if (foggy > 0) { float dis = (vPosition.x - eye_pos.x) * (vPosition.x - eye_pos.x) + (vPosition.y - eye_pos.y) * (vPosition.y - eye_pos.y) + (vPosition.z - eye_pos.z) * (vPosition.z - eye_pos.z); fog_factor = exp(-dis); } else { fog_factor = 1.0; } }