@needle-tools/engine 4.7.3-next.65e7878 → 4.7.3-next.ec2c716
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/dist/{gltf-progressive-CCddD-3B.js → gltf-progressive-Bgh1c4Fd.js} +430 -365
- package/dist/gltf-progressive-D6f5talj.min.js +8 -0
- package/dist/gltf-progressive-otA_hxSA.umd.cjs +8 -0
- package/dist/{needle-engine.bundle-C6yScKUU.umd.cjs → needle-engine.bundle-CSWNTmt9.umd.cjs} +8 -8
- package/dist/{needle-engine.bundle-BCAZfCyl.min.js → needle-engine.bundle-Uxct1AXJ.min.js} +7 -7
- package/dist/{needle-engine.bundle-B0QYYufM.js → needle-engine.bundle-jF8XuQ81.js} +37 -11
- package/dist/needle-engine.js +3 -3
- package/dist/needle-engine.min.js +1 -1
- package/dist/needle-engine.umd.cjs +1 -1
- package/dist/{postprocessing-TkXiVrjY.min.js → postprocessing-BzY0H7ry.min.js} +8 -8
- package/dist/{postprocessing-CNCT892s.umd.cjs → postprocessing-Dw2OCMp4.umd.cjs} +8 -8
- package/dist/{postprocessing-qvgDnYKK.js → postprocessing-vKBVFpSz.js} +9 -9
- package/lib/engine/engine_lods.js +1 -1
- package/lib/engine/engine_lods.js.map +1 -1
- package/lib/engine-components/OrbitControls.d.ts +19 -1
- package/lib/engine-components/OrbitControls.js +30 -1
- package/lib/engine-components/OrbitControls.js.map +1 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.js +1 -1
- package/lib/engine-components/postprocessing/PostProcessingHandler.js.map +1 -1
- package/lib/engine-components/postprocessing/Volume.d.ts +3 -1
- package/lib/engine-components/postprocessing/Volume.js +2 -0
- package/lib/engine-components/postprocessing/Volume.js.map +1 -1
- package/package.json +2 -2
- package/plugins/vite/logger.client.js +68 -30
- package/plugins/vite/logger.js +5 -5
- package/src/engine/engine_lods.ts +3 -3
- package/src/engine-components/OrbitControls.ts +34 -2
- package/src/engine-components/postprocessing/PostProcessingHandler.ts +1 -1
- package/src/engine-components/postprocessing/Volume.ts +2 -1
- package/dist/gltf-progressive-BCZdu3Gc.min.js +0 -8
- package/dist/gltf-progressive-C6QbvrB4.umd.cjs +0 -8
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
var Gr=Object.defineProperty,kr=(e,t,r)=>t in e?Gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,Qr=(e,t,r)=>kr(e,typeof t!="symbol"?t+"":t,r);import{Uniform$1 as c,Vector4 as xe,Color as O,Vector2 as v,CanvasTexture as Vr,RepeatWrapping as ae,ShaderMaterial as w,NoBlending as z,WebGLRenderTarget as T,NearestFilter as P,EventDispatcher as st,SRGBColorSpace as y,UnsignedByteType as W,PerspectiveCamera as De,BasicDepthPacking as V,REVISION as we,LinearFilter as R,RGBADepthPacking as se,FloatType as Z,LessDepth as It,MeshDepthMaterial as Yr,LinearSRGBColorSpace as ke,NoColorSpace as Qe,DepthTexture as Te,DepthStencilFormat as Rt,UnsignedInt248Type as bt,UnsignedIntType as be,RGBAFormat as G,Scene as nt,Matrix4 as N,Vector3 as L,HalfFloatType as $,Data3DTexture as Ve,Loader as ot,LoadingManager as Ue,FileLoader as Ut,ClampToEdgeWrapping as lt,DataTexture as Ye,RedFormat as We,MeshNormalMaterial as Wr,BackSide as Xe,DoubleSide as Ke,FrontSide as Xr,Camera as Kr,Mesh as Ft,Texture as Ze,EqualDepth as ut,NotEqualDepth as Lt,LinearMipmapLinearFilter as Zr,GreaterDepth as jr,GreaterEqualDepth as Jr,LessEqualDepth as qr,AlwaysDepth as _r,NeverDepth as $r,Material as Ot,BufferGeometry as Nt,BufferAttribute as je,RGFormat as ei,DepthFormat as Ht,OrthographicCamera as ti,Sphere as ri}from"./three-DuDKwKB8.min.js";import{Pass as ii}from"./three-examples-BMOhDaYR.min.js";/**
|
|
2
|
-
* postprocessing v6.37.
|
|
2
|
+
* postprocessing v6.37.7 build Mon Aug 04 2025
|
|
3
3
|
* https://github.com/pmndrs/postprocessing
|
|
4
4
|
* Copyright 2015-2025 Raoul van Rüschen
|
|
5
5
|
* @license Zlib
|
|
6
|
-
*/var ai="6.37.
|
|
6
|
+
*/var ai="6.37.7",si=class{dispose(){}},ct=1/1e3,ni=1e3,zt=class{constructor(){this.startTime=performance.now(),this.previousTime=0,this.currentTime=0,this._delta=0,this._elapsed=0,this._fixedDelta=1e3/60,this.timescale=1,this.useFixedDelta=!1,this._autoReset=!1}get autoReset(){return this._autoReset}set autoReset(e){typeof document<"u"&&document.hidden!==void 0&&(e?document.addEventListener("visibilitychange",this):document.removeEventListener("visibilitychange",this),this._autoReset=e)}get delta(){return this._delta*ct}get fixedDelta(){return this._fixedDelta*ct}set fixedDelta(e){this._fixedDelta=e*ni}get elapsed(){return this._elapsed*ct}update(e){this.useFixedDelta?this._delta=this.fixedDelta:(this.previousTime=this.currentTime,this.currentTime=(e!==void 0?e:performance.now())-this.startTime,this._delta=this.currentTime-this.previousTime),this._delta*=this.timescale,this._elapsed+=this._delta}reset(){this._delta=0,this._elapsed=0,this.currentTime=performance.now()-this.startTime}getDelta(){return this.delta}getElapsed(){return this.elapsed}handleEvent(e){document.hidden||(this.currentTime=performance.now()-this.startTime)}dispose(){this.autoReset=!1}},oi=(()=>{const e=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),t=new Float32Array([0,0,2,0,0,2]),r=new Nt;return r.setAttribute("position",new je(e,3)),r.setAttribute("uv",new je(t,2)),r})(),H=class Pt{static get fullscreenGeometry(){return oi}constructor(t="Pass",r=new nt,i=new Kr){this.name=t,this.renderer=null,this.scene=r,this.camera=i,this.screen=null,this.rtt=!0,this.needsSwap=!0,this.needsDepthTexture=!1,this.enabled=!0}get renderToScreen(){return!this.rtt}set renderToScreen(t){if(this.rtt===t){const r=this.fullscreenMaterial;r!==null&&(r.needsUpdate=!0),this.rtt=!t}}set mainScene(t){}set mainCamera(t){}setRenderer(t){this.renderer=t}isEnabled(){return this.enabled}setEnabled(t){this.enabled=t}get fullscreenMaterial(){return this.screen!==null?this.screen.material:null}set fullscreenMaterial(t){let r=this.screen;r!==null?r.material=t:(r=new Ft(Pt.fullscreenGeometry,t),r.frustumCulled=!1,this.scene===null&&(this.scene=new nt),this.scene.add(r),this.screen=r)}getFullscreenMaterial(){return this.fullscreenMaterial}setFullscreenMaterial(t){this.fullscreenMaterial=t}getDepthTexture(){return null}setDepthTexture(t,r=V){}render(t,r,i,a,n){throw new Error("Render method not implemented!")}setSize(t,r){}initialize(t,r,i){}dispose(){for(const t of Object.keys(this)){const r=this[t];(r instanceof T||r instanceof Ot||r instanceof Ze||r instanceof Pt)&&this[t].dispose()}this.fullscreenMaterial!==null&&this.fullscreenMaterial.dispose()}},Gt=class extends H{constructor(){super("ClearMaskPass",null,null),this.needsSwap=!1}render(e,t,r,i,a){const n=e.state.buffers.stencil;n.setLocked(!1),n.setTest(!1)}},li=`#include <common>
|
|
7
7
|
#include <dithering_pars_fragment>
|
|
8
8
|
#ifdef FRAMEBUFFER_PRECISION_HIGH
|
|
9
9
|
uniform mediump sampler2D inputBuffer;
|
|
@@ -45,16 +45,16 @@ uniform vec2 range;
|
|
|
45
45
|
#elif defined(THRESHOLD)
|
|
46
46
|
uniform float threshold;uniform float smoothing;
|
|
47
47
|
#endif
|
|
48
|
-
varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);
|
|
48
|
+
varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);float mask=1.0;
|
|
49
49
|
#ifdef RANGE
|
|
50
|
-
float low=step(range.x,l);float high=step(l,range.y);
|
|
50
|
+
float low=step(range.x,l);float high=step(l,range.y);mask=low*high;
|
|
51
51
|
#elif defined(THRESHOLD)
|
|
52
|
-
|
|
52
|
+
mask=smoothstep(threshold,threshold+smoothing,l);
|
|
53
53
|
#endif
|
|
54
54
|
#ifdef COLOR
|
|
55
|
-
gl_FragColor=
|
|
55
|
+
gl_FragColor=texel*mask;
|
|
56
56
|
#else
|
|
57
|
-
gl_FragColor=vec4(l);
|
|
57
|
+
gl_FragColor=vec4(l*mask);
|
|
58
58
|
#endif
|
|
59
59
|
}`,Zt=class extends w{constructor(e=!1,t=null){super({name:"LuminanceMaterial",defines:{THREE_REVISION:we.replace(/\D+/g,"")},uniforms:{inputBuffer:new c(null),threshold:new c(0),smoothing:new c(1),range:new c(null)},blending:z,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:_i,vertexShader:oe}),this.colorOutput=e,this.luminanceRange=t}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get threshold(){return this.uniforms.threshold.value}set threshold(e){this.smoothing>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.threshold.value=e}getThreshold(){return this.threshold}setThreshold(e){this.threshold=e}get smoothing(){return this.uniforms.smoothing.value}set smoothing(e){this.threshold>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.smoothing.value=e}getSmoothingFactor(){return this.smoothing}setSmoothingFactor(e){this.smoothing=e}get useThreshold(){return this.threshold>0||this.smoothing>0}set useThreshold(e){}get colorOutput(){return this.defines.COLOR!==void 0}set colorOutput(e){e?this.defines.COLOR="1":delete this.defines.COLOR,this.needsUpdate=!0}isColorOutputEnabled(e){return this.colorOutput}setColorOutputEnabled(e){this.colorOutput=e}get useRange(){return this.luminanceRange!==null}set useRange(e){this.luminanceRange=null}get luminanceRange(){return this.uniforms.range.value}set luminanceRange(e){e!==null?this.defines.RANGE="1":delete this.defines.RANGE,this.uniforms.range.value=e,this.needsUpdate=!0}getLuminanceRange(){return this.luminanceRange}setLuminanceRange(e){this.luminanceRange=e}},vt=class extends H{constructor({renderTarget:e,luminanceRange:t,colorOutput:r,resolutionScale:i=1,width:a=D.AUTO_SIZE,height:n=D.AUTO_SIZE,resolutionX:s=a,resolutionY:o=n}={}){super("LuminancePass"),this.fullscreenMaterial=new Zt(r,t),this.needsSwap=!1,this.renderTarget=e,this.renderTarget===void 0&&(this.renderTarget=new T(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="LuminancePass.Target");const l=this.resolution=new D(this,s,o,i);l.addEventListener("change",u=>this.setSize(l.baseWidth,l.baseHeight))}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}render(e,t,r,i,a){const n=this.fullscreenMaterial;n.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}initialize(e,t,r){r!==void 0&&r!==W&&(this.renderTarget.texture.type=r,this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},$i=`#ifdef FRAMEBUFFER_PRECISION_HIGH
|
|
60
60
|
uniform mediump sampler2D inputBuffer;
|
|
@@ -872,7 +872,7 @@ uniform vec2 kernel[STEPS];varying vec2 vOffset;varying vec2 vUv;void main(){vec
|
|
|
872
872
|
`+i),this.needsDepthTexture=this.getDepthTexture()===null):this.needsDepthTexture=!1,e.colorSpace===y&&(i+=`color0 = sRGBToLinear(color0);
|
|
873
873
|
`),e.uvTransformation?(a=`vec2 transformedUv = vUv;
|
|
874
874
|
`+a,e.defines.set("UV","transformedUv")):e.defines.set("UV","vUv"),e.shaderParts.set(M.FRAGMENT_HEAD,r),e.shaderParts.set(M.FRAGMENT_MAIN_IMAGE,i),e.shaderParts.set(M.FRAGMENT_MAIN_UV,a);for(const[s,o]of e.shaderParts)o!==null&&e.shaderParts.set(s,o.trim().replace(/^#/,`
|
|
875
|
-
#`));this.skipRendering=t===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(e)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(e,t=V){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t;for(const r of this.effects)r.setDepthTexture(e,t)}render(e,t,r,i,a){for(const n of this.effects)n.update(e,t,i);if(!this.skipRendering||this.renderToScreen){const n=this.fullscreenMaterial;n.inputBuffer=t.texture,n.time+=i*this.timeScale,e.setRenderTarget(this.renderToScreen?null:r),e.render(this.scene,this.camera)}}setSize(e,t){this.fullscreenMaterial.setSize(e,t);for(const r of this.effects)r.setSize(e,t)}initialize(e,t,r){this.renderer=e;for(const i of this.effects)i.initialize(e,t,r);this.updateMaterial(),r!==void 0&&r!==W&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(const e of this.effects)e.removeEventListener("change",this.listener),e.dispose()}handleEvent(e){switch(e.type){case"change":this.recompile();break}}},on=class extends H{constructor({kernelSize:e=35,iterations:t=1,resolutionScale:r=1,resolutionX:i=D.AUTO_SIZE,resolutionY:a=D.AUTO_SIZE}={}){super("GaussianBlurPass"),this.renderTargetA=new T(1,1,{depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B",this.blurMaterial=new Tr({kernelSize:e}),this.copyMaterial=new Fe,this.copyMaterial.inputBuffer=this.renderTargetB.texture;const n=this.resolution=new D(this,i,a,r);n.addEventListener("change",s=>this.setSize(n.baseWidth,n.baseHeight)),this.iterations=t}render(e,t,r,i,a){const n=this.scene,s=this.camera,o=this.renderTargetA,l=this.renderTargetB,u=this.blurMaterial;this.fullscreenMaterial=u;let h=t;for(let f=0,d=Math.max(this.iterations,1);f<d;++f)u.direction.set(1,0),u.inputBuffer=h.texture,e.setRenderTarget(o),e.render(n,s),u.direction.set(0,1),u.inputBuffer=o.texture,e.setRenderTarget(l),e.render(n,s),f===0&&d>1&&(h=l);this.fullscreenMaterial=this.copyMaterial,e.setRenderTarget(this.renderToScreen?null:r),e.render(n,s)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t);const i=r.width,a=r.height;this.renderTargetA.setSize(i,a),this.renderTargetB.setSize(i,a),this.blurMaterial.setSize(e,t)}initialize(e,t,r){r!==void 0&&(this.renderTargetA.texture.type=r,this.renderTargetB.texture.type=r,r!==W?(this.blurMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1",this.copyMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1"):e!==null&&e.outputColorSpace===y&&(this.renderTargetA.texture.colorSpace=y,this.renderTargetB.texture.colorSpace=y))}},ln=class extends H{constructor(e){super("LambdaPass",null,null),this.needsSwap=!1,this.f=e}render(e,t,r,i,a){this.f()}},un=class extends H{constructor(e,t,{renderTarget:r,resolutionScale:i=1,width:a=D.AUTO_SIZE,height:n=D.AUTO_SIZE,resolutionX:s=a,resolutionY:o=n}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new Oe(e,t,new Wr);const l=this.renderPass;l.ignoreBackground=!0,l.skipShadowMapUpdate=!0;const u=l.getClearPass();u.overrideClearColor=new O(7829503),u.overrideClearAlpha=1,this.renderTarget=r,this.renderTarget===void 0&&(this.renderTarget=new T(1,1,{minFilter:P,magFilter:P}),this.renderTarget.texture.name="NormalPass.Target");const h=this.resolution=new D(this,s,o,i);h.addEventListener("change",f=>this.setSize(h.baseWidth,h.baseHeight))}set mainScene(e){this.renderPass.mainScene=e}set mainCamera(e){this.renderPass.mainCamera=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,r,i,a){const n=this.renderToScreen?null:this.renderTarget;this.renderPass.render(e,n,n)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}},Er=[new Float32Array(3),new Float32Array(3)],U=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],Me=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]];function et(e,t,r,i){const a=r[0]-t[0],n=r[1]-t[1],s=r[2]-t[2],o=e[0]-t[0],l=e[1]-t[1],u=e[2]-t[2],h=n*u-s*l,f=s*o-a*u,d=a*l-n*o,p=Math.sqrt(h*h+f*f+d*d),A=p*.5,m=h/p,C=f/p,S=d/p,x=-(e[0]*m+e[1]*C+e[2]*S),E=i[0]*m+i[1]*C+i[2]*S;return Math.abs(E+x)*A/3}function ze(e,t,r,i,a,n){const s=(r+i*t+a*t*t)*4;n[0]=e[s+0],n[1]=e[s+1],n[2]=e[s+2]}function cn(e,t,r,i,a,n){const s=r*(t-1),o=i*(t-1),l=a*(t-1),u=Math.floor(s),h=Math.floor(o),f=Math.floor(l),d=Math.ceil(s),p=Math.ceil(o),A=Math.ceil(l),m=s-u,C=o-h,S=l-f;if(u===s&&h===o&&f===l)ze(e,t,s,o,l,n);else{let x;m>=C&&C>=S?x=Me[0]:m>=S&&S>=C?x=Me[1]:S>=m&&m>=C?x=Me[2]:C>=m&&m>=S?x=Me[3]:C>=S&&S>=m?x=Me[4]:S>=C&&C>=m&&(x=Me[5]);const[E,K,ee,re]=x,ie=Er[0];ie[0]=m,ie[1]=C,ie[2]=S;const F=Er[1],me=d-u,Ae=p-h,ne=A-f;F[0]=me*E[0]+u,F[1]=Ae*E[1]+h,F[2]=ne*E[2]+f,ze(e,t,F[0],F[1],F[2],U[0]),F[0]=me*K[0]+u,F[1]=Ae*K[1]+h,F[2]=ne*K[2]+f,ze(e,t,F[0],F[1],F[2],U[1]),F[0]=me*ee[0]+u,F[1]=Ae*ee[1]+h,F[2]=ne*ee[2]+f,ze(e,t,F[0],F[1],F[2],U[2]),F[0]=me*re[0]+u,F[1]=Ae*re[1]+h,F[2]=ne*re[2]+f,ze(e,t,F[0],F[1],F[2],U[3]);const he=et(K,ee,re,ie)*6,Q=et(E,ee,re,ie)*6,Ge=et(E,K,re,ie)*6,at=et(E,K,ee,ie)*6;U[0][0]*=he,U[0][1]*=he,U[0][2]*=he,U[1][0]*=Q,U[1][1]*=Q,U[1][2]*=Q,U[2][0]*=Ge,U[2][1]*=Ge,U[2][2]*=Ge,U[3][0]*=at,U[3][1]*=at,U[3][2]*=at,n[0]=U[0][0]+U[1][0]+U[2][0]+U[3][0],n[1]=U[0][1]+U[1][1]+U[2][1]+U[3][1],n[2]=U[0][2]+U[1][2]+U[2][2]+U[3][2]}}var hn=class{static expand(e,t){const r=Math.cbrt(e.length/4),i=new Float32Array(3),a=new e.constructor(t**3*4),n=e instanceof Uint8Array?255:1,s=t**2,o=1/(t-1);for(let l=0;l<t;++l)for(let u=0;u<t;++u)for(let h=0;h<t;++h){const f=h*o,d=u*o,p=l*o,A=Math.round(h+u*t+l*s)*4;cn(e,r,f,d,p,i),a[A+0]=i[0],a[A+1]=i[1],a[A+2]=i[2],a[A+3]=n}return a}},Pe=[new Float32Array(2),new Float32Array(2)],Ie=16,yt=20,Re=30,fn=32,Bt=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),Cr=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],dn=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],yr=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function tt(e,t,r){return e+(t-e)*r}function pn(e){return Math.min(Math.max(e,0),1)}function Br(e){const t=Pe[0],r=Pe[1],i=Math.sqrt(t[0]*2)*.5,a=Math.sqrt(t[1]*2)*.5,n=Math.sqrt(r[0]*2)*.5,s=Math.sqrt(r[1]*2)*.5,o=pn(e/fn);t[0]=tt(i,t[0],o),t[1]=tt(a,t[1],o),r[0]=tt(n,r[0],o),r[1]=tt(s,r[1],o)}function Y(e,t,r,i,a,n){const s=r-e,o=i-t,l=a,u=a+1,h=t+o*(l-e)/s,f=t+o*(u-e)/s;if(l>=e&&l<r||u>e&&u<=r)if(Math.sign(h)===Math.sign(f)||Math.abs(h)<1e-4||Math.abs(f)<1e-4){const d=(h+f)/2;d<0?(n[0]=Math.abs(d),n[1]=0):(n[0]=0,n[1]=Math.abs(d))}else{const d=-t*s/o+e,p=Math.trunc(d),A=d>e?h*(d-p)/2:0,m=d<r?f*(1-(d-p))/2:0;(Math.abs(A)>Math.abs(m)?A:-m)<0?(n[0]=Math.abs(A),n[1]=Math.abs(m)):(n[0]=Math.abs(m),n[1]=Math.abs(A))}else n[0]=0,n[1]=0;return n}function vn(e,t,r,i,a){const n=Pe[0],s=Pe[1],o=.5+i,l=.5+i-1,u=t+r+1;switch(e){case 0:{a[0]=0,a[1]=0;break}case 1:{t<=r?Y(0,l,u/2,0,t,a):(a[0]=0,a[1]=0);break}case 2:{t>=r?Y(u/2,0,u,l,t,a):(a[0]=0,a[1]=0);break}case 3:{Y(0,l,u/2,0,t,n),Y(u/2,0,u,l,t,s),Br(u),a[0]=n[0]+s[0],a[1]=n[1]+s[1];break}case 4:{t<=r?Y(0,o,u/2,0,t,a):(a[0]=0,a[1]=0);break}case 5:{a[0]=0,a[1]=0;break}case 6:{Math.abs(i)>0?(Y(0,o,u,l,t,n),Y(0,o,u/2,0,t,s),Y(u/2,0,u,l,t,a),s[0]=s[0]+a[0],s[1]=s[1]+a[1],a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2):Y(0,o,u,l,t,a);break}case 7:{Y(0,o,u,l,t,a);break}case 8:{t>=r?Y(u/2,0,u,o,t,a):(a[0]=0,a[1]=0);break}case 9:{Math.abs(i)>0?(Y(0,l,u,o,t,n),Y(0,l,u/2,0,t,s),Y(u/2,0,u,o,t,a),s[0]=s[0]+a[0],s[1]=s[1]+a[1],a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2):Y(0,l,u,o,t,a);break}case 10:{a[0]=0,a[1]=0;break}case 11:{Y(0,l,u,o,t,a);break}case 12:{Y(0,o,u/2,0,t,n),Y(u/2,0,u,o,t,s),Br(u),a[0]=n[0]+s[0],a[1]=n[1]+s[1];break}case 13:{Y(0,l,u,o,t,a);break}case 14:{Y(0,o,u,l,t,a);break}case 15:{a[0]=0,a[1]=0;break}}return a}function gn(e,t,r,i,a,n){let s=e===r&&t===i;if(!s){const o=(e+r)/2,l=(t+i)/2,u=i-t,h=e-r;s=u*(a-o)+h*(n-l)>0}return s}function Mr(e,t,r,i,a,n){let s=0;for(let o=0;o<Re;++o)for(let l=0;l<Re;++l){const u=l/(Re-1),h=o/(Re-1);gn(e,t,r,i,a+u,n+h)&&++s}return s/(Re*Re)}function b(e,t,r,i,a,n,s,o){const l=yr[e],u=l[0],h=l[1];return u>0&&(t+=s[0],r+=s[1]),h>0&&(i+=s[0],a+=s[1]),o[0]=1-Mr(t,r,i,a,1+n,0+n),o[1]=Mr(t,r,i,a,1+n,1+n),o}function mn(e,t,r,i,a){const n=Pe[0],s=Pe[1],o=t+r+1;switch(e){case 0:{b(e,1,1,1+o,1+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 1:{b(e,1,0,0+o,0+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 2:{b(e,0,0,1+o,0+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 3:{b(e,1,0,1+o,0+o,t,i,a);break}case 4:{b(e,1,1,0+o,0+o,t,i,n),b(e,1,1,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 5:{b(e,1,1,0+o,0+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 6:{b(e,1,1,1+o,0+o,t,i,a);break}case 7:{b(e,1,1,1+o,0+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 8:{b(e,0,0,1+o,1+o,t,i,n),b(e,1,0,1+o,1+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 9:{b(e,1,0,1+o,1+o,t,i,a),b(e,1,0,1+o,1+o,t,i,a);break}case 10:{b(e,0,0,1+o,1+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 11:{b(e,1,0,1+o,1+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 12:{b(e,1,1,1+o,1+o,t,i,a);break}case 13:{b(e,1,1,1+o,1+o,t,i,n),b(e,1,0,1+o,1+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 14:{b(e,1,1,1+o,1+o,t,i,n),b(e,1,1,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 15:{b(e,1,1,1+o,1+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}}return a}function Pr(e,t,r){const i=new Float32Array(2);for(let a=0,n=e.length;a<n;++a){const s=e[a],o=s.data,l=s.width;for(let u=0;u<l;++u)for(let h=0;h<l;++h){r?vn(a,h,u,t,i):mn(a,h,u,t,i);const f=(u*l+h)*2;o[f]=i[0]*255,o[f+1]=i[1]*255}}}function Ir(e,t,r,i,a,n,s){const o=s.data,l=s.width;for(let u=0,h=r.length;u<h;++u){const f=i[u],d=r[u],p=d.data,A=d.width;for(let m=0;m<a;++m)for(let C=0;C<a;++C){const S=f[0]*a+e+C,x=((f[1]*a+t+m)*l+S)*4,E=n?(m*m*A+C*C)*2:(m*A+C)*2;o[x]=p[E],o[x+1]=p[E+1],o[x+2]=0,o[x+3]=255}}}var An=class{static generate(){const e=10*Ie,t=Bt.length*5*Ie,r=new Uint8ClampedArray(e*t*4),i=new ce(e,t,r),a=Math.pow(Ie-1,2)+1,n=yt,s=[],o=[];for(let l=3,u=r.length;l<u;l+=4)r[l]=255;for(let l=0;l<16;++l)s.push(new ce(a,a,new Uint8ClampedArray(a*a*2),2)),o.push(new ce(n,n,new Uint8ClampedArray(n*n*2),2));for(let l=0,u=Bt.length;l<u;++l)Pr(s,Bt[l],!0),Ir(0,5*Ie*l,s,dn,Ie,!0,i);for(let l=0,u=Cr.length;l<u;++l)Pr(o,Cr[l],!1),Ir(5*Ie,4*yt*l,o,yr,yt,!1,i);return i}},xn=`"use strict";(()=>{function q(t,a,s){let e=document.createElement("canvas"),n=e.getContext("2d");if(e.width=t,e.height=a,s instanceof Image)n.drawImage(s,0,0);else{let r=n.createImageData(t,a);r.data.set(s),n.putImageData(r,0,0)}return e}var F=class t{constructor(a=0,s=0,e=null){this.width=a,this.height=s,this.data=e}toCanvas(){return typeof document=="undefined"?null:q(this.width,this.height,this.data)}static from(a){let{width:s,height:e}=a,n;if(a instanceof Image){let r=q(s,e,a);r!==null&&(n=r.getContext("2d").getImageData(0,0,s,e).data)}else n=a.data;return new t(s,e,n)}};var M=[new Float32Array(2),new Float32Array(2)],D=16,W=20,I=30,j=32,v=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),N=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],z=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],p=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function C(t,a,s){return t+(a-t)*s}function B(t){return Math.min(Math.max(t,0),1)}function _(t){let a=M[0],s=M[1],e=Math.sqrt(a[0]*2)*.5,n=Math.sqrt(a[1]*2)*.5,r=Math.sqrt(s[0]*2)*.5,o=Math.sqrt(s[1]*2)*.5,c=B(t/j);a[0]=C(e,a[0],c),a[1]=C(n,a[1],c),s[0]=C(r,s[0],c),s[1]=C(o,s[1],c)}function d(t,a,s,e,n,r){let o=s-t,c=e-a,h=n,i=n+1,w=a+c*(h-t)/o,b=a+c*(i-t)/o;if(h>=t&&h<s||i>t&&i<=s)if(Math.sign(w)===Math.sign(b)||Math.abs(w)<1e-4||Math.abs(b)<1e-4){let g=(w+b)/2;g<0?(r[0]=Math.abs(g),r[1]=0):(r[0]=0,r[1]=Math.abs(g))}else{let g=-a*o/c+t,k=Math.trunc(g),m=g>t?w*(g-k)/2:0,U=g<s?b*(1-(g-k))/2:0;(Math.abs(m)>Math.abs(U)?m:-U)<0?(r[0]=Math.abs(m),r[1]=Math.abs(U)):(r[0]=Math.abs(U),r[1]=Math.abs(m))}else r[0]=0,r[1]=0;return r}function J(t,a,s,e,n){let r=M[0],o=M[1],c=.5+e,h=.5+e-1,i=a+s+1;switch(t){case 0:{n[0]=0,n[1]=0;break}case 1:{a<=s?d(0,h,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 2:{a>=s?d(i/2,0,i,h,a,n):(n[0]=0,n[1]=0);break}case 3:{d(0,h,i/2,0,a,r),d(i/2,0,i,h,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 4:{a<=s?d(0,c,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 5:{n[0]=0,n[1]=0;break}case 6:{Math.abs(e)>0?(d(0,c,i,h,a,r),d(0,c,i/2,0,a,o),d(i/2,0,i,h,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,c,i,h,a,n);break}case 7:{d(0,c,i,h,a,n);break}case 8:{a>=s?d(i/2,0,i,c,a,n):(n[0]=0,n[1]=0);break}case 9:{Math.abs(e)>0?(d(0,h,i,c,a,r),d(0,h,i/2,0,a,o),d(i/2,0,i,c,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,h,i,c,a,n);break}case 10:{n[0]=0,n[1]=0;break}case 11:{d(0,h,i,c,a,n);break}case 12:{d(0,c,i/2,0,a,r),d(i/2,0,i,c,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 13:{d(0,h,i,c,a,n);break}case 14:{d(0,c,i,h,a,n);break}case 15:{n[0]=0,n[1]=0;break}}return n}function K(t,a,s,e,n,r){let o=t===s&&a===e;if(!o){let c=(t+s)/2,h=(a+e)/2,i=e-a,w=t-s;o=i*(n-c)+w*(r-h)>0}return o}function G(t,a,s,e,n,r){let o=0;for(let c=0;c<I;++c)for(let h=0;h<I;++h){let i=h/(I-1),w=c/(I-1);K(t,a,s,e,n+i,r+w)&&++o}return o/(I*I)}function A(t,a,s,e,n,r,o,c){let h=p[t],i=h[0],w=h[1];return i>0&&(a+=o[0],s+=o[1]),w>0&&(e+=o[0],n+=o[1]),c[0]=1-G(a,s,e,n,1+r,0+r),c[1]=G(a,s,e,n,1+r,1+r),c}function Q(t,a,s,e,n){let r=M[0],o=M[1],c=a+s+1;switch(t){case 0:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 1:{A(t,1,0,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 2:{A(t,0,0,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 3:{A(t,1,0,1+c,0+c,a,e,n);break}case 4:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 5:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 6:{A(t,1,1,1+c,0+c,a,e,n);break}case 7:{A(t,1,1,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 8:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 9:{A(t,1,0,1+c,1+c,a,e,n),A(t,1,0,1+c,1+c,a,e,n);break}case 10:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 11:{A(t,1,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 12:{A(t,1,1,1+c,1+c,a,e,n);break}case 13:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 14:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 15:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}}return n}function R(t,a,s){let e=new Float32Array(2);for(let n=0,r=t.length;n<r;++n){let o=t[n],c=o.data,h=o.width;for(let i=0;i<h;++i)for(let w=0;w<h;++w){s?J(n,w,i,a,e):Q(n,w,i,a,e);let b=(i*h+w)*2;c[b]=e[0]*255,c[b+1]=e[1]*255}}}function T(t,a,s,e,n,r,o){let c=o.data,h=o.width;for(let i=0,w=s.length;i<w;++i){let b=e[i],g=s[i],k=g.data,m=g.width;for(let U=0;U<n;++U)for(let x=0;x<n;++x){let Z=b[0]*n+t+x,O=((b[1]*n+a+U)*h+Z)*4,L=r?(U*U*m+x*x)*2:(U*m+x)*2;c[O]=k[L],c[O+1]=k[L+1],c[O+2]=0,c[O+3]=255}}}var S=class{static generate(){let a=10*D,s=v.length*5*D,e=new Uint8ClampedArray(a*s*4),n=new F(a,s,e),r=Math.pow(D-1,2)+1,o=W,c=[],h=[];for(let i=3,w=e.length;i<w;i+=4)e[i]=255;for(let i=0;i<16;++i)c.push(new F(r,r,new Uint8ClampedArray(r*r*2),2)),h.push(new F(o,o,new Uint8ClampedArray(o*o*2),2));for(let i=0,w=v.length;i<w;++i)R(c,v[i],!0),T(0,5*D*i,c,z,D,!0,n);for(let i=0,w=N.length;i<w;++i)R(h,N[i],!1),T(5*D,4*W*i,h,p,W,!1,n);return n}};var P=new Map([[y(0,0,0,0),new Float32Array([0,0,0,0])],[y(0,0,0,1),new Float32Array([0,0,0,1])],[y(0,0,1,0),new Float32Array([0,0,1,0])],[y(0,0,1,1),new Float32Array([0,0,1,1])],[y(0,1,0,0),new Float32Array([0,1,0,0])],[y(0,1,0,1),new Float32Array([0,1,0,1])],[y(0,1,1,0),new Float32Array([0,1,1,0])],[y(0,1,1,1),new Float32Array([0,1,1,1])],[y(1,0,0,0),new Float32Array([1,0,0,0])],[y(1,0,0,1),new Float32Array([1,0,0,1])],[y(1,0,1,0),new Float32Array([1,0,1,0])],[y(1,0,1,1),new Float32Array([1,0,1,1])],[y(1,1,0,0),new Float32Array([1,1,0,0])],[y(1,1,0,1),new Float32Array([1,1,0,1])],[y(1,1,1,0),new Float32Array([1,1,1,0])],[y(1,1,1,1),new Float32Array([1,1,1,1])]]);function H(t,a,s){return t+(a-t)*s}function y(t,a,s,e){let n=H(t,a,.75),r=H(s,e,1-.25);return H(n,r,1-.125)}function V(t,a){let s=0;return a[3]===1&&(s+=1),s===1&&a[2]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s}function $(t,a){let s=0;return a[3]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s===1&&a[2]===1&&t[0]!==1&&t[2]!==1&&(s+=1),s}var E=class{static generate(){let o=new Uint8ClampedArray(2178),c=new Uint8ClampedArray(64*16*4);for(let h=0;h<33;++h)for(let i=0;i<66;++i){let w=.03125*i,b=.03125*h;if(P.has(w)&&P.has(b)){let g=P.get(w),k=P.get(b),m=h*66+i;o[m]=127*V(g,k),o[m+33]=127*$(g,k)}}for(let h=0,i=17;i<33;++i)for(let w=0;w<64;++w,h+=4)c[h]=o[i*66+w],c[h+3]=255;return new F(64,16,c)}};self.addEventListener("message",t=>{let a=S.generate(),s=E.generate();postMessage({areaImageData:a,searchImageData:s},[a.data.buffer,s.data.buffer]),close()});})();
|
|
875
|
+
#`));this.skipRendering=t===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(e)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(e,t=V){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t;for(const r of this.effects)r.setDepthTexture(e,t)}render(e,t,r,i,a){for(const n of this.effects)n.update(e,t,i);if(!this.skipRendering||this.renderToScreen){const n=this.fullscreenMaterial;n.inputBuffer=t.texture,n.time+=i*this.timeScale,e.setRenderTarget(this.renderToScreen?null:r),e.render(this.scene,this.camera)}}setSize(e,t){this.fullscreenMaterial.setSize(e,t);for(const r of this.effects)r.setSize(e,t)}initialize(e,t,r){this.renderer=e;for(const i of this.effects)i.initialize(e,t,r);this.updateMaterial(),r!==void 0&&r!==W&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(const e of this.effects)e.removeEventListener("change",this.listener),e.dispose()}handleEvent(e){switch(e.type){case"change":this.recompile();break}}},on=class extends H{constructor({kernelSize:e=35,iterations:t=1,resolutionScale:r=1,resolutionX:i=D.AUTO_SIZE,resolutionY:a=D.AUTO_SIZE}={}){super("GaussianBlurPass"),this.renderTargetA=new T(1,1,{depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B",this.blurMaterial=new Tr({kernelSize:e}),this.copyMaterial=new Fe,this.copyMaterial.inputBuffer=this.renderTargetB.texture;const n=this.resolution=new D(this,i,a,r);n.addEventListener("change",s=>this.setSize(n.baseWidth,n.baseHeight)),this.iterations=t}render(e,t,r,i,a){const n=this.scene,s=this.camera,o=this.renderTargetA,l=this.renderTargetB,u=this.blurMaterial;this.fullscreenMaterial=u;let h=t;for(let f=0,d=Math.max(this.iterations,1);f<d;++f)u.direction.set(1,0),u.inputBuffer=h.texture,e.setRenderTarget(o),e.render(n,s),u.direction.set(0,1),u.inputBuffer=o.texture,e.setRenderTarget(l),e.render(n,s),f===0&&d>1&&(h=l);this.fullscreenMaterial=this.copyMaterial,e.setRenderTarget(this.renderToScreen?null:r),e.render(n,s)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t);const i=r.width,a=r.height;this.renderTargetA.setSize(i,a),this.renderTargetB.setSize(i,a),this.blurMaterial.setSize(e,t)}initialize(e,t,r){r!==void 0&&(this.renderTargetA.texture.type=r,this.renderTargetB.texture.type=r,r!==W?(this.blurMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1",this.copyMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1"):e!==null&&e.outputColorSpace===y&&(this.renderTargetA.texture.colorSpace=y,this.renderTargetB.texture.colorSpace=y))}},ln=class extends H{constructor(e){super("LambdaPass",null,null),this.needsSwap=!1,this.f=e}render(e,t,r,i,a){this.f()}},un=class extends H{constructor(e,t,{renderTarget:r,resolutionScale:i=1,width:a=D.AUTO_SIZE,height:n=D.AUTO_SIZE,resolutionX:s=a,resolutionY:o=n}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new Oe(e,t,new Wr);const l=this.renderPass;l.ignoreBackground=!0,l.skipShadowMapUpdate=!0;const u=l.getClearPass();u.overrideClearColor=new O(7829503),u.overrideClearAlpha=1,this.renderTarget=r,this.renderTarget===void 0&&(this.renderTarget=new T(1,1,{minFilter:P,magFilter:P}),this.renderTarget.texture.name="NormalPass.Target");const h=this.resolution=new D(this,s,o,i);h.addEventListener("change",f=>this.setSize(h.baseWidth,h.baseHeight))}set mainScene(e){this.renderPass.mainScene=e}set mainCamera(e){this.renderPass.mainCamera=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,r,i,a){const n=this.renderToScreen?null:this.renderTarget;this.renderPass.render(e,n,n)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}},Er=[new Float32Array(3),new Float32Array(3)],U=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],Me=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]];function et(e,t,r,i){const a=r[0]-t[0],n=r[1]-t[1],s=r[2]-t[2],o=e[0]-t[0],l=e[1]-t[1],u=e[2]-t[2],h=n*u-s*l,f=s*o-a*u,d=a*l-n*o,p=Math.sqrt(h*h+f*f+d*d),A=p*.5,m=h/p,C=f/p,S=d/p,x=-(e[0]*m+e[1]*C+e[2]*S),E=i[0]*m+i[1]*C+i[2]*S;return Math.abs(E+x)*A/3}function ze(e,t,r,i,a,n){const s=(r+i*t+a*t*t)*4;n[0]=e[s+0],n[1]=e[s+1],n[2]=e[s+2]}function cn(e,t,r,i,a,n){const s=r*(t-1),o=i*(t-1),l=a*(t-1),u=Math.floor(s),h=Math.floor(o),f=Math.floor(l),d=Math.ceil(s),p=Math.ceil(o),A=Math.ceil(l),m=s-u,C=o-h,S=l-f;if(u===s&&h===o&&f===l)ze(e,t,s,o,l,n);else{let x;m>=C&&C>=S?x=Me[0]:m>=S&&S>=C?x=Me[1]:S>=m&&m>=C?x=Me[2]:C>=m&&m>=S?x=Me[3]:C>=S&&S>=m?x=Me[4]:S>=C&&C>=m&&(x=Me[5]);const[E,K,ee,re]=x,ie=Er[0];ie[0]=m,ie[1]=C,ie[2]=S;const F=Er[1],me=d-u,Ae=p-h,ne=A-f;F[0]=me*E[0]+u,F[1]=Ae*E[1]+h,F[2]=ne*E[2]+f,ze(e,t,F[0],F[1],F[2],U[0]),F[0]=me*K[0]+u,F[1]=Ae*K[1]+h,F[2]=ne*K[2]+f,ze(e,t,F[0],F[1],F[2],U[1]),F[0]=me*ee[0]+u,F[1]=Ae*ee[1]+h,F[2]=ne*ee[2]+f,ze(e,t,F[0],F[1],F[2],U[2]),F[0]=me*re[0]+u,F[1]=Ae*re[1]+h,F[2]=ne*re[2]+f,ze(e,t,F[0],F[1],F[2],U[3]);const he=et(K,ee,re,ie)*6,Q=et(E,ee,re,ie)*6,Ge=et(E,K,re,ie)*6,at=et(E,K,ee,ie)*6;U[0][0]*=he,U[0][1]*=he,U[0][2]*=he,U[1][0]*=Q,U[1][1]*=Q,U[1][2]*=Q,U[2][0]*=Ge,U[2][1]*=Ge,U[2][2]*=Ge,U[3][0]*=at,U[3][1]*=at,U[3][2]*=at,n[0]=U[0][0]+U[1][0]+U[2][0]+U[3][0],n[1]=U[0][1]+U[1][1]+U[2][1]+U[3][1],n[2]=U[0][2]+U[1][2]+U[2][2]+U[3][2]}}var hn=class{static expand(e,t){const r=Math.cbrt(e.length/4),i=new Float32Array(3),a=new e.constructor(t**3*4),n=e instanceof Uint8Array?255:1,s=t**2,o=1/(t-1);for(let l=0;l<t;++l)for(let u=0;u<t;++u)for(let h=0;h<t;++h){const f=h*o,d=u*o,p=l*o,A=Math.round(h+u*t+l*s)*4;cn(e,r,f,d,p,i),a[A+0]=i[0],a[A+1]=i[1],a[A+2]=i[2],a[A+3]=n}return a}},Pe=[new Float32Array(2),new Float32Array(2)],Ie=16,yt=20,Re=30,fn=32,Bt=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),Cr=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],dn=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],yr=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function tt(e,t,r){return e+(t-e)*r}function pn(e){return Math.min(Math.max(e,0),1)}function Br(e){const t=Pe[0],r=Pe[1],i=Math.sqrt(t[0]*2)*.5,a=Math.sqrt(t[1]*2)*.5,n=Math.sqrt(r[0]*2)*.5,s=Math.sqrt(r[1]*2)*.5,o=pn(e/fn);t[0]=tt(i,t[0],o),t[1]=tt(a,t[1],o),r[0]=tt(n,r[0],o),r[1]=tt(s,r[1],o)}function Y(e,t,r,i,a,n){const s=r-e,o=i-t,l=a,u=a+1,h=t+o*(l-e)/s,f=t+o*(u-e)/s;if(l>=e&&l<r||u>e&&u<=r)if(Math.sign(h)===Math.sign(f)||Math.abs(h)<1e-4||Math.abs(f)<1e-4){const d=(h+f)/2;d<0?(n[0]=Math.abs(d),n[1]=0):(n[0]=0,n[1]=Math.abs(d))}else{const d=-t*s/o+e,p=Math.trunc(d),A=d>e?h*(d-p)/2:0,m=d<r?f*(1-(d-p))/2:0;(Math.abs(A)>Math.abs(m)?A:-m)<0?(n[0]=Math.abs(A),n[1]=Math.abs(m)):(n[0]=Math.abs(m),n[1]=Math.abs(A))}else n[0]=0,n[1]=0;return n}function vn(e,t,r,i,a){const n=Pe[0],s=Pe[1],o=.5+i,l=.5+i-1,u=t+r+1;switch(e){case 0:{a[0]=0,a[1]=0;break}case 1:{t<=r?Y(0,l,u/2,0,t,a):(a[0]=0,a[1]=0);break}case 2:{t>=r?Y(u/2,0,u,l,t,a):(a[0]=0,a[1]=0);break}case 3:{Y(0,l,u/2,0,t,n),Y(u/2,0,u,l,t,s),Br(u),a[0]=n[0]+s[0],a[1]=n[1]+s[1];break}case 4:{t<=r?Y(0,o,u/2,0,t,a):(a[0]=0,a[1]=0);break}case 5:{a[0]=0,a[1]=0;break}case 6:{Math.abs(i)>0?(Y(0,o,u,l,t,n),Y(0,o,u/2,0,t,s),Y(u/2,0,u,l,t,a),s[0]=s[0]+a[0],s[1]=s[1]+a[1],a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2):Y(0,o,u,l,t,a);break}case 7:{Y(0,o,u,l,t,a);break}case 8:{t>=r?Y(u/2,0,u,o,t,a):(a[0]=0,a[1]=0);break}case 9:{Math.abs(i)>0?(Y(0,l,u,o,t,n),Y(0,l,u/2,0,t,s),Y(u/2,0,u,o,t,a),s[0]=s[0]+a[0],s[1]=s[1]+a[1],a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2):Y(0,l,u,o,t,a);break}case 10:{a[0]=0,a[1]=0;break}case 11:{Y(0,l,u,o,t,a);break}case 12:{Y(0,o,u/2,0,t,n),Y(u/2,0,u,o,t,s),Br(u),a[0]=n[0]+s[0],a[1]=n[1]+s[1];break}case 13:{Y(0,l,u,o,t,a);break}case 14:{Y(0,o,u,l,t,a);break}case 15:{a[0]=0,a[1]=0;break}}return a}function gn(e,t,r,i,a,n){let s=e===r&&t===i;if(!s){const o=(e+r)/2,l=(t+i)/2,u=i-t,h=e-r;s=u*(a-o)+h*(n-l)>0}return s}function Mr(e,t,r,i,a,n){let s=0;for(let o=0;o<Re;++o)for(let l=0;l<Re;++l){const u=l/(Re-1),h=o/(Re-1);gn(e,t,r,i,a+u,n+h)&&++s}return s/(Re*Re)}function b(e,t,r,i,a,n,s,o){const l=yr[e],u=l[0],h=l[1];return u>0&&(t+=s[0],r+=s[1]),h>0&&(i+=s[0],a+=s[1]),o[0]=1-Mr(t,r,i,a,1+n,0+n),o[1]=Mr(t,r,i,a,1+n,1+n),o}function mn(e,t,r,i,a){const n=Pe[0],s=Pe[1],o=t+r+1;switch(e){case 0:{b(e,1,1,1+o,1+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 1:{b(e,1,0,0+o,0+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 2:{b(e,0,0,1+o,0+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 3:{b(e,1,0,1+o,0+o,t,i,a);break}case 4:{b(e,1,1,0+o,0+o,t,i,n),b(e,1,1,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 5:{b(e,1,1,0+o,0+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 6:{b(e,1,1,1+o,0+o,t,i,a);break}case 7:{b(e,1,1,1+o,0+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 8:{b(e,0,0,1+o,1+o,t,i,n),b(e,1,0,1+o,1+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 9:{b(e,1,0,1+o,1+o,t,i,a),b(e,1,0,1+o,1+o,t,i,a);break}case 10:{b(e,0,0,1+o,1+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 11:{b(e,1,0,1+o,1+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 12:{b(e,1,1,1+o,1+o,t,i,a);break}case 13:{b(e,1,1,1+o,1+o,t,i,n),b(e,1,0,1+o,1+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 14:{b(e,1,1,1+o,1+o,t,i,n),b(e,1,1,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}case 15:{b(e,1,1,1+o,1+o,t,i,n),b(e,1,0,1+o,0+o,t,i,s),a[0]=(n[0]+s[0])/2,a[1]=(n[1]+s[1])/2;break}}return a}function Pr(e,t,r){const i=new Float32Array(2);for(let a=0,n=e.length;a<n;++a){const s=e[a],o=s.data,l=s.width;for(let u=0;u<l;++u)for(let h=0;h<l;++h){r?vn(a,h,u,t,i):mn(a,h,u,t,i);const f=(u*l+h)*2;o[f]=i[0]*255,o[f+1]=i[1]*255}}}function Ir(e,t,r,i,a,n,s){const o=s.data,l=s.width;for(let u=0,h=r.length;u<h;++u){const f=i[u],d=r[u],p=d.data,A=d.width;for(let m=0;m<a;++m)for(let C=0;C<a;++C){const S=f[0]*a+e+C,x=((f[1]*a+t+m)*l+S)*4,E=n?(m*m*A+C*C)*2:(m*A+C)*2;o[x]=p[E],o[x+1]=p[E+1],o[x+2]=0,o[x+3]=255}}}var An=class{static generate(){const e=10*Ie,t=Bt.length*5*Ie,r=new Uint8ClampedArray(e*t*4),i=new ce(e,t,r),a=Math.pow(Ie-1,2)+1,n=yt,s=[],o=[];for(let l=3,u=r.length;l<u;l+=4)r[l]=255;for(let l=0;l<16;++l)s.push(new ce(a,a,new Uint8ClampedArray(a*a*2),2)),o.push(new ce(n,n,new Uint8ClampedArray(n*n*2),2));for(let l=0,u=Bt.length;l<u;++l)Pr(s,Bt[l],!0),Ir(0,5*Ie*l,s,dn,Ie,!0,i);for(let l=0,u=Cr.length;l<u;++l)Pr(o,Cr[l],!1),Ir(5*Ie,4*yt*l,o,yr,yt,!1,i);return i}},xn=`"use strict";(()=>{function q(t,a,s){let e=document.createElement("canvas"),n=e.getContext("2d");if(e.width=t,e.height=a,s instanceof Image)n.drawImage(s,0,0);else{let r=n.createImageData(t,a);r.data.set(s),n.putImageData(r,0,0)}return e}var F=class t{constructor(a=0,s=0,e=null){this.width=a,this.height=s,this.data=e}toCanvas(){return typeof document=="undefined"?null:q(this.width,this.height,this.data)}static from(a){let{width:s,height:e}=a,n;if(a instanceof Image){let r=q(s,e,a);r!==null&&(n=r.getContext("2d").getImageData(0,0,s,e).data)}else n=a.data;return new t(s,e,n)}};var M=[new Float32Array(2),new Float32Array(2)],D=16,W=20,I=30,j=32,v=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),N=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],z=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],p=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function C(t,a,s){return t+(a-t)*s}function B(t){return Math.min(Math.max(t,0),1)}function _(t){let a=M[0],s=M[1],e=Math.sqrt(a[0]*2)*.5,n=Math.sqrt(a[1]*2)*.5,r=Math.sqrt(s[0]*2)*.5,o=Math.sqrt(s[1]*2)*.5,c=B(t/j);a[0]=C(e,a[0],c),a[1]=C(n,a[1],c),s[0]=C(r,s[0],c),s[1]=C(o,s[1],c)}function d(t,a,s,e,n,r){let o=s-t,c=e-a,h=n,i=n+1,w=a+c*(h-t)/o,b=a+c*(i-t)/o;if(h>=t&&h<s||i>t&&i<=s)if(Math.sign(w)===Math.sign(b)||Math.abs(w)<1e-4||Math.abs(b)<1e-4){let g=(w+b)/2;g<0?(r[0]=Math.abs(g),r[1]=0):(r[0]=0,r[1]=Math.abs(g))}else{let g=-a*o/c+t,k=Math.trunc(g),m=g>t?w*(g-k)/2:0,U=g<s?b*(1-(g-k))/2:0;(Math.abs(m)>Math.abs(U)?m:-U)<0?(r[0]=Math.abs(m),r[1]=Math.abs(U)):(r[0]=Math.abs(U),r[1]=Math.abs(m))}else r[0]=0,r[1]=0;return r}function J(t,a,s,e,n){let r=M[0],o=M[1],c=.5+e,h=.5+e-1,i=a+s+1;switch(t){case 0:{n[0]=0,n[1]=0;break}case 1:{a<=s?d(0,h,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 2:{a>=s?d(i/2,0,i,h,a,n):(n[0]=0,n[1]=0);break}case 3:{d(0,h,i/2,0,a,r),d(i/2,0,i,h,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 4:{a<=s?d(0,c,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 5:{n[0]=0,n[1]=0;break}case 6:{Math.abs(e)>0?(d(0,c,i,h,a,r),d(0,c,i/2,0,a,o),d(i/2,0,i,h,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,c,i,h,a,n);break}case 7:{d(0,c,i,h,a,n);break}case 8:{a>=s?d(i/2,0,i,c,a,n):(n[0]=0,n[1]=0);break}case 9:{Math.abs(e)>0?(d(0,h,i,c,a,r),d(0,h,i/2,0,a,o),d(i/2,0,i,c,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,h,i,c,a,n);break}case 10:{n[0]=0,n[1]=0;break}case 11:{d(0,h,i,c,a,n);break}case 12:{d(0,c,i/2,0,a,r),d(i/2,0,i,c,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 13:{d(0,h,i,c,a,n);break}case 14:{d(0,c,i,h,a,n);break}case 15:{n[0]=0,n[1]=0;break}}return n}function K(t,a,s,e,n,r){let o=t===s&&a===e;if(!o){let c=(t+s)/2,h=(a+e)/2,i=e-a,w=t-s;o=i*(n-c)+w*(r-h)>0}return o}function G(t,a,s,e,n,r){let o=0;for(let c=0;c<I;++c)for(let h=0;h<I;++h){let i=h/(I-1),w=c/(I-1);K(t,a,s,e,n+i,r+w)&&++o}return o/(I*I)}function A(t,a,s,e,n,r,o,c){let h=p[t],i=h[0],w=h[1];return i>0&&(a+=o[0],s+=o[1]),w>0&&(e+=o[0],n+=o[1]),c[0]=1-G(a,s,e,n,1+r,0+r),c[1]=G(a,s,e,n,1+r,1+r),c}function Q(t,a,s,e,n){let r=M[0],o=M[1],c=a+s+1;switch(t){case 0:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 1:{A(t,1,0,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 2:{A(t,0,0,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 3:{A(t,1,0,1+c,0+c,a,e,n);break}case 4:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 5:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 6:{A(t,1,1,1+c,0+c,a,e,n);break}case 7:{A(t,1,1,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 8:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 9:{A(t,1,0,1+c,1+c,a,e,n),A(t,1,0,1+c,1+c,a,e,n);break}case 10:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 11:{A(t,1,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 12:{A(t,1,1,1+c,1+c,a,e,n);break}case 13:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 14:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 15:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}}return n}function R(t,a,s){let e=new Float32Array(2);for(let n=0,r=t.length;n<r;++n){let o=t[n],c=o.data,h=o.width;for(let i=0;i<h;++i)for(let w=0;w<h;++w){s?J(n,w,i,a,e):Q(n,w,i,a,e);let b=(i*h+w)*2;c[b]=e[0]*255,c[b+1]=e[1]*255}}}function T(t,a,s,e,n,r,o){let c=o.data,h=o.width;for(let i=0,w=s.length;i<w;++i){let b=e[i],g=s[i],k=g.data,m=g.width;for(let U=0;U<n;++U)for(let x=0;x<n;++x){let Z=b[0]*n+t+x,O=((b[1]*n+a+U)*h+Z)*4,L=r?(U*U*m+x*x)*2:(U*m+x)*2;c[O]=k[L],c[O+1]=k[L+1],c[O+2]=0,c[O+3]=255}}}var S=class{static generate(){let a=10*D,s=v.length*5*D,e=new Uint8ClampedArray(a*s*4),n=new F(a,s,e),r=Math.pow(D-1,2)+1,o=W,c=[],h=[];for(let i=3,w=e.length;i<w;i+=4)e[i]=255;for(let i=0;i<16;++i)c.push(new F(r,r,new Uint8ClampedArray(r*r*2),2)),h.push(new F(o,o,new Uint8ClampedArray(o*o*2),2));for(let i=0,w=v.length;i<w;++i)R(c,v[i],!0),T(0,5*D*i,c,z,D,!0,n);for(let i=0,w=N.length;i<w;++i)R(h,N[i],!1),T(5*D,4*W*i,h,p,W,!1,n);return n}};var P=new Map([[y(0,0,0,0),new Float32Array([0,0,0,0])],[y(0,0,0,1),new Float32Array([0,0,0,1])],[y(0,0,1,0),new Float32Array([0,0,1,0])],[y(0,0,1,1),new Float32Array([0,0,1,1])],[y(0,1,0,0),new Float32Array([0,1,0,0])],[y(0,1,0,1),new Float32Array([0,1,0,1])],[y(0,1,1,0),new Float32Array([0,1,1,0])],[y(0,1,1,1),new Float32Array([0,1,1,1])],[y(1,0,0,0),new Float32Array([1,0,0,0])],[y(1,0,0,1),new Float32Array([1,0,0,1])],[y(1,0,1,0),new Float32Array([1,0,1,0])],[y(1,0,1,1),new Float32Array([1,0,1,1])],[y(1,1,0,0),new Float32Array([1,1,0,0])],[y(1,1,0,1),new Float32Array([1,1,0,1])],[y(1,1,1,0),new Float32Array([1,1,1,0])],[y(1,1,1,1),new Float32Array([1,1,1,1])]]);function H(t,a,s){return t+(a-t)*s}function y(t,a,s,e){let n=H(t,a,.75),r=H(s,e,1-.25);return H(n,r,1-.125)}function V(t,a){let s=0;return a[3]===1&&(s+=1),s===1&&a[2]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s}function $(t,a){let s=0;return a[3]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s===1&&a[2]===1&&t[0]!==1&&t[2]!==1&&(s+=1),s}var E=class{static generate(){let o=new Uint8ClampedArray(2178),c=new Uint8ClampedArray(1024*4);for(let h=0;h<33;++h)for(let i=0;i<66;++i){let w=.03125*i,b=.03125*h;if(P.has(w)&&P.has(b)){let g=P.get(w),k=P.get(b),m=h*66+i;o[m]=127*V(g,k),o[m+33]=127*$(g,k)}}for(let h=0,i=17;i<33;++i)for(let w=0;w<64;++w,h+=4)c[h]=o[i*66+w],c[h+3]=255;return new F(64,16,c)}};self.addEventListener("message",t=>{let a=S.generate(),s=E.generate();postMessage({areaImageData:a,searchImageData:s},[a.data.buffer,s.data.buffer]),close()});})();
|
|
876
876
|
`;function Dn(e=!0){const t=URL.createObjectURL(new Blob([xn],{type:"text/javascript"})),r=new Worker(t);return URL.revokeObjectURL(t),new Promise((i,a)=>{r.addEventListener("error",n=>a(n.error)),r.addEventListener("message",n=>{const s=ce.from(n.data.searchImageData),o=ce.from(n.data.areaImageData),l=[s.toCanvas().toDataURL("image/png",1),o.toCanvas().toDataURL("image/png",1)];e&&(localStorage.setItem("smaa-search",l[0]),localStorage.setItem("smaa-area",l[1])),i(l)}),r.postMessage(null)})}var wn=class{constructor(){this.disableCache=!1}setCacheEnabled(e){this.disableCache=!e}generate(){const e=!this.disableCache&&window.localStorage!==void 0,t=e?[localStorage.getItem("smaa-search"),localStorage.getItem("smaa-area")]:[null,null];return(t[0]!==null&&t[1]!==null?Promise.resolve(t):Dn(e)).then(r=>new Promise((i,a)=>{const n=new Image,s=new Image,o=new Ue;o.onLoad=()=>i([n,s]),o.onError=a,n.addEventListener("error",l=>o.itemError("smaa-search")),s.addEventListener("error",l=>o.itemError("smaa-area")),n.addEventListener("load",()=>o.itemEnd("smaa-search")),s.addEventListener("load",()=>o.itemEnd("smaa-area")),o.itemStart("smaa-search"),o.itemStart("smaa-area"),n.src=r[0],s.src=r[1]}))}},rt=new Map([[X(0,0,0,0),new Float32Array([0,0,0,0])],[X(0,0,0,1),new Float32Array([0,0,0,1])],[X(0,0,1,0),new Float32Array([0,0,1,0])],[X(0,0,1,1),new Float32Array([0,0,1,1])],[X(0,1,0,0),new Float32Array([0,1,0,0])],[X(0,1,0,1),new Float32Array([0,1,0,1])],[X(0,1,1,0),new Float32Array([0,1,1,0])],[X(0,1,1,1),new Float32Array([0,1,1,1])],[X(1,0,0,0),new Float32Array([1,0,0,0])],[X(1,0,0,1),new Float32Array([1,0,0,1])],[X(1,0,1,0),new Float32Array([1,0,1,0])],[X(1,0,1,1),new Float32Array([1,0,1,1])],[X(1,1,0,0),new Float32Array([1,1,0,0])],[X(1,1,0,1),new Float32Array([1,1,0,1])],[X(1,1,1,0),new Float32Array([1,1,1,0])],[X(1,1,1,1),new Float32Array([1,1,1,1])]]);function Mt(e,t,r){return e+(t-e)*r}function X(e,t,r,i){const a=Mt(e,t,.75),n=Mt(r,i,1-.25);return Mt(a,n,1-.125)}function Tn(e,t){let r=0;return t[3]===1&&(r+=1),r===1&&t[2]===1&&e[1]!==1&&e[3]!==1&&(r+=1),r}function Sn(e,t){let r=0;return t[3]===1&&e[1]!==1&&e[3]!==1&&(r+=1),r===1&&t[2]===1&&e[0]!==1&&e[2]!==1&&(r+=1),r}var En=class{static generate(){const e=new Uint8ClampedArray(2178),t=new Uint8ClampedArray(1024*4);for(let r=0;r<33;++r)for(let i=0;i<66;++i){const a=.03125*i,n=.03125*r;if(rt.has(a)&&rt.has(n)){const s=rt.get(a),o=rt.get(n),l=r*66+i;e[l]=127*Tn(s,o),e[l+33]=127*Sn(s,o)}}for(let r=0,i=17;i<33;++i)for(let a=0;a<64;++a,r+=4)t[r]=e[i*66+a],t[r+3]=255;return new ce(64,16,t)}};const Cn=Object.freeze(Object.defineProperty({__proto__:null,ASCIIEffect:Zi,ASCIITexture:Kt,AdaptiveLuminanceMaterial:mr,AdaptiveLuminancePass:Ar,BlendFunction:g,BlendMode:Xt,BloomEffect:_t,BlurPass:de,BokehEffect:sa,BokehMaterial:Le,BoxBlurMaterial:xr,BoxBlurPass:_s,BrightnessContrastEffect:oa,ChromaticAberrationEffect:pa,CircleOfConfusionMaterial:$t,ClearMaskPass:Gt,ClearPass:fe,ColorAverageEffect:ua,ColorChannel:pe,ColorDepthEffect:ha,ColorEdgesMaterial:Tt,ConvolutionMaterial:qe,CopyMaterial:Fe,CopyPass:Je,DepthComparisonMaterial:lr,DepthCopyMaterial:Dr,DepthCopyMode:Ce,DepthCopyPass:Ct,DepthDownsamplingMaterial:fr,DepthDownsamplingPass:dr,DepthEffect:ga,DepthMaskMaterial:mt,DepthOfFieldEffect:wa,DepthPass:wt,DepthPickingPass:an,DepthSavePass:Ct,DepthTestStrategy:Ee,Disposable:si,DotScreenEffect:Sa,DownsamplingMaterial:jt,EdgeDetectionMaterial:Tt,EdgeDetectionMode:xt,Effect:I,EffectAttribute:k,EffectComposer:ui,EffectMaterial:wr,EffectPass:nn,EffectShaderData:Vt,EffectShaderSection:M,FXAAEffect:ya,GammaCorrectionEffect:Ma,GaussKernel:Wt,GaussianBlurMaterial:Tr,GaussianBlurPass:on,GlitchEffect:Ra,GlitchMode:Se,GodRaysEffect:La,GodRaysMaterial:tr,GridEffect:Na,HueSaturationEffect:za,ImmutableTimer:ci,Initializable:hi,KawaseBlurMaterial:qe,KawaseBlurPass:de,KernelSize:te,LUT1DEffect:Va,LUT3DEffect:nr,LUT3dlLoader:ks,LUTCubeLoader:Qs,LUTEffect:nr,LUTOperation:ir,LambdaPass:ln,LensDistortionEffect:ka,LookupTexture:Ne,LookupTexture3D:Ne,LuminanceMaterial:Zt,LuminancePass:vt,MaskFunction:gt,MaskMaterial:er,MaskPass:Qt,MipmapBlurPass:qt,NoiseEffect:Za,NoiseTexture:_e,NormalPass:un,OutlineEdgesMaterial:Dt,OutlineEffect:ts,OutlineMaterial:Dt,OverrideMaterialManager:ft,Pass:H,PixelationEffect:is,PredicationMode:or,RawImageData:ce,RealisticBokehEffect:ss,RenderPass:Oe,Resizable:fi,Resizer:D,Resolution:D,SMAAAreaImageData:An,SMAAEffect:ws,SMAAImageGenerator:wn,SMAAImageLoader:Vs,SMAAPreset:ye,SMAASearchImageData:En,SMAAWeightsMaterial:cr,SSAOEffect:Bs,SSAOMaterial:hr,SavePass:Je,ScanlineEffect:os,Section:M,Selection:pt,SelectiveBloomEffect:fs,SepiaEffect:ps,ShaderPass:j,ShockWaveEffect:hs,TetrahedralUpscaler:hn,TextureEffect:Is,TiltShiftBlurMaterial:vr,TiltShiftBlurPass:gr,TiltShiftEffect:Ls,Timer:zt,ToneMappingEffect:Hs,ToneMappingMode:q,UpsamplingMaterial:Jt,VignetteEffect:Gs,VignetteTechnique:Be,WebGLExtension:Xa,version:ai},Symbol.toStringTag,{value:"Module"}));class yn extends Nt{constructor(){super(),Qr(this,"boundingSphere",new ri),this.setAttribute("position",new je(new Float32Array([-1,-1,3,-1,-1,3]),2)),this.setAttribute("uv",new je(new Float32Array([0,0,2,0,0,2]),2))}computeBoundingSphere(){}}const Bn=new yn,Mn=new ti;class _{constructor(t){this._mesh=new Ft(Bn,t),this._mesh.frustumCulled=!1}render(t){t.render(this._mesh,Mn)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}dispose(){this._mesh.material.dispose(),this._mesh.geometry.dispose()}}const Rr={uniforms:{sceneDiffuse:{value:null},sceneDepth:{value:null},sceneNormal:{value:null},projMat:{value:new N},viewMat:{value:new N},projViewMat:{value:new N},projectionMatrixInv:{value:new N},viewMatrixInv:{value:new N},cameraPos:{value:new L},resolution:{value:new v},biasAdjustment:{value:new v},time:{value:0},samples:{value:[]},bluenoise:{value:null},distanceFalloff:{value:1},radius:{value:5},near:{value:.1},far:{value:1e3},ortho:{value:!1},screenSpaceRadius:{value:!1},frame:{value:0}},depthWrite:!1,depthTest:!1,vertexShader:`
|
|
877
877
|
varying vec2 vUv;
|
|
878
878
|
void main() {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";var jt=Object.defineProperty;var Jt=(e,t,r)=>t in e?jt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Xe=(e,t,r)=>Jt(e,typeof t!="symbol"?t+"":t,r);const i=require("./three-B_hneGZr.umd.cjs"),qt=require("./three-examples-DUcCNw9s.umd.cjs");/**
|
|
2
|
-
* postprocessing v6.37.
|
|
2
|
+
* postprocessing v6.37.7 build Mon Aug 04 2025
|
|
3
3
|
* https://github.com/pmndrs/postprocessing
|
|
4
4
|
* Copyright 2015-2025 Raoul van Rüschen
|
|
5
5
|
* @license Zlib
|
|
6
|
-
*/var _t="6.37.
|
|
6
|
+
*/var _t="6.37.7",$t=class{dispose(){}},Be=1/1e3,ei=1e3,ut=class{constructor(){this.startTime=performance.now(),this.previousTime=0,this.currentTime=0,this._delta=0,this._elapsed=0,this._fixedDelta=1e3/60,this.timescale=1,this.useFixedDelta=!1,this._autoReset=!1}get autoReset(){return this._autoReset}set autoReset(e){typeof document<"u"&&document.hidden!==void 0&&(e?document.addEventListener("visibilitychange",this):document.removeEventListener("visibilitychange",this),this._autoReset=e)}get delta(){return this._delta*Be}get fixedDelta(){return this._fixedDelta*Be}set fixedDelta(e){this._fixedDelta=e*ei}get elapsed(){return this._elapsed*Be}update(e){this.useFixedDelta?this._delta=this.fixedDelta:(this.previousTime=this.currentTime,this.currentTime=(e!==void 0?e:performance.now())-this.startTime,this._delta=this.currentTime-this.previousTime),this._delta*=this.timescale,this._elapsed+=this._delta}reset(){this._delta=0,this._elapsed=0,this.currentTime=performance.now()-this.startTime}getDelta(){return this.delta}getElapsed(){return this.elapsed}handleEvent(e){document.hidden||(this.currentTime=performance.now()-this.startTime)}dispose(){this.autoReset=!1}},ti=(()=>{const e=new Float32Array([-1,-1,0,3,-1,0,-1,3,0]),t=new Float32Array([0,0,2,0,0,2]),r=new i.BufferGeometry;return r.setAttribute("position",new i.BufferAttribute(e,3)),r.setAttribute("uv",new i.BufferAttribute(t,2)),r})(),U=class Fe{static get fullscreenGeometry(){return ti}constructor(t="Pass",r=new i.Scene,a=new i.Camera){this.name=t,this.renderer=null,this.scene=r,this.camera=a,this.screen=null,this.rtt=!0,this.needsSwap=!0,this.needsDepthTexture=!1,this.enabled=!0}get renderToScreen(){return!this.rtt}set renderToScreen(t){if(this.rtt===t){const r=this.fullscreenMaterial;r!==null&&(r.needsUpdate=!0),this.rtt=!t}}set mainScene(t){}set mainCamera(t){}setRenderer(t){this.renderer=t}isEnabled(){return this.enabled}setEnabled(t){this.enabled=t}get fullscreenMaterial(){return this.screen!==null?this.screen.material:null}set fullscreenMaterial(t){let r=this.screen;r!==null?r.material=t:(r=new i.Mesh(Fe.fullscreenGeometry,t),r.frustumCulled=!1,this.scene===null&&(this.scene=new i.Scene),this.scene.add(r),this.screen=r)}getFullscreenMaterial(){return this.fullscreenMaterial}setFullscreenMaterial(t){this.fullscreenMaterial=t}getDepthTexture(){return null}setDepthTexture(t,r=i.BasicDepthPacking){}render(t,r,a,s,o){throw new Error("Render method not implemented!")}setSize(t,r){}initialize(t,r,a){}dispose(){for(const t of Object.keys(this)){const r=this[t];(r instanceof i.WebGLRenderTarget||r instanceof i.Material||r instanceof i.Texture||r instanceof Fe)&&this[t].dispose()}this.fullscreenMaterial!==null&&this.fullscreenMaterial.dispose()}},ct=class extends U{constructor(){super("ClearMaskPass",null,null),this.needsSwap=!1}render(e,t,r,a,s){const o=e.state.buffers.stencil;o.setLocked(!1),o.setTest(!1)}},ii=`#include <common>
|
|
7
7
|
#include <dithering_pars_fragment>
|
|
8
8
|
#ifdef FRAMEBUFFER_PRECISION_HIGH
|
|
9
9
|
uniform mediump sampler2D inputBuffer;
|
|
@@ -45,16 +45,16 @@ uniform vec2 range;
|
|
|
45
45
|
#elif defined(THRESHOLD)
|
|
46
46
|
uniform float threshold;uniform float smoothing;
|
|
47
47
|
#endif
|
|
48
|
-
varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);
|
|
48
|
+
varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);float mask=1.0;
|
|
49
49
|
#ifdef RANGE
|
|
50
|
-
float low=step(range.x,l);float high=step(l,range.y);
|
|
50
|
+
float low=step(range.x,l);float high=step(l,range.y);mask=low*high;
|
|
51
51
|
#elif defined(THRESHOLD)
|
|
52
|
-
|
|
52
|
+
mask=smoothstep(threshold,threshold+smoothing,l);
|
|
53
53
|
#endif
|
|
54
54
|
#ifdef COLOR
|
|
55
|
-
gl_FragColor=
|
|
55
|
+
gl_FragColor=texel*mask;
|
|
56
56
|
#else
|
|
57
|
-
gl_FragColor=vec4(l);
|
|
57
|
+
gl_FragColor=vec4(l*mask);
|
|
58
58
|
#endif
|
|
59
59
|
}`,gt=class extends i.ShaderMaterial{constructor(e=!1,t=null){super({name:"LuminanceMaterial",defines:{THREE_REVISION:i.REVISION.replace(/\D+/g,"")},uniforms:{inputBuffer:new i.Uniform$1(null),threshold:new i.Uniform$1(0),smoothing:new i.Uniform$1(1),range:new i.Uniform$1(null)},blending:i.NoBlending,toneMapped:!1,depthWrite:!1,depthTest:!1,fragmentShader:Ki,vertexShader:X}),this.colorOutput=e,this.luminanceRange=t}set inputBuffer(e){this.uniforms.inputBuffer.value=e}setInputBuffer(e){this.uniforms.inputBuffer.value=e}get threshold(){return this.uniforms.threshold.value}set threshold(e){this.smoothing>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.threshold.value=e}getThreshold(){return this.threshold}setThreshold(e){this.threshold=e}get smoothing(){return this.uniforms.smoothing.value}set smoothing(e){this.threshold>0||e>0?this.defines.THRESHOLD="1":delete this.defines.THRESHOLD,this.uniforms.smoothing.value=e}getSmoothingFactor(){return this.smoothing}setSmoothingFactor(e){this.smoothing=e}get useThreshold(){return this.threshold>0||this.smoothing>0}set useThreshold(e){}get colorOutput(){return this.defines.COLOR!==void 0}set colorOutput(e){e?this.defines.COLOR="1":delete this.defines.COLOR,this.needsUpdate=!0}isColorOutputEnabled(e){return this.colorOutput}setColorOutputEnabled(e){this.colorOutput=e}get useRange(){return this.luminanceRange!==null}set useRange(e){this.luminanceRange=null}get luminanceRange(){return this.uniforms.range.value}set luminanceRange(e){e!==null?this.defines.RANGE="1":delete this.defines.RANGE,this.uniforms.range.value=e,this.needsUpdate=!0}getLuminanceRange(){return this.luminanceRange}setLuminanceRange(e){this.luminanceRange=e}},Qe=class extends U{constructor({renderTarget:e,luminanceRange:t,colorOutput:r,resolutionScale:a=1,width:s=A.AUTO_SIZE,height:o=A.AUTO_SIZE,resolutionX:n=s,resolutionY:l=o}={}){super("LuminancePass"),this.fullscreenMaterial=new gt(r,t),this.needsSwap=!1,this.renderTarget=e,this.renderTarget===void 0&&(this.renderTarget=new i.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTarget.texture.name="LuminancePass.Target");const u=this.resolution=new A(this,n,l,a);u.addEventListener("change",c=>this.setSize(u.baseWidth,u.baseHeight))}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}render(e,t,r,a,s){const o=this.fullscreenMaterial;o.inputBuffer=t.texture,e.setRenderTarget(this.renderToScreen?null:this.renderTarget),e.render(this.scene,this.camera)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}initialize(e,t,r){r!==void 0&&r!==i.UnsignedByteType&&(this.renderTarget.texture.type=r,this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}},Xi=`#ifdef FRAMEBUFFER_PRECISION_HIGH
|
|
60
60
|
uniform mediump sampler2D inputBuffer;
|
|
@@ -872,7 +872,7 @@ uniform vec2 kernel[STEPS];varying vec2 vOffset;varying vec2 vUv;void main(){vec
|
|
|
872
872
|
`+a),this.needsDepthTexture=this.getDepthTexture()===null):this.needsDepthTexture=!1,e.colorSpace===i.SRGBColorSpace&&(a+=`color0 = sRGBToLinear(color0);
|
|
873
873
|
`),e.uvTransformation?(s=`vec2 transformedUv = vUv;
|
|
874
874
|
`+s,e.defines.set("UV","transformedUv")):e.defines.set("UV","vUv"),e.shaderParts.set(E.FRAGMENT_HEAD,r),e.shaderParts.set(E.FRAGMENT_MAIN_IMAGE,a),e.shaderParts.set(E.FRAGMENT_MAIN_UV,s);for(const[n,l]of e.shaderParts)l!==null&&e.shaderParts.set(n,l.trim().replace(/^#/,`
|
|
875
|
-
#`));this.skipRendering=t===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(e)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(e,t=i.BasicDepthPacking){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t;for(const r of this.effects)r.setDepthTexture(e,t)}render(e,t,r,a,s){for(const o of this.effects)o.update(e,t,a);if(!this.skipRendering||this.renderToScreen){const o=this.fullscreenMaterial;o.inputBuffer=t.texture,o.time+=a*this.timeScale,e.setRenderTarget(this.renderToScreen?null:r),e.render(this.scene,this.camera)}}setSize(e,t){this.fullscreenMaterial.setSize(e,t);for(const r of this.effects)r.setSize(e,t)}initialize(e,t,r){this.renderer=e;for(const a of this.effects)a.initialize(e,t,r);this.updateMaterial(),r!==void 0&&r!==i.UnsignedByteType&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(const e of this.effects)e.removeEventListener("change",this.listener),e.dispose()}handleEvent(e){switch(e.type){case"change":this.recompile();break}}},es=class extends U{constructor({kernelSize:e=35,iterations:t=1,resolutionScale:r=1,resolutionX:a=A.AUTO_SIZE,resolutionY:s=A.AUTO_SIZE}={}){super("GaussianBlurPass"),this.renderTargetA=new i.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B",this.blurMaterial=new Gt({kernelSize:e}),this.copyMaterial=new ve,this.copyMaterial.inputBuffer=this.renderTargetB.texture;const o=this.resolution=new A(this,a,s,r);o.addEventListener("change",n=>this.setSize(o.baseWidth,o.baseHeight)),this.iterations=t}render(e,t,r,a,s){const o=this.scene,n=this.camera,l=this.renderTargetA,u=this.renderTargetB,c=this.blurMaterial;this.fullscreenMaterial=c;let f=t;for(let h=0,d=Math.max(this.iterations,1);h<d;++h)c.direction.set(1,0),c.inputBuffer=f.texture,e.setRenderTarget(l),e.render(o,n),c.direction.set(0,1),c.inputBuffer=l.texture,e.setRenderTarget(u),e.render(o,n),h===0&&d>1&&(f=u);this.fullscreenMaterial=this.copyMaterial,e.setRenderTarget(this.renderToScreen?null:r),e.render(o,n)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t);const a=r.width,s=r.height;this.renderTargetA.setSize(a,s),this.renderTargetB.setSize(a,s),this.blurMaterial.setSize(e,t)}initialize(e,t,r){r!==void 0&&(this.renderTargetA.texture.type=r,this.renderTargetB.texture.type=r,r!==i.UnsignedByteType?(this.blurMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1",this.copyMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1"):e!==null&&e.outputColorSpace===i.SRGBColorSpace&&(this.renderTargetA.texture.colorSpace=i.SRGBColorSpace,this.renderTargetB.texture.colorSpace=i.SRGBColorSpace))}},ts=class extends U{constructor(e){super("LambdaPass",null,null),this.needsSwap=!1,this.f=e}render(e,t,r,a,s){this.f()}},is=class extends U{constructor(e,t,{renderTarget:r,resolutionScale:a=1,width:s=A.AUTO_SIZE,height:o=A.AUTO_SIZE,resolutionX:n=s,resolutionY:l=o}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new ge(e,t,new i.MeshNormalMaterial);const u=this.renderPass;u.ignoreBackground=!0,u.skipShadowMapUpdate=!0;const c=u.getClearPass();c.overrideClearColor=new i.Color(7829503),c.overrideClearAlpha=1,this.renderTarget=r,this.renderTarget===void 0&&(this.renderTarget=new i.WebGLRenderTarget(1,1,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),this.renderTarget.texture.name="NormalPass.Target");const f=this.resolution=new A(this,n,l,a);f.addEventListener("change",h=>this.setSize(f.baseWidth,f.baseHeight))}set mainScene(e){this.renderPass.mainScene=e}set mainCamera(e){this.renderPass.mainCamera=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,r,a,s){const o=this.renderToScreen?null:this.renderTarget;this.renderPass.render(e,o,o)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}},rt=[new Float32Array(3),new Float32Array(3)],B=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],ie=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]];function xe(e,t,r,a){const s=r[0]-t[0],o=r[1]-t[1],n=r[2]-t[2],l=e[0]-t[0],u=e[1]-t[1],c=e[2]-t[2],f=o*c-n*u,h=n*l-s*c,d=s*u-o*l,p=Math.sqrt(f*f+h*h+d*d),m=p*.5,g=f/p,T=h/p,w=d/p,D=-(e[0]*g+e[1]*T+e[2]*w),x=a[0]*g+a[1]*T+a[2]*w;return Math.abs(x+D)*m/3}function he(e,t,r,a,s,o){const n=(r+a*t+s*t*t)*4;o[0]=e[n+0],o[1]=e[n+1],o[2]=e[n+2]}function rs(e,t,r,a,s,o){const n=r*(t-1),l=a*(t-1),u=s*(t-1),c=Math.floor(n),f=Math.floor(l),h=Math.floor(u),d=Math.ceil(n),p=Math.ceil(l),m=Math.ceil(u),g=n-c,T=l-f,w=u-h;if(c===n&&f===l&&h===u)he(e,t,n,l,u,o);else{let D;g>=T&&T>=w?D=ie[0]:g>=w&&w>=T?D=ie[1]:w>=g&&g>=T?D=ie[2]:T>=g&&g>=w?D=ie[3]:T>=w&&w>=g?D=ie[4]:w>=T&&T>=g&&(D=ie[5]);const[x,b,G,k]=D,Q=rt[0];Q[0]=g,Q[1]=T,Q[2]=w;const M=rt[1],ee=d-c,te=p-f,V=m-h;M[0]=ee*x[0]+c,M[1]=te*x[1]+f,M[2]=V*x[2]+h,he(e,t,M[0],M[1],M[2],B[0]),M[0]=ee*b[0]+c,M[1]=te*b[1]+f,M[2]=V*b[2]+h,he(e,t,M[0],M[1],M[2],B[1]),M[0]=ee*G[0]+c,M[1]=te*G[1]+f,M[2]=V*G[2]+h,he(e,t,M[0],M[1],M[2],B[2]),M[0]=ee*k[0]+c,M[1]=te*k[1]+f,M[2]=V*k[2]+h,he(e,t,M[0],M[1],M[2],B[3]);const Z=xe(b,G,k,Q)*6,R=xe(x,G,k,Q)*6,me=xe(x,b,k,Q)*6,ye=xe(x,b,G,Q)*6;B[0][0]*=Z,B[0][1]*=Z,B[0][2]*=Z,B[1][0]*=R,B[1][1]*=R,B[1][2]*=R,B[2][0]*=me,B[2][1]*=me,B[2][2]*=me,B[3][0]*=ye,B[3][1]*=ye,B[3][2]*=ye,o[0]=B[0][0]+B[1][0]+B[2][0]+B[3][0],o[1]=B[0][1]+B[1][1]+B[2][1]+B[3][1],o[2]=B[0][2]+B[1][2]+B[2][2]+B[3][2]}}var as=class{static expand(e,t){const r=Math.cbrt(e.length/4),a=new Float32Array(3),s=new e.constructor(t**3*4),o=e instanceof Uint8Array?255:1,n=t**2,l=1/(t-1);for(let u=0;u<t;++u)for(let c=0;c<t;++c)for(let f=0;f<t;++f){const h=f*l,d=c*l,p=u*l,m=Math.round(f+c*t+u*n)*4;rs(e,r,h,d,p,a),s[m+0]=a[0],s[m+1]=a[1],s[m+2]=a[2],s[m+3]=o}return s}},ce=[new Float32Array(2),new Float32Array(2)],re=16,Re=20,ae=30,ss=32,Ie=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),at=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],ns=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],zt=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function De(e,t,r){return e+(t-e)*r}function os(e){return Math.min(Math.max(e,0),1)}function st(e){const t=ce[0],r=ce[1],a=Math.sqrt(t[0]*2)*.5,s=Math.sqrt(t[1]*2)*.5,o=Math.sqrt(r[0]*2)*.5,n=Math.sqrt(r[1]*2)*.5,l=os(e/ss);t[0]=De(a,t[0],l),t[1]=De(s,t[1],l),r[0]=De(o,r[0],l),r[1]=De(n,r[1],l)}function I(e,t,r,a,s,o){const n=r-e,l=a-t,u=s,c=s+1,f=t+l*(u-e)/n,h=t+l*(c-e)/n;if(u>=e&&u<r||c>e&&c<=r)if(Math.sign(f)===Math.sign(h)||Math.abs(f)<1e-4||Math.abs(h)<1e-4){const d=(f+h)/2;d<0?(o[0]=Math.abs(d),o[1]=0):(o[0]=0,o[1]=Math.abs(d))}else{const d=-t*n/l+e,p=Math.trunc(d),m=d>e?f*(d-p)/2:0,g=d<r?h*(1-(d-p))/2:0;(Math.abs(m)>Math.abs(g)?m:-g)<0?(o[0]=Math.abs(m),o[1]=Math.abs(g)):(o[0]=Math.abs(g),o[1]=Math.abs(m))}else o[0]=0,o[1]=0;return o}function ls(e,t,r,a,s){const o=ce[0],n=ce[1],l=.5+a,u=.5+a-1,c=t+r+1;switch(e){case 0:{s[0]=0,s[1]=0;break}case 1:{t<=r?I(0,u,c/2,0,t,s):(s[0]=0,s[1]=0);break}case 2:{t>=r?I(c/2,0,c,u,t,s):(s[0]=0,s[1]=0);break}case 3:{I(0,u,c/2,0,t,o),I(c/2,0,c,u,t,n),st(c),s[0]=o[0]+n[0],s[1]=o[1]+n[1];break}case 4:{t<=r?I(0,l,c/2,0,t,s):(s[0]=0,s[1]=0);break}case 5:{s[0]=0,s[1]=0;break}case 6:{Math.abs(a)>0?(I(0,l,c,u,t,o),I(0,l,c/2,0,t,n),I(c/2,0,c,u,t,s),n[0]=n[0]+s[0],n[1]=n[1]+s[1],s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2):I(0,l,c,u,t,s);break}case 7:{I(0,l,c,u,t,s);break}case 8:{t>=r?I(c/2,0,c,l,t,s):(s[0]=0,s[1]=0);break}case 9:{Math.abs(a)>0?(I(0,u,c,l,t,o),I(0,u,c/2,0,t,n),I(c/2,0,c,l,t,s),n[0]=n[0]+s[0],n[1]=n[1]+s[1],s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2):I(0,u,c,l,t,s);break}case 10:{s[0]=0,s[1]=0;break}case 11:{I(0,u,c,l,t,s);break}case 12:{I(0,l,c/2,0,t,o),I(c/2,0,c,l,t,n),st(c),s[0]=o[0]+n[0],s[1]=o[1]+n[1];break}case 13:{I(0,u,c,l,t,s);break}case 14:{I(0,l,c,u,t,s);break}case 15:{s[0]=0,s[1]=0;break}}return s}function us(e,t,r,a,s,o){let n=e===r&&t===a;if(!n){const l=(e+r)/2,u=(t+a)/2,c=a-t,f=e-r;n=c*(s-l)+f*(o-u)>0}return n}function nt(e,t,r,a,s,o){let n=0;for(let l=0;l<ae;++l)for(let u=0;u<ae;++u){const c=u/(ae-1),f=l/(ae-1);us(e,t,r,a,s+c,o+f)&&++n}return n/(ae*ae)}function y(e,t,r,a,s,o,n,l){const u=zt[e],c=u[0],f=u[1];return c>0&&(t+=n[0],r+=n[1]),f>0&&(a+=n[0],s+=n[1]),l[0]=1-nt(t,r,a,s,1+o,0+o),l[1]=nt(t,r,a,s,1+o,1+o),l}function cs(e,t,r,a,s){const o=ce[0],n=ce[1],l=t+r+1;switch(e){case 0:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 1:{y(e,1,0,0+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 2:{y(e,0,0,1+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 3:{y(e,1,0,1+l,0+l,t,a,s);break}case 4:{y(e,1,1,0+l,0+l,t,a,o),y(e,1,1,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 5:{y(e,1,1,0+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 6:{y(e,1,1,1+l,0+l,t,a,s);break}case 7:{y(e,1,1,1+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 8:{y(e,0,0,1+l,1+l,t,a,o),y(e,1,0,1+l,1+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 9:{y(e,1,0,1+l,1+l,t,a,s),y(e,1,0,1+l,1+l,t,a,s);break}case 10:{y(e,0,0,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 11:{y(e,1,0,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 12:{y(e,1,1,1+l,1+l,t,a,s);break}case 13:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,1+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 14:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,1,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 15:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}}return s}function ot(e,t,r){const a=new Float32Array(2);for(let s=0,o=e.length;s<o;++s){const n=e[s],l=n.data,u=n.width;for(let c=0;c<u;++c)for(let f=0;f<u;++f){r?ls(s,f,c,t,a):cs(s,f,c,t,a);const h=(c*u+f)*2;l[h]=a[0]*255,l[h+1]=a[1]*255}}}function lt(e,t,r,a,s,o,n){const l=n.data,u=n.width;for(let c=0,f=r.length;c<f;++c){const h=a[c],d=r[c],p=d.data,m=d.width;for(let g=0;g<s;++g)for(let T=0;T<s;++T){const w=h[0]*s+e+T,x=((h[1]*s+t+g)*u+w)*4,b=o?(g*g*m+T*T)*2:(g*m+T)*2;l[x]=p[b],l[x+1]=p[b+1],l[x+2]=0,l[x+3]=255}}}var fs=class{static generate(){const e=10*re,t=Ie.length*5*re,r=new Uint8ClampedArray(e*t*4),a=new K(e,t,r),s=Math.pow(re-1,2)+1,o=Re,n=[],l=[];for(let u=3,c=r.length;u<c;u+=4)r[u]=255;for(let u=0;u<16;++u)n.push(new K(s,s,new Uint8ClampedArray(s*s*2),2)),l.push(new K(o,o,new Uint8ClampedArray(o*o*2),2));for(let u=0,c=Ie.length;u<c;++u)ot(n,Ie[u],!0),lt(0,5*re*u,n,ns,re,!0,a);for(let u=0,c=at.length;u<c;++u)ot(l,at[u],!1),lt(5*re,4*Re*u,l,zt,Re,!1,a);return a}},hs=`"use strict";(()=>{function q(t,a,s){let e=document.createElement("canvas"),n=e.getContext("2d");if(e.width=t,e.height=a,s instanceof Image)n.drawImage(s,0,0);else{let r=n.createImageData(t,a);r.data.set(s),n.putImageData(r,0,0)}return e}var F=class t{constructor(a=0,s=0,e=null){this.width=a,this.height=s,this.data=e}toCanvas(){return typeof document=="undefined"?null:q(this.width,this.height,this.data)}static from(a){let{width:s,height:e}=a,n;if(a instanceof Image){let r=q(s,e,a);r!==null&&(n=r.getContext("2d").getImageData(0,0,s,e).data)}else n=a.data;return new t(s,e,n)}};var M=[new Float32Array(2),new Float32Array(2)],D=16,W=20,I=30,j=32,v=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),N=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],z=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],p=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function C(t,a,s){return t+(a-t)*s}function B(t){return Math.min(Math.max(t,0),1)}function _(t){let a=M[0],s=M[1],e=Math.sqrt(a[0]*2)*.5,n=Math.sqrt(a[1]*2)*.5,r=Math.sqrt(s[0]*2)*.5,o=Math.sqrt(s[1]*2)*.5,c=B(t/j);a[0]=C(e,a[0],c),a[1]=C(n,a[1],c),s[0]=C(r,s[0],c),s[1]=C(o,s[1],c)}function d(t,a,s,e,n,r){let o=s-t,c=e-a,h=n,i=n+1,w=a+c*(h-t)/o,b=a+c*(i-t)/o;if(h>=t&&h<s||i>t&&i<=s)if(Math.sign(w)===Math.sign(b)||Math.abs(w)<1e-4||Math.abs(b)<1e-4){let g=(w+b)/2;g<0?(r[0]=Math.abs(g),r[1]=0):(r[0]=0,r[1]=Math.abs(g))}else{let g=-a*o/c+t,k=Math.trunc(g),m=g>t?w*(g-k)/2:0,U=g<s?b*(1-(g-k))/2:0;(Math.abs(m)>Math.abs(U)?m:-U)<0?(r[0]=Math.abs(m),r[1]=Math.abs(U)):(r[0]=Math.abs(U),r[1]=Math.abs(m))}else r[0]=0,r[1]=0;return r}function J(t,a,s,e,n){let r=M[0],o=M[1],c=.5+e,h=.5+e-1,i=a+s+1;switch(t){case 0:{n[0]=0,n[1]=0;break}case 1:{a<=s?d(0,h,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 2:{a>=s?d(i/2,0,i,h,a,n):(n[0]=0,n[1]=0);break}case 3:{d(0,h,i/2,0,a,r),d(i/2,0,i,h,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 4:{a<=s?d(0,c,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 5:{n[0]=0,n[1]=0;break}case 6:{Math.abs(e)>0?(d(0,c,i,h,a,r),d(0,c,i/2,0,a,o),d(i/2,0,i,h,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,c,i,h,a,n);break}case 7:{d(0,c,i,h,a,n);break}case 8:{a>=s?d(i/2,0,i,c,a,n):(n[0]=0,n[1]=0);break}case 9:{Math.abs(e)>0?(d(0,h,i,c,a,r),d(0,h,i/2,0,a,o),d(i/2,0,i,c,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,h,i,c,a,n);break}case 10:{n[0]=0,n[1]=0;break}case 11:{d(0,h,i,c,a,n);break}case 12:{d(0,c,i/2,0,a,r),d(i/2,0,i,c,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 13:{d(0,h,i,c,a,n);break}case 14:{d(0,c,i,h,a,n);break}case 15:{n[0]=0,n[1]=0;break}}return n}function K(t,a,s,e,n,r){let o=t===s&&a===e;if(!o){let c=(t+s)/2,h=(a+e)/2,i=e-a,w=t-s;o=i*(n-c)+w*(r-h)>0}return o}function G(t,a,s,e,n,r){let o=0;for(let c=0;c<I;++c)for(let h=0;h<I;++h){let i=h/(I-1),w=c/(I-1);K(t,a,s,e,n+i,r+w)&&++o}return o/(I*I)}function A(t,a,s,e,n,r,o,c){let h=p[t],i=h[0],w=h[1];return i>0&&(a+=o[0],s+=o[1]),w>0&&(e+=o[0],n+=o[1]),c[0]=1-G(a,s,e,n,1+r,0+r),c[1]=G(a,s,e,n,1+r,1+r),c}function Q(t,a,s,e,n){let r=M[0],o=M[1],c=a+s+1;switch(t){case 0:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 1:{A(t,1,0,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 2:{A(t,0,0,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 3:{A(t,1,0,1+c,0+c,a,e,n);break}case 4:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 5:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 6:{A(t,1,1,1+c,0+c,a,e,n);break}case 7:{A(t,1,1,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 8:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 9:{A(t,1,0,1+c,1+c,a,e,n),A(t,1,0,1+c,1+c,a,e,n);break}case 10:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 11:{A(t,1,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 12:{A(t,1,1,1+c,1+c,a,e,n);break}case 13:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 14:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 15:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}}return n}function R(t,a,s){let e=new Float32Array(2);for(let n=0,r=t.length;n<r;++n){let o=t[n],c=o.data,h=o.width;for(let i=0;i<h;++i)for(let w=0;w<h;++w){s?J(n,w,i,a,e):Q(n,w,i,a,e);let b=(i*h+w)*2;c[b]=e[0]*255,c[b+1]=e[1]*255}}}function T(t,a,s,e,n,r,o){let c=o.data,h=o.width;for(let i=0,w=s.length;i<w;++i){let b=e[i],g=s[i],k=g.data,m=g.width;for(let U=0;U<n;++U)for(let x=0;x<n;++x){let Z=b[0]*n+t+x,O=((b[1]*n+a+U)*h+Z)*4,L=r?(U*U*m+x*x)*2:(U*m+x)*2;c[O]=k[L],c[O+1]=k[L+1],c[O+2]=0,c[O+3]=255}}}var S=class{static generate(){let a=10*D,s=v.length*5*D,e=new Uint8ClampedArray(a*s*4),n=new F(a,s,e),r=Math.pow(D-1,2)+1,o=W,c=[],h=[];for(let i=3,w=e.length;i<w;i+=4)e[i]=255;for(let i=0;i<16;++i)c.push(new F(r,r,new Uint8ClampedArray(r*r*2),2)),h.push(new F(o,o,new Uint8ClampedArray(o*o*2),2));for(let i=0,w=v.length;i<w;++i)R(c,v[i],!0),T(0,5*D*i,c,z,D,!0,n);for(let i=0,w=N.length;i<w;++i)R(h,N[i],!1),T(5*D,4*W*i,h,p,W,!1,n);return n}};var P=new Map([[y(0,0,0,0),new Float32Array([0,0,0,0])],[y(0,0,0,1),new Float32Array([0,0,0,1])],[y(0,0,1,0),new Float32Array([0,0,1,0])],[y(0,0,1,1),new Float32Array([0,0,1,1])],[y(0,1,0,0),new Float32Array([0,1,0,0])],[y(0,1,0,1),new Float32Array([0,1,0,1])],[y(0,1,1,0),new Float32Array([0,1,1,0])],[y(0,1,1,1),new Float32Array([0,1,1,1])],[y(1,0,0,0),new Float32Array([1,0,0,0])],[y(1,0,0,1),new Float32Array([1,0,0,1])],[y(1,0,1,0),new Float32Array([1,0,1,0])],[y(1,0,1,1),new Float32Array([1,0,1,1])],[y(1,1,0,0),new Float32Array([1,1,0,0])],[y(1,1,0,1),new Float32Array([1,1,0,1])],[y(1,1,1,0),new Float32Array([1,1,1,0])],[y(1,1,1,1),new Float32Array([1,1,1,1])]]);function H(t,a,s){return t+(a-t)*s}function y(t,a,s,e){let n=H(t,a,.75),r=H(s,e,1-.25);return H(n,r,1-.125)}function V(t,a){let s=0;return a[3]===1&&(s+=1),s===1&&a[2]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s}function $(t,a){let s=0;return a[3]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s===1&&a[2]===1&&t[0]!==1&&t[2]!==1&&(s+=1),s}var E=class{static generate(){let o=new Uint8ClampedArray(2178),c=new Uint8ClampedArray(64*16*4);for(let h=0;h<33;++h)for(let i=0;i<66;++i){let w=.03125*i,b=.03125*h;if(P.has(w)&&P.has(b)){let g=P.get(w),k=P.get(b),m=h*66+i;o[m]=127*V(g,k),o[m+33]=127*$(g,k)}}for(let h=0,i=17;i<33;++i)for(let w=0;w<64;++w,h+=4)c[h]=o[i*66+w],c[h+3]=255;return new F(64,16,c)}};self.addEventListener("message",t=>{let a=S.generate(),s=E.generate();postMessage({areaImageData:a,searchImageData:s},[a.data.buffer,s.data.buffer]),close()});})();
|
|
875
|
+
#`));this.skipRendering=t===0,this.needsSwap=!this.skipRendering,this.fullscreenMaterial.setShaderData(e)}recompile(){this.updateMaterial()}getDepthTexture(){return this.fullscreenMaterial.depthBuffer}setDepthTexture(e,t=i.BasicDepthPacking){this.fullscreenMaterial.depthBuffer=e,this.fullscreenMaterial.depthPacking=t;for(const r of this.effects)r.setDepthTexture(e,t)}render(e,t,r,a,s){for(const o of this.effects)o.update(e,t,a);if(!this.skipRendering||this.renderToScreen){const o=this.fullscreenMaterial;o.inputBuffer=t.texture,o.time+=a*this.timeScale,e.setRenderTarget(this.renderToScreen?null:r),e.render(this.scene,this.camera)}}setSize(e,t){this.fullscreenMaterial.setSize(e,t);for(const r of this.effects)r.setSize(e,t)}initialize(e,t,r){this.renderer=e;for(const a of this.effects)a.initialize(e,t,r);this.updateMaterial(),r!==void 0&&r!==i.UnsignedByteType&&(this.fullscreenMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1")}dispose(){super.dispose();for(const e of this.effects)e.removeEventListener("change",this.listener),e.dispose()}handleEvent(e){switch(e.type){case"change":this.recompile();break}}},es=class extends U{constructor({kernelSize:e=35,iterations:t=1,resolutionScale:r=1,resolutionX:a=A.AUTO_SIZE,resolutionY:s=A.AUTO_SIZE}={}){super("GaussianBlurPass"),this.renderTargetA=new i.WebGLRenderTarget(1,1,{depthBuffer:!1}),this.renderTargetA.texture.name="Blur.Target.A",this.renderTargetB=this.renderTargetA.clone(),this.renderTargetB.texture.name="Blur.Target.B",this.blurMaterial=new Gt({kernelSize:e}),this.copyMaterial=new ve,this.copyMaterial.inputBuffer=this.renderTargetB.texture;const o=this.resolution=new A(this,a,s,r);o.addEventListener("change",n=>this.setSize(o.baseWidth,o.baseHeight)),this.iterations=t}render(e,t,r,a,s){const o=this.scene,n=this.camera,l=this.renderTargetA,u=this.renderTargetB,c=this.blurMaterial;this.fullscreenMaterial=c;let f=t;for(let h=0,d=Math.max(this.iterations,1);h<d;++h)c.direction.set(1,0),c.inputBuffer=f.texture,e.setRenderTarget(l),e.render(o,n),c.direction.set(0,1),c.inputBuffer=l.texture,e.setRenderTarget(u),e.render(o,n),h===0&&d>1&&(f=u);this.fullscreenMaterial=this.copyMaterial,e.setRenderTarget(this.renderToScreen?null:r),e.render(o,n)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t);const a=r.width,s=r.height;this.renderTargetA.setSize(a,s),this.renderTargetB.setSize(a,s),this.blurMaterial.setSize(e,t)}initialize(e,t,r){r!==void 0&&(this.renderTargetA.texture.type=r,this.renderTargetB.texture.type=r,r!==i.UnsignedByteType?(this.blurMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1",this.copyMaterial.defines.FRAMEBUFFER_PRECISION_HIGH="1"):e!==null&&e.outputColorSpace===i.SRGBColorSpace&&(this.renderTargetA.texture.colorSpace=i.SRGBColorSpace,this.renderTargetB.texture.colorSpace=i.SRGBColorSpace))}},ts=class extends U{constructor(e){super("LambdaPass",null,null),this.needsSwap=!1,this.f=e}render(e,t,r,a,s){this.f()}},is=class extends U{constructor(e,t,{renderTarget:r,resolutionScale:a=1,width:s=A.AUTO_SIZE,height:o=A.AUTO_SIZE,resolutionX:n=s,resolutionY:l=o}={}){super("NormalPass"),this.needsSwap=!1,this.renderPass=new ge(e,t,new i.MeshNormalMaterial);const u=this.renderPass;u.ignoreBackground=!0,u.skipShadowMapUpdate=!0;const c=u.getClearPass();c.overrideClearColor=new i.Color(7829503),c.overrideClearAlpha=1,this.renderTarget=r,this.renderTarget===void 0&&(this.renderTarget=new i.WebGLRenderTarget(1,1,{minFilter:i.NearestFilter,magFilter:i.NearestFilter}),this.renderTarget.texture.name="NormalPass.Target");const f=this.resolution=new A(this,n,l,a);f.addEventListener("change",h=>this.setSize(f.baseWidth,f.baseHeight))}set mainScene(e){this.renderPass.mainScene=e}set mainCamera(e){this.renderPass.mainCamera=e}get texture(){return this.renderTarget.texture}getTexture(){return this.renderTarget.texture}getResolution(){return this.resolution}getResolutionScale(){return this.resolution.scale}setResolutionScale(e){this.resolution.scale=e}render(e,t,r,a,s){const o=this.renderToScreen?null:this.renderTarget;this.renderPass.render(e,o,o)}setSize(e,t){const r=this.resolution;r.setBaseSize(e,t),this.renderTarget.setSize(r.width,r.height)}},rt=[new Float32Array(3),new Float32Array(3)],B=[new Float32Array(3),new Float32Array(3),new Float32Array(3),new Float32Array(3)],ie=[[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([1,0,0]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([1,0,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([1,1,0]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,1,0]),new Float32Array([0,1,1]),new Float32Array([1,1,1])],[new Float32Array([0,0,0]),new Float32Array([0,0,1]),new Float32Array([0,1,1]),new Float32Array([1,1,1])]];function xe(e,t,r,a){const s=r[0]-t[0],o=r[1]-t[1],n=r[2]-t[2],l=e[0]-t[0],u=e[1]-t[1],c=e[2]-t[2],f=o*c-n*u,h=n*l-s*c,d=s*u-o*l,p=Math.sqrt(f*f+h*h+d*d),m=p*.5,g=f/p,T=h/p,w=d/p,D=-(e[0]*g+e[1]*T+e[2]*w),x=a[0]*g+a[1]*T+a[2]*w;return Math.abs(x+D)*m/3}function he(e,t,r,a,s,o){const n=(r+a*t+s*t*t)*4;o[0]=e[n+0],o[1]=e[n+1],o[2]=e[n+2]}function rs(e,t,r,a,s,o){const n=r*(t-1),l=a*(t-1),u=s*(t-1),c=Math.floor(n),f=Math.floor(l),h=Math.floor(u),d=Math.ceil(n),p=Math.ceil(l),m=Math.ceil(u),g=n-c,T=l-f,w=u-h;if(c===n&&f===l&&h===u)he(e,t,n,l,u,o);else{let D;g>=T&&T>=w?D=ie[0]:g>=w&&w>=T?D=ie[1]:w>=g&&g>=T?D=ie[2]:T>=g&&g>=w?D=ie[3]:T>=w&&w>=g?D=ie[4]:w>=T&&T>=g&&(D=ie[5]);const[x,b,G,k]=D,Q=rt[0];Q[0]=g,Q[1]=T,Q[2]=w;const M=rt[1],ee=d-c,te=p-f,V=m-h;M[0]=ee*x[0]+c,M[1]=te*x[1]+f,M[2]=V*x[2]+h,he(e,t,M[0],M[1],M[2],B[0]),M[0]=ee*b[0]+c,M[1]=te*b[1]+f,M[2]=V*b[2]+h,he(e,t,M[0],M[1],M[2],B[1]),M[0]=ee*G[0]+c,M[1]=te*G[1]+f,M[2]=V*G[2]+h,he(e,t,M[0],M[1],M[2],B[2]),M[0]=ee*k[0]+c,M[1]=te*k[1]+f,M[2]=V*k[2]+h,he(e,t,M[0],M[1],M[2],B[3]);const Z=xe(b,G,k,Q)*6,R=xe(x,G,k,Q)*6,me=xe(x,b,k,Q)*6,ye=xe(x,b,G,Q)*6;B[0][0]*=Z,B[0][1]*=Z,B[0][2]*=Z,B[1][0]*=R,B[1][1]*=R,B[1][2]*=R,B[2][0]*=me,B[2][1]*=me,B[2][2]*=me,B[3][0]*=ye,B[3][1]*=ye,B[3][2]*=ye,o[0]=B[0][0]+B[1][0]+B[2][0]+B[3][0],o[1]=B[0][1]+B[1][1]+B[2][1]+B[3][1],o[2]=B[0][2]+B[1][2]+B[2][2]+B[3][2]}}var as=class{static expand(e,t){const r=Math.cbrt(e.length/4),a=new Float32Array(3),s=new e.constructor(t**3*4),o=e instanceof Uint8Array?255:1,n=t**2,l=1/(t-1);for(let u=0;u<t;++u)for(let c=0;c<t;++c)for(let f=0;f<t;++f){const h=f*l,d=c*l,p=u*l,m=Math.round(f+c*t+u*n)*4;rs(e,r,h,d,p,a),s[m+0]=a[0],s[m+1]=a[1],s[m+2]=a[2],s[m+3]=o}return s}},ce=[new Float32Array(2),new Float32Array(2)],re=16,Re=20,ae=30,ss=32,Ie=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),at=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],ns=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],zt=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function De(e,t,r){return e+(t-e)*r}function os(e){return Math.min(Math.max(e,0),1)}function st(e){const t=ce[0],r=ce[1],a=Math.sqrt(t[0]*2)*.5,s=Math.sqrt(t[1]*2)*.5,o=Math.sqrt(r[0]*2)*.5,n=Math.sqrt(r[1]*2)*.5,l=os(e/ss);t[0]=De(a,t[0],l),t[1]=De(s,t[1],l),r[0]=De(o,r[0],l),r[1]=De(n,r[1],l)}function I(e,t,r,a,s,o){const n=r-e,l=a-t,u=s,c=s+1,f=t+l*(u-e)/n,h=t+l*(c-e)/n;if(u>=e&&u<r||c>e&&c<=r)if(Math.sign(f)===Math.sign(h)||Math.abs(f)<1e-4||Math.abs(h)<1e-4){const d=(f+h)/2;d<0?(o[0]=Math.abs(d),o[1]=0):(o[0]=0,o[1]=Math.abs(d))}else{const d=-t*n/l+e,p=Math.trunc(d),m=d>e?f*(d-p)/2:0,g=d<r?h*(1-(d-p))/2:0;(Math.abs(m)>Math.abs(g)?m:-g)<0?(o[0]=Math.abs(m),o[1]=Math.abs(g)):(o[0]=Math.abs(g),o[1]=Math.abs(m))}else o[0]=0,o[1]=0;return o}function ls(e,t,r,a,s){const o=ce[0],n=ce[1],l=.5+a,u=.5+a-1,c=t+r+1;switch(e){case 0:{s[0]=0,s[1]=0;break}case 1:{t<=r?I(0,u,c/2,0,t,s):(s[0]=0,s[1]=0);break}case 2:{t>=r?I(c/2,0,c,u,t,s):(s[0]=0,s[1]=0);break}case 3:{I(0,u,c/2,0,t,o),I(c/2,0,c,u,t,n),st(c),s[0]=o[0]+n[0],s[1]=o[1]+n[1];break}case 4:{t<=r?I(0,l,c/2,0,t,s):(s[0]=0,s[1]=0);break}case 5:{s[0]=0,s[1]=0;break}case 6:{Math.abs(a)>0?(I(0,l,c,u,t,o),I(0,l,c/2,0,t,n),I(c/2,0,c,u,t,s),n[0]=n[0]+s[0],n[1]=n[1]+s[1],s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2):I(0,l,c,u,t,s);break}case 7:{I(0,l,c,u,t,s);break}case 8:{t>=r?I(c/2,0,c,l,t,s):(s[0]=0,s[1]=0);break}case 9:{Math.abs(a)>0?(I(0,u,c,l,t,o),I(0,u,c/2,0,t,n),I(c/2,0,c,l,t,s),n[0]=n[0]+s[0],n[1]=n[1]+s[1],s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2):I(0,u,c,l,t,s);break}case 10:{s[0]=0,s[1]=0;break}case 11:{I(0,u,c,l,t,s);break}case 12:{I(0,l,c/2,0,t,o),I(c/2,0,c,l,t,n),st(c),s[0]=o[0]+n[0],s[1]=o[1]+n[1];break}case 13:{I(0,u,c,l,t,s);break}case 14:{I(0,l,c,u,t,s);break}case 15:{s[0]=0,s[1]=0;break}}return s}function us(e,t,r,a,s,o){let n=e===r&&t===a;if(!n){const l=(e+r)/2,u=(t+a)/2,c=a-t,f=e-r;n=c*(s-l)+f*(o-u)>0}return n}function nt(e,t,r,a,s,o){let n=0;for(let l=0;l<ae;++l)for(let u=0;u<ae;++u){const c=u/(ae-1),f=l/(ae-1);us(e,t,r,a,s+c,o+f)&&++n}return n/(ae*ae)}function y(e,t,r,a,s,o,n,l){const u=zt[e],c=u[0],f=u[1];return c>0&&(t+=n[0],r+=n[1]),f>0&&(a+=n[0],s+=n[1]),l[0]=1-nt(t,r,a,s,1+o,0+o),l[1]=nt(t,r,a,s,1+o,1+o),l}function cs(e,t,r,a,s){const o=ce[0],n=ce[1],l=t+r+1;switch(e){case 0:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 1:{y(e,1,0,0+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 2:{y(e,0,0,1+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 3:{y(e,1,0,1+l,0+l,t,a,s);break}case 4:{y(e,1,1,0+l,0+l,t,a,o),y(e,1,1,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 5:{y(e,1,1,0+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 6:{y(e,1,1,1+l,0+l,t,a,s);break}case 7:{y(e,1,1,1+l,0+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 8:{y(e,0,0,1+l,1+l,t,a,o),y(e,1,0,1+l,1+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 9:{y(e,1,0,1+l,1+l,t,a,s),y(e,1,0,1+l,1+l,t,a,s);break}case 10:{y(e,0,0,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 11:{y(e,1,0,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 12:{y(e,1,1,1+l,1+l,t,a,s);break}case 13:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,1+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 14:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,1,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}case 15:{y(e,1,1,1+l,1+l,t,a,o),y(e,1,0,1+l,0+l,t,a,n),s[0]=(o[0]+n[0])/2,s[1]=(o[1]+n[1])/2;break}}return s}function ot(e,t,r){const a=new Float32Array(2);for(let s=0,o=e.length;s<o;++s){const n=e[s],l=n.data,u=n.width;for(let c=0;c<u;++c)for(let f=0;f<u;++f){r?ls(s,f,c,t,a):cs(s,f,c,t,a);const h=(c*u+f)*2;l[h]=a[0]*255,l[h+1]=a[1]*255}}}function lt(e,t,r,a,s,o,n){const l=n.data,u=n.width;for(let c=0,f=r.length;c<f;++c){const h=a[c],d=r[c],p=d.data,m=d.width;for(let g=0;g<s;++g)for(let T=0;T<s;++T){const w=h[0]*s+e+T,x=((h[1]*s+t+g)*u+w)*4,b=o?(g*g*m+T*T)*2:(g*m+T)*2;l[x]=p[b],l[x+1]=p[b+1],l[x+2]=0,l[x+3]=255}}}var fs=class{static generate(){const e=10*re,t=Ie.length*5*re,r=new Uint8ClampedArray(e*t*4),a=new K(e,t,r),s=Math.pow(re-1,2)+1,o=Re,n=[],l=[];for(let u=3,c=r.length;u<c;u+=4)r[u]=255;for(let u=0;u<16;++u)n.push(new K(s,s,new Uint8ClampedArray(s*s*2),2)),l.push(new K(o,o,new Uint8ClampedArray(o*o*2),2));for(let u=0,c=Ie.length;u<c;++u)ot(n,Ie[u],!0),lt(0,5*re*u,n,ns,re,!0,a);for(let u=0,c=at.length;u<c;++u)ot(l,at[u],!1),lt(5*re,4*Re*u,l,zt,Re,!1,a);return a}},hs=`"use strict";(()=>{function q(t,a,s){let e=document.createElement("canvas"),n=e.getContext("2d");if(e.width=t,e.height=a,s instanceof Image)n.drawImage(s,0,0);else{let r=n.createImageData(t,a);r.data.set(s),n.putImageData(r,0,0)}return e}var F=class t{constructor(a=0,s=0,e=null){this.width=a,this.height=s,this.data=e}toCanvas(){return typeof document=="undefined"?null:q(this.width,this.height,this.data)}static from(a){let{width:s,height:e}=a,n;if(a instanceof Image){let r=q(s,e,a);r!==null&&(n=r.getContext("2d").getImageData(0,0,s,e).data)}else n=a.data;return new t(s,e,n)}};var M=[new Float32Array(2),new Float32Array(2)],D=16,W=20,I=30,j=32,v=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),N=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],z=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],p=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function C(t,a,s){return t+(a-t)*s}function B(t){return Math.min(Math.max(t,0),1)}function _(t){let a=M[0],s=M[1],e=Math.sqrt(a[0]*2)*.5,n=Math.sqrt(a[1]*2)*.5,r=Math.sqrt(s[0]*2)*.5,o=Math.sqrt(s[1]*2)*.5,c=B(t/j);a[0]=C(e,a[0],c),a[1]=C(n,a[1],c),s[0]=C(r,s[0],c),s[1]=C(o,s[1],c)}function d(t,a,s,e,n,r){let o=s-t,c=e-a,h=n,i=n+1,w=a+c*(h-t)/o,b=a+c*(i-t)/o;if(h>=t&&h<s||i>t&&i<=s)if(Math.sign(w)===Math.sign(b)||Math.abs(w)<1e-4||Math.abs(b)<1e-4){let g=(w+b)/2;g<0?(r[0]=Math.abs(g),r[1]=0):(r[0]=0,r[1]=Math.abs(g))}else{let g=-a*o/c+t,k=Math.trunc(g),m=g>t?w*(g-k)/2:0,U=g<s?b*(1-(g-k))/2:0;(Math.abs(m)>Math.abs(U)?m:-U)<0?(r[0]=Math.abs(m),r[1]=Math.abs(U)):(r[0]=Math.abs(U),r[1]=Math.abs(m))}else r[0]=0,r[1]=0;return r}function J(t,a,s,e,n){let r=M[0],o=M[1],c=.5+e,h=.5+e-1,i=a+s+1;switch(t){case 0:{n[0]=0,n[1]=0;break}case 1:{a<=s?d(0,h,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 2:{a>=s?d(i/2,0,i,h,a,n):(n[0]=0,n[1]=0);break}case 3:{d(0,h,i/2,0,a,r),d(i/2,0,i,h,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 4:{a<=s?d(0,c,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 5:{n[0]=0,n[1]=0;break}case 6:{Math.abs(e)>0?(d(0,c,i,h,a,r),d(0,c,i/2,0,a,o),d(i/2,0,i,h,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,c,i,h,a,n);break}case 7:{d(0,c,i,h,a,n);break}case 8:{a>=s?d(i/2,0,i,c,a,n):(n[0]=0,n[1]=0);break}case 9:{Math.abs(e)>0?(d(0,h,i,c,a,r),d(0,h,i/2,0,a,o),d(i/2,0,i,c,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,h,i,c,a,n);break}case 10:{n[0]=0,n[1]=0;break}case 11:{d(0,h,i,c,a,n);break}case 12:{d(0,c,i/2,0,a,r),d(i/2,0,i,c,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 13:{d(0,h,i,c,a,n);break}case 14:{d(0,c,i,h,a,n);break}case 15:{n[0]=0,n[1]=0;break}}return n}function K(t,a,s,e,n,r){let o=t===s&&a===e;if(!o){let c=(t+s)/2,h=(a+e)/2,i=e-a,w=t-s;o=i*(n-c)+w*(r-h)>0}return o}function G(t,a,s,e,n,r){let o=0;for(let c=0;c<I;++c)for(let h=0;h<I;++h){let i=h/(I-1),w=c/(I-1);K(t,a,s,e,n+i,r+w)&&++o}return o/(I*I)}function A(t,a,s,e,n,r,o,c){let h=p[t],i=h[0],w=h[1];return i>0&&(a+=o[0],s+=o[1]),w>0&&(e+=o[0],n+=o[1]),c[0]=1-G(a,s,e,n,1+r,0+r),c[1]=G(a,s,e,n,1+r,1+r),c}function Q(t,a,s,e,n){let r=M[0],o=M[1],c=a+s+1;switch(t){case 0:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 1:{A(t,1,0,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 2:{A(t,0,0,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 3:{A(t,1,0,1+c,0+c,a,e,n);break}case 4:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 5:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 6:{A(t,1,1,1+c,0+c,a,e,n);break}case 7:{A(t,1,1,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 8:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 9:{A(t,1,0,1+c,1+c,a,e,n),A(t,1,0,1+c,1+c,a,e,n);break}case 10:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 11:{A(t,1,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 12:{A(t,1,1,1+c,1+c,a,e,n);break}case 13:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 14:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 15:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}}return n}function R(t,a,s){let e=new Float32Array(2);for(let n=0,r=t.length;n<r;++n){let o=t[n],c=o.data,h=o.width;for(let i=0;i<h;++i)for(let w=0;w<h;++w){s?J(n,w,i,a,e):Q(n,w,i,a,e);let b=(i*h+w)*2;c[b]=e[0]*255,c[b+1]=e[1]*255}}}function T(t,a,s,e,n,r,o){let c=o.data,h=o.width;for(let i=0,w=s.length;i<w;++i){let b=e[i],g=s[i],k=g.data,m=g.width;for(let U=0;U<n;++U)for(let x=0;x<n;++x){let Z=b[0]*n+t+x,O=((b[1]*n+a+U)*h+Z)*4,L=r?(U*U*m+x*x)*2:(U*m+x)*2;c[O]=k[L],c[O+1]=k[L+1],c[O+2]=0,c[O+3]=255}}}var S=class{static generate(){let a=10*D,s=v.length*5*D,e=new Uint8ClampedArray(a*s*4),n=new F(a,s,e),r=Math.pow(D-1,2)+1,o=W,c=[],h=[];for(let i=3,w=e.length;i<w;i+=4)e[i]=255;for(let i=0;i<16;++i)c.push(new F(r,r,new Uint8ClampedArray(r*r*2),2)),h.push(new F(o,o,new Uint8ClampedArray(o*o*2),2));for(let i=0,w=v.length;i<w;++i)R(c,v[i],!0),T(0,5*D*i,c,z,D,!0,n);for(let i=0,w=N.length;i<w;++i)R(h,N[i],!1),T(5*D,4*W*i,h,p,W,!1,n);return n}};var P=new Map([[y(0,0,0,0),new Float32Array([0,0,0,0])],[y(0,0,0,1),new Float32Array([0,0,0,1])],[y(0,0,1,0),new Float32Array([0,0,1,0])],[y(0,0,1,1),new Float32Array([0,0,1,1])],[y(0,1,0,0),new Float32Array([0,1,0,0])],[y(0,1,0,1),new Float32Array([0,1,0,1])],[y(0,1,1,0),new Float32Array([0,1,1,0])],[y(0,1,1,1),new Float32Array([0,1,1,1])],[y(1,0,0,0),new Float32Array([1,0,0,0])],[y(1,0,0,1),new Float32Array([1,0,0,1])],[y(1,0,1,0),new Float32Array([1,0,1,0])],[y(1,0,1,1),new Float32Array([1,0,1,1])],[y(1,1,0,0),new Float32Array([1,1,0,0])],[y(1,1,0,1),new Float32Array([1,1,0,1])],[y(1,1,1,0),new Float32Array([1,1,1,0])],[y(1,1,1,1),new Float32Array([1,1,1,1])]]);function H(t,a,s){return t+(a-t)*s}function y(t,a,s,e){let n=H(t,a,.75),r=H(s,e,1-.25);return H(n,r,1-.125)}function V(t,a){let s=0;return a[3]===1&&(s+=1),s===1&&a[2]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s}function $(t,a){let s=0;return a[3]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s===1&&a[2]===1&&t[0]!==1&&t[2]!==1&&(s+=1),s}var E=class{static generate(){let o=new Uint8ClampedArray(2178),c=new Uint8ClampedArray(1024*4);for(let h=0;h<33;++h)for(let i=0;i<66;++i){let w=.03125*i,b=.03125*h;if(P.has(w)&&P.has(b)){let g=P.get(w),k=P.get(b),m=h*66+i;o[m]=127*V(g,k),o[m+33]=127*$(g,k)}}for(let h=0,i=17;i<33;++i)for(let w=0;w<64;++w,h+=4)c[h]=o[i*66+w],c[h+3]=255;return new F(64,16,c)}};self.addEventListener("message",t=>{let a=S.generate(),s=E.generate();postMessage({areaImageData:a,searchImageData:s},[a.data.buffer,s.data.buffer]),close()});})();
|
|
876
876
|
`;function ds(e=!0){const t=URL.createObjectURL(new Blob([hs],{type:"text/javascript"})),r=new Worker(t);return URL.revokeObjectURL(t),new Promise((a,s)=>{r.addEventListener("error",o=>s(o.error)),r.addEventListener("message",o=>{const n=K.from(o.data.searchImageData),l=K.from(o.data.areaImageData),u=[n.toCanvas().toDataURL("image/png",1),l.toCanvas().toDataURL("image/png",1)];e&&(localStorage.setItem("smaa-search",u[0]),localStorage.setItem("smaa-area",u[1])),a(u)}),r.postMessage(null)})}var ps=class{constructor(){this.disableCache=!1}setCacheEnabled(e){this.disableCache=!e}generate(){const e=!this.disableCache&&window.localStorage!==void 0,t=e?[localStorage.getItem("smaa-search"),localStorage.getItem("smaa-area")]:[null,null];return(t[0]!==null&&t[1]!==null?Promise.resolve(t):ds(e)).then(a=>new Promise((s,o)=>{const n=new Image,l=new Image,u=new i.LoadingManager;u.onLoad=()=>s([n,l]),u.onError=o,n.addEventListener("error",c=>u.itemError("smaa-search")),l.addEventListener("error",c=>u.itemError("smaa-area")),n.addEventListener("load",()=>u.itemEnd("smaa-search")),l.addEventListener("load",()=>u.itemEnd("smaa-area")),u.itemStart("smaa-search"),u.itemStart("smaa-area"),n.src=a[0],l.src=a[1]}))}},Te=new Map([[F(0,0,0,0),new Float32Array([0,0,0,0])],[F(0,0,0,1),new Float32Array([0,0,0,1])],[F(0,0,1,0),new Float32Array([0,0,1,0])],[F(0,0,1,1),new Float32Array([0,0,1,1])],[F(0,1,0,0),new Float32Array([0,1,0,0])],[F(0,1,0,1),new Float32Array([0,1,0,1])],[F(0,1,1,0),new Float32Array([0,1,1,0])],[F(0,1,1,1),new Float32Array([0,1,1,1])],[F(1,0,0,0),new Float32Array([1,0,0,0])],[F(1,0,0,1),new Float32Array([1,0,0,1])],[F(1,0,1,0),new Float32Array([1,0,1,0])],[F(1,0,1,1),new Float32Array([1,0,1,1])],[F(1,1,0,0),new Float32Array([1,1,0,0])],[F(1,1,0,1),new Float32Array([1,1,0,1])],[F(1,1,1,0),new Float32Array([1,1,1,0])],[F(1,1,1,1),new Float32Array([1,1,1,1])]]);function be(e,t,r){return e+(t-e)*r}function F(e,t,r,a){const s=be(e,t,.75),o=be(r,a,1-.25);return be(s,o,1-.125)}function vs(e,t){let r=0;return t[3]===1&&(r+=1),r===1&&t[2]===1&&e[1]!==1&&e[3]!==1&&(r+=1),r}function gs(e,t){let r=0;return t[3]===1&&e[1]!==1&&e[3]!==1&&(r+=1),r===1&&t[2]===1&&e[0]!==1&&e[2]!==1&&(r+=1),r}var ms=class{static generate(){const o=new Uint8ClampedArray(2178),n=new Uint8ClampedArray(1024*4);for(let l=0;l<33;++l)for(let u=0;u<66;++u){const c=.03125*u,f=.03125*l;if(Te.has(c)&&Te.has(f)){const h=Te.get(c),d=Te.get(f),p=l*66+u;o[p]=127*vs(h,d),o[p+33]=127*gs(h,d)}}for(let l=0,u=17;u<33;++u)for(let c=0;c<64;++c,l+=4)n[l]=o[u*66+c],n[l+3]=255;return new K(64,16,n)}};const As=Object.freeze(Object.defineProperty({__proto__:null,ASCIIEffect:Qi,ASCIITexture:vt,AdaptiveLuminanceMaterial:Ft,AdaptiveLuminancePass:Lt,BlendFunction:v,BlendMode:pt,BloomEffect:Dt,BlurPass:_,BokehEffect:$i,BokehMaterial:de,BoxBlurMaterial:Ot,BoxBlurPass:Ka,BrightnessContrastEffect:tr,ChromaticAberrationEffect:lr,CircleOfConfusionMaterial:Tt,ClearMaskPass:ct,ClearPass:$,ColorAverageEffect:rr,ColorChannel:j,ColorDepthEffect:sr,ColorEdgesMaterial:Ne,ConvolutionMaterial:Ee,CopyMaterial:ve,CopyPass:Se,DepthComparisonMaterial:Bt,DepthCopyMaterial:Nt,DepthCopyMode:le,DepthCopyPass:ze,DepthDownsamplingMaterial:Pt,DepthDownsamplingPass:Rt,DepthEffect:cr,DepthMaskMaterial:We,DepthOfFieldEffect:vr,DepthPass:Ke,DepthPickingPass:qa,DepthSavePass:ze,DepthTestStrategy:ue,Disposable:$t,DotScreenEffect:mr,DownsamplingMaterial:mt,EdgeDetectionMaterial:Ne,EdgeDetectionMode:Ye,Effect:C,EffectAttribute:P,EffectComposer:ri,EffectMaterial:Ht,EffectPass:$a,EffectShaderData:ht,EffectShaderSection:E,FXAAEffect:Dr,GammaCorrectionEffect:wr,GaussKernel:dt,GaussianBlurMaterial:Gt,GaussianBlurPass:es,GlitchEffect:Cr,GlitchMode:se,GodRaysEffect:Ur,GodRaysMaterial:St,GridEffect:Rr,HueSaturationEffect:br,ImmutableTimer:ai,Initializable:si,KawaseBlurMaterial:Ee,KawaseBlurPass:_,KernelSize:z,LUT1DEffect:Nr,LUT3DEffect:$e,LUT3dlLoader:La,LUTCubeLoader:Oa,LUTEffect:$e,LUTOperation:Et,LambdaPass:ts,LensDistortionEffect:Lr,LookupTexture:pe,LookupTexture3D:pe,LuminanceMaterial:gt,LuminancePass:Qe,MaskFunction:Ve,MaskMaterial:wt,MaskPass:ft,MipmapBlurPass:xt,NoiseEffect:Qr,NoiseTexture:Ce,NormalPass:is,OutlineEdgesMaterial:Oe,OutlineEffect:jr,OutlineMaterial:Oe,OverrideMaterialManager:Le,Pass:U,PixelationEffect:qr,PredicationMode:yt,RawImageData:K,RealisticBokehEffect:$r,RenderPass:ge,Resizable:ni,Resizer:A,Resolution:A,SMAAAreaImageData:fs,SMAAEffect:va,SMAAImageGenerator:ps,SMAAImageLoader:Na,SMAAPreset:ne,SMAASearchImageData:ms,SMAAWeightsMaterial:Mt,SSAOEffect:Ta,SSAOMaterial:Ut,SavePass:Se,ScanlineEffect:ta,Section:E,Selection:ke,SelectiveBloomEffect:na,SepiaEffect:la,ShaderPass:N,ShockWaveEffect:sa,TetrahedralUpscaler:as,TextureEffect:Ea,TiltShiftBlurMaterial:It,TiltShiftBlurPass:bt,TiltShiftEffect:Ua,Timer:ut,ToneMappingEffect:Ia,ToneMappingMode:O,UpsamplingMaterial:At,VignetteEffect:Fa,VignetteTechnique:oe,WebGLExtension:zr,version:_t},Symbol.toStringTag,{value:"Module"}));class xs extends i.BufferGeometry{constructor(){super();Xe(this,"boundingSphere",new i.Sphere);this.setAttribute("position",new i.BufferAttribute(new Float32Array([-1,-1,3,-1,-1,3]),2)),this.setAttribute("uv",new i.BufferAttribute(new Float32Array([0,0,2,0,0,2]),2))}computeBoundingSphere(){}}const Ds=new xs,Ts=new i.OrthographicCamera;class H{constructor(t){this._mesh=new i.Mesh(Ds,t),this._mesh.frustumCulled=!1}render(t){t.render(this._mesh,Ts)}get material(){return this._mesh.material}set material(t){this._mesh.material=t}dispose(){this._mesh.material.dispose(),this._mesh.geometry.dispose()}}const kt={uniforms:{sceneDiffuse:{value:null},sceneDepth:{value:null},sceneNormal:{value:null},projMat:{value:new i.Matrix4},viewMat:{value:new i.Matrix4},projViewMat:{value:new i.Matrix4},projectionMatrixInv:{value:new i.Matrix4},viewMatrixInv:{value:new i.Matrix4},cameraPos:{value:new i.Vector3},resolution:{value:new i.Vector2},biasAdjustment:{value:new i.Vector2},time:{value:0},samples:{value:[]},bluenoise:{value:null},distanceFalloff:{value:1},radius:{value:5},near:{value:.1},far:{value:1e3},ortho:{value:!1},screenSpaceRadius:{value:!1},frame:{value:0}},depthWrite:!1,depthTest:!1,vertexShader:`
|
|
877
877
|
varying vec2 vUv;
|
|
878
878
|
void main() {
|
|
@@ -4,12 +4,12 @@ var It = (e, t, i) => Qi(e, typeof t != "symbol" ? t + "" : t, i);
|
|
|
4
4
|
import { Uniform$1 as c, Vector4 as Be, Color as N, Vector2 as p, CanvasTexture as Vi, RepeatWrapping as se, ShaderMaterial as w, NoBlending as G, WebGLRenderTarget as T, NearestFilter as P, EventDispatcher as Tt, SRGBColorSpace as y, UnsignedByteType as Y, PerspectiveCamera as Ie, BasicDepthPacking as W, REVISION as Re, LinearFilter as R, RGBADepthPacking as ae, FloatType as J, LessDepth as Rt, MeshDepthMaterial as Wi, LinearSRGBColorSpace as je, NoColorSpace as tt, DepthTexture as ye, DepthStencilFormat as Zt, UnsignedInt248Type as jt, UnsignedIntType as Le, RGBAFormat as z, Scene as dt, Matrix4 as O, Vector3 as L, HalfFloatType as $, Data3DTexture as Xe, Loader as St, LoadingManager as Ne, FileLoader as Jt, ClampToEdgeWrapping as st, DataTexture as it, RedFormat as rt, MeshNormalMaterial as Yi, BackSide as ke, DoubleSide as Qe, FrontSide as Ki, Camera as Xi, Mesh as qt, Texture as Je, EqualDepth as vt, NotEqualDepth as _t, LinearMipmapLinearFilter as Zi, GreaterDepth as ji, GreaterEqualDepth as Ji, LessEqualDepth as qi, AlwaysDepth as _i, NeverDepth as $i, Material as $t, BufferGeometry as ei, BufferAttribute as qe, RGFormat as er, DepthFormat as bt, OrthographicCamera as tr, Sphere as ir } from "./three-DrqIzZTH.js";
|
|
5
5
|
import { Pass as rr } from "./three-examples-tvuhV8Ne.js";
|
|
6
6
|
/**
|
|
7
|
-
* postprocessing v6.37.
|
|
7
|
+
* postprocessing v6.37.7 build Mon Aug 04 2025
|
|
8
8
|
* https://github.com/pmndrs/postprocessing
|
|
9
9
|
* Copyright 2015-2025 Raoul van Rüschen
|
|
10
10
|
* @license Zlib
|
|
11
11
|
*/
|
|
12
|
-
var ar = "6.37.
|
|
12
|
+
var ar = "6.37.7", sr = class {
|
|
13
13
|
/**
|
|
14
14
|
* Frees internal resources.
|
|
15
15
|
*/
|
|
@@ -2422,16 +2422,16 @@ uniform vec2 range;
|
|
|
2422
2422
|
#elif defined(THRESHOLD)
|
|
2423
2423
|
uniform float threshold;uniform float smoothing;
|
|
2424
2424
|
#endif
|
|
2425
|
-
varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);
|
|
2425
|
+
varying vec2 vUv;void main(){vec4 texel=texture2D(inputBuffer,vUv);float l=luminance(texel.rgb);float mask=1.0;
|
|
2426
2426
|
#ifdef RANGE
|
|
2427
|
-
float low=step(range.x,l);float high=step(l,range.y);
|
|
2427
|
+
float low=step(range.x,l);float high=step(l,range.y);mask=low*high;
|
|
2428
2428
|
#elif defined(THRESHOLD)
|
|
2429
|
-
|
|
2429
|
+
mask=smoothstep(threshold,threshold+smoothing,l);
|
|
2430
2430
|
#endif
|
|
2431
2431
|
#ifdef COLOR
|
|
2432
|
-
gl_FragColor=
|
|
2432
|
+
gl_FragColor=texel*mask;
|
|
2433
2433
|
#else
|
|
2434
|
-
gl_FragColor=vec4(l);
|
|
2434
|
+
gl_FragColor=vec4(l*mask);
|
|
2435
2435
|
#endif
|
|
2436
2436
|
}`, li = class extends w {
|
|
2437
2437
|
/**
|
|
@@ -6115,7 +6115,7 @@ var ue = class mi {
|
|
|
6115
6115
|
*
|
|
6116
6116
|
* @param {Number} [width=0] - The width of the image.
|
|
6117
6117
|
* @param {Number} [height=0] - The height of the image.
|
|
6118
|
-
* @param {Uint8ClampedArray} [data=null] - The image data.
|
|
6118
|
+
* @param {Uint8ClampedArray<ArrayBuffer>} [data=null] - The image data.
|
|
6119
6119
|
*/
|
|
6120
6120
|
constructor(t = 0, i = 0, r = null) {
|
|
6121
6121
|
this.width = t, this.height = i, this.data = r;
|
|
@@ -12904,7 +12904,7 @@ var An = class {
|
|
|
12904
12904
|
);
|
|
12905
12905
|
return r;
|
|
12906
12906
|
}
|
|
12907
|
-
}, xn = `"use strict";(()=>{function q(t,a,s){let e=document.createElement("canvas"),n=e.getContext("2d");if(e.width=t,e.height=a,s instanceof Image)n.drawImage(s,0,0);else{let r=n.createImageData(t,a);r.data.set(s),n.putImageData(r,0,0)}return e}var F=class t{constructor(a=0,s=0,e=null){this.width=a,this.height=s,this.data=e}toCanvas(){return typeof document=="undefined"?null:q(this.width,this.height,this.data)}static from(a){let{width:s,height:e}=a,n;if(a instanceof Image){let r=q(s,e,a);r!==null&&(n=r.getContext("2d").getImageData(0,0,s,e).data)}else n=a.data;return new t(s,e,n)}};var M=[new Float32Array(2),new Float32Array(2)],D=16,W=20,I=30,j=32,v=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),N=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],z=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],p=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function C(t,a,s){return t+(a-t)*s}function B(t){return Math.min(Math.max(t,0),1)}function _(t){let a=M[0],s=M[1],e=Math.sqrt(a[0]*2)*.5,n=Math.sqrt(a[1]*2)*.5,r=Math.sqrt(s[0]*2)*.5,o=Math.sqrt(s[1]*2)*.5,c=B(t/j);a[0]=C(e,a[0],c),a[1]=C(n,a[1],c),s[0]=C(r,s[0],c),s[1]=C(o,s[1],c)}function d(t,a,s,e,n,r){let o=s-t,c=e-a,h=n,i=n+1,w=a+c*(h-t)/o,b=a+c*(i-t)/o;if(h>=t&&h<s||i>t&&i<=s)if(Math.sign(w)===Math.sign(b)||Math.abs(w)<1e-4||Math.abs(b)<1e-4){let g=(w+b)/2;g<0?(r[0]=Math.abs(g),r[1]=0):(r[0]=0,r[1]=Math.abs(g))}else{let g=-a*o/c+t,k=Math.trunc(g),m=g>t?w*(g-k)/2:0,U=g<s?b*(1-(g-k))/2:0;(Math.abs(m)>Math.abs(U)?m:-U)<0?(r[0]=Math.abs(m),r[1]=Math.abs(U)):(r[0]=Math.abs(U),r[1]=Math.abs(m))}else r[0]=0,r[1]=0;return r}function J(t,a,s,e,n){let r=M[0],o=M[1],c=.5+e,h=.5+e-1,i=a+s+1;switch(t){case 0:{n[0]=0,n[1]=0;break}case 1:{a<=s?d(0,h,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 2:{a>=s?d(i/2,0,i,h,a,n):(n[0]=0,n[1]=0);break}case 3:{d(0,h,i/2,0,a,r),d(i/2,0,i,h,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 4:{a<=s?d(0,c,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 5:{n[0]=0,n[1]=0;break}case 6:{Math.abs(e)>0?(d(0,c,i,h,a,r),d(0,c,i/2,0,a,o),d(i/2,0,i,h,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,c,i,h,a,n);break}case 7:{d(0,c,i,h,a,n);break}case 8:{a>=s?d(i/2,0,i,c,a,n):(n[0]=0,n[1]=0);break}case 9:{Math.abs(e)>0?(d(0,h,i,c,a,r),d(0,h,i/2,0,a,o),d(i/2,0,i,c,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,h,i,c,a,n);break}case 10:{n[0]=0,n[1]=0;break}case 11:{d(0,h,i,c,a,n);break}case 12:{d(0,c,i/2,0,a,r),d(i/2,0,i,c,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 13:{d(0,h,i,c,a,n);break}case 14:{d(0,c,i,h,a,n);break}case 15:{n[0]=0,n[1]=0;break}}return n}function K(t,a,s,e,n,r){let o=t===s&&a===e;if(!o){let c=(t+s)/2,h=(a+e)/2,i=e-a,w=t-s;o=i*(n-c)+w*(r-h)>0}return o}function G(t,a,s,e,n,r){let o=0;for(let c=0;c<I;++c)for(let h=0;h<I;++h){let i=h/(I-1),w=c/(I-1);K(t,a,s,e,n+i,r+w)&&++o}return o/(I*I)}function A(t,a,s,e,n,r,o,c){let h=p[t],i=h[0],w=h[1];return i>0&&(a+=o[0],s+=o[1]),w>0&&(e+=o[0],n+=o[1]),c[0]=1-G(a,s,e,n,1+r,0+r),c[1]=G(a,s,e,n,1+r,1+r),c}function Q(t,a,s,e,n){let r=M[0],o=M[1],c=a+s+1;switch(t){case 0:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 1:{A(t,1,0,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 2:{A(t,0,0,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 3:{A(t,1,0,1+c,0+c,a,e,n);break}case 4:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 5:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 6:{A(t,1,1,1+c,0+c,a,e,n);break}case 7:{A(t,1,1,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 8:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 9:{A(t,1,0,1+c,1+c,a,e,n),A(t,1,0,1+c,1+c,a,e,n);break}case 10:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 11:{A(t,1,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 12:{A(t,1,1,1+c,1+c,a,e,n);break}case 13:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 14:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 15:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}}return n}function R(t,a,s){let e=new Float32Array(2);for(let n=0,r=t.length;n<r;++n){let o=t[n],c=o.data,h=o.width;for(let i=0;i<h;++i)for(let w=0;w<h;++w){s?J(n,w,i,a,e):Q(n,w,i,a,e);let b=(i*h+w)*2;c[b]=e[0]*255,c[b+1]=e[1]*255}}}function T(t,a,s,e,n,r,o){let c=o.data,h=o.width;for(let i=0,w=s.length;i<w;++i){let b=e[i],g=s[i],k=g.data,m=g.width;for(let U=0;U<n;++U)for(let x=0;x<n;++x){let Z=b[0]*n+t+x,O=((b[1]*n+a+U)*h+Z)*4,L=r?(U*U*m+x*x)*2:(U*m+x)*2;c[O]=k[L],c[O+1]=k[L+1],c[O+2]=0,c[O+3]=255}}}var S=class{static generate(){let a=10*D,s=v.length*5*D,e=new Uint8ClampedArray(a*s*4),n=new F(a,s,e),r=Math.pow(D-1,2)+1,o=W,c=[],h=[];for(let i=3,w=e.length;i<w;i+=4)e[i]=255;for(let i=0;i<16;++i)c.push(new F(r,r,new Uint8ClampedArray(r*r*2),2)),h.push(new F(o,o,new Uint8ClampedArray(o*o*2),2));for(let i=0,w=v.length;i<w;++i)R(c,v[i],!0),T(0,5*D*i,c,z,D,!0,n);for(let i=0,w=N.length;i<w;++i)R(h,N[i],!1),T(5*D,4*W*i,h,p,W,!1,n);return n}};var P=new Map([[y(0,0,0,0),new Float32Array([0,0,0,0])],[y(0,0,0,1),new Float32Array([0,0,0,1])],[y(0,0,1,0),new Float32Array([0,0,1,0])],[y(0,0,1,1),new Float32Array([0,0,1,1])],[y(0,1,0,0),new Float32Array([0,1,0,0])],[y(0,1,0,1),new Float32Array([0,1,0,1])],[y(0,1,1,0),new Float32Array([0,1,1,0])],[y(0,1,1,1),new Float32Array([0,1,1,1])],[y(1,0,0,0),new Float32Array([1,0,0,0])],[y(1,0,0,1),new Float32Array([1,0,0,1])],[y(1,0,1,0),new Float32Array([1,0,1,0])],[y(1,0,1,1),new Float32Array([1,0,1,1])],[y(1,1,0,0),new Float32Array([1,1,0,0])],[y(1,1,0,1),new Float32Array([1,1,0,1])],[y(1,1,1,0),new Float32Array([1,1,1,0])],[y(1,1,1,1),new Float32Array([1,1,1,1])]]);function H(t,a,s){return t+(a-t)*s}function y(t,a,s,e){let n=H(t,a,.75),r=H(s,e,1-.25);return H(n,r,1-.125)}function V(t,a){let s=0;return a[3]===1&&(s+=1),s===1&&a[2]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s}function $(t,a){let s=0;return a[3]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s===1&&a[2]===1&&t[0]!==1&&t[2]!==1&&(s+=1),s}var E=class{static generate(){let o=new Uint8ClampedArray(2178),c=new Uint8ClampedArray(
|
|
12907
|
+
}, xn = `"use strict";(()=>{function q(t,a,s){let e=document.createElement("canvas"),n=e.getContext("2d");if(e.width=t,e.height=a,s instanceof Image)n.drawImage(s,0,0);else{let r=n.createImageData(t,a);r.data.set(s),n.putImageData(r,0,0)}return e}var F=class t{constructor(a=0,s=0,e=null){this.width=a,this.height=s,this.data=e}toCanvas(){return typeof document=="undefined"?null:q(this.width,this.height,this.data)}static from(a){let{width:s,height:e}=a,n;if(a instanceof Image){let r=q(s,e,a);r!==null&&(n=r.getContext("2d").getImageData(0,0,s,e).data)}else n=a.data;return new t(s,e,n)}};var M=[new Float32Array(2),new Float32Array(2)],D=16,W=20,I=30,j=32,v=new Float32Array([0,-.25,.25,-.125,.125,-.375,.375]),N=[new Float32Array([0,0]),new Float32Array([.25,-.25]),new Float32Array([-.25,.25]),new Float32Array([.125,-.125]),new Float32Array([-.125,.125])],z=[new Uint8Array([0,0]),new Uint8Array([3,0]),new Uint8Array([0,3]),new Uint8Array([3,3]),new Uint8Array([1,0]),new Uint8Array([4,0]),new Uint8Array([1,3]),new Uint8Array([4,3]),new Uint8Array([0,1]),new Uint8Array([3,1]),new Uint8Array([0,4]),new Uint8Array([3,4]),new Uint8Array([1,1]),new Uint8Array([4,1]),new Uint8Array([1,4]),new Uint8Array([4,4])],p=[new Uint8Array([0,0]),new Uint8Array([1,0]),new Uint8Array([0,2]),new Uint8Array([1,2]),new Uint8Array([2,0]),new Uint8Array([3,0]),new Uint8Array([2,2]),new Uint8Array([3,2]),new Uint8Array([0,1]),new Uint8Array([1,1]),new Uint8Array([0,3]),new Uint8Array([1,3]),new Uint8Array([2,1]),new Uint8Array([3,1]),new Uint8Array([2,3]),new Uint8Array([3,3])];function C(t,a,s){return t+(a-t)*s}function B(t){return Math.min(Math.max(t,0),1)}function _(t){let a=M[0],s=M[1],e=Math.sqrt(a[0]*2)*.5,n=Math.sqrt(a[1]*2)*.5,r=Math.sqrt(s[0]*2)*.5,o=Math.sqrt(s[1]*2)*.5,c=B(t/j);a[0]=C(e,a[0],c),a[1]=C(n,a[1],c),s[0]=C(r,s[0],c),s[1]=C(o,s[1],c)}function d(t,a,s,e,n,r){let o=s-t,c=e-a,h=n,i=n+1,w=a+c*(h-t)/o,b=a+c*(i-t)/o;if(h>=t&&h<s||i>t&&i<=s)if(Math.sign(w)===Math.sign(b)||Math.abs(w)<1e-4||Math.abs(b)<1e-4){let g=(w+b)/2;g<0?(r[0]=Math.abs(g),r[1]=0):(r[0]=0,r[1]=Math.abs(g))}else{let g=-a*o/c+t,k=Math.trunc(g),m=g>t?w*(g-k)/2:0,U=g<s?b*(1-(g-k))/2:0;(Math.abs(m)>Math.abs(U)?m:-U)<0?(r[0]=Math.abs(m),r[1]=Math.abs(U)):(r[0]=Math.abs(U),r[1]=Math.abs(m))}else r[0]=0,r[1]=0;return r}function J(t,a,s,e,n){let r=M[0],o=M[1],c=.5+e,h=.5+e-1,i=a+s+1;switch(t){case 0:{n[0]=0,n[1]=0;break}case 1:{a<=s?d(0,h,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 2:{a>=s?d(i/2,0,i,h,a,n):(n[0]=0,n[1]=0);break}case 3:{d(0,h,i/2,0,a,r),d(i/2,0,i,h,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 4:{a<=s?d(0,c,i/2,0,a,n):(n[0]=0,n[1]=0);break}case 5:{n[0]=0,n[1]=0;break}case 6:{Math.abs(e)>0?(d(0,c,i,h,a,r),d(0,c,i/2,0,a,o),d(i/2,0,i,h,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,c,i,h,a,n);break}case 7:{d(0,c,i,h,a,n);break}case 8:{a>=s?d(i/2,0,i,c,a,n):(n[0]=0,n[1]=0);break}case 9:{Math.abs(e)>0?(d(0,h,i,c,a,r),d(0,h,i/2,0,a,o),d(i/2,0,i,c,a,n),o[0]=o[0]+n[0],o[1]=o[1]+n[1],n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2):d(0,h,i,c,a,n);break}case 10:{n[0]=0,n[1]=0;break}case 11:{d(0,h,i,c,a,n);break}case 12:{d(0,c,i/2,0,a,r),d(i/2,0,i,c,a,o),_(i,M),n[0]=r[0]+o[0],n[1]=r[1]+o[1];break}case 13:{d(0,h,i,c,a,n);break}case 14:{d(0,c,i,h,a,n);break}case 15:{n[0]=0,n[1]=0;break}}return n}function K(t,a,s,e,n,r){let o=t===s&&a===e;if(!o){let c=(t+s)/2,h=(a+e)/2,i=e-a,w=t-s;o=i*(n-c)+w*(r-h)>0}return o}function G(t,a,s,e,n,r){let o=0;for(let c=0;c<I;++c)for(let h=0;h<I;++h){let i=h/(I-1),w=c/(I-1);K(t,a,s,e,n+i,r+w)&&++o}return o/(I*I)}function A(t,a,s,e,n,r,o,c){let h=p[t],i=h[0],w=h[1];return i>0&&(a+=o[0],s+=o[1]),w>0&&(e+=o[0],n+=o[1]),c[0]=1-G(a,s,e,n,1+r,0+r),c[1]=G(a,s,e,n,1+r,1+r),c}function Q(t,a,s,e,n){let r=M[0],o=M[1],c=a+s+1;switch(t){case 0:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 1:{A(t,1,0,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 2:{A(t,0,0,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 3:{A(t,1,0,1+c,0+c,a,e,n);break}case 4:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 5:{A(t,1,1,0+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 6:{A(t,1,1,1+c,0+c,a,e,n);break}case 7:{A(t,1,1,1+c,0+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 8:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 9:{A(t,1,0,1+c,1+c,a,e,n),A(t,1,0,1+c,1+c,a,e,n);break}case 10:{A(t,0,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 11:{A(t,1,0,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 12:{A(t,1,1,1+c,1+c,a,e,n);break}case 13:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,1+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 14:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,1,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}case 15:{A(t,1,1,1+c,1+c,a,e,r),A(t,1,0,1+c,0+c,a,e,o),n[0]=(r[0]+o[0])/2,n[1]=(r[1]+o[1])/2;break}}return n}function R(t,a,s){let e=new Float32Array(2);for(let n=0,r=t.length;n<r;++n){let o=t[n],c=o.data,h=o.width;for(let i=0;i<h;++i)for(let w=0;w<h;++w){s?J(n,w,i,a,e):Q(n,w,i,a,e);let b=(i*h+w)*2;c[b]=e[0]*255,c[b+1]=e[1]*255}}}function T(t,a,s,e,n,r,o){let c=o.data,h=o.width;for(let i=0,w=s.length;i<w;++i){let b=e[i],g=s[i],k=g.data,m=g.width;for(let U=0;U<n;++U)for(let x=0;x<n;++x){let Z=b[0]*n+t+x,O=((b[1]*n+a+U)*h+Z)*4,L=r?(U*U*m+x*x)*2:(U*m+x)*2;c[O]=k[L],c[O+1]=k[L+1],c[O+2]=0,c[O+3]=255}}}var S=class{static generate(){let a=10*D,s=v.length*5*D,e=new Uint8ClampedArray(a*s*4),n=new F(a,s,e),r=Math.pow(D-1,2)+1,o=W,c=[],h=[];for(let i=3,w=e.length;i<w;i+=4)e[i]=255;for(let i=0;i<16;++i)c.push(new F(r,r,new Uint8ClampedArray(r*r*2),2)),h.push(new F(o,o,new Uint8ClampedArray(o*o*2),2));for(let i=0,w=v.length;i<w;++i)R(c,v[i],!0),T(0,5*D*i,c,z,D,!0,n);for(let i=0,w=N.length;i<w;++i)R(h,N[i],!1),T(5*D,4*W*i,h,p,W,!1,n);return n}};var P=new Map([[y(0,0,0,0),new Float32Array([0,0,0,0])],[y(0,0,0,1),new Float32Array([0,0,0,1])],[y(0,0,1,0),new Float32Array([0,0,1,0])],[y(0,0,1,1),new Float32Array([0,0,1,1])],[y(0,1,0,0),new Float32Array([0,1,0,0])],[y(0,1,0,1),new Float32Array([0,1,0,1])],[y(0,1,1,0),new Float32Array([0,1,1,0])],[y(0,1,1,1),new Float32Array([0,1,1,1])],[y(1,0,0,0),new Float32Array([1,0,0,0])],[y(1,0,0,1),new Float32Array([1,0,0,1])],[y(1,0,1,0),new Float32Array([1,0,1,0])],[y(1,0,1,1),new Float32Array([1,0,1,1])],[y(1,1,0,0),new Float32Array([1,1,0,0])],[y(1,1,0,1),new Float32Array([1,1,0,1])],[y(1,1,1,0),new Float32Array([1,1,1,0])],[y(1,1,1,1),new Float32Array([1,1,1,1])]]);function H(t,a,s){return t+(a-t)*s}function y(t,a,s,e){let n=H(t,a,.75),r=H(s,e,1-.25);return H(n,r,1-.125)}function V(t,a){let s=0;return a[3]===1&&(s+=1),s===1&&a[2]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s}function $(t,a){let s=0;return a[3]===1&&t[1]!==1&&t[3]!==1&&(s+=1),s===1&&a[2]===1&&t[0]!==1&&t[2]!==1&&(s+=1),s}var E=class{static generate(){let o=new Uint8ClampedArray(2178),c=new Uint8ClampedArray(1024*4);for(let h=0;h<33;++h)for(let i=0;i<66;++i){let w=.03125*i,b=.03125*h;if(P.has(w)&&P.has(b)){let g=P.get(w),k=P.get(b),m=h*66+i;o[m]=127*V(g,k),o[m+33]=127*$(g,k)}}for(let h=0,i=17;i<33;++i)for(let w=0;w<64;++w,h+=4)c[h]=o[i*66+w],c[h+3]=255;return new F(64,16,c)}};self.addEventListener("message",t=>{let a=S.generate(),s=E.generate();postMessage({areaImageData:a,searchImageData:s},[a.data.buffer,s.data.buffer]),close()});})();
|
|
12908
12908
|
`;
|
|
12909
12909
|
function Dn(e = !0) {
|
|
12910
12910
|
const t = URL.createObjectURL(new Blob([xn], {
|
|
@@ -56,7 +56,7 @@ export class LODsManager {
|
|
|
56
56
|
_LODsManager.removePlugin(this);
|
|
57
57
|
_LODsManager.addPlugin(this);
|
|
58
58
|
_LODsManager.debugDrawLine = Gizmos.DrawLine;
|
|
59
|
-
this._lodsManager = _LODsManager.get(renderer);
|
|
59
|
+
this._lodsManager = _LODsManager.get(renderer, { engine: "needle-engine" });
|
|
60
60
|
this.applySettings();
|
|
61
61
|
this._lodsManager.enable();
|
|
62
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_lods.js","sourceRoot":"","sources":["../../src/engine/engine_lods.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,kBAAkB,EAA6B,MAAM,gCAAgC,CAAC;AAC5H,OAAO,EAAE,IAAI,EAA0C,MAAM,EAAiB,MAAM,OAAO,CAAC;AAG5F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAE3C,MAAM,QAAQ,GAAS,IAAI,IAAI,EAAE,CAAC;AAClC,MAAM,WAAW,GAAW,IAAI,MAAM,EAAE,CAAC;AAEzC;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACX,OAAO,CAAU;IAClB,YAAY,CAAgB;IAE5B,SAAS,GAAiG,EACjH,CAAA;IAED;;;OAGG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAI,mCAAmC;QACnC,OAAO,IAAI,CAAC,YAAY,EAAE,mCAAmC,IAAI,IAAI,CAAC,SAAS,CAAC,mCAAmC,IAAI,CAAC,CAAC;IAC7H,CAAC;IACD,IAAI,mCAAmC,CAAC,KAAa;QACjD,IAAI,CAAC,SAAS,CAAC,mCAAmC,GAAG,KAAK,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAI,qBAAqB;QACrB,OAAO,IAAI,CAAC,YAAY,EAAE,qBAAqB,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,IAAI,OAAO,CAAC,CAAC,gBAAgB;IACxH,CAAC;IACD,IAAI,qBAAqB,CAAC,KAAa;QACnC,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,KAAK,CAAC;QAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEO,aAAa;QACjB,
|
|
1
|
+
{"version":3,"file":"engine_lods.js","sourceRoot":"","sources":["../../src/engine/engine_lods.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,kBAAkB,EAA6B,MAAM,gCAAgC,CAAC;AAC5H,OAAO,EAAE,IAAI,EAA0C,MAAM,EAAiB,MAAM,OAAO,CAAC;AAG5F,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,MAAM,KAAK,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAE3C,MAAM,QAAQ,GAAS,IAAI,IAAI,EAAE,CAAC;AAClC,MAAM,WAAW,GAAW,IAAI,MAAM,EAAE,CAAC;AAEzC;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACX,OAAO,CAAU;IAClB,YAAY,CAAgB;IAE5B,SAAS,GAAiG,EACjH,CAAA;IAED;;;OAGG;IACH,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAI,mCAAmC;QACnC,OAAO,IAAI,CAAC,YAAY,EAAE,mCAAmC,IAAI,IAAI,CAAC,SAAS,CAAC,mCAAmC,IAAI,CAAC,CAAC;IAC7H,CAAC;IACD,IAAI,mCAAmC,CAAC,KAAa;QACjD,IAAI,CAAC,SAAS,CAAC,mCAAmC,GAAG,KAAK,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,IAAI,qBAAqB;QACrB,OAAO,IAAI,CAAC,YAAY,EAAE,qBAAqB,IAAI,IAAI,CAAC,SAAS,CAAC,qBAAqB,IAAI,OAAO,CAAC,CAAC,gBAAgB;IACxH,CAAC;IACD,IAAI,qBAAqB,CAAC,KAAa;QACnC,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,KAAK,CAAC;QAC7C,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,YAAY,OAAgB;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE;gBAC9B,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;aAChD;SACJ;IACL,CAAC;IAED,gBAAgB;IAChB,WAAW,CAAC,QAAuB;QAC/B,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC7B,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC7B,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QAC5E,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO;QACH,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC7B,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAGD,gBAAgB;IAChB,iBAAiB,CAAC,SAAwB,EAAE,MAAa,EAAE,MAAc,EAAE,IAAU,EAAE,KAAkB;QACrG,IAAI,KAAK;YAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAEO,aAAa,CAAC,MAAc,EAAE,IAAU,EAAE,OAAoB;QAElE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,OAAO;QAE/H,MAAM,KAAK,GAAG,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK;YAAE,OAAO;QAGnB,IAAI,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,oBAAoB,CAAC;QAEjH,IAAI,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC;YAC5C,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACzB,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,YAAY,GAAG,WAAW,CAAC,MAAM,CAAC;YACxC,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YACvE,6EAA6E;YAC7E,IAAI,OAAO,EAAE;gBACT,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;aAClE;iBACI;gBACD,oIAAoI;gBACpI,6GAA6G;gBAC7G,wFAAwF;gBACxF,2DAA2D;gBAC3D,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1D,MAAM,IAAI,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;gBACzE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrD,IAAI,OAAO,GAAG,EAAE,CAAC;gBACjB,IAAI,IAAI,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,EAAE;oBACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAClC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC1B,MAAM,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;wBAClC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;qBACjG;iBACJ;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEjD,yCAAyC;gBACzC,sEAAsE;gBACtE,gEAAgE;gBAEhE,gDAAgD;gBAChD,6FAA6F;gBAC7F,kDAAkD;gBAClD,6CAA6C;gBAC7C,oEAAoE;gBACpE,qGAAqG;gBACrG,uGAAuG;gBACvG,IAAI,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC;gBACtE,IAAI,KAAK,IAAI,SAAS,EAAE;oBACpB,IAAI;wBACA,IAAI,GAAG,aAAa,GAAG,OAAO;4BAC9B,8CAA8C;4BAC9C,IAAI,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO;4BAChE,IAAI,GAAG,CAAC,KAAK,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO;4BAC5D,kKAAkK;4BAClK,8CAA8C;4BAC9C,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS;4BAC1D,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM;4BACjJ,+EAA+E;4BAC/E,mBAAmB;4BACnB,iBAAiB;4BACjB,yBAAyB;4BACzB,EAAE,CAAC;iBACV;gBAED,gBAAgB;gBAChB,6BAA6B;gBAC7B,gBAAgB;gBAChB,IAAI;gBACJ,IAAI,KAAK,CAAC,kBAAkB,GAAG,EAAE,EAAE;oBAC/B,MAAM,GAAG,GAAG,MAA4B,CAAC;oBACzC,MAAM,UAAU,GAAG,GAAG,CAAC,YAAY,CAAC;oBACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,aAAa,CAAC;oBAEnC,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;oBACtC,+DAA+D;oBAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oBAC9D,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;oBAC1C,sDAAsD;oBACtD,6DAA6D;oBAC7D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;oBAC3E,qCAAqC;oBACrC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC5F,MAAM,gBAAgB,GAAI,MAA4B,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAE,MAA4B,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjJ,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,WAAW,GAAG,gBAAgB,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;iBAC3G;aACJ;SAEJ;IACL,CAAC;CAEJ"}
|
|
@@ -143,6 +143,13 @@ export declare class OrbitControls extends Behaviour implements ICameraControlle
|
|
|
143
143
|
* @default 2
|
|
144
144
|
*/
|
|
145
145
|
clickBackgroundToFitScene: number;
|
|
146
|
+
/**
|
|
147
|
+
* This is the DOM element that the OrbitControls will listen to for input events. By default this is the renderer's canvas element.
|
|
148
|
+
* Set this to a different element to make the OrbitControls listen to that element instead.
|
|
149
|
+
*/
|
|
150
|
+
get targetElement(): HTMLElement | null;
|
|
151
|
+
set targetElement(value: HTMLElement | null);
|
|
152
|
+
private _targetElement;
|
|
146
153
|
/**
|
|
147
154
|
* @internal If true debug information will be logged to the console
|
|
148
155
|
* @default false
|
|
@@ -170,6 +177,18 @@ export declare class OrbitControls extends Behaviour implements ICameraControlle
|
|
|
170
177
|
* ```
|
|
171
178
|
*/
|
|
172
179
|
rotateLeft(angleInRadians: number): void;
|
|
180
|
+
/**
|
|
181
|
+
* Rotate the camera up (or down) by the specified angle in radians.
|
|
182
|
+
* For positive angles the camera will rotate up, for negative angles it will rotate down.
|
|
183
|
+
* Tip: Use Mathf to convert between degrees and radians.
|
|
184
|
+
* @param angleInRadians The angle in radians to rotate the camera up
|
|
185
|
+
* @example
|
|
186
|
+
* ```typescript
|
|
187
|
+
* // Rotate the camera up by 0.1 radians
|
|
188
|
+
* orbitControls.rotateUp(0.1);
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
rotateUp(angleInRadians: number): void;
|
|
173
192
|
/**
|
|
174
193
|
* Pan the camera by the specified amount in the x and y direction in pixels.
|
|
175
194
|
* @param dx The amount to pan the camera in the x direction in pixels.
|
|
@@ -214,7 +233,6 @@ export declare class OrbitControls extends Behaviour implements ICameraControlle
|
|
|
214
233
|
private _camera;
|
|
215
234
|
private _syncedTransform?;
|
|
216
235
|
private _didSetTarget;
|
|
217
|
-
targetElement: HTMLElement | null;
|
|
218
236
|
/** @internal */
|
|
219
237
|
awake(): void;
|
|
220
238
|
/** @internal */
|
|
@@ -167,6 +167,22 @@ export class OrbitControls extends Behaviour {
|
|
|
167
167
|
* @default 2
|
|
168
168
|
*/
|
|
169
169
|
clickBackgroundToFitScene = 2;
|
|
170
|
+
/**
|
|
171
|
+
* This is the DOM element that the OrbitControls will listen to for input events. By default this is the renderer's canvas element.
|
|
172
|
+
* Set this to a different element to make the OrbitControls listen to that element instead.
|
|
173
|
+
*/
|
|
174
|
+
get targetElement() {
|
|
175
|
+
return this._controls?.domElement ?? this._targetElement;
|
|
176
|
+
}
|
|
177
|
+
set targetElement(value) {
|
|
178
|
+
this._targetElement = value;
|
|
179
|
+
if (this._controls && this._controls.domElement !== value) {
|
|
180
|
+
this._controls.disconnect();
|
|
181
|
+
this._controls.domElement = value;
|
|
182
|
+
this._controls.connect();
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
_targetElement = null;
|
|
170
186
|
/**
|
|
171
187
|
* @internal If true debug information will be logged to the console
|
|
172
188
|
* @default false
|
|
@@ -196,6 +212,20 @@ export class OrbitControls extends Behaviour {
|
|
|
196
212
|
rotateLeft(angleInRadians) {
|
|
197
213
|
this._controls?._rotateLeft(angleInRadians);
|
|
198
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Rotate the camera up (or down) by the specified angle in radians.
|
|
217
|
+
* For positive angles the camera will rotate up, for negative angles it will rotate down.
|
|
218
|
+
* Tip: Use Mathf to convert between degrees and radians.
|
|
219
|
+
* @param angleInRadians The angle in radians to rotate the camera up
|
|
220
|
+
* @example
|
|
221
|
+
* ```typescript
|
|
222
|
+
* // Rotate the camera up by 0.1 radians
|
|
223
|
+
* orbitControls.rotateUp(0.1);
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
rotateUp(angleInRadians) {
|
|
227
|
+
this._controls?._rotateUp(angleInRadians);
|
|
228
|
+
}
|
|
199
229
|
/**
|
|
200
230
|
* Pan the camera by the specified amount in the x and y direction in pixels.
|
|
201
231
|
* @param dx The amount to pan the camera in the x direction in pixels.
|
|
@@ -249,7 +279,6 @@ export class OrbitControls extends Behaviour {
|
|
|
249
279
|
_camera = null;
|
|
250
280
|
_syncedTransform;
|
|
251
281
|
_didSetTarget = 0;
|
|
252
|
-
targetElement = null;
|
|
253
282
|
/** @internal */
|
|
254
283
|
awake() {
|
|
255
284
|
if (debug)
|