uniform sampler2D tex; uniform vec3 fog_color, grid_color; varying vec3 vpos; void main() { vec3 texel = texture2D(tex, gl_TexCoord[0].st).xyz; vec3 color = pow(texel * grid_color, vec3(0.75)) * 2.0; float dist = abs(vpos.z); float fog = 1.0 - exp(-dist * 0.11); float t = clamp(fog, 0.0, 1.0); gl_FragColor.xyz = mix(color, fog_color, t); gl_FragColor.a = 1.0; }