+ float dist = -pos.z;
+ float fog = clamp(exp(-fog_density * dist), 0.0, 1.0);
+
+ vec4 texel = texture2D(tex, tex_coord);
+
+ vec4 object_color;
+ object_color.xyz = diffuse.xyz * cdiff * texel.xyz + specular.xyz * cspec;
+ object_color.w = 1.0;
+
+ color = mix(sky_color, object_color, fog);