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 |
댓글