resources/assets/js/visualizers/plane-mesh/shaders.ts

Summary

Maintainability
A
0 mins
Test Coverage
const shaders = {
  vertex: `
        varying float x;
        varying float y;
        varying float z;
        varying vec3 vUv;
        uniform float u_time;
        uniform float u_amplitude;
        uniform float[64] u_data_arr;
        void main() {
          vUv = position;
          x = abs(position.x);
          y = abs(position.y);
          float floor_x = round(x);
          float floor_y = round(y);
          float x_multiplier = (64.0 - x) / 4.0;
          float y_multiplier = (64.0 - y) / 4.0;
          z = sin(u_data_arr[int(floor_x)] / 40.0 + u_data_arr[int(floor_y)] / 40.0) * u_amplitude;
          gl_Position = projectionMatrix * modelViewMatrix * vec4(position.x, position.y, z, 1.0);
        }
    `,
  fragment: `
        varying float x;
        varying float y;
        varying float z;
        varying vec3 vUv;
        uniform float u_time;
        uniform float[64] u_data_arr;
        void main() {
          // gl_FragColor = vec4((u_data_arr[32])/205.0, 0, (u_data_arr[8])/205.0, 1.0);
          gl_FragColor = vec4((64.0 - abs(x)) / 32.0, (32.0 - abs(y)) / 32.0, (abs(x + y) / 2.0) / 32.0, 1.0);
        }
    `
}

export default shaders