uniform float time; varying vec2 vUv; varying vec3 vNormal; vec2 rot(vec2 uv, float angle) { float c = cos(angle); float s = sin(angle); mat2 rot = mat2(s, -c, c, s); return uv * rot; } void main(){ vec3 black = vec3(0.0); vec3 white = vec3(1.0); vec3 color = black; vec2 uv = vUv; uv = rot(uv, sin(time) * 0.05); float boardSize = 24.0; uv = uv * boardSize; vec2 gridId = floor(uv); if (mod(gridId.x + gridId.y, 2.0) <= 0.01) { color = white; } else { color = black; } gl_FragColor = vec4(color, 1.0); }