0x35ed1634…9501sent to0xa7d8d9ef…d270·#14,789,050·view on Etherscan
.x) + mid.y);}vec2 rotate(vec2 uv, float rotation, float mid){return vec2(cos(rotation) * (uv.x - mid) + sin(rotation) * (uv.y - mid) + mid,cos(rotation) * (uv.y - mid) - sin(rotation) * (uv.x - mid) + mid);}vec2 scale(vec2 uv, float scale, vec2 origin) {return (uv - origin) * scale + origin;}vec2 scale(vec2 uv, vec2 scale, vec2 origin) {return (uv - origin) * scale + origin;}\n${edge}${noisecommon}${pnoise}${snoise}${grain}${noise}${curl}${adjust}${blend}${fm}\nfloat rnduv(vec2 uv){float seed = uv.y * 100000.;float r = abs(tan(sin(uv.y * seed) * seed));return sqrt(1. - r) * 2. - 1.;}vec3 gtgrn() {float grainPertub = noise(vec3(vUv * vec2(4., 80.), 0.));grainPertub /= noise(vec3(vUv * vec2(40., 8.), 0.));vec3 cnoise = vec3(grain(vUv, vec2(2100., 2800.) * ugrnscl + grainPertub*.3));return cnoise;}float gtstns(vec2 offset) {float stains = 1. - vec3(grain(vUv + vec2(offset), vec2(2100., 2800.) * .0025)).r;float stainsEdges = 0.1;float stainsThreshold = .7;stains = smoothstep(stainsThreshold + stainsEdges, stainsThreshold - stainsEdges, stains);stains = clamp(stains, 0., 1.);return stains;}vec3 gtnsycl(float offset) {float scly = 1000.;if (ungt.x == 1.) {scly = 100000.;}vec2 tinywrapUV = scale(vUv, vec2(50., scly) + vec2(0., urnd * 500.), vec2(0.5));float tinywrap = noise(vec3(tinywrapUV, offset));vec2 tinyuv = vUv * vec2(tinywrap);vec3 nsycl = texture2D(tInput, tinyuv).rgb;return nsycl;}vec3 gtpclstk(float offset) {vec2 pencilstkuv = vUv + vec2(0., urnd);pencilstkuv = scale(pencilstkuv, vec2(5., 1000.), vec2(.5));vec3 curl = crlnse(vec3( (vUv*ucrl.z*1.1)+vec2(ucrl.y, ucrl.x), 0.));pencilstkuv = rotate(pencilstkuv, curl.r * .5);float pclstkPertub = noise(vec3(pencilstkuv, offset));vec2 pencilStrokeUv = vUv + vec2(pclstkPertub) * .2;vec3 c = texture2D(tInput, pencilStrokeUv).rgb * 10.;return c;}vec3 applycbse(vec3 c, vec4 cbse) {c = cntrst(c, cbse.r);c = brhtnss(c, cbse.g);c = strtn(c, cbse.b);c = xpsr(c, cbse.a);return c;}float gtdt(vec2 coords, vec2 levels) {float dirt = fm1(coords);dirt = max(levels.x, min(dirt, levels.y));dirt = map(dirt, levels.x, levels.y, 0., 1.);return dirt;}vec3 rgb2hsv(vec3 rgb) {float Cmax = max(rgb.r, max(rgb.g, rgb.b));float Cmin = min(rgb.r, min(rgb.g, rgb.b));float delta = Cmax - Cmin;vec3 hsv = vec3(0., 0., Cmax);if (Cmax > Cmin) {hsv.y = delta / Cmax;if (rgb.r == Cmax) {hsv.x = (rgb.g - rgb.b) / delta;}else {if (rgb.g == Cmax) {hsv.x = 2. + (rgb.b - rgb.r) / delta;}else {hsv.x = 4. + (rgb.r - rgb.g) / delta;}}hsv.x = fract(hsv.x / 6.);}return hsv;}float chrky(vec3 color, vec3 bgcolor, vec3 weightsOffset) {vec3 backgroundColor = bgcolor;vec3 weights = vec3(4., 1., 2.) + weightsOffset;vec3 hsv = rgb2hsv(color);vec3 target = rgb2hsv(backgroundColor);float dist = length(weights * (target - hsv));return 1. - clamp(3. * dist - 1.5, 0., 1.);}void main() {float ratio = ures.x/ures.y;vec3 c = texture2D(tInput, vUv).rgb;vec3 oc = c;vec3 dirtc = texture2D(tDirtInput, vUv).rgb;float empty = 1.;if (uStep > 3.) {empty = texture2D(tEmpties, vUv).r;}vec3 cnoise = gtgrn();float stains = gtstns(c.rg);vec3 bgColor = ubg.rgb * ubg.a;float pertub = noise(vec3((vUv*uptuvscl * .3)+uptuvtrlt, 0.)) ;pertub += sn3d(vec3( (vUv* 6.7)+uptuvtrlt, 0.) ) * 0.01;float simplex = sn3d( vec3( (vUv*uptuvscl * 10.7)+uptuvtrlt, 0. ) );float simplex2 = sn3d( vec3( (vUv*uptuvscl * 1.7)+uptuvtrlt, 0. ) );vec3 curl = crlnse(vec3( (vUv*vec2(1., 1./ratio)*ucrl.z*ucrlscl)+vec2(ucrl.x, ucrl.y), 0.));vec3 dirtc2 = texture2D(tDirtInput, vUv + vec2(simplex*.005)).rgb;dirtc2 *= fm1(vUv*20.+uptuvtrlt);float m = mod(vUv.y * 3., .025);m = step(m, .01);if (uStep > 13.) {dirtc2 *= m;}float xdgemsk = noise(vec3(vUv * vec2(uframeprm.x + c.r, uframeprm.y), .0));float ydgemsk = noise(vec3(vUv * vec2(uframeprm.z + c.r, uframeprm.w), .0));float xdge = .02 + sin(vUv.y*15. + uptuvtrlt.x + vUv.x * 10.) * .003;float ydge = xdge * ratio + sin(vUv.x*10. + uptuvtrlt.y + vUv.y * 10. * curl.r * 2.) * .002;xdge += xdgemsk * .02 + abs(sin(vUv.x * 50.)) * .003;ydge += ydgemsk * .007 + sin(vUv.x * 5. + uptuvtrlt.x + step(vUv.y, .5)) * .0025;float framex = 1.;float framey = 1.;float frame = 1.;if (vUv.x < xdge || vUv.x > 1. - xdge ) { framex = 0.;}if (vUv.y < ydge || vUv.y > 1. - ydge ) { framey = 0.;}frame = framex * framey;float xsqssedgmsk = noise(vec3(vUv * vec2(uframeprm.x + c.r, uframeprm.y), .0));float ysqssedgmsk = noise(vec3(vUv * vec2(uframeprm.z + c.r, uframeprm.w), .0));float xsqssedg = .005 + sin(vUv.y*15. + uptuvtrlt.x + vUv.x * 10.) * .003;float ysqssedg = xsqssedg * ratio + sin(vUv.x*10. + uptuvtrlt.y + vUv.y * 10. * curl.r * 2.) * .002;xsqssedg += xsqssedgmsk * .02 + abs(sin(vUv.x * 50.)) * .009;ysqssedg += ysqssedgmsk * .007 + sin(vUv.x * 5. + uptuvtrlt.x + step(vUv.y, .5)) * .005;float framesqssx = 1.;float framesqssy = 1.;float framesqss = 1.;if (vUv.x < xsqssedg || vUv.x > 1. - xsqssedg ) { framesqssx = 0.;}if (vUv.y < ysqssedg || vUv.y > 1. - ysqssedg ) { framesqssy = 0.;}framesqss = framesqssx * framesqssy;\n${wrapuv}\nvec3 pclstkcl = gtpclstk(c.r);vec3 nsycl = gtnsycl(c.r);vec3 wrpcl = texture2D(tInput, wrapuv).rgb;float wrapRot = texture2D(tRotationInput, wrapuv).r;wrpcl *= fllcll;float cmask = step( length(wrpcl), 0. );float clltsh = .1;wrpcl *= empty;float stkrt = xpsr(vec3(wrpcl.r / wrpcl.b), 2.).r;vec2 stkuv = rotate(vUv, wrapRot + PI * .5 + curl.r * 50. + stripes + length(wrpcl) * 2. + cellId.x * PI * 1., vec2(.5));vec2 stkuv2 = rotate(vUv * vec2(1., 5.), wrapRot + curl.b * .5 + cellId.x * PI * 1., vec2(.5));vec2 stkuv3 = rotate(vUv * vec2(1., 30.), wrapRot + curl.b * .8 + cellId.x * PI * 1., vec2(.5));vec3 hstk = texture2D(tStrokesInput, stkuv).rgb;vec3 hstk2 = texture2D(tStrokesInput, stkuv2).rgb;vec3 hstk3 = texture2D(tStrokesInput, stkuv3).rgb;float hstk2Sat = -.05;if (ungt.x == 0.) {hstk2Sat = -1.;}hstk = strtn(hstk, -1.);hstk2 = strtn(hstk2, hstk2Sat);hstk3 = strtn(hstk3, -1.);float cctr = texture2D(tContourInput, wrapuv).r * 10.;cctr = clamp(cctr, 0., 1.);cctr = strtn(vec3(cctr), -1.).r;if (usqss.x == 0. && uStep > 11.) {wrpcl *= frame;}if (ucntr.z == 1.) {cctr *= frame;}cmask -= 1. - frame;hstk *= frame;hstk2 *= frame;hstk3 *= frame;float oclint = 0.;if (uStep > 9.) {oclint = uogclint;}c = bldscn(wrpcl, dirtc, oclint);if (uStep > 13.) {}if (uStep > 9.) {c = bldovl(c, nsycl, unseclint);}vec3 pclstk = strtn(pclstkcl, -1.);if (uStep > 17.) {c -= pclstk * upclskint * length(c) * frame;c = clamp(c, 0., 1.);}vec3 desathstk = strtn(hstk, -.95);if (uStep > 13. && empty > 0.) {c = bldav(c, vec3(desathstk), (1. - cmask) * uhstkint);c = bldav(c, vec3(hstk2), (1. - cmask) * uhstkint);c = bldav(c, vec3(hstk3), (1. - cmask) * uhstkint);}c = hsft(c, uarthsft);vec4 artcbse = vec4(uartcbse.x, 0., uartcbse.z, uartcbse.w);if (uStep > 6.) {artcbse.y = uartcbse.y; }c = applycbse(c, artcbse);float cntrdge = edge(tContourInput, wrapuv, vec2(ures.x, ures.y) * uedgwdh );cntrdge = clamp(cntrdge, 0., 1.);cntrdge *= pertub;if (uStep > 7.) {c += cnoise * .2;}if (ucntr.x == 1. && uStep > 12.) {float intensity = ungt.x == 1. ? .7 : 1.;if (frame == 1.) {intensity *= 1.05;}if (usqss.y == 0.) {c = bldav(c, vec3(1.), cntrdge * intensity);}if (usqss.y == 1.) {c -= vec3(-.12) * cntrdge;}}float xhashPertub = noise(vec3((vUv * vec2(100., 10.) + vec2(stripes)), 0.)) * 3. ;float yhashPertub = noise(vec3((vUv * vec2(1., 100.) + vec2(-.5)), 0.)) * 3. ;float xhshffst = (floor((vUv.y*10.))/10.);float hshmsk = 1. - vec3( cntrst(vec3(length(c)), 4.)).r;float hshres = 200.;if (upprtp.y == 1.) { hshres = 150.; }float xhsh = smoothstep(.1, .15, fract((vUv.x+xhshffst * 20.) * hshres));float yhsh = smoothstep(.1, .15 + pertub * .3, fract(vUv.y * hshres + yhashPertub * .1 )) + .2;float hashes = xhsh;if (uStep > 4.) {if (upprtp.x == 1.) {hashes = xhsh * yhsh;}if (upprtp.y == 0.) {c = bldmt(c, vec3(hashes), -.5 * (1.3-length(c)));}else {c = bldovl(c, vec3(hashes), 0.2 * (1.3-length(clamp(c,0., 1.))));}}float scratchPertub = noise(vec3(( (vUv+uptuvtrlt) * vec2(uwrsz.x, uwrsz.y * pertub * 10.) + vec2(-.5)), 0.)) * 3.;float yscratchPertub = noise(vec3(( (vUv+uptuvtrlt) * vec2(uwrsz.z, uwrsz.w * pertub * 1.) + vec2(-.5)), 0.)) * 3.;float xscrch = smoothstep(.5, .7, scratchPertub);float yscrch = smoothstep(.5, .7, yscratchPertub);float scrch = ( xscrch * yscrch);if (uStep > 14.) {c = bldovl(c, vec3(scrch), uscrch.x );}vec2 dvslnuv = rotate(vUv, urt * sin(vUv.y * unblns.x * urtfq + uptuvtrlt.x), vec2(.5));dvslnuv.x = mix(vUv.x, dvslnuv.x, 0.1);float yclluvy = dvslnuv.y + sin(dvslnuv.x * 30. + curl.r * 4.) * .001 * curl.r;float xcllbrd = ( fract( yclluvy + v ) * nbStripes) / nbStripes;xcllbrd = fract( xcllbrd * nbStripes );float xcllbrdfsst = fm1((dvslnuv+uptuvtrlt)*30.) * 2.;xcllbrd = smoothstep(.0, (ucllbrdsz * .65) * xcllbrdfsst, xcllbrd);if (framey == 0.) {xcllbrd = 1.;}float yclluvx = dvslnuv.x + sin(dvslnuv.y * 20. + curl.r * 4.) * .0025 * curl.r;float ycllbrd = ( fract( yclluvx + v ) * nbStripes) / nbStripes;ycllbrd = fract( ycllbrd * nbStripes );float ycllbrdfsst = fm1((dvslnuv+uptuvtrlt)*30.) * 2.;ycllbrd = smoothstep(.0, ucllbrdsz * ycllbrdfsst, ycllbrd);if (framex == 0.) {ycllbrd = 1.;}float cllbrd = xcllbrd * ycllbrd;if (unblns.x > 1. && uStep > 5.) {c = bldmt(c, vec3(cllbrd), -1.9 * (1.-le