sans titre
const float PI = 3.14159; float t = time; in VertexData { vec4 v_position; vec3 v_normal; vec2 v_texcoord; } inData; out vec4 fragColor; vec2 randVec(ivec2 z) { int n = z.x + z.y * 11111; n = (n<<13)^n; n = (n * (n * n * 15731+789221)+1376312589)>>16; return vec2(cos(float(n)),sin(float(n))); } float easingSaw(float x, float attack) { float a2 = 1/(2 * attack + 1); float x2 = (1 + a2) * mod(x,1) - a2; float v = 1 - (attack+1) * abs(x2) + attack * x2; return v * v * v; } float perlin2D(vec2 p) { ivec2 i = ivec2(floor(p)); vec2 f = fract(p); vec2 s = f * f * f * (10 + f * (6 * f - 15)); float topLeft = dot(randVec(i), f); float topRight = dot(randVec(i + ivec2(1, 0)), f - vec2(1, 0)); float bottomLeft = dot(randVec(i + ivec2(0, 1)), f - vec2(0, 1)); float bottomRight = dot(randVec(i + ivec2(1, 1)), f - vec2(1, 1)); float hTop = mix(topLeft, topRight, s.x); float hBottom = mix(bottomLeft,
βhttps://video.tedomum.net/w/nrkAYAVB3U5ddFPX9T3XSa