return love.graphics.newShader[[
  #define fog vec4( 0.85, 0.85, 1.0, 1.0 )
varying vec3 viewDir;
#ifdef VERTEX
  uniform mat4 view;
  uniform mat4 proj;
  vec4 position( mat4 _, vec4 pos ){
    viewDir = pos.xyz;
    viewDir.y -= 0.5;
    return proj*view*pos;
  }
#endif
#ifdef PIXEL
  uniform samplerCube cube;
  vec4 effect( vec4 color, Image _, vec2 __, vec2 ___) {
    return mix( fog, 
    Texel( cube, viewDir ),
    dot(viewDir, vec3(0.0, 1.0, 0.0 )));;
  }
#endif
]]