uniform float u_Time; varying vec2 v_TexCoord; uniform sampler2D u_Tex0; void main(void) { vec2 q = v_TexCoord; vec2 uv = 0.5 + (q - 0.5) * (0.9 + 0.1 * sin(0.2 * u_Time)); vec3 oricol = texture2D(u_Tex0, vec2(q.x, q.y)).xyz; vec3 col = oricol; col = clamp(col * 0.5 + 0.5 * col * col * 1.2, 0.0, 1.0); col *= 0.5 + 0.5 * 16.0 * uv.x * uv.y * (1.0 - uv.x) * (1.0 - uv.y); col *= vec3(0.8, 1.0, 0.7); col *= 0.9 + 0.1 * sin(10.0 * u_Time + uv.y * 1000.0); col *= 0.97 + 0.03 * sin(110.0 * u_Time); gl_FragColor = vec4(col, 1.0); }