memoscan
← all memos

Memo 0x56398ed3…785187 on Ethereum

es=f1;return res;}vec3 hsl2rgb(vec3 hsl){vec3 rgb;if(hsl.y==0.0){rgb=vec3(hsl.z);}else{float f2;if(hsl.z<0.5)f2=hsl.z*(1.0+hsl.y);else f2=hsl.z+hsl.y-hsl.y*hsl.z;float f1=2.0*hsl.z-f2;rgb.r=hue2rgb(f1,f2,hsl.x+(1.0/3.0));rgb.g=hue2rgb(f1,f2,hsl.x);rgb.b=hue2rgb(f1,f2,hsl.x-(1.0/3.0));}return rgb;}vec3 hsl2rgb(float h,float s,float l){return hsl2rgb(vec3(h,s,l));}";var is="vec4 ppermute(vec4 x){return mod(((x*34.0)+1.0)*x,289.0);}vec4 ptaylorInvSqrt(vec4 r){return 1.79-0.85*r;}vec3 pfade(vec3 t){return t*t*t*(t*(t*6.0-15.0)+10.0);}float pnoise(vec3 P){vec3 Pi0=floor(P);vec3 Pi1=Pi0+vec3(1.0);Pi0=mod(Pi0,289.0);Pi1=mod(Pi1,289.0);vec3 Pf0=fract(P);vec3 Pf1=Pf0-vec3(1.0);vec4 ix=vec4(Pi0.x,Pi1.x,Pi0.x,Pi1.x);vec4 iy=vec4(Pi0.yy,Pi1.yy);vec4 iz0=Pi0.zzzz;vec4 iz1=Pi1.zzzz;vec4 ixy=ppermute(ppermute(ix)+iy);vec4 ixy0=ppermute(ixy+iz0);vec4 ixy1=ppermute(ixy+iz1);vec4 gx0=ixy0/7.0;vec4 gy0=fract(floor(gx0)/7.0)-0.5;gx0=fract(gx0);vec4 gz0=vec4(0.5)-abs(gx0)-abs(gy0);vec4 sz0=step(gz0,vec4(0.0));gx0-=sz0*(step(0.0,gx0)-0.5);gy0-=sz0*(step(0.0,gy0)-0.5);vec4 gx1=ixy1/7.0;vec4 gy1=fract(floor(gx1)/7.0)-0.5;gx1=fract(gx1);vec4 gz1=vec4(0.5)-abs(gx1)-abs(gy1);vec4 sz1=step(gz1,vec4(0.0));gx1-=sz1*(step(0.0,gx1)-0.5);gy1-=sz1*(step(0.0,gy1)-0.5);vec3 g000=vec3(gx0.x,gy0.x,gz0.x);vec3 g100=vec3(gx0.y,gy0.y,gz0.y);vec3 g010=vec3(gx0.z,gy0.z,gz0.z);vec3 g110=vec3(gx0.w,gy0.w,gz0.w);vec3 g001=vec3(gx1.x,gy1.x,gz1.x);vec3 g101=vec3(gx1.y,gy1.y,gz1.y);vec3 g011=vec3(gx1.z,gy1.z,gz1.z);vec3 g111=vec3(gx1.w,gy1.w,gz1.w);vec4 norm0=ptaylorInvSqrt(vec4(dot(g000,g000),dot(g010,g010),dot(g100,g100),dot(g110,g110)));g000*=norm0.x;g010*=norm0.y;g100*=norm0.z;g110*=norm0.w;vec4 norm1=ptaylorInvSqrt(vec4(dot(g001,g001),dot(g011,g011),dot(g101,g101),dot(g111,g111)));g001*=norm1.x;g011*=norm1.y;g101*=norm1.z;g111*=norm1.w;float n000=dot(g000,Pf0);float n100=dot(g100,vec3(Pf1.x,Pf0.yz));float n010=dot(g010,vec3(Pf0.x,Pf1.y,Pf0.z));float n110=dot(g110,vec3(Pf1.xy,Pf0.z));float n001=dot(g001,vec3(Pf0.xy,Pf1.z));float n101=dot(g101,vec3(Pf1.x,Pf0.y,Pf1.z));float n011=dot(g011,vec3(Pf0.x,Pf1.yz));float n111=dot(g111,Pf1);vec3 fade_xyz=pfade(Pf0);vec4 n_z=mix(vec4(n000,n100,n010,n110),vec4(n001,n101,n011,n111),fade_xyz.z);vec2 n_yz=mix(n_z.xy,n_z.zw,fade_xyz.y);float n_xyz=mix(n_yz.x,n_yz.y,fade_xyz.x);return 2.2*n_xyz;}vec3 pnoiseVec3(vec3 x){float xx=x.x;float yy=x.y;float zz=x.z;return vec3(pnoise(vec3(xx,x.y,x.z)*2.-1.),pnoise(vec3(yy-19.1,zz+33.4,x.x+47.2)*2.-1.),pnoise(vec3(zz+74.2,xx-124.5,yy+99.4)*2.-1.));}";var ls=/(#import .*)/gi,Pt={"color/brightness":ss,"color/contrast":ts,"easing/cubic":es,"easing/exponential":rs,"utils/hsl2rgb":as,"noise/perlin":is};function T(r){let s=St(r);for(let t of s){let e=Ct(t),a=Pt[e];a=a.replace("#define GLSLIFY 1",""),r=r.replace(t,a)}return r}function St(r){ls.lastIndex=0;let s=null,t=0,e=[];for(;(s=ls.exec(r))&&t<100;)e.push(s[0]);return t==100&&console.warn("avoid infinity loop in resolveShaderImports"),e}function Ct(r){return r.replace("#import","").replace(/ /g,"")}var Dt=T(K0),W=class{constructor(s,t){this.width=s,this.height=t,this._isFirstRender=!0}initWebGL(){this.optionsPost={brightness:0,contrast:1,saturation:1,saturationR:1,saturationG:1,saturationB:1,highlights:0,shadows:0,hue:0,sharpenBlur:0,sharpenSize:1,normalStr:10,lightPosX:-.3,lightPosY:.8,lightStr:.1},this._renderer=new THREE.WebGLRenderer({antialias:!0,preserveDrawingBuffer:!0}),this._renderer.setPixelRatio(n.dpr||1),this._renderer.setSize(this.width,this.height),this._renderer.outputEncoding=THREE.sRGBEncoding,this._renderer.domElement.style.zIndex=1e3,this._renderer.domElement.style.display="none",this._renderer.autoClear=!1,document.body.appendChild(this._renderer.domElement),n.renderer=this._renderer,this._scene=new THREE.Scene,this._camera=new THREE.PerspectiveCamera(45,this.width/this.height,.1,1e3),this._camera.updateProjectionMatrix(),this._renderPass=new _0(this._scene,this._camera,null,new THREE.Color(16777215),1),this._composer=new b0(this._renderer),this._composer.setPixelRatio(n.dpr||1),this._composer.setSize(this.width,this.height),this._composer.addPass(this._renderPass),this._artwork=new THREE.Texture(this.canvas),this._artwork.needsUpdate=!0,this._uniforms={uArtworkSize:{type:"v2",value:new THREE.Vector2(n.size.width*n.dpr,n.size.height*n.dpr)},uBgColor:{type:"c",value:null},tArtwork:{type:"t",value:this._artwork},uBrightness:{type:"f",value:1},uContrast:{type:"f",value:1},uSaturation:{type:"f",value:1},uSaturationRGB:{type:"v3",value:new THREE.Vector3},uHighlights:{type:"f",value:1},uShadows:{type:"f",value:1},uHueAdjust:{type:"f",value:0},uSharpenBlur:{type:"f",value:0},uSharpenSize:{type:"f",value:1},uNormalStr:{type:"f",value:10},uLightPos:{type:"v2",value:new THREE.Vector2(-.3,.8)},uLightStr:{type:"f",value:.1},uPatternTexture:{type:"t",value:null}};let s=new THREE.ShaderMaterial({fragmentShader:Dt,vertexShader:D,uniforms:this._uniforms}),t=new THREE.PlaneBufferGeometry(2,2),e=new THREE.Mesh(t,s);this._scene.add(e)}_renderWebGL=(s=!0,t=null)=>{s&&(this._artwork.needsUpdate=!0);let e=this.optionsPost;this._uniforms.uBgColor.value=this._bgColor,this._uniforms.uBrightness.value=e.brightness,this._uniforms.uContrast.value=e.contrast,this._uniforms.uSaturation.value=e.saturation,this._uniforms.uSaturationRGB.value.x=e.saturationR,this._uniforms.uSaturationRGB.value.y=e.saturationG,this._uniforms.uSaturationRGB.value.z=e.saturationB,this._uniforms.uHighlights.value=e.highlights,this._uniforms.uShadows.value=e.shadows,this._uniforms.uHueAdjust.value=e.hue,this._uniforms.uSharpenBlur.value=Math.max(.2,e.sharpenBlur),this._uniforms.uSharpenSize.value=e.sharpenSize,this._uniforms.uNormalStr.value=e.normalStr-3.5,this._uniforms.uLightPos.value.x=e.lightPosX,this._uniforms.uLightPos.value.y=e.lightPosY,this._uniforms.uLightStr.value=e.lightStr,this._uniforms.uPatternTexture.value=t,this._composer.render(),this._isFirstRender&&(this._renderer.domElement.style.display="block",this._isFirstRender=!1)};_serializePostprocess(){let s={};for(let t in this.optionsPost)s[t]=this.optionsPost[t];return s}_resetHashes(s=null){(this._forceSeed||s)&&(tokenData.hash=this._forceSeed||s);let t=new M(tokenData);n.rand=t.random_dec}changeSeed(){}saveDataToFile(s,t){let e=document.createElement("a"),a=new Blob([JSON.stringify(s)],{type:"text/plain"});e.href=URL.createObjectURL(a),e.download=`${t}-${Date.now()}.json`,e.click()}setBgColor(s){this._bgColor=s,this._renderer.clearColor=this._bgColor}resize(s,t){this._renderer.domElement.style.width=s+"px",this._renderer.domElement.style.height=t+"px"}get artwork(){return this._uniforms.tArtwork.value}set artwork(s){this._uniforms.tArtwork.value=s}};var K=y(z());var ns=y(z()),V=class{constructor(){this.reset(),this.onChange=new ns.Signal}reset(){this._brightness=0,this._contrast=1,this._saturation=1,this._highlights=0,this._shadows=0,this._hue=0,this._noise=0,this._noiseRepeat=5,this._sharpenBlur=0,this._sharpenSize=1,this._normalStr=10,this._lightPosX=.75,this._lightPosY=-.57,this._lightStr=.065,this._enableNormal=!0}serialize(){return{brightness:this.brightness,contrast:this.contrast,saturation:this.saturation,highlights:this.highlights,shadows:this.shadows,hue:this.hue,noise:this.noise,noiseRepeat:this.noiseRepeat,sharpenBlur:this.sharpenBlur,sharpenSize:this.sharpenSize,normalStr:this.normalStr,lightPosX:this.lightPosX,lightPosY:this.lightPosY,lightStr:this.lightStr,enableNormal:this.enableNormal}}setParams(s){if(!s){this.reset();return}for(let t in s)this[t]=s[t]}get brightness(){return this._brightness}set brightness(s){s!==this._brightness&&(this._brightness=s,this.onChange.dispatch())}get contrast(){return this._contrast}set contrast(s){s!==this._contrast&&(this._contrast=s,this.onChange.dispatch())}get saturation(){return this._saturation}set saturation(s){s!==this._saturation&&(this._saturation=s,this.onChange.dispatch())}get highlights(){return this._highlights}set highlights(s){s!==this._highlights&&(this._highlights=s,this.onChange.dispatch())}get shadows(){return this._shadows}set shadows(s){s!==this._shadows&&(this._shadows=s,this.onChange.dispatch())}get hue(){return this._hue}set hue(s){s!==this._hue&&(this._hue=s,this.onChange.dispatch())}get sharpenBlur(){return this._sharpenBlur}set sharpenBlur(s){s!==this._sharpenBlur&&(this._sharpenBlur=s,this.onChange.dispatch())}get sharpenSize(){return this._sharpenSize}set sharpenSize(s){s!==this._sharpenSize&&(this._sharpenSize=s,this.onChange.dispatch())}get normalStr(){return this._normalStr}set normalStr(s){s!==this._normalStr&&(this._normalStr=s,this.onChange.dispatch())}get lightPosX(){return this._lightPosX}set lightPosX(s){s!==this._lightPosX&&(this._lightPosX=s,this.onChange.dispatch())}get lightPosY(){return this._lightPosY}set lightPosY(s){s!==this._lightPosY&&(this._lightPosY=s,this.onChange.dispatch())}get lightStr(){return this._lightStr}set lightStr(s){s!==this._lightStr&&(this._lightStr=s,this.onChange.dispatch())}get enableNormal(){return this._enableNormal}set enableNormal(s){s!==this._enableNormal&&(this._enableNormal=s,this.onChange.dispatch())}};var cs=y(z());function F(r,s,t){return(r*255<<16)+(s*255<<8)+t*255}function S(r){let s=r>>16&255,t=r>>8&255,e=r&255;return{r:s/255,g:t/255,b:e/255}}function Tt(r,s,t){var e=Math.max(r,s,t),a=Math.min(r,s,t),l,i,m=(e+a)/2;if(e==a)l=i=0;else{var c=e-a;switch(i=m>.5?c/(2-e-a):c/(e+a),e){case r:l=(s-t)/c+(s<t?6:0);break;case s:l=(t-r)/c+2;break;case t:l=(r-s)/c+4;break}l/=6}return[l,i,m]}function os(r,s=!0){let t=S(r),e=Tt(t.r,t.g,t.b);return s?(e[0]*=360,e[1]*=100,e[2]*=100,`hsl( ${e[0]}, ${e[1]}%, ${e[2]}% )`):e}var O=class{constructor(){this._backgroundColor=13421772,this._patternSizeRatio=1,this._backgroundColorGL=new THREE.Color(this._backgroundColor),this.onChange=new cs.Signal}serialize(){return{backgroundColor:S(this._backgroundColor),patternSizeRatio:this.patternSizeRatio}}serializeStyle(){return{backgroundColor:S(this._backgroundColor)}}setParams(s){s.backgroundColor.r=parseFloat(s.backgroundColor.r),s.backgroundColor.g=parseFloat(s.backgroundColor.g),s.backgroundColor.b=parseFloat(s.backgroundColor.b),this.backgroundColor=F(s.backgroundColor.r,s.backgroundColor.g,s.backgroundColor.b)>>0}get backgroundColor(){return this._backgroundColor}set backgroundColor(s){this._backgroundColor!==s&&(this._backgroundColor=s,this._backgroundColorGL.set(this._backgroundColor),this.onChange.dispatch())}get backgroundColorGL(){return this._backgroundColorGL}get patternSizeRatio(