-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path1.vs.glsl
47 lines (36 loc) · 1.13 KB
/
1.vs.glsl
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# version 410 core
in vec2 position;
in vec2 velocity;
in vec2 originalPos;
out vec2 outPosition;
out vec2 outVelocity;
uniform float time;
uniform vec2 mousePos;
uniform usampler2D depth;
void main() {
vec2 newVelocity = originalPos - position;
vec2 tc = -originalPos;
tc *= mat2(0.5, 0.0, 0.0, 0.5);
tc += vec2(0.5);
uvec4 depth_pixel = texture(depth, tc);
float d = float(depth_pixel.r) / 32768;
//if (length(mousePos - originalPos) < 0.75f) {
// vec2 acceleration = 1.5f * normalize(mousePos - position);
// newVelocity = velocity + acceleration * time;
//}
if (d > 0.05f && d < 0.4f) {
vec2 acceleration = 2.0f * normalize(position);
newVelocity = velocity + acceleration * time;
}
if (length(newVelocity) > 1.0f) {
newVelocity = normalize(newVelocity);
}
vec2 newPosition = position + newVelocity * time;
outPosition = newPosition;
outVelocity = newVelocity;
gl_Position = vec4(newPosition, 0.0, 1.0);
// debug only
//outPosition = originalPos;
//outVelocity = vec2(d, 0.0);
//gl_Position = vec4(originalPos, 0.0, 1.0);
}