【GLSL】1次元のバリューノイズ
See the Pen 1D value noise by aadebdeb (@aadebdeb) on CodePen.
precision mediump float; uniform float u_time; uniform vec2 u_mouse; uniform vec2 u_resolution; float random(float v) { return fract(sin(v) * 43758.5453123); } float noise(float v) { float i = floor(v); float f = fract(v); // return random(i); // return mix(random(i), random(i + 1.), f); // return mix(random(i), random(i + 1.), smoothstep(0., 1., f)); float u = f * f * (3. - 2. * f ); return mix(random(i), random(i + 1.), f); } void main(void) { float d = distance(gl_FragCoord.xy, u_resolution / 2.); float v = noise(d * .03 - u_time * .001); gl_FragColor = vec4(vec3(v), 1.); }