#version 300 es precision mediump float; in vec4 color; in vec2 texCoord; out vec4 fragColor; uniform vec4 color1; uniform vec4 color2; uniform float patternSize; void main() { float colorMix = ((step(patternSize * 0.5, mod(texCoord.x, patternSize)) * 2.0 - 1.0) * (step(patternSize * 0.5, mod(texCoord.y, patternSize)) * 2.0 - 1.0) + 1.0) * 0.5; fragColor = color * (color1 * (1.0 - colorMix) + color2 * colorMix); }