Мышь webgl vertexShader и slicShader? - PullRequest
0 голосов
/ 09 апреля 2020

Как добавить эффект мыши, представленный в этом проекте: 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;
         }
`;
...