cheap noise
Log in to post a comment.
#version 300 es precision highp float; uniform float iTime; uniform float iLoop; uniform float uTwist; // value=2, min=0, max=2., step=0.01 uniform float ufalloff; // value=.9, min=0.5, max=1., step=0.01 uniform float uContrast; // value=.2, min=0., max=0.5, step=0.01 uniform float uColor; // value=.5, min=0., max=1., step=0.01 in vec2 vScreen; out vec4 fragColor; #define PI 3.1415 //identity rotated GOLDEN_ANGLE around x, then around y #define m3 mat3(-0.7373, 0.4562, 0.4980, 0, -0.7373, 0.6754, 0.6754, 0.4980, 0.5437) void main() { vec3 p = vec3(vScreen * PI, iTime * 0.2); float a = 1.; vec3 n = vec3(0); for(int i = 0; i <7 ; i++){ p = m3 * p; vec3 s = sin( p.zxy / a) * a; p += s * uTwist; n += s; a *= ufalloff; } fragColor.xyz = mix(vec3((n.x + n.y + n.z) * 0.5), n, uColor) * uContrast + 0.5; }