uniform sampler2D tex;
+uniform vec3 fog_color, grid_color;
varying vec3 vpos;
void main()
{
- const vec3 bg_color = vec3(0.5, 0.1, 1.0);
- vec3 grid_color = texture2D(tex, gl_TexCoord[0].st).xyz;
+ vec3 texel = texture2D(tex, gl_TexCoord[0].st).xyz;
+ vec3 color = pow(texel * grid_color, vec3(0.76)) * 5.0;
- float fog = min(abs(vpos.z) * 0.05, 1.0);
+ float dist = abs(vpos.z);
+ float fog = 1.0 - exp(-dist * 0.12);
- gl_FragColor.xyz = mix(grid_color, bg_color, fog);
+ float t = clamp(fog, 0.0, 1.0);
+ gl_FragColor.xyz = mix(color, fog_color, t);
gl_FragColor.a = 1.0;
}