return love.graphics.newShader[[
  #define fog vec4( 0.85, 0.85, 1.0, 1.0 )
  #define blue vec4( 0.6, 0.6, 0.7, 0.0 )
  
  varying float d;
#ifdef VERTEX
  uniform mat4 view;
  uniform mat4 proj;
  vec4 position( mat4 _, vec4 pos ){
    pos.xyz *= 16.0;
    vec4 eye = view*pos;
    d = clamp( -eye.z / 16.0 - 0.4, 0.0, 1.0 );
    return proj*eye;
  }
#endif
#ifdef PIXEL
  vec4 effect( vec4 color, Image _, vec2 __, vec2 ___) {
    return mix( blue, fog, d);
  }
#endif
]]