#ifdef GL_ES precision mediump float; #endif #define FBM_OCTAVES 6 #include "lygia/generative/fbm.glsl" uniform vec2 u_resolution; uniform vec2 u_mouse; uniform vec3 u_color_start; uniform vec3 u_color_end; uniform vec2 u_offset; uniform float u_time; void main(){ vec2 st=(gl_FragCoord.xy+u_offset)/u_resolution; vec2 q=vec2(0.); q.x=fbm(st); q.y=fbm(st+vec2(1.)); q=q*.5+.5; vec2 r=vec2(0.); r.x=fbm(st+1.*q+vec2(1.7,9.2)+.0115*u_time); r.y=fbm(st+1.*q+vec2(8.3,2.8)+.0226*u_time); r=r*.5+.5; float f=fbm(st+r); vec3 color=mix(u_color_start,u_color_end,f*.3); gl_FragColor=vec4(color,1.); }