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