uniform sampler2D uTexture; varying vec2 vUv; #define STEP 0.03125 bool shouldSpawn( vec2 p ) { return ( p.x < vUv.x && vUv.x < p.x + STEP && p.y < vUv.y && vUv.y < p.y + STEP ); } void main() { vec4 color = texture2D( uTexture, vUv ); // current value float x = 0.0; // Create new pixels on top left if ( shouldSpawn( vec2( x, 1.0 - 2.0 * STEP ) ) ) { color.r = 1.0; } gl_FragColor = color; }