// Author @patriciogv - 2015 // http://patriciogonzalezvivo.com #ifdef GL_ES precision mediump float; #endif uniform vec2 u_resolution; uniform vec2 u_mouse; uniform float u_time; float box(in vec2 st, in vec2 size){ size = vec2(0.5) - size*0.5; vec2 uv = smoothstep(size, size+vec2(0.001), st); uv *= smoothstep(size, size+vec2(0.001), vec2(1.0)-st); return uv.x*uv.y; } float cross(in vec2 st, float size){ return box(st, vec2(size,size/4.)) + box(st, vec2(size/4.,size)); } void main(){ vec2 st = gl_FragCoord.xy/u_resolution.xy; gl_FragColor = vec4( vec3( cross(st,0.4) ) ,1.0); }