본문 바로가기
College Study/GLSL

[GLSL] Maze and Glitch

by 2den 2022. 1. 6.
728x90
#ifdef GL_ES
precision mediump float;
#endif

#define ROOT2 1.414

uniform vec2 u_resolution;
uniform vec2 u_mouse;
uniform float u_time;

float random(float f);
float random(vec2 f);
float random(vec3 f);

float line(vec2 coord, bool dir){
    float y;
    float thc = .2;
    
    if(dir){
        y = coord.x;
    }else{
        y = 1. - coord.x;
    }
    
    return smoothstep(y-thc, y, coord.y) - smoothstep(y, y+thc, coord.y);
}

void main(){
	vec2 coord = gl_FragCoord.xy/u_resolution;
    coord.x *= u_resolution.x/u_resolution.y;

	coord *= 10.;
    bool dir = random(floor(coord))>0.5?true:false;
    coord = fract(coord);
    
    vec3 col = vec3(line(coord, dir));
    gl_FragColor = vec4(col, 1.);
}

float random(float f){
    float y = fract(sin(f*100.)*100.);
    return y;
}

float random(vec2 f){
    float c = fract(sin(dot(f*25., vec2(17.34,50.13)))*84242.235);
    return c;
}


 
#ifdef GL_ES
precision mediump float;
#endif

#define ROOT2 1.414

uniform vec2 u_resolution;
uniform vec2 u_mouse;
uniform float u_time;

float random(float f);
float random(vec2 f);
float random(vec3 f);

float randomSerie(float x, float freq, float t){
    return step(.8, random(floor(x*freq)-floor(t)));
}

void main(){
	vec2 coord = gl_FragCoord.xy/u_resolution;
    coord.x *= u_resolution.x/u_resolution.y;
	
    vec3 color;
    
	float cols = 2.0;
    float freq = random(floor(u_time)) + abs(atan(u_time)*0.1);
    float t = 60. + u_time*(1.0 - freq)*10.;
    
    if (fract(coord.y*cols*0.5) < 0.5){
        t *= -1.0;
    }
    
    freq += random(floor(coord.y));
    
    float offset = 0.025;
    color = vec3(randomSerie(coord.x, freq*100., t+offset),
                 randomSerie(coord.x, freq*100., t), 
                 randomSerie(coord.x, freq*100., t-offset));
    
    gl_FragColor = vec4(1.0-color, 1.0);
}

float random(float f){
    float y = fract(sin(f*100.)*100.);
    return y;
}

float random(vec2 f){
    float c = fract(sin(dot(f*25., vec2(17.34,50.13)))*84242.235);
    return c;
}

 

728x90

'College Study > GLSL' 카테고리의 다른 글

[GLSL] Value Noise  (0) 2022.01.06
[GLSL] Float-float Noise  (0) 2022.01.06
[GLSL] Random  (0) 2022.01.06
[GLSL] Patterns  (0) 2022.01.06
[GLSL] Rotate and Scale  (0) 2022.01.06

댓글