🎲
precision highp float; uniform vec2 u_resolution; uniform float u_time; // USAGE: rot(float angle) #define rot(a) mat2(cos(a),-sin(a),sin(a),cos(a)) void main() { vec2 uv = (gl_FragCoord.xy - (u_resolution.xy * 0.5)) / u_resolution.y; vec2 uv2 = uv; uv2 *= rot(0.35); vec3 color = vec3(1.0, 0.0, 0.0); vec3 c1 = vec3(1.0, 1.0, 0.0); // yellow vec3 c2 = vec3(0.0, 0.6, 0.4); // green vec3 c3 = vec3(0.5, 0.0, 0.5); // purple // rows float row = fract(uv.y * 10.0 + u_time * 0.5); float diagonalRow = step( 0.35, fract(uv2.x * 50.0) ); row += diagonalRow; // columns float col = fract(uv.x * 10.0); col = step(0.1, col); float diagonalCol = step(0.5, fract(uv2.y * 50.0)); col += diagonalCol; // GREEN STRIPES uv.y += 1.5; float row2 = fract(uv.y * 5.0 + sin(u_time) * 0.03); row2 = smoothstep(0.2, 0.4, row2); row2 += diagonalCol; // PURPLE STRIPES uv.x += 5.3; float col2 = fract(uv.x * 2.0 - cos(u_time )* 0.05); col2 = smoothstep(0.1, 0.5, col2); col2 += diagonalRow; color = mix(c1, color, row); color = mix(c1, color, col); color = mix(c2, color, row2); color = mix(c3, color, col2); gl_FragColor = vec4(color, 1.0); }