1// hero wave — vertex shader
2uniform float uTime;
3uniform vec2 uMouse;
4
5attribute vec3 aColor;
6varying vec3 vColor;
7
8void main() {
9 vColor = aColor;
10 vec3 pos = position;
11
12 float dist = distance(pos.xy, uMouse);
13 float ripple = sin(dist * 0.5 - uTime * 2.0) * 1.2;
14 float swellX = sin(pos.x * 0.3 + uTime) * 0.5;
15 float swellY = cos(pos.y * 0.3 + uTime * 0.7) * 0.5;
16
17 pos.z = ripple + swellX + swellY;
18
19 gl_Position = projectionMatrix
20 * modelViewMatrix
21 * vec4(pos, 1.0);
22}
1// hero wave — vertex shader
2uniform float uTime;
3uniform vec2 uMouse;
4
5attribute vec3 aColor;
6varying vec3 vColor;
7
8void main() {
9 vColor = aColor;
10 vec3 pos = position;
11
12 float dist = distance(pos.xy, uMouse);
13 float ripple = sin(dist * 0.5 - uTime * 2.0) * 1.2;
14 float swellX = sin(pos.x * 0.3 + uTime) * 0.5;
15 float swellY = cos(pos.y * 0.3 + uTime * 0.7) * 0.5;
16
17 pos.z = ripple + swellX + swellY;
18
19 gl_Position = projectionMatrix
20 * modelViewMatrix
21 * vec4(pos, 1.0);
22}