Как добавить эффект мыши, представленный в этом проекте: https://jesperlandberg.dev/
Пока это мой проект: https://codepen.io/ReGGae/pen/povjKxV
Я не редактировал vertexShader
и fragmentShader
коды, как на сайте.
Я искал несколько дней, но не мог понять код ... пожалуйста, помогите.
const vertexShader = `
precision mediump float;
uniform float uVelo;
uniform float uProgress;
uniform float uOffset;
uniform float uPress;
uniform float uTime;
uniform float uScaleZ;
varying vec2 vUv;
#define M_PI 3.1415926535897932384626433832795
float q(float t) {
float p=2.0*t* t;
return t<0.5?p:-p+(4.0*t)-1.0; }
float random(vec2 p) {
vec2 K1 = vec2(
23.14069263277926,
2.665144142690225);
return fract(cos(dot(p,K1)) * 12345.6789);
}
void main(){
vec3 pos = position;
float dist = 1. - distance(uv, vec2(0.5));
float rippleEffect = cos(5. * (dist + uProgress));
pos.z -= rippleEffect * uPress;
vec4 mvPosition = modelViewMatrix * vec4(pos, 1.);
float normalizedDistance = mvPosition.x / uOffset;
mvPosition.x = mvPosition.x + ((sin(uv.y * M_PI) * uVelo) * 1.15);
mvPosition.z = mvPosition.z + ((sin(normalizedDistance * M_PI + M_PI / 2.) * abs(uVelo)) * 1.5);
mvPosition.z *= uScaleZ;
vUv = uv;
gl_Position = projectionMatrix * mvPosition;
}
`;