aboutsummaryrefslogtreecommitdiff
path: root/sketches/03/flow.frag
blob: b878df9f8d4b9ab6e4019e79bc968d6e64160965 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#define CELL_COUNT 10.0

varying vec4 v_position;
uniform vec2 u_resolution;
uniform float u_time;

uniform sampler2D testImage;

struct Particle {
  vec2 position;
  vec2 velocity;
};

bool is_between(vec2 pos, vec2 min, vec2 max) {
  return pos.x > min.x && pos.x < max.x && pos.y > min.y && pos.y < max.y;
}

void main() {
  float time = sin(u_time);
  float ratio = u_resolution.x / u_resolution.y;
  vec2 pos = (v_position.xy + 1.)/2./vec2(1.0, ratio);

  float cell_size = 1.0/CELL_COUNT;
  vec2 cell_pos = cell_size * abs(floor(pos / cell_size));

  gl_FragColor = vec4(0., 0., 0., 1.);
  if (is_between(pos, cell_pos, cell_pos + cell_size)) {
    vec4 tex = texture2D(testImage, cell_pos);
    float value = (tex.r + tex.g + tex.b) / 3.;
    gl_FragColor = vec4(value, value, value, 1.0);
  }
}