PREVIOUS NEXT


Fragment Shader

                    // Fragment shader
                    precision highp float;
                    
                    varying vec2 UV;
                    varying vec3 v_position;
                    uniform float time;
                    uniform float ratio;
                    uniform vec2 mouse;
                    
                    void main(void){
                    float x = UV.x * ratio;
                    float y = UV.y;
                    
                    vec4 col = vec4(0.0);
                    
                    x *= distance(mouse, vec2(x, y - 1.0));
                    y *= distance(mouse, vec2(x, y));
                    
                    col.r = abs(sin(30.0 * y + 3.1416 * time + 0.3));
                    col.b = abs(sin(30.0 * y + 3.1416 * time + 0.5));
                    col.b = abs(sin(30.0 * y + 3.1416 * time + 1.0));
                    col *= cos(30.0 * x);
                    col.a = 1.0;
                    
                    gl_FragColor = col;
                    }