Añadir a ColorRect de un CanvasItem.
CÓDIGO:
shader_type canvas_item; float smoothNoise(vec2 p) { vec2 f = fract(p); p-=f; f *= f*(3.0 - f - f); vec4 z = fract(sin(vec4(0, 1, 27, 28) + p.x + p.y *27.0) * 10000.0); mat2 w = mat2(z.xy, z.zw); vec2 b = w*vec2(1.0-f.y,f.y); return dot(b, vec2(1.0-f.x, f.x)); } float fractalNoise(vec2 p) { return smoothNoise(p)*0.2333 + smoothNoise(p*2.0)*0.2667 + smoothNoise(p*4.0)*0.1333 + smoothNoise(p*8.0)*0.1667; } float warpedNoise(vec2 p, float time) { vec2 m = vec2(time, -time)*0.04;//vec2(sin(iTime*0.5), cos(iTime*0.5)); float x = fractalNoise(p + m); float y = fractalNoise(p + m.yx + x); float z = fractalNoise(p - m - x + y); return fractalNoise(p + vec2(x, y) + vec2(y, z) + vec2(z, x) + length(vec3(x, y, z))*0.05); } void fragment() { vec2 uv = FRAGCOORD.xy / (1.0 / SCREEN_PIXEL_SIZE).y; float n = warpedNoise(uv * 6.0, TIME); float n2 = warpedNoise(uv * 6.0 + 0.02, TIME); float bump = max(n2 - n, 0.0)/0.02*0.7071; float bump2 = max(n - n2, 0.0)/0.02*0.7071; bump = bump*bump*0.5 + pow(bump, 4.0)*0.5; bump2 = bump2*bump2*0.5 + pow(bump2, 4.0)*0.5; vec3 col = n*n*(vec3(0.1, 0.2, 0.4)*vec3(bump*0.1, (bump + bump2)*0.1, bump2*0.1)*0.1 + 0.1) + vec3(0.1,0.13,0.22); col = col * 0.6; COLOR = vec4(sqrt(max(col, vec3(0.0))), 1.0); }
0 comentarios:
Publicar un comentario