return love.graphics.newShader[[
  #define fog vec4( 0.85, 0.85, 1.0, 1.0 )
  #define yellow vec4( 0.9, 0.9, 0.7, 1.0 )
  #define blue vec4( 0.6, 0.6, 0.7, 1.0 )
varying vec3 viewDir;
#ifdef VERTEX
  uniform mat4 view;
  uniform mat4 proj;
  vec4 position( mat4 _, vec4 pos ){
    viewDir = pos.xyz;
    return proj*view*pos;
  }
#endif
#ifdef PIXEL
  uniform vec3 light;
  vec4 effect( vec4 color, Image _, vec2 __, vec2 ___) {
    float d = dot( normalize( viewDir ), light );
    d = 0.5+0.5*d;
    d = pow(d, 45);
    return mix( blue, mix( yellow, color, d * 2 ) , d );
  }
#endif
]]