const float PHI = 1.61803398874989484820459; // Φ = Golden Ratio const float INV_PI = 0.31830988618379067153776752674503; const float INV_SQRT_OF_2PI = 0.39894228040143267793994605993439; const float PI = 3.141592653589793; float seed = 0.0; vec2 xy = vec2(0.0); // based on https://www.shadertoy.com/view/ltB3zD // // Gold Noise ©2015 dcerisano@standard3d.com // - based on the Golden Ratio // - uniform normalized distribution // - fastest static noise generator function (also runs at low precision) // - use with indicated fractional seeding method. float gold_noise(){ seed += 0.1; return fract(tan(distance(xy * PHI, xy) * seed)*xy.x); } void init_random_state(in vec2 st, in float s) { xy = st; seed = s * 0.01; } float luminance(in vec3 col) { return dot(col, vec3(0.2126, 0.7152, 0.0722)); }