precision mediump float; uniform vec4 black; uniform vec4 outline; uniform vec4 highlight; uniform vec4 foreground; uniform vec4 midground; uniform vec4 shadow; uniform vec4 background; uniform vec4 lamp1; //vec3 position, float strength uniform vec4 lamp2; uniform vec4 lamp3; // max 3 lamps per shaded vertex varying vec2 worldxy; varying mat4 pre; // Author @patriciogv - 2015 float random (vec2 st) { return fract( sin( dot(st.xy,vec2(12.9898,78.233)) ) * 43758.5453123 ); } void main() { vec4 coord = gl_FragCoord + vec4(worldxy * 256., 0, 0); /* coord.x -= worldxy.x; coord.y -= worldxy.y; */ //coord = coord / 1000.; float color = 0.; vec2 lamppos = (lamp1.xy * 256.) - (worldxy * 1.); color += (lamp1.w * 256.) - distance((lamp1.xy * 256.) - worldxy, coord.xy); /* if(color > 1.) gl_FragColor = highlight; else if(color > 0.8) gl_FragColor = foreground; else if(color > 0.6) gl_FragColor = midground; else if(color > 0.4) gl_FragColor = background; else if(color > 0.2) gl_FragColor = shadow; else gl_FragColor = black; */ gl_FragColor = vec4(color / (256. * lamp1.w), color / (256. * lamp1.w), color / (256. * lamp1.w),1.); }