1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dumpTools-1RchF8Kk.js","assets/index-DY6XcbtQ.js","assets/index-DK3k_-YE.css","assets/fileTools.pure-O3hflNMy.js","assets/postProcess.pure-DaBR2bKQ.js","assets/smartArray-B7wVGkJ5.js","assets/tools.pure-PAKPbutq.js","assets/kernelBlur.fragment-CgYXDHvS.js","assets/kernelBlurVaryingDeclaration-DdOogBmH.js","assets/packingFunctions-VuxfsKiI.js","assets/kernelBlur.vertex-BajPRnBb.js","assets/kernelBlur.fragment-BVzBFVa1.js","assets/kernelBlurVaryingDeclaration-GDYaakir.js","assets/packingFunctions-CE1qvGjZ.js","assets/kernelBlur.vertex-Df5REuOl.js","assets/glowBlurPostProcess.fragment-CO8bNLy5.js","assets/glowBlurPostProcess.fragment-BW_bOeld.js","assets/glowMapGeneration.vertex-DbTPQ1eW.js","assets/clipPlaneVertex-B5KC89fQ.js","assets/morphTargetsVertex-VF2XVHUB.js","assets/glowMapGeneration.fragment-DTbR5r1W.js","assets/helperFunctions-B6Ks6Htg.js","assets/clipPlaneFragment-DpbE3SOa.js","assets/glowMapGeneration.vertex-CyuX0Jnt.js","assets/tier3-babylon-z6xMXPxH.js","assets/thinEngine-DI9LWTqR.js","assets/helperFunctions-D7-zXdUR.js","assets/glowMapGeneration.fragment-FDi7NBIb.js","assets/glowMapMerge.fragment-BWUcQfE3.js","assets/glowMapMerge.vertex-CjqZRTuD.js","assets/glowMapMerge.fragment-DSab_Dwl.js","assets/glowMapMerge.vertex-C0BA9cGk.js","assets/sharpen.fragment-WHeUnM61.js","assets/sharpen.fragment-_1RHKVDs.js","assets/imageProcessing.fragment-BCB_qP39.js","assets/imageProcessingFunctions-D9sedsmd.js","assets/imageProcessing.fragment-t8y0MU3q.js","assets/chromaticAberration.fragment-BCdzgA2r.js","assets/chromaticAberration.fragment-Fi2ii56G.js","assets/grain.fragment-hs_sTg5H.js","assets/grain.fragment-Bwnf7zc6.js","assets/fxaa.fragment-DfDkdQo7.js","assets/fxaa.vertex-CjV7cvTk.js","assets/fxaa.fragment-CbWvVchD.js","assets/fxaa.vertex-BhM5ikBy.js","assets/circleOfConfusion.fragment-P5YaA0xn.js","assets/circleOfConfusion.fragment-C302VVoN.js","assets/depthOfFieldMerge.fragment-B0zPmvWr.js","assets/depthOfFieldMerge.fragment-lA6Py4NA.js","assets/extractHighlights.fragment-Cr8yCBxw.js","assets/extractHighlights.fragment-DAR5o5jJ.js","assets/bloomMerge.fragment-BhFJJCYP.js","assets/bloomMerge.fragment-DHRUqM7b.js","assets/depth.vertex-BYcK_DMi.js","assets/depth.fragment-DlSrnZth.js","assets/depth.vertex-CE_vWSxS.js","assets/depth.fragment-CI8ydOYO.js"])))=>i.map(i=>d[i]); 2import{ak as Xe,al as qe,L as te,O as I,V as $e,M as Ze,ap as Qe,aq as Je,y as et,E as N,_ as B,S as ee,j as E,ah as tt,k as S,c as fe,am as st,f as j,t as pe,z as Fe,u as rt,ar as it,as as nt,B as at,i as ot}from"./fileTools.pure-O3hflNMy.js";import{T as C}from"./texture.pure-Df8EqGL8.js";import{_ as x}from"./index-DY6XcbtQ.js";import{c as ht,P as lt,U as ze,I as ge,a as me}from"./scene.pure--hyippSf.js";import{L as dt,U as ct,M as le,a as Ne,P as We,b as Ue,A as ke,c as Ge,g as Ve,d as je,ad as z,a5 as be}from"./tier3-babylon-z6xMXPxH.js";import{S as Ce,V as A,D as ft}from"./smartArray-B7wVGkJ5.js";import{a as Y,P as q}from"./postProcess.pure-DaBR2bKQ.js";import{E as He}from"./effectFallbacks-DqrlKF7n.js";import{T as Z}from"./tools.pure-PAKPbutq.js";import"./baseTexture.pure-BeMB4zCM.js";import"./math.size-F3xmSqZc.js";import"./thinEngine-DI9LWTqR.js";import"./deviceInputEvents-BYmA4r4v.js";import"./perfCounter-BXP6OJRQ.js";import"./helperFunctions-D7-zXdUR.js";class G{get renderList(){return this._renderList}set renderList(e){this._renderList!==e&&(this._unObserveRenderList&&(this._unObserveRenderList(),this._unObserveRenderList=null),e&&(this._unObserveRenderList=Xe(e,this._renderListHasChanged)),this._renderList=e)}get disableImageProcessing(){return this._disableImageProcessing}set disableImageProcessing(e){e!==this._disableImageProcessing&&(this._disableImageProcessing=e,this._scene.markAllMaterialsAsDirty(64))}get disableDepthPrePass(){return this._disableDepthPrePass}set disableDepthPrePass(e){this._disableDepthPrePass=e,this._renderingManager.disableDepthPrePass=e}get name(){return this._name}set name(e){if(this._name!==e){if(this._name=e,this._sceneUBOs)for(let t=0;t<this._sceneUBOs.length;++t)this._sceneUBOs[t].name=`Scene ubo #${t} for ${this.name}`;if(this._scene)for(let t=0;t<this._renderPassIds.length;++t){const s=this._renderPassIds[t];this._engine._renderPassNames[s]=`${this._name}#${t}`}}}get renderPassIds(){return this._renderPassIds}
vendor: 4,521 bytes, line 2
2get currentRefreshId(){return this._currentRefreshId}getActiveMeshes(){return this._activeMeshes}setMaterialForRendering(e,t){let s;Array.isArray(e)?s=e:s=[e];for(let n=0;n<s.length;++n)for(let r=0;r<this.options.numPasses;++r){let a=s[n];s[n].isAnInstance&&(a=s[n].sourceMesh),a.setMaterialForRenderPass(this._renderPassIds[r],t!==void 0?Array.isArray(t)?t[r]:t:void 0)}}_freezeActiveMeshes(e){this._freezeActiveMeshesCancel=qe(()=>this._checkReadiness(),()=>{if(this._freezeActiveMeshesCancel=null,e)for(let t=0;t<this._activeMeshes.length;t++)this._activeMeshes.data[t]._freeze();this._prepareRenderingManager(0,!0),this._isFrozen=!0},(t,s)=>{this._freezeActiveMeshesCancel=null,s?(te.Error("ObjectRenderer: Timeout while waiting for the renderer to be ready."),t&&te.Error(t)):(te.Error("ObjectRenderer: An unexpected error occurred while waiting for the renderer to be ready."),t&&(te.Error(t),t.stack&&te.Error(t.stack)))})}_unfreezeActiveMeshes(){this._freezeActiveMeshesCancel?.(),this._freezeActiveMeshesCancel=null;for(let e=0;e<this._activeMeshes.length;e++)this._activeMeshes.data[e]._unFreeze();this._isFrozen=!1}constructor(e,t,s){this._unObserveRenderList=null,this._renderListHasChanged=(n,r)=>{const a=this._renderList?this._renderList.length:0;if(r===0&&a>0||a===0)for(const o of this._scene.meshes)o._markSubMeshesAsLightDirty()},this.particleSystemList=null,this.getCustomRenderList=null,this.renderMeshes=!0,this.renderDepthOnlyMeshes=!0,this.renderOpaqueMeshes=!0,this.renderAlphaTestMeshes=!0,this.renderTransparentMeshes=!0,this.renderParticles=!0,this.renderSprites=!1,this.forceLayerMaskCheck=!1,this.enableBoundingBoxRendering=!1,this.enableOutlineRendering=!0,this._disableImageProcessing=!1,this.dontSetTransformationMatrix=!1,this._disableDepthPrePass=!1,this.onBeforeRenderObservable=new I,this.onAfterRenderObservable=new I,this.onBeforeRenderingManagerRenderObservable=new I,this.onAfterRenderingManagerRenderObservable=new I,this.onInitRenderingObservable=new I,this.onFinishRenderingObservable=new I,this.onFastPathRenderObservable=new I,this._currentRefreshId=-1,this._refreshRate=1,this._currentApplyByPostProcessSetting=!1,this._activeMeshes=new Ce(256),this._activeBoundingBoxes=new Ce(32),this._currentFrameId=-1,this._currentSceneUBOIndex=0,this._isFrozen=!1,this._freezeActiveMeshesCancel=null,this._currentSceneCamera=null,this.name=e,this._scene=t,this._engine=this._scene.getEngine(),this._useUBO=this._engine.supportsUniformBuffers,this.renderList=[],this._renderPassIds=[],this.options={numPasses:1,doNotChangeAspectRatio:!0,enableClusteredLights:!1,...s},this._createRenderPassId(),this.renderPassId=this._renderPassIds[0],this._renderingManager=new ht(t),this._renderingManager._useSceneAutoClearSetup=!0,this.options.enableClusteredLights&&this.onInitRenderingObservable.add(()=>{for(const n of this._scene.lights)n.getTypeID()===dt.LIGHTTYPEID_CLUSTERED_CONTAINER&&n.isSupported&&n._updateBatches(this.activeCamera).render()}),this._scene.addObjectRenderer(this)}_releaseRenderPassId(){for(let e=0;e<this.options.numPasses;++e)this._engine.releaseRenderPassId(this._renderPassIds[e]);this._renderPassIds.length=0}_createRenderPassId(){this._releaseRenderPassId();for(let e=0;e<this.options.numPasses;++e)this._renderPassIds[e]=this._engine.createRenderPassId(`${this.name}#${e}`)}_createSceneUBO(e,t){const s=this._scene.getEngine(),n=new ct(s,void 0,t,e,void 0,!1);return n.addUniform("viewProjection",16),t&&n.addUniform("viewProjectionR",16),n.addUniform("view",16),n.addUniform("projection",16),n.addUniform("vEyePosition",4),n.addUniform("inverseProjection",16),n}_getSceneUBO(){this._currentFrameId!==this._engine.frameId&&(this._currentSceneUBOIndex=0,this._currentFrameId=this._engine.frameId),this._sceneUBOs||(this._sceneUBOs=[],this._sceneUBOIsMultiview=[]);const e=this._engine._currentRenderTarget,t=!!(e&&e.texture?.isMultiview)||!!this._scene._multiviewSceneUboIsActive;if(this._currentSceneUBOIndex>=this._sceneUBOs.length){const n=this._sceneUBOs.length;this._sceneUBOs.push(this._createSceneUBO(`Scene ubo #${n} for ${this.name}`,t)),this._sceneUBOIsMultiview.push(t)}else this._sceneUBOIsMultiview[this._currentSceneUBOIndex]!==t&&(this._sceneUBOs[this._currentSceneUBOIndex].dispose(),this._sceneUBOs[this._currentSceneUBOIndex]=this._createSceneUBO(`Scene ubo #${this._currentSceneUBOIndex} for ${this.name}`,t),this._sceneUBOIsMultiview[this._currentSceneUBOIndex]=t);const s=this._sceneUBOs[this._currentSceneUBOIndex++];return s.unbindEffect(),s}
2resetRefreshCounter(){this._currentRefreshId=-1}get refreshRate(){return this._refreshRate}set refreshRate(e){this._refreshRate=e,this.resetRefreshCounter()}shouldRender(){return this._engine.snapshotRendering?!0:this._currentRefreshId===-1?(this._currentRefreshId=1,!0):this.refreshRate===this._currentRefreshId?(this._currentRefreshId=1,!0):(this._currentRefreshId++,!1)}isReadyForRendering(e,t){this.prepareRenderList(),this.initRender(e,t);const s=this._checkReadiness();return this.finishRender(),s}prepareRenderList(){const e=this._scene;if(this._waitingRenderList){if(!this.renderListPredicate){this.renderList=[];for(let t=0;t<this._waitingRenderList.length;t++){const s=this._waitingRenderList[t],n=e.getMeshById(s);n&&this.renderList.push(n)}}this._waitingRenderList=void 0}if(this.renderListPredicate){this.renderList?this.renderList.length=0:this.renderList=[];const t=this._scene.meshes;for(let s=0;s<t.length;s++){const n=t[s];this.renderListPredicate(n)&&this.renderList.push(n)}}this._currentApplyByPostProcessSetting=this._scene.imageProcessingConfiguration.applyByPostProcess,this._disableImageProcessing&&(this._scene.imageProcessingConfiguration._applyByPostProcess=this._disableImageProcessing)}initRender(e,t){const s=this.activeCamera??this._scene.activeCamera;this._currentSceneCamera=this._scene.activeCamera,this._useUBO&&(this._currentSceneUBO=this._scene.getSceneUniformBuffer(),this._currentSceneUBO.unbindEffect(),this._scene.setSceneUniformBuffer(this._getSceneUBO())),this.onInitRenderingObservable.notifyObservers(this),s&&(this.dontSetTransformationMatrix||this._scene.setTransformMatrix(s.getViewMatrix(),s.getProjectionMatrix(!0)),this._scene._activeCamera=s,this._engine.setViewport(s.rigParent?s.rigParent.viewport:s.viewport,e,t)),this._useUBO&&this._scene.finalizeSceneUbo(),this._defaultRenderListPrepared=!1}finishRender(){const e=this._scene;this._useUBO&&this._scene.setSceneUniformBuffer(this._currentSceneUBO),this._disableImageProcessing&&(e.imageProcessingConfiguration._applyByPostProcess=this._currentApplyByPostProcessSetting),e._activeCamera=this._currentSceneCamera,this._currentSceneCamera&&(this.activeCamera&&this.activeCamera!==e.activeCamera&&e.setTransformMatrix(this._currentSceneCamera.getViewMatrix(),this._currentSceneCamera.getProjectionMatrix(!0)),this._engine.setViewport(this._currentSceneCamera.viewport)),e.resetCachedMaterial(),this.onFinishRenderingObservable.notifyObservers(this)}render(e=0,t=!1){const s=this._engine.currentRenderPassId;if(this._engine.currentRenderPassId=this._renderPassIds[e],this.onBeforeRenderObservable.notifyObservers(e),this._engine.snapshotRendering&&this._engine.snapshotRenderingMode===1)this.onFastPathRenderObservable.notifyObservers(e);else{const r=this._prepareRenderingManager(e),a=this._scene.getOutlineRenderer?.(),o=a?.enabled;a&&(a.enabled=this.enableOutlineRendering),this.onBeforeRenderingManagerRenderObservable.notifyObservers(e),this._renderingManager.render(this.customRenderFunction,r,this.renderParticles,this.renderSprites,this.renderDepthOnlyMeshes,this.renderOpaqueMeshes,this.renderAlphaTestMeshes,this.renderTransparentMeshes,this.customRenderTransparentSubMeshes),this.onAfterRenderingManagerRenderObservable.notifyObservers(e),a&&(a.enabled=o)}t||this.onAfterRenderObservable.notifyObservers(e),this._engine.currentRenderPassId=s}_checkReadiness(){const e=this._scene,t=this._engine.currentRenderPassId;let s=!0;e.getViewMatrix()||e.updateTransformMatrix();const n=this.options.numPasses;for(let a=0;a<n&&s;a++){const o=this.renderList?this.renderList:e.frameGraph?e.meshes:e.getActiveMeshes().data,l=this.renderList||e.frameGraph?o.length:e.getActiveMeshes().length;this._engine.currentRenderPassId=this._renderPassIds[a],this.onBeforeRenderObservable.notifyObservers(a);let i=null,h=l;this.getCustomRenderList&&(i=this.getCustomRenderList(a,o,l),i&&(h=i.length)),i||(i=o),this.options.doNotChangeAspectRatio||e.updateTransformMatrix(!0);for(let g=0;g<h&&s;++g){const u=i[g];if(!(!u.isEnabled()||u.isBlocked||!u.isVisible||!u.subMeshes)){if(this.customIsReadyFunction){if(!this.customIsReadyFunction(u,this.refreshRate,!0)){s=!1;continue}}else if(!u.isReady(!0)){s=!1;continue}}}this.onAfterRenderObservable.notifyObservers(a),n>1&&(e.incrementRenderId(),e.resetCachedMaterial())}const r=this.particleSystemList||e.particleSystems;for(const a of r)a.isReady()||(s=!1);return this._engine.currentRenderPassId=t,s}_prepareRenderingManager(e=0,t=!1){const s=this._scene;let n=null,r,a;const o=this.renderList?this.renderList:s.frameGraph?s.meshes:s.getActiveMeshes().data,l=this.renderList||s.frameGraph?o.length:s.getActiveMeshes().length;if(this.getCustomRenderList&&(n=this.getCustomRenderList(e,o,l)),n)r=n.length,a=this.forceLayerMaskCheck;else{if(this._defaultRenderListPrepared&&!t&&!this._engine.isWebGPU)return o;this._defaultRenderListPrepared=!0,n=o,r=l,a=!this.renderList||this.forceLayerMaskCheck}const i=s.activeCamera,h=this.cameraForLOD??i,g=s.getBoundingBoxRenderer?.();if(s._activeMeshesFrozen&&this._isFrozen){if(this._renderingManager.resetSprites(),this.enableBoundingBoxRendering&&g){g.reset();for(let u=0;u<this._activeBoundingBoxes.length;u++){const _=this._activeBoundingBoxes.data[u];g.renderList.push(_)}}return n}if(this._renderingManager.reset(),this._activeMeshes.reset(),this._activeBoundingBoxes.reset(),g&&g.reset(),this.renderMeshes){const u=s.getRenderId(),_=s.getFrameId();for(let p=0;p<r;p++){const m=n[p];if(m&&!m.isBlocked){if(this.customIsReadyFunction){if(!this.customIsReadyFunction(m,this.refreshRate,!1)){this.resetRefreshCounter();continue}}else if(!m.isReady(this.refreshRate===0)){this.resetRefreshCounter();continue}let f;if(h){const P=m._internalAbstractMeshDataInfo._currentLOD.get(h);
2!P||P[1]!==_?(f=s.customLODSelector?s.customLODSelector(m,h):m.getLOD(h),P?(P[0]=f,P[1]=_):m._internalAbstractMeshDataInfo._currentLOD.set(h,[f,_])):f=P[0]}else f=m;if(!f)continue;f!==m&&f.billboardMode!==0&&f.computeWorldMatrix(),f._preActivateForIntermediateRendering(u);let b;if(a&&i?b=(m.layerMask&i.layerMask)===0:b=!1,m.isEnabled()&&m.isVisible&&m.subMeshes&&!b){if(this._activeMeshes.push(m),f._internalAbstractMeshDataInfo._wasActiveLastFrame=!0,f!==m&&f._activate(u,!0),this.enableBoundingBoxRendering&&g&&g._preActiveMesh(m),m._activate(u,!0)&&m.subMeshes.length){m.isAnInstance?m._internalAbstractMeshDataInfo._actAsRegularMesh&&(f=m):f._internalAbstractMeshDataInfo._onlyForInstancesIntermediate=!1,f._internalAbstractMeshDataInfo._isActiveIntermediate=!0,s._prepareSkeleton(f);for(let P=0;P<f.subMeshes.length;P++){const T=f.subMeshes[P];this.enableBoundingBoxRendering&&g&&g._evaluateSubMesh(m,T),this._renderingManager.dispatch(T,f)}}m._postActivate()}}}}if(this.enableBoundingBoxRendering&&g&&t)for(let u=0;u<g.renderList.length;u++){const _=g.renderList.data[u];this._activeBoundingBoxes.push(_)}if(this._scene.particlesEnabled&&this.renderParticles){this._scene.onBeforeParticlesRenderingObservable.notifyObservers(this._scene);const u=this.particleSystemList||s.particleSystems;for(let _=0;_<u.length;_++){const p=u[_],m=p.emitter;!p.isStarted()||!m||m.position&&!m.isEnabled()||this._renderingManager.dispatchParticles(p)}this._scene.onAfterParticlesRenderingObservable.notifyObservers(this._scene)}return n}get renderingManager(){return this._renderingManager}setRenderingOrder(e,t=null,s=null,n=null){this._renderingManager.setRenderingOrder(e,t,s,n)}setRenderingAutoClearDepthStencil(e,t,s=!0,n=!0){this._renderingManager.setRenderingAutoClearDepthStencil(e,t,s,n),this._renderingManager._useSceneAutoClearSetup=!1}clone(){const e=new G(this.name,this._scene,this.options);return this.renderList&&(e.renderList=this.renderList.slice(0)),e}dispose(){const e=this.renderList?this.renderList:this._scene.getActiveMeshes().data,t=this.renderList?this.renderList.length:this._scene.getActiveMeshes().length;for(let s=0;s<t;s++){const n=e[s];n&&n.getMaterialForRenderPass(this.renderPassId)!==void 0&&n.setMaterialForRenderPass(this.renderPassId,void 0)}if(this.onInitRenderingObservable.clear(),this.onFinishRenderingObservable.clear(),this.onBeforeRenderObservable.clear(),this.onAfterRenderObservable.clear(),this.onBeforeRenderingManagerRenderObservable.clear(),this.onAfterRenderingManagerRenderObservable.clear(),this.onFastPathRenderObservable.clear(),this._releaseRenderPassId(),this.renderList=null,this._sceneUBOs)for(const s of this._sceneUBOs)s.dispose();this._sceneUBOs=void 0,this._scene.removeObjectRenderer(this)}_rebuild(){this.refreshRate===G.REFRESHRATE_RENDER_ONCE&&(this.refreshRate=G.REFRESHRATE_RENDER_ONCE)}freeRenderingGroups(){this._renderingManager&&this._renderingManager.freeRenderingGroups()}}G.REFRESHRATE_RENDER_ONCE=0;G.REFRESHRATE_RENDER_ONEVERYFRAME=1;G.REFRESHRATE_RENDER_ONEVERYTWOFRAMES=2;class K extends C{get renderListPredicate(){return this._objectRenderer.renderListPredicate}set renderListPredicate(e){this._objectRenderer.renderListPredicate=e}get renderList(){return this._objectRenderer.renderList}set renderList(e){this._objectRenderer.renderList=e}get particleSystemList(){return this._objectRenderer.particleSystemList}set particleSystemList(e){this._objectRenderer.particleSystemList=e}get getCustomRenderList(){return this._objectRenderer.getCustomRenderList}set getCustomRenderList(e){this._objectRenderer.getCustomRenderList=e}get renderParticles(){return this._objectRenderer.renderParticles}set renderParticles(e){this._objectRenderer.renderParticles=e}get renderSprites(){return this._objectRenderer.renderSprites}set renderSprites(e){this._objectRenderer.renderSprites=e}get enableBoundingBoxRendering(){return this._objectRenderer.enableBoundingBoxRendering}set enableBoundingBoxRendering(e){this._objectRenderer.enableBoundingBoxRendering=e}get enableOutlineRendering(){return this._objectRenderer.enableOutlineRendering}set enableOutlineRendering(e){this._objectRenderer.enableOutlineRendering=e}get forceLayerMaskCheck(){return this._objectRenderer.forceLayerMaskCheck}set forceLayerMaskCheck(e){this._objectRenderer.forceLayerMaskCheck=e}get activeCamera(){return this._objectRenderer.activeCamera}set activeCamera(e){this._objectRenderer.activeCamera=e}get cameraForLOD(){return this._objectRenderer.cameraForLOD}set cameraForLOD(e){this._objectRenderer.cameraForLOD=e}get disableImageProcessing(){return this._objectRenderer.disableImageProcessing}set disableImageProcessing(e){this._objectRenderer.disableImageProcessing=e}get customIsReadyFunction(){return this._objectRenderer.customIsReadyFunction}set customIsReadyFunction(e){this._objectRenderer.customIsReadyFunction=e}get customRenderFunction(){return this._objectRenderer.customRenderFunction}set customRenderFunction(e){this._objectRenderer.customRenderFunction=e}get postProcesses(){return this._postProcesses}get _prePassEnabled(){return!!this._prePassRenderTarget&&this._prePassRenderTarget.enabled}set onAfterUnbind(e){this._onAfterUnbindObserver&&this.onAfterUnbindObservable.remove(this._onAfterUnbindObserver),this._onAfterUnbindObserver=this.onAfterUnbindObservable.add(e)}get onBeforeRenderObservable(){return this._objectRenderer.onBeforeRenderObservable}set onBeforeRender(e){this._onBeforeRenderObserver&&this.onBeforeRenderObservable.remove(this._onBeforeRenderObserver),this._onBeforeRenderObserver=this.onBeforeRenderObservable.add(e)}get onAfterRenderObservable(){return this._objectRenderer.onAfterRenderObservable}set onAfterRender(e){this._onAfterRenderObserver&&this.onAfterRenderObservable.remove(this._onAfterRenderObserver),this._onAfterRenderObserver=this.onAfterRenderObservable.add(e)}set onClear(e){this._onClearObserver&&this.onClearObservable.remove(this._onClearObserver),this._onClearObserver=this.onClearObservable.add(e)}get _waitingRenderList(){return this._objectRenderer._waitingRenderList}set _waitingRenderList(e){this._objectRenderer._waitingRenderList=e}get renderPassId(){return this._objectRenderer.renderPassId}get renderPassIds(){return this._objectRenderer.renderPassIds}
2get currentRefreshId(){return this._objectRenderer.currentRefreshId}setMaterialForRendering(e,t){this._objectRenderer.setMaterialForRendering(e,t)}get isMulti(){return this._renderTarget?.isMulti??!1}get renderTargetOptions(){return this._renderTargetOptions}get renderTarget(){return this._renderTarget}_onRatioRescale(){this._sizeRatio&&this.resize(this._initialSizeParameter)}set boundingBoxSize(e){if(this._boundingBoxSize&&this._boundingBoxSize.equals(e))return;this._boundingBoxSize=e;const t=this.getScene();t&&t.markAllMaterialsAsDirty(1)}get boundingBoxSize(){return this._boundingBoxSize}get depthStencilTexture(){return this._renderTarget?._depthStencilTexture??null}constructor(e,t,s,n=!1,r=!0,a=0,o=!1,l=C.TRILINEAR_SAMPLINGMODE,i=!0,h=!1,g=!1,u=5,_=!1,p,m,f=!1,b=!1){let P,T=!0,v,L=!1;if(typeof n=="object"){const M=n;n=!!M.generateMipMaps,r=M.doNotChangeAspectRatio??!0,a=M.type??0,o=!!M.isCube,l=M.samplingMode??C.TRILINEAR_SAMPLINGMODE,i=M.generateDepthBuffer??!0,h=!!M.generateStencilBuffer,g=!!M.isMulti,u=M.format??5,_=!!M.delayAllocation,p=M.samples,m=M.creationFlags,f=!!M.noColorAttachment,b=!!M.useSRGBBuffer,P=M.colorAttachment,T=M.gammaSpace??T,v=M.existingObjectRenderer,L=!!M.enableClusteredLights}if(super(null,s,!n,void 0,l,void 0,void 0,void 0,void 0,u),this.ignoreCameraViewport=!1,this.onBeforeBindObservable=new I,this.onAfterUnbindObservable=new I,this.onClearObservable=new I,this.onResizeObservable=new I,this._cleared=!1,this.skipInitialClear=!1,this._samples=1,this._canRescale=!0,this._renderTarget=null,this._dontDisposeObjectRenderer=!1,this.boundingBoxPosition=$e.Zero(),this._disableEngineStages=!1,this._dumpToolsLoading=!1,s=this.getScene(),!s)return;const y=this.getScene().getEngine();this._gammaSpace=T,this._coordinatesMode=C.PROJECTION_MODE,this.name=e,this.isRenderTarget=!0,this._initialSizeParameter=t,this._dontDisposeObjectRenderer=!!v,this._processSizeParameter(t),this._objectRenderer=v??new G(e,s,{numPasses:o?6:this.getRenderLayers()||1,doNotChangeAspectRatio:r,enableClusteredLights:L}),this._onBeforeRenderingManagerRenderObserver=this._objectRenderer.onBeforeRenderingManagerRenderObservable.add(()=>{const M=this._scene;if(!this._disableEngineStages)for(const F of M._beforeRenderTargetClearStage)F.action(this,this._currentFaceIndex,this._currentLayer);if(this.onClearObservable.hasObservers()?this.onClearObservable.notifyObservers(y):this.skipInitialClear||y.clear(this.clearColor??M.clearColor,!0,!0,!0),this._doNotChangeAspectRatio||M.updateTransformMatrix(!0),!this._disableEngineStages)for(const F of M._beforeRenderTargetDrawStage)F.action(this,this._currentFaceIndex,this._currentLayer);y._debugPushGroup&&y._debugPushGroup(`Render to ${this.name} (face #${this._currentFaceIndex} layer #${this._currentLayer})`)}),this._onAfterRenderingManagerRenderObserver=this._objectRenderer.onAfterRenderingManagerRenderObservable.add(()=>{if(y._debugPopGroup&&y._debugPopGroup(),!this._disableEngineStages)for(const F of this._scene._afterRenderTargetDrawStage)F.action(this,this._currentFaceIndex,this._currentLayer);const M=this._texture?.generateMipMaps??!1;if(this._texture&&(this._texture.generateMipMaps=!1),this._postProcessManager?this._postProcessManager._finalizeFrame(!1,this._renderTarget??void 0,this._currentFaceIndex,this._postProcesses,this.ignoreCameraViewport):this._currentUseCameraPostProcess&&this._scene.postProcessManager._finalizeFrame(!1,this._renderTarget??void 0,this._currentFaceIndex),!this._disableEngineStages)for(const F of this._scene._afterRenderTargetPostProcessStage)F.action(this,this._currentFaceIndex,this._currentLayer);this._texture&&(this._texture.generateMipMaps=M),this._doNotChangeAspectRatio||this._scene.updateTransformMatrix(!0),this._currentDumpForDebug&&(this._dumpTools?this._dumpTools.DumpFramebuffer(this.getRenderWidth(),this.getRenderHeight(),y):te.Error("dumpTools module is still being loaded. To speed up the process import dump tools directly in your project"))}),this._onFastPathRenderObserver=this._objectRenderer.onFastPathRenderObservable.add(()=>{this.onClearObservable.hasObservers()?this.onClearObservable.notifyObservers(y):this.skipInitialClear||y.clear(this.clearColor||this._scene.clearColor,!0,!0,!0)}),this._resizeObserver=y.onResizeObservable.add(()=>{}),this._generateMipMaps=!!n,this._doNotChangeAspectRatio=r,!g&&(this._renderTargetOptions={generateMipMaps:n,type:a,format:this._format??void 0,samplingMode:this.samplingMode,generateDepthBuffer:i,generateStencilBuffer:h,samples:p,creationFlags:m,noColorAttachment:f,useSRGBBuffer:b,colorAttachment:P,label:this.name}
vendor: 4,195 bytes, line 2
2,this.samplingMode===C.NEAREST_SAMPLINGMODE&&(this.wrapU=C.CLAMP_ADDRESSMODE,this.wrapV=C.CLAMP_ADDRESSMODE),_||(o?(this._renderTarget=s.getEngine().createRenderTargetCubeTexture(this.getRenderSize(),this._renderTargetOptions),this.coordinatesMode=C.INVCUBIC_MODE,this._textureMatrix=Ze.Identity()):this._renderTarget=s.getEngine().createRenderTargetTexture(this._size,this._renderTargetOptions),this._texture=this._renderTarget.texture,p!==void 0&&(this.samples=p)))}createDepthStencilTexture(e=0,t=!0,s=!1,n=1,r=14,a){this._renderTarget?.createDepthStencilTexture(e,t,s,n,r,a)}_processSizeParameter(e){if(e.ratio){this._sizeRatio=e.ratio;const t=this._getEngine();this._size={width:this._bestReflectionRenderTargetDimension(t.getRenderWidth(),this._sizeRatio),height:this._bestReflectionRenderTargetDimension(t.getRenderHeight(),this._sizeRatio)}}else this._size=e}get samples(){return this._renderTarget?.samples??this._samples}set samples(e){this._renderTarget&&(this._samples=this._renderTarget.setSamples(e))}addPostProcess(e){if(!this._postProcessManager){const t=this.getScene();if(!t)return;this._postProcessManager=new lt(t),this._postProcesses=new Array}this._postProcesses.push(e),this._postProcesses[0].autoClear=!1}clearPostProcesses(e=!1){if(this._postProcesses){if(e)for(const t of this._postProcesses)t.dispose();this._postProcesses=[]}}removePostProcess(e){if(!this._postProcesses)return;const t=this._postProcesses.indexOf(e);t!==-1&&(this._postProcesses.splice(t,1),this._postProcesses.length>0&&(this._postProcesses[0].autoClear=!1))}resetRefreshCounter(){this._objectRenderer.resetRefreshCounter()}get refreshRate(){return this._objectRenderer.refreshRate}set refreshRate(e){this._objectRenderer.refreshRate=e}_shouldRender(){return this._objectRenderer.shouldRender()}getRenderSize(){return this.getRenderWidth()}getRenderWidth(){return this._size.width?this._size.width:this._size}getRenderHeight(){return this._size.width?this._size.height:this._size}getRenderLayers(){const e=this._size.layers;if(e)return e;const t=this._size.depth;return t||0}disableRescaling(){this._canRescale=!1}get canRescale(){return this._canRescale}scale(e){const t=Math.max(1,this.getRenderSize()*e);this.resize(t)}getReflectionTextureMatrix(){return this.isCube?this._textureMatrix:super.getReflectionTextureMatrix()}resize(e){const t=this.isCube;this._renderTarget?.dispose(),this._renderTarget=null;const s=this.getScene();s&&(this._processSizeParameter(e),t?this._renderTarget=s.getEngine().createRenderTargetCubeTexture(this.getRenderSize(),this._renderTargetOptions):this._renderTarget=s.getEngine().createRenderTargetTexture(this._size,this._renderTargetOptions),this._texture=this._renderTarget.texture,this._renderTargetOptions.samples!==void 0&&(this.samples=this._renderTargetOptions.samples),this.onResizeObservable.hasObservers()&&this.onResizeObservable.notifyObservers(this))}render(e=!1,t=!1){this._render(e,t)}isReadyForRendering(){this._dumpToolsLoading||(this._dumpToolsLoading=!0,x(()=>import("./dumpTools-1RchF8Kk.js"),__vite__mapDeps([0,1,2,3,4,5,6])).then(t=>this._dumpTools=t)),this._objectRenderer.prepareRenderList(),this.onBeforeBindObservable.notifyObservers(this),this._objectRenderer.initRender(this.getRenderWidth(),this.getRenderHeight());const e=this._objectRenderer._checkReadiness();return this.onAfterUnbindObservable.notifyObservers(this),this._objectRenderer.finishRender(),e}_render(e=!1,t=!1){const s=this.getScene();if(!s)return;this.useCameraPostProcesses!==void 0&&(e=this.useCameraPostProcesses);const n=s.getEngine();if(n._debugPushGroup&&n._debugPushGroup(`Render to ${this.name}`),this._objectRenderer.prepareRenderList(),this.onBeforeBindObservable.notifyObservers(this),this._objectRenderer.initRender(this.getRenderWidth(),this.getRenderHeight()),(this.is2DArray||this.is3D)&&!this.isMulti)for(let r=0;r<this.getRenderLayers();r++)this._renderToTarget(0,e,t,r),s.incrementRenderId(),s.resetCachedMaterial();else if(this.isCube&&!this.isMulti)for(let r=0;r<6;r++)this._renderToTarget(r,e,t),s.incrementRenderId(),s.resetCachedMaterial();else this._renderToTarget(0,e,t);this.onAfterUnbindObservable.notifyObservers(this),this._objectRenderer.f
2inishRender(),n._debugPopGroup&&n._debugPopGroup()}_bestReflectionRenderTargetDimension(e,t){const n=e*t,r=Je(n+16384/(128+n));return Math.min(Qe(e),r)}_bindFrameBuffer(e=0,t=0){const s=this.getScene();if(!s)return;const n=s.getEngine();this._renderTarget&&n.bindFramebuffer(this._renderTarget,this.isCube?e:void 0,void 0,void 0,this.ignoreCameraViewport,0,t)}_unbindFrameBuffer(e,t){this._renderTarget&&e.unBindFramebuffer(this._renderTarget,this.isCube,()=>{this.onAfterRenderObservable.notifyObservers(t)})}_prepareFrame(e,t,s,n){this._postProcessManager?this._prePassEnabled||this._postProcessManager._prepareFrame(this._texture,this._postProcesses)||this._bindFrameBuffer(t,s):(!n||!e.postProcessManager._prepareFrame(this._texture))&&this._bindFrameBuffer(t,s)}_renderToTarget(e,t,s,n=0){const r=this.getScene();if(!r)return;const a=r.getEngine();this._currentFaceIndex=e,this._currentLayer=n,this._currentUseCameraPostProcess=t,this._currentDumpForDebug=s,this._prepareFrame(r,e,n,t),this._objectRenderer.render(e+n,!0),this._unbindFrameBuffer(a,e),this._texture&&this.isCube&&e===5&&a.generateMipMapsForCubemap(this._texture,!0)}setRenderingOrder(e,t=null,s=null,n=null){this._objectRenderer.setRenderingOrder(e,t,s,n)}setRenderingAutoClearDepthStencil(e,t){this._objectRenderer.setRenderingAutoClearDepthStencil(e,t)}clone(){const e=this.getSize(),t=new K(this.name,e,this.getScene(),this._renderTargetOptions.generateMipMaps,this._doNotChangeAspectRatio,this._renderTargetOptions.type,this.isCube,this._renderTargetOptions.samplingMode,this._renderTargetOptions.generateDepthBuffer,this._renderTargetOptions.generateStencilBuffer,void 0,this._renderTargetOptions.format,void 0,this._renderTargetOptions.samples);return t.hasAlpha=this.hasAlpha,t.level=this.level,t.coordinatesMode=this.coordinatesMode,this.renderList&&(t.renderList=this.renderList.slice(0)),t}serialize(){if(!this.name)return null;const e=super.serialize();if(e.renderTargetSize=this.getRenderSize(),e.renderList=[],this.renderList)for(let t=0;t<this.renderList.length;t++)e.renderList.push(this.renderList[t].id);return e}disposeFramebufferObjects(){this._renderTarget?.dispose(!0)}releaseInternalTexture(){this._renderTarget?.releaseTextures(),this._texture=null}dispose(){this.onResizeObservable.clear(),this.onClearObservable.clear(),this.onAfterUnbindObservable.clear(),this.onBeforeBindObservable.clear(),this._postProcessManager&&(this._postProcessManager.dispose(),this._postProcessManager=null),this._prePassRenderTarget&&this._prePassRenderTarget.dispose(),this._objectRenderer.onBeforeRenderingManagerRenderObservable.remove(this._onBeforeRenderingManagerRenderObserver),this._objectRenderer.onAfterRenderingManagerRenderObservable.remove(this._onAfterRenderingManagerRenderObserver),this._objectRenderer.onFastPathRenderObservable.remove(this._onFastPathRenderObserver),this._dontDisposeObjectRenderer||this._objectRenderer.dispose(),this.clearPostProcesses(!0),this._resizeObserver&&(this.getScene().getEngine().onResizeObservable.remove(this._resizeObserver),this._resizeObserver=null);const e=this.getScene();if(!e)return;let t=e.customRenderTargets.indexOf(this);t>=0&&e.customRenderTargets.splice(t,1);for(const s of e.cameras)t=s.customRenderTargets.indexOf(this),t>=0&&s.customRenderTargets.splice(t,1);this._renderTarget?.dispose(),this._renderTarget=null,this._texture=null,super.dispose()}_rebuild(){this._objectRenderer._rebuild(),this._postProcessManager&&this._postProcessManager._rebuild()}freeRenderingGroups(){this._objectRenderer.freeRenderingGroups()}getViewCount(){return 1}}K.REFRESHRATE_RENDER_ONCE=G.REFRESHRATE_RENDER_ONCE;K.REFRESHRATE_RENDER_ONEVERYFRAME=G.REFRESHRATE_RENDER_ONEVERYFRAME;K.REFRESHRATE_RENDER_ONEVERYTWOFRAMES=G.REFRESHRATE_RENDER_ONEVERYTWOFRAMES;Object.getOwnPropertyDescriptor(K.prototype,"noPrePassRenderer")||Object.defineProperty(K.prototype,"noPrePassRenderer",et("RenderTargetTexture","noPrePassRenderer"));class D extends Y{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([x(()=>import("./kernelBlur.fragment-CgYXDHvS.js"),__vite__mapDeps([7,3,8,9])),x(()=>import("./kernelBlur.vertex-BajPRnBb.js"),__vite__mapDeps([10,3,8]))]))):t.push(Prom
2ise.all([x(()=>import("./kernelBlur.fragment-BVzBFVa1.js"),__vite__mapDeps([11,3,12,13])),x(()=>import("./kernelBlur.vertex-Df5REuOl.js"),__vite__mapDeps([14,3,12]))]))}constructor(e,t=null,s,n,r){const a=!!r?.blockCompilation;super({...r,name:e,engine:t||N.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:D.FragmentUrl,uniforms:D.Uniforms,samplers:D.Samplers,vertexUrl:D.VertexUrl,blockCompilation:!0}),this._packedFloat=!1,this._staticDefines="",this.textureWidth=0,this.textureHeight=0,this._staticDefines=r?Array.isArray(r.defines)?r.defines.join(` 3`):r.defines||"":"",this.options.blockCompilation=a,s!==void 0&&(this.direction=s),n!==void 0&&(this.kernel=n)}set kernel(e){this._idealKernel!==e&&(e=Math.max(e,1),this._idealKernel=e,this._kernel=this._nearestBestKernel(e),this.options.blockCompilation||this._updateParameters())}get kernel(){return this._idealKernel}set packedFloat(e){this._packedFloat!==e&&(this._packedFloat=e,this.options.blockCompilation||this._updateParameters())}get packedFloat(){return this._packedFloat}bind(e=!1){super.bind(e),this._drawWrapper.effect.setFloat2("delta",1/this.textureWidth*this.direction.x,
31/this.textureHeight*this.direction.y)}_updateParameters(e,t){const s=this._kernel,n=(s-1)/2;let r=[],a=[],o=0;for(let f=0;f<s;f++){const b=f/(s-1),P=this._gaussianWeight(b*2-1);r[f]=f-n,a[f]=P,o+=P}for(let f=0;f<a.length;f++)a[f]/=o;const l=[],i=[],h=[];for(let f=0;f<=n;f+=2){const b=Math.min(f+1,Math.floor(n));if(f===b)h.push({o:r[f],w:a[f]});else{const T=b===n,v=a[f]+a[b]*(T?.5:1),L=r[f]+1/(1+a[f]/a[b]);L===0?(h.push({o:r[f],w:a[f]}),h.push({o:r[f+1],w:a[f+1]})):(h.push({o:L,w:v}),h.push({o:-L,w:v}))}}for(let f=0;f<h.length;f++)i[f]=h[f].o,l[f]=h[f].w;r=i,a=l;const g=this.options.engine.getCaps().maxVaryingVectors-(this.options.shaderLanguage===1?1:0),u=Math.max(g,0)-1;let _=Math.min(r.length,u),p="";p+=this._staticDefines,this._staticDefines.indexOf("DOF")!=-1&&(p+=`#define CENTER_WEIGHT ${this._glslFloat(a[_-1])} 4`,_--);for(let f=0;f<_;f++)p+=`#define KERNEL_OFFSET${f} ${this._glslFloat(r[f])} 5`,p+=`#define KERNEL_WEIGHT${f} ${this._glslFloat(a[f])} 6`;let m=0;for(let f=u;f<r.length;f++)p+=`#define KERNEL_DEP_OFFSET${m} ${this._glslFloat(r[f])} 7`,p+=`#define KERNEL_DEP_WEIGHT${m} ${this._glslFloat(a[f])} 8`,m++;this.packedFloat&&(p+="#define PACKEDFLOAT 1"),this.options.blockCompilation=!1,this.updateEffect(p,null,null,{varyingCount:_,depCount:m},e,t)}_nearestBestKernel(e){const t=Math.round(e);for(const s of[t,t-1,t+1,t-2,t+2])if(s%2!==0&&Math.floor(s/2)%2===0&&s>0)return Math.max(s,3);return Math.max(t,3)}_gaussianWeight(e){const t=.3333333333333333,s=Math.sqrt(2*Math.PI)*t,n=-(e*e/(2*t*t));return 1/s*Math.exp(n)}_glslFloat(e,t=8){return e.toFixed(t).replace(/0+$/,"")}}D.VertexUrl="kernelBlur";D.FragmentUrl="kernelBlur";D.Uniforms=["delta","direction"];D.Samplers=["circleOfConfusionSampler"];let ae=(()=>{var c;let e=q,t=[],s,n,r;return c=class extends e{get direction(){return this._effectWrapper.direction}set direction(o){this._effectWrapper.direction=o}set kernel(o){this._effectWrapper.kernel=o}get kernel(){return this._effectWrapper.kernel}set packedFloat(o){this._effectWrapper.packedFloat=o}get packedFloat(){return this._effectWrapper.packedFloat}getClassName(){return"BlurPostProcess"}constructor(o,l,i,h,g=null,u=C.BILINEAR_SAMPLINGMODE,_,p,m=0,f="",b=!1,P=5){const T=typeof h=="number"?b:!!h.blockCompilation,v={uniforms:D.Uniforms,samplers:D.Samplers,size:typeof h=="number"?h:void 0,camera:g,samplingMode:u,engine:_,reusable:p,textureType:m,vertexUrl:D.VertexUrl,indexParameters:{varyingCount:0,depCount:0},textureFormat:P,defines:f,...h,blockCompilation:!0};super(o,D.FragmentUrl,{effectWrapper:typeof h=="number"||!h.effectWrapper?new D(o,_,void 0,void 0,v):void 0,...v}),B(this,t),this._effectWrapper.options.blockCompilation=T,this.direction=l,this.onApplyObservable.add(()=>{this._effectWrapper.textureWidth=this._outputTexture?this._outputTexture.width:this.width,this._effectWrapper.textureHeight=this._outputTexture?this._outputTexture.height:this.height}),this.kernel=i}updateEffect(o=null,l=null,i=null,h,g,u){this._effectWrapper._updateParameters(g,u)}static _Parse(o,l,i,h){return ee.Parse(()=>new c(o.name,o.direction,o.kernel,o.options,l,o.renderTargetSamplingMode,i.getEngine(),o.reusable,o.textureType,void 0,!1),o,i,h)}},(()=>{const a=typeof Symbol=="function"&&Symbol.metadata?Object.create(e[Symbol.metadata]??null):void 0;s=[tt()],n=[S()],r=[S()],E(c,null,s,{kind:"getter",name:"direction",static:!1,private:!1,access:{has:o=>"direction"in o,get:o=>o.direction},metadata:a},null,t),E(c,null,n,{kind:"setter",name:"kernel",static:!1,private:!1,access:{has:o=>"kernel"in o,set:(o,l)=>{o.kernel=l}},metadata:a},null,t),E(c,null,r,{kind:"setter",name:"packedFloat",static:!1,private:!1,access:{has:o=>"packedFloat"in o,set:(o,l)=>{o.packedFloat=l}},metadata:a},null,t),a&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:a})})(),c})();class ue extends Y{constructor(e,t=null,s,n,r){super({...r,name:e,engine:t||N.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:ue.FragmentUrl,uniforms:ue.Uniforms}),this.direction=s,this.kernel=n,this.textureWidth=0,this.textureHeight=0}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(x(()=>import("./glowBlurPostProcess.fragment-CO8bNLy5.js"),__vite__mapDeps([15,3])))):t.push(x(()=>import("./glowBlurPostProcess.fragment-BW_bOeld.js"),__vite__mapDeps([16,3]))),super._gatherImports(e,t)}bind(){super.bind(),this._drawWrapper.effect.setFloat2("screenSize",this.textureWidth,this.textureHeight),this._drawWrapper.effect.setVector2("direction",this.direction),this._drawWrapper.effect.setFloat("blurWidth",this.kernel)}}ue.FragmentUrl="glowBlurPostProcess";ue.Uniforms=["screenSize","direction","blurWidth"];class oe{get camera(){return this._options.camera}set camera(e){this._options.camera=e}get renderingGroupId(){return this._options.renderingGroupId}set renderingGroupId(e){this._options.renderingGroupId=e}get objectRenderer(){return this._objectRenderer}get shaderLanguage(){return this._shaderLanguage}setMaterialForRendering(e,t){if(this._objectRenderer.setMaterialForRendering(e,t),Array.isArray(e))for(let s=0;s<e.length;++s){const n=e[s];t?this._materialForRendering[n.uniqueId]=[n,t]:delete this._materialForRendering[n.uniqueId]}else t?this._materialForRendering[e.uniqueId]=[e,t]:delete this._materialForRendering[e.uniqueId]}getEffectIntensity(e){return this._effectIntensity[e.uniqueId]??1}setEffectIntensity(e,t){this._effectIntensity[e.uniqueId]=t}constructor(e,t,s=!1,n=!1,r){this._additionalImportShadersAsync=r,this._vertexBuffers={},this._dontCheckIfReady=!1,this._shouldRender=!0,this._emissiveTextureAndColor={texture:null,color:new fe},this._effectIntensity={},this._postProcesses=[],this.neutralColor=new fe,this.isEnabled=!0,this.disableBoundingBoxesFromEffectLayer=!1,this.onDisposeObservable=new I,this.onBeforeRenderLayerObservable=new I,this.onBeforeComposeObservable=new I,this.onBeforeRenderMeshToEffect=new I,this.onAfterRenderMeshToEffect=new I,this.onAfterComposeObservable=new I,this.onBeforeBlurObservable=new I,this.onAfterBlurObservable=new I,this._shaderLanguage=0,this._materialForRendering={},this._shadersLoaded=!1,this.name=e,this._scene=t||N.LastCreatedScene,this._dontCheckIfReady=n,this._scene.getEngine().isWebGPU&&!s&&!oe.ForceGLSL&&(this._shaderLanguage=1),this._engine=this._scene.getEngine(),this._mergeDrawWrapper=[],this._generateIndexBuffer(),this._generateVertexBuffer()}getEffectName(){return""}isReady(e,t){return!0}needStencil(){return!1}_createMergeEffect(){throw new Error("Effect Layer: no merge effect defined")}_createTextureAndPostProcesses(){}_internalCompose(e,t){}
8_setEmissiveTextureAndColor(e,t,s){}_numInternalDraws(){return 1}_init(e){this._options={mainTextureRatio:.5,mainTextureFixedSize:0,mainTextureType:0,mainTextureFormat:5,alphaBlendingMode:2,camera:null,renderingGroupId:-1,...e},this._createObjectRenderer()}_generateIndexBuffer(){const e=[];e.push(0),e.push(1),e.push(2),e.push(0),e.push(2),e.push(3),this._indexBuffer=this._engine.createIndexBuffer(e)}_generateVertexBuffer(){const e=[];e.push(1,1),e.push(-1,1),e.push(-1,-1),e.push(1,-1);const t=new A(this._engine,e,A.PositionKind,!1,!1,2);this._vertexBuffers[A.PositionKind]=t}_createObjectRenderer(){this._objectRenderer=new G(`ObjectRenderer for thin effect layer ${this.name}`,this._scene,{doNotChangeAspectRatio:!0}),this._objectRenderer.activeCamera=this._options.camera,this._objectRenderer.renderParticles=!1,this._objectRenderer.renderList=null;const e=st(this._scene.getBoundingBoxRenderer);let t=!1;e&&(this._objectRenderer.onBeforeRenderObservable.add(()=>{t=this._scene.getBoundingBoxRenderer().enabled,this._scene.getBoundingBoxRenderer().enabled=!this.disableBoundingBoxesFromEffectLayer&&t}),this._objectRenderer.onAfterRenderObservable.add(()=>{this._scene.getBoundingBoxRenderer().enabled=t})),this._objectRenderer.customIsReadyFunction=(s,n,r)=>{if((r||n===0)&&s.subMeshes)for(let a=0;a<s.subMeshes.length;++a){const o=s.subMeshes[a],l=o.getMaterial(),i=o.getRenderingMesh();if(!l)continue;const g=i._getInstancesRenderList(o._id,!!o.getReplacementMesh()).hardwareInstancedRendering[o._id]||i.hasThinInstances;if(this._setEmissiveTextureAndColor(i,o,l),!this._isSubMeshReady(o,g,this._emissiveTextureAndColor.texture))return!1}return!0},this._objectRenderer.customRenderFunction=(s,n,r,a)=>{this.onBeforeRenderLayerObservable.notifyObservers(this);let o;const l=this._scene.getEngine();if(a.length){for(l.setColorWrite(!1),o=0;o<a.length;o++)this._renderSubMesh(a.data[o]);l.setColorWrite(!0)}for(o=0;o<s.length;o++)this._renderSubMesh(s.data[o]);for(o=0;o<n.length;o++)this._renderSubMesh(n.data[o]);const i=l.getAlphaMode();for(o=0;o<r.length;o++){const h=r.data[o],g=h.getMaterial();if(g&&g.needDepthPrePass){const u=g.getScene().getEngine();u.setColorWrite(!1),this._renderSubMesh(h),u.setColorWrite(!0)}this._renderSubMesh(h,!0)}l.setAlphaMode(i)}}_addCustomEffectDefines(e){}_internalIsSubMeshReady(e,t,s){const n=this._scene.getEngine(),r=e.getMesh(),a=r._internalAbstractMeshDataInfo._materialForRenderPass?.[n.currentRenderPassId];if(a)return a.isReadyForSubMesh(r,e,t);const o=e.getMaterial();if(!o)return!1;if(this._useMeshMaterial(e.getRenderingMesh())){o._glowModeEnabled=!0;const v=o.isReadyForSubMesh(e.getMesh(),e,t);return o._glowModeEnabled=!1,v}const l=[],i=[A.PositionKind];let h=!1,g=!1;const u=!1;if(o){const v=o.needAlphaTestingForMesh(r),L=o.getAlphaTestTexture(),y=L&&L.hasAlpha&&(o.useAlphaFromDiffuseTexture||o._useAlphaFromAlbedoTexture);L&&(v||y)&&(l.push("#define DIFFUSE"),r.isVerticesDataPresent(A.UV2Kind)&&L.coordinatesIndex===1?(l.push("#define DIFFUSEUV2"),g=!0):r.isVerticesDataPresent(A.UVKind)&&(l.push("#define DIFFUSEUV1"),h=!0),v&&(l.push("#define ALPHATEST"),l.push("#define ALPHATESTVALUE 0.4")),L.gammaSpace||l.push("#define DIFFUSE_ISLINEAR"));const M=o.opacityTexture;M&&(l.push("#define OPACITY"),r.isVerticesDataPresent(A.UV2Kind)&&M.coordinatesIndex===1?(l.push("#define OPACITYUV2"),g=!0):r.isVerticesDataPresent(A.UVKind)&&(l.push("#define OPACITYUV1"),h=!0))}s&&(l.push("#define EMISSIVE"),r.isVerticesDataPresent(A.UV2Kind)&&s.coordinatesIndex===1?(l.push("#define EMISSIVEUV2"),g=!0):r.isVerticesDataPresent(A.UVKind)&&(l.push("#define EMISSIVEUV1"),h=!0),s.gammaSpace||l.push("#define EMISSIVE_ISLINEAR")),r.useVertexColors&&r.isVerticesDataPresent(A.ColorKind)&&r.hasVertexAlpha&&o.transparencyMode!==le.MATERIAL_OPAQUE&&(i.push(A.ColorKind),l.push("#define VERTEXALPHA")),h&&(i.push(A.UVKind),l.push("#define UV1")),g&&(i.push(A.UV2Kind),l.push("#define UV2"));const _=new He;if(r.useBones&&r.computeBonesUsingShaders){i.push(A.MatricesIndicesKind),i.push(A.MatricesWeightsKind),r.numBoneInfluencers>4&&(i.push(A.MatricesIndicesExtraKind),i.push(A.MatricesWeightsExtraKind)
8),l.push("#define NUM_BONE_INFLUENCERS "+r.numBoneInfluencers);const v=r.skeleton;v&&v.isUsingTextureForMatrices?l.push("#define BONETEXTURE"):l.push("#define BonesPerMesh "+(v?v.bones.length+1:0)),r.numBoneInfluencers>0&&_.addCPUSkinningFallback(0,r)}else l.push("#define NUM_BONE_INFLUENCERS 0");const p=r.morphTargetManager?Ne(r.morphTargetManager,l,i,r,!0,!1,!1,h,g,u):0;t&&(l.push("#define INSTANCES"),We(i),e.getRenderingMesh().hasThinInstances&&l.push("#define THIN_INSTANCES"));const m=r.bakedVertexAnimationManager;m&&m.isEnabled&&(l.push("#define BAKED_VERTEX_ANIMATION_TEXTURE"),t&&i.push("bakedVertexAnimationSettingsInstanced")),Ue(o,this._scene,l),this._addCustomEffectDefines(l);const f=e._getDrawWrapper(void 0,!0),b=f.defines,P=l.join(` 9`);if(b!==P){const v=["world","mBones","viewProjection","glowColor","morphTargetInfluences","morphTargetCount","boneTextureInfo","diffuseMatrix","emissiveMatrix","opacityMatrix","opacityIntensity","morphTargetTextureInfo","morphTargetTextureIndices","bakedVertexAnimationSettings","bakedVertexAnimationTextureSizeInverted","bakedVertexAnimationTime","bakedVertexAnimationTexture","glowIntensity"];ke(v),f.setEffect(this._engine.createEffect("glowMapGeneration",i,v,["diffuseSampler","emissiveSampler","opacitySampler","boneSampler","morphTargets","bakedVertexAnimationTexture"],P,_,void 0,void 0,{maxSimultaneousMorphTargets:p},this._shaderLanguage,this._shadersLoaded?void 0:async()=>{await this._importShadersAsync(),this._shadersLoaded=!0}),P)}return f.effect.isReady()&&(this._dontCheckIfReady||!this._dontCheckIfReady&&this.isLayerReady())}_isSubMeshReady(e,t,s){return this._internalIsSubMeshReady(e,t,s)}async _importShadersAsync(){this._shaderLanguage===1?await Promise.all([x(()=>import("./glowMapGeneration.vertex-DbTPQ1eW.js"),__vite__mapDeps([17,3,18,19])),x(()=>import("./glowMapGeneration.fragment-DTbR5r1W.js"),__vite__mapDeps([20,3,21,22]))]):await Promise.all([x(()=>import("./glowMapGeneration.vertex-CyuX0Jnt.js"),__vite__mapDeps([23,3,24,1,2,5,6,25,26])),x(()=>import("./glowMapGeneration.fragment-FDi7NBIb.js"),__vite__mapDeps([27,3,26,24,1,2,5,6,25]))]),this._additionalImportShadersAsync?.()}_internalIsLayerReady(){let e=!0;for(let s=0;s<this._postProcesses.length;s++)e=this._postProcesses[s].isReady()&&e;const t=this._numInternalDraws();for(let s=0;s<t;++s){let n=this._mergeDrawWrapper[s];n||(n=this._mergeDrawWrapper[s]=new ft(this._engine),n.setEffect(this._createMergeEffect())),e=n.effect.isReady()&&e}return e}_disposeMergeEffects(){for(const e of this._mergeDrawWrapper)e.dispose();this._mergeDrawWrapper=[]}isLayerReady(){return this._internalIsLayerReady()}compose(){if(!this._dontCheckIfReady&&!this.isLayerReady())return!1;const e=this._scene.getEngine(),t=this._numInternalDraws();this.onBeforeComposeObservable.notifyObservers(this);const s=e.getAlphaMode();for(let n=0;n<t;++n){const r=this._mergeDrawWrapper[n];e.enableEffect(r),e.setState(!1),e.bindBuffers(this._vertexBuffers,this._indexBuffer,r.effect),e.setAlphaMode(this._options.alphaBlendingMode),this._internalCompose(r.effect,n)}return e.setAlphaMode(s),this.onAfterComposeObservable.notifyObservers(this),!0}_internalHasMesh(e){return this.renderingGroupId===-1||e.renderingGroupId===this.renderingGroupId}hasMesh(e){return this._internalHasMesh(e)}_internalShouldRender(){return this.isEnabled&&this._shouldRender}shouldRender(){return this._internalShouldRender()}_shouldRenderMesh(e){return!0}_internalCanRenderMesh(e,t){return!t.needAlphaBlendingForMesh(e)}_canRenderMesh(e,t){return this._internalCanRenderMesh(e,t)}_renderSubMesh(e,t=!1){if(!this._internalShouldRender())return;const s=e.getMaterial(),n=e.getMesh(),r=e.getReplacementMesh(),a=e.getRenderingMesh(),o=e.getEffectiveMesh(),l=this._scene,i=l.getEngine();if(o._internalAbstractMeshDataInfo._isActiveIntermediate=!1,!s||!this._canRenderMesh(a,s))return;let h=s._getEffectiveOrientation(a);o._getWorldMatrixDeterminant()<0&&(h=h===le.ClockWiseSideOrientation?le.CounterClockWiseSideOrientation:le.ClockWiseSideOrientation);const u=h===le.ClockWiseSideOrientation,_=a._getInstancesRenderList(e._id,!!r);if(_.mustReturn||!this._shouldRenderMesh(a))return;const p=_.hardwareInstancedRendering[e._id]||a.hasThinInstances;
9if(this._setEmissiveTextureAndColor(a,e,s),this.onBeforeRenderMeshToEffect.notifyObservers(n),this._useMeshMaterial(a))e.getMaterial()._glowModeEnabled=!0,a.render(e,t,r||void 0),e.getMaterial()._glowModeEnabled=!1;else if(this._isSubMeshReady(e,p,this._emissiveTextureAndColor.texture)){const m=o._internalAbstractMeshDataInfo._materialForRenderPass?.[i.currentRenderPassId];let f=e._getDrawWrapper();if(!f&&m&&(f=m._getDrawWrapper()),!f)return;const b=f.effect;i.enableEffect(f),i.setState(s.backFaceCulling,s.zOffset,void 0,u,s.cullBackFaces,s.stencil,s.zOffsetUnits);const P=i.getDepthWrite(),T=i.getColorWrite(),v=i.getDepthFunction()||0;if(s.disableDepthWrite?i.setDepthWrite(!1):s.forceDepthWrite&&i.setDepthWrite(!0),s.disableColorWrite&&i.setColorWrite(!1),s.depthFunction!==0&&i.setDepthFunction(s.depthFunction),p||a._bind(e,b,s.fillMode),m?m.bindForSubMesh(o.getWorldMatrix(),o,e):(b.setMatrix("viewProjection",l.getTransformMatrix()),b.setMatrix("world",o.getWorldMatrix()),b.setFloat4("glowColor",this._emissiveTextureAndColor.color.r,this._emissiveTextureAndColor.color.g,this._emissiveTextureAndColor.color.b,this._emissiveTextureAndColor.color.a)),!m){const L=s.needAlphaTestingForMesh(o),y=s.getAlphaTestTexture(),M=y&&y.hasAlpha&&(s.useAlphaFromDiffuseTexture||s._useAlphaFromAlbedoTexture);if(y&&(L||M)){b.setTexture("diffuseSampler",y);const O=y.getTextureMatrix();
9O&&b.setMatrix("diffuseMatrix",O)}const F=s.opacityTexture;if(F){b.setTexture("opacitySampler",F),b.setFloat("opacityIntensity",F.level);const O=F.getTextureMatrix();O&&b.setMatrix("opacityMatrix",O)}this._emissiveTextureAndColor.texture&&(b.setTexture("emissiveSampler",this._emissiveTextureAndColor.texture),b.setMatrix("emissiveMatrix",this._emissiveTextureAndColor.texture.getTextureMatrix())),Ge(a,b),Ve(a,b),a.morphTargetManager&&a.morphTargetManager.isUsingTextureForTargets&&a.morphTargetManager._bind(b);const U=e.getMesh().bakedVertexAnimationManager;U&&U.isEnabled&&U.bind(b,p),t&&i.setAlphaMode(s.alphaMode),b.setFloat("glowIntensity",this.getEffectIntensity(a)),je(b,s,l)}a._processRendering(o,e,b,s.fillMode,_,p,(L,y)=>b.setMatrix("world",y)),(s.disableDepthWrite||s.forceDepthWrite)&&i.setDepthWrite(P),s.disableColorWrite&&i.setColorWrite(T),s.depthFunction!==0&&i.setDepthFunction(v)}else this._objectRenderer.resetRefreshCounter();this.onAfterRenderMeshToEffect.notifyObservers(n)}_useMeshMaterial(e){return!1}_rebuild(){const e=this._vertexBuffers[A.PositionKind];e&&e._rebuild(),this._generateIndexBuffer()}dispose(){const e=this._vertexBuffers[A.PositionKind];e&&(e.dispose(),this._vertexBuffers[A.PositionKind]=null),this._indexBuffer&&(this._scene.getEngine()._releaseBuffer(this._indexBuffer),this._indexBuffer=null),this._disposeMergeEffects(),this._objectRenderer.dispose(),this.onDisposeObservable.notifyObservers(this),this.onDisposeObservable.clear(),this.onBeforeRenderLayerObservable.clear(),this.onBeforeComposeObservable.clear(),this.onBeforeRenderMeshToEffect.clear(),this.onAfterRenderMeshToEffect.clear(),this.onAfterComposeObservable.clear()}}oe.ForceGLSL=!1;class de extends oe{get ldrMerge(){return this._options.ldrMerge}set blurKernelSize(e){if(e===this._options.blurKernelSize)return;this._options.blurKernelSize=e;const t=this._getEffectiveBlurKernelSize();this._horizontalBlurPostprocess1.kernel=t,this._verticalBlurPostprocess1.kernel=t,this._horizontalBlurPostprocess2.kernel=t,this._verticalBlurPostprocess2.kernel=t}get blurKernelSize(){return this._options.blurKernelSize}set intensity(e){this._intensity=e}get intensity(){return this._intensity}constructor(e,t,s,n=!1){super(e,t,!1,n),this._intensity=1,this._includedOnlyMeshes=[],this._excludedMeshes=[],this._meshesUsingTheirOwnMaterials=[],this._renderPassId=0,this.neutralColor=new fe(0,0,0,1),this._options={mainTextureRatio:.5,mainTextureFixedSize:0,mainTextureType:0,mainTextureFormat:5,blurKernelSize:32,camera:null,renderingGroupId:-1,ldrMerge:!1,alphaBlendingMode:1,excludeByDefault:!1,...s},this._init(this._options),n&&this._createTextureAndPostProcesses()}getClassName(){return"GlowLayer"}async _importShadersAsync(){this._shaderLanguage===1?await Promise.all([x(()=>import("./glowMapMerge.fragment-BWUcQfE3.js"),__vite__mapDeps([28,3])),x(()=>import("./glowMapMerge.vertex-CjqZRTuD.js"),__vite__mapDeps([29,3])),x(()=>import("./glowBlurPostProcess.fragment-CO8bNLy5.js"),__vite__mapDeps([15,3]))]):await Promise.all([x(()=>import("./glowMapMerge.fragment-DSab_Dwl.js"),__vite__mapDeps([30,3])),x(()=>import("./glowMapMerge.vertex-C0BA9cGk.js"),__vite__mapDeps([31,3])),x(()=>import("./glowBlurPostProcess.fragment-BW_bOeld.js"),__vite__mapDeps([16,3]))]),await super._importShadersAsync()}getEffectName(){return de.EffectName}_internalShouldRender(){return this._options.excludeByDefault&&!this._includedOnlyMeshes.length?!1:super._internalShouldRender()}_createMergeEffect(){let e=`#define EMISSIVE 10`;return this._options.ldrMerge&&(e+=`#define LDR 11`),this._engine.createEffect("glowMapMerge",[A.PositionKind],["offset"],["textureSampler","textureSampler2"],e,void 0,void 0,void 0,void 0,this.shaderLanguage,this._shadersLoaded?void 0:async()=>{await this._importShadersAsync(),this._shadersLoaded=!0})}_createTextureAndPostProcesses(){const e=this._getEffectiveBlurKernelSize();this._horizontalBlurPostprocess1=new D("GlowLayerHBP1",this._scene.getEngine(),new j(1,0),e),this._verticalBlurPostprocess1=new D("GlowLayerVBP1",this._scene.getEngine(),new j(0,1),e),this._horizontalBlurPostprocess2=new D("GlowLayerHBP2",this._scene.getEngine(),new j(1,0),e),this._verticalBlurPostprocess2=new D("GlowLayerVBP2",this._scene.getEngine(),new j(0,1),e),this._postProcesses=[this._horizontalBlurPostprocess1,this._verticalBlurPostprocess1,this._horizontalBlurPostprocess2,this._verticalBlurPostprocess2]}_getEffectiveBlurKernelSize(){return this._options.blurKernelSize/2}isReady(e,t){const s=e.getMaterial(),n=e.getRenderingMesh();if(!s||!n)return!1;const r=s.emissiveTexture;return super._isSubMeshReady(e,t,r)}_canRenderMesh(e,t){return!0}_internalCompose(e){this.bindTexturesForCompose(e),e.setFloat("offset",this._intensity);const t=this._engine,s=t.getStencilBuffer();t.setStencilBuffer(!1),t.drawElementsType(le.TriangleFillMode,0,6),t.setStencilBuffer(s)}
11_setEmissiveTextureAndColor(e,t,s){let n=1;if(this.customEmissiveTextureSelector?this._emissiveTextureAndColor.texture=this.customEmissiveTextureSelector(e,t,s):s?(this._emissiveTextureAndColor.texture=s.emissiveTexture,this._emissiveTextureAndColor.texture&&(n=this._emissiveTextureAndColor.texture.level)):this._emissiveTextureAndColor.texture=null,this.customEmissiveColorSelector)this.customEmissiveColorSelector(e,t,s,this._emissiveTextureAndColor.color);else if(s.emissiveColor){const r=s.emissiveIntensity??1;n*=r,this._emissiveTextureAndColor.color.set(s.emissiveColor.r*n,s.emissiveColor.g*n,s.emissiveColor.b*n,s.alpha)}else this._emissiveTextureAndColor.color.set(this.neutralColor.r,this.neutralColor.g,this.neutralColor.b,this.neutralColor.a)}_shouldRenderMesh(e){return this.hasMesh(e)}_addCustomEffectDefines(e){e.push("#define GLOW")}addExcludedMesh(e){this._excludedMeshes.indexOf(e.uniqueId)===-1&&this._excludedMeshes.push(e.uniqueId)}removeExcludedMesh(e){const t=this._excludedMeshes.indexOf(e.uniqueId);t!==-1&&this._excludedMeshes.splice(t,1)}addIncludedOnlyMesh(e){this._includedOnlyMeshes.indexOf(e.uniqueId)===-1&&this._includedOnlyMeshes.push(e.uniqueId)}removeIncludedOnlyMesh(e){const t=this._includedOnlyMeshes.indexOf(e.uniqueId);t!==-1&&this._includedOnlyMeshes.splice(t,1)}setExcludedByDefault(e){this._options.excludeByDefault=e}hasMesh(e){return super.hasMesh(e)?this._includedOnlyMeshes.length?this._includedOnlyMeshes.indexOf(e.uniqueId)!==-1:this._excludedMeshes.length?this._excludedMeshes.indexOf(e.uniqueId)===-1:!0:!1}_useMeshMaterial(e){return e.material?._supportGlowLayer?!0:this._meshesUsingTheirOwnMaterials.length==0?!1:this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId)>-1}referenceMeshToUseItsOwnMaterial(e){e.resetDrawCache(this._renderPassId),this._meshesUsingTheirOwnMaterials.push(e.uniqueId),e.onDisposeObservable.add(()=>{this._disposeMesh(e)})}unReferenceMeshFromUsingItsOwnMaterial(e,t){let s=this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId);for(;s>=0;)this._meshesUsingTheirOwnMaterials.splice(s,1),s=this._meshesUsingTheirOwnMaterials.indexOf(e.uniqueId);e.resetDrawCache(t)}_disposeMesh(e){this.removeIncludedOnlyMesh(e),this.removeExcludedMesh(e)}}de.EffectName="GlowLayer";de.DefaultBlurKernelSize=32;class ut{constructor(e){this.name=z.NAME_EFFECTLAYER,this._renderEffects=!1,this._needStencil=!1,this._previousStencilState=!1,this.scene=e||N.LastCreatedScene,this.scene&&(this._engine=this.scene.getEngine())}register(){this.scene._isReadyForMeshStage.registerStep(z.STEP_ISREADYFORMESH_EFFECTLAYER,this,this._isReadyForMesh),this.scene._cameraDrawRenderTargetStage.registerStep(z.STEP_CAMERADRAWRENDERTARGET_EFFECTLAYER,this,this._renderMainTexture),this.scene._beforeCameraDrawStage.registerStep(z.STEP_BEFORECAMERADRAW_EFFECTLAYER,this,this._setStencil),this.scene._afterRenderingGroupDrawStage.registerStep(z.STEP_AFTERRENDERINGGROUPDRAW_EFFECTLAYER_DRAW,this,this._drawRenderingGroup),this.scene._afterCameraDrawStage.registerStep(z.STEP_AFTERCAMERADRAW_EFFECTLAYER,this,this._setStencilBack),this.scene._afterCameraDrawStage.registerStep(z.STEP_AFTERCAMERADRAW_EFFECTLAYER_DRAW,this,this._drawCamera)}rebuild(){const e=this.scene.effectLayers;for(const t of e)t._rebuild()}serialize(e){e.effectLayers=[];const t=this.scene.effectLayers;for(const s of t)s.serialize&&e.effectLayers.push(s.serialize())}addFromContainer(e){if(e.effectLayers)for(const t of e.effectLayers)this.scene.addEffectLayer(t)}removeFromContainer(e,t){if(e.effectLayers)for(const s of e.effectLayers)this.scene.removeEffectLayer(s),t&&s.dispose()}dispose(){const e=this.scene.effectLayers;for(;e.length;)e[0].dispose()}_isReadyForMesh(e,t){const s=this._engine.currentRenderPassId,n=this.scene.effectLayers;for(const r of n){if(!r.hasMesh(e))continue;const a=r._mainTexture;this._engine.currentRenderPassId=a.renderPassId;for(const o of e.subMeshes)if(!r.isReady(o,t))return this._engine.currentRenderPassId=s,!1}return this._engine.currentRenderPassId=s,!0}_renderMainTexture(e){this._renderEffects=!1,this._needStencil=!1;let t=!1;const s=this.scene.effectLayers;if(s&&s.length>0){this._previousStencilState=this._engine.getStencilBuffer();for(const n of s)if(n.shouldRender()&&(!n.camera||n.camera.cameraRigMode===be.RIG_MODE_NONE&&e===n.camera||n.camera.cameraRigMode!==be.RIG_MODE_NONE&&n.camera._rigCameras.indexOf(e)>-1)){this._renderEffects=!0,this._needStencil=this._needStencil||n.needStencil();const r=n._mainTexture;r._shouldRender()&&(this.scene.incrementRenderId(),r.render(!1,!1),t=!0)}this.scene.incrementRenderId()}return t}_setStencil(){this._needStencil&&this._engine.setStencilBuffer(!0)}_setStencilBack(){this._needStencil&&this._engine.setStencilBuffer(this._previousStencilState)}_draw(e){if(this._renderEffects){this._engine.setDepthBuffer(!1);const t=this.scene.effectLayers;for(let s=0;s<t.length;s++){const n=t[s];n.renderingGroupId===e&&n.shouldRender()&&n.render()}this._engine.setDepthBuffer(!0)}}_drawCamera(){this._renderEffects&&this._draw(-1)}_drawRenderingGroup(e){!this.scene._isInIntermediateRendering()&&this._renderEffects&&this._draw(e)}}let xe=!1;function _t(c){xe||(xe=!0,c._SceneComponentInitialization=e=>{let t=e._getComponent(z.NAME_EFFECTLAYER);t||(t=new ut(e),e._addComponent(t))})}let gt=(()=>{var c;let e=[],t,s,n,r,a,o;return c=class{get _shouldRender(){return this._thinEffectLayer._shouldRender}set _shouldRender(i){this._thinEffectLayer._shouldRender=i}
11get _emissiveTextureAndColor(){return this._thinEffectLayer._emissiveTextureAndColor}set _emissiveTextureAndColor(i){this._thinEffectLayer._emissiveTextureAndColor=i}get _effectIntensity(){return this._thinEffectLayer._effectIntensity}set _effectIntensity(i){this._thinEffectLayer._effectIntensity=i}static get ForceGLSL(){return oe.ForceGLSL}static set ForceGLSL(i){oe.ForceGLSL=i}get name(){return this._thinEffectLayer.name}set name(i){this._thinEffectLayer.name=i}get neutralColor(){return this._thinEffectLayer.neutralColor}set neutralColor(i){this._thinEffectLayer.neutralColor=i}get isEnabled(){return this._thinEffectLayer.isEnabled}set isEnabled(i){this._thinEffectLayer.isEnabled=i}get camera(){return this._thinEffectLayer.camera}get renderingGroupId(){return this._thinEffectLayer.renderingGroupId}set renderingGroupId(i){this._thinEffectLayer.renderingGroupId=i}get disableBoundingBoxesFromEffectLayer(){return this._thinEffectLayer.disableBoundingBoxesFromEffectLayer}set disableBoundingBoxesFromEffectLayer(i){this._thinEffectLayer.disableBoundingBoxesFromEffectLayer=i}get mainTexture(){return this._mainTexture}get _shaderLanguage(){return this._thinEffectLayer.shaderLanguage}get shaderLanguage(){return this._thinEffectLayer.shaderLanguage}setMaterialForRendering(i,h){this._thinEffectLayer.setMaterialForRendering(i,h)}getEffectIntensity(i){return this._thinEffectLayer.getEffectIntensity(i)}setEffectIntensity(i,h){this._thinEffectLayer.setEffectIntensity(i,h)}constructor(i,h,g=!1,u){this._effectLayerOptions=B(this,e),this._mainTextureCreatedSize={width:0,height:0},this._maxSize=0,this._mainTextureDesiredSize={width:0,height:0},this._postProcesses=[],this._textures=[],this.uniqueId=ze.UniqueId,this.onDisposeObservable=new I,this.onBeforeRenderMainTextureObservable=new I,this.onBeforeComposeObservable=new I,this.onBeforeRenderMeshToEffect=new I,this.onAfterRenderMeshToEffect=new I,this.onAfterComposeObservable=new I,this.onSizeChangedObservable=new I,this._internalThinEffectLayer=!u,u||(u=new oe(i,h,g,!1,this._importShadersAsync.bind(this)),u.getEffectName=this.getEffectName.bind(this),u.isReady=this.isReady.bind(this),u._createMergeEffect=this._createMergeEffect.bind(this),u._createTextureAndPostProcesses=this._createTextureAndPostProcesses.bind(this),u._internalCompose=this._internalRender.bind(this),u._setEmissiveTextureAndColor=this._setEmissiveTextureAndColor.bind(this),u._numInternalDraws=this._numInternalDraws.bind(this),u._addCustomEffectDefines=this._addCustomEffectDefines.bind(this),u.hasMesh=this.hasMesh.bind(this),u.shouldRender=this.shouldRender.bind(this),u._shouldRenderMesh=this._shouldRenderMesh.bind(this),u._canRenderMesh=this._canRenderMesh.bind(this),u._useMeshMaterial=this._useMeshMaterial.bind(this)),this._thinEffectLayer=u,this.name=i,this._scene=h||N.LastCreatedScene,_t(c),c._SceneComponentInitialization(this._scene),this._engine=this._scene.getEngine(),this._maxSize=this._engine.getCaps().maxTextureSize,this._scene.addEffectLayer(this),this._thinEffectLayer.onDisposeObservable.add(()=>{this.onDisposeObservable.notifyObservers(this)}),this._thinEffectLayer.onBeforeRenderLayerObservable.add(()=>{this.onBeforeRenderMainTextureObservable.notifyObservers(this)}),this._thinEffectLayer.onBeforeComposeObservable.add(()=>{this.onBeforeComposeObservable.notifyObservers(this)}),this._thinEffectLayer.onBeforeRenderMeshToEffect.add(_=>{this.onBeforeRenderMeshToEffect.notifyObservers(_)}),this._thinEffectLayer.onAfterRenderMeshToEffect.add(_=>{this.onAfterRenderMeshToEffect.notifyObservers(_)}),this._thinEffectLayer.onAfterComposeObservable.add(()=>{this.onAfterComposeObservable.notifyObservers(this)})}get _shadersLoaded(){return this._thinEffectLayer._shadersLoaded}set _shadersLoaded(i){this._thinEffectLayer._shadersLoaded=i}_numInternalDraws(){return this._internalThinEffectLayer?1:this._thinEffectLayer._numInternalDraws()}_init(i){this._effectLayerOptions={mainTextureRatio:.5,alphaBlendingMode:2,camera:null,renderingGroupId:-1,mainTextureType:0,mainTextureFormat:5,generateStencilBuffer:!1,...i},this._setMainTextureSize(),this._thinEffectLayer._init(i),this._createMainTexture(),this._createTextureAndPostProcesses()}_setMainTextureSize(){this._effectLayerOptions.mainTextureFixedSize?(this._mainTextureDesiredSize.width=this._effectLayerOptions.mainTextureFixedSize,this._mainTextureDesiredSize.height=this._effectLayerOptions.mainTextureFixedSize):(this._mainTextureDesiredSize.width=this._engine.getRenderWidth()*this._effectLayerOptions.mainTextureRatio,this._mainTextureDesiredSize.height=this._engine.getRenderHeight()*this._effectLayerOptions.mainTextureRatio,this._mainTextureDesiredSize.width=this._engine.needPOTTextures?pe(this._mainTextureDesiredSize.width,this._maxSize):this._mainTextureDesiredSize.width,this._mainTextureDesiredSize.height=this._engine.needPOTTextures?pe(this._mainTextureDesiredSize.height,this._maxSize):this._mainTextureDesiredSize.height),this._mainTextureDesiredSize.width=Math.floor(this._mainTextureDesiredSize.width),this._mainTextureDesiredSize.height=Math.floor(this._mainTextureDesiredSize.height)}
11_createMainTexture(){this._mainTexture=new K("EffectLayerMainRTT",{width:this._mainTextureDesiredSize.width,height:this._mainTextureDesiredSize.height},this._scene,{type:this._effectLayerOptions.mainTextureType,format:this._effectLayerOptions.mainTextureFormat,samplingMode:C.TRILINEAR_SAMPLINGMODE,generateStencilBuffer:this._effectLayerOptions.generateStencilBuffer,existingObjectRenderer:this._thinEffectLayer.objectRenderer}),this._mainTexture.activeCamera=this._effectLayerOptions.camera,this._mainTexture.wrapU=C.CLAMP_ADDRESSMODE,this._mainTexture.wrapV=C.CLAMP_ADDRESSMODE,this._mainTexture.anisotropicFilteringLevel=1,this._mainTexture.updateSamplingMode(C.BILINEAR_SAMPLINGMODE),this._mainTexture.renderParticles=!1,this._mainTexture.renderList=null,this._mainTexture.ignoreCameraViewport=!0,this._mainTexture.onClearObservable.add(i=>{i.clear(this.neutralColor,!0,!0,!0)})}_addCustomEffectDefines(i){}_isReady(i,h,g){return this._internalThinEffectLayer?this._thinEffectLayer._internalIsSubMeshReady(i,h,g):this._thinEffectLayer._isSubMeshReady(i,h,g)}async _importShadersAsync(){}_arePostProcessAndMergeReady(){return this._internalThinEffectLayer?this._thinEffectLayer._internalIsLayerReady():this._thinEffectLayer.isLayerReady()}isLayerReady(){return this._arePostProcessAndMergeReady()&&this._mainTexture.isReady()}render(){this._thinEffectLayer.compose()&&(this._setMainTextureSize(),(this._mainTextureCreatedSize.width!==this._mainTextureDesiredSize.width||this._mainTextureCreatedSize.height!==this._mainTextureDesiredSize.height)&&this._mainTextureDesiredSize.width!==0&&this._mainTextureDesiredSize.height!==0&&(this.onSizeChangedObservable.notifyObservers(this),this._disposeTextureAndPostProcesses(),this._createMainTexture(),this._createTextureAndPostProcesses(),this._mainTextureCreatedSize.width=this._mainTextureDesiredSize.width,this._mainTextureCreatedSize.height=this._mainTextureDesiredSize.height))}hasMesh(i){return this._internalThinEffectLayer?this._thinEffectLayer._internalHasMesh(i):this._thinEffectLayer.hasMesh(i)}shouldRender(){return this._internalThinEffectLayer?this._thinEffectLayer._internalShouldRender():this._thinEffectLayer.shouldRender()}_shouldRenderMesh(i){return this._internalThinEffectLayer?!0:this._thinEffectLayer._shouldRenderMesh(i)}_canRenderMesh(i,h){return this._internalThinEffectLayer?this._thinEffectLayer._internalCanRenderMesh(i,h):this._thinEffectLayer._canRenderMesh(i,h)}_shouldRenderEmissiveTextureForMesh(){return!0}_useMeshMaterial(i){return this._internalThinEffectLayer?!1:this._thinEffectLayer._useMeshMaterial(i)}_rebuild(){this._thinEffectLayer._rebuild()}_disposeTextureAndPostProcesses(){this._mainTexture.dispose();for(let i=0;i<this._postProcesses.length;i++)this._postProcesses[i]&&this._postProcesses[i].dispose();this._postProcesses=[];for(let i=0;i<this._textures.length;i++)this._textures[i]&&this._textures[i].dispose();this._textures=[]}dispose(){this._thinEffectLayer.dispose(),this._disposeTextureAndPostProcesses(),this._scene.removeEffectLayer(this),this.onDisposeObservable.clear(),this.onBeforeRenderMainTextureObservable.clear(),this.onBeforeComposeObservable.clear(),this.onBeforeRenderMeshToEffect.clear(),this.onAfterRenderMeshToEffect.clear(),this.onAfterComposeObservable.clear(),this.onSizeChangedObservable.clear()}getClassName(){return"EffectLayer"}static Parse(i,h,g){return Z.Instantiate(i.customType).Parse(i,h,g)}},(()=>{const l=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;t=[S()],s=[rt()],n=[S()],r=[it()],a=[S()],o=[S()],E(c,null,t,{kind:"getter",name:"name",static:!1,private:!1,access:{has:i=>"name"in i,get:i=>i.name},metadata:l},null,e),E(c,null,s,{kind:"getter",name:"neutralColor",static:!1,private:!1,access:{has:i=>"neutralColor"in i,get:i=>i.neutralColor},metadata:l},null,e),E(c,null,n,{kind:"getter",name:"isEnabled",static:!1,private:!1,access:{has:i=>"isEnabled"in i,get:i=>i.isEnabled},metadata:l},null,e),E(c,null,r,{kind:"getter",name:"camera",static:!1,private:!1,access:{has:i=>"camera"in i,get:i=>i.camera},metadata:l},null,e),E(c,null,a,{kind:"getter",name:"renderingGroupId",static:!1,private:!1,access:{has:i=>"renderingGroupId"in i,get:i=>i.renderingGroupId},metadata:l},null,e),E(c,null,o,{kind:"getter",name:"disableBoundingBoxesFromEffectLayer",static:!1,private:!1,access:{has:i=>"disableBoundingBoxesFromEffectLayer"in i,get:i=>i.disableBoundingBoxesFromEffectLayer},metadata:l},null,e),l&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:l})})(),c._SceneComponentInitialization=l=>{throw Fe("EffectLayerSceneComponent")},c})(),pt=(()=>{var c;let e=gt,t=[],s,n,r,a=[],o=[];return c=class extends e{static get EffectName(){return de.EffectName}set blurKernelSize(i){this._thinEffectLayer.blurKernelSize=i}get blurKernelSize(){return this._thinEffectLayer.blurKernelSize}set intensity(i){this._thinEffectLayer.intensity=i}get intensity(){return this._thinEffectLayer.intensity}get customEmissiveColorSelector(){return this._thinEffectLayer.customEmissiveColorSelector}set customEmissiveColorSelector(i){this._thinEffectLayer.customEmissiveColorSelector=i}get customEmissiveTextureSelector(){return this._thinEffectLayer.customEmissiveTextureSelector}set customEmissiveTextureSelector(i){this._thinEffectLayer.customEmissiveTextureSelector=i}constructor(i,h,g){super(i,h,!1,new de(i,h,g)),this._options=(B(this,t),B(this,a,void 0)),this._horizontalBlurPostprocess1=B(this,o),this._options={mainTextureRatio:c.DefaultTextureRatio,blurKernelSize:32,mainTextureFixedSize:void 0,camera:null,mainTextureSamples:1,renderingGroupId:-1,ldrMerge:!1,alphaBlendingMode:1,mainTextureType:0,generateStencilBuffer:!1,excludeByDefault:!1,...g},this._init(this._options)}getEffectName(){return c.EffectName}_createMergeEffect(){return this._thinEffectLayer._createMergeEffect()}_createTextureAndPostProcesses(){this._thinEffectLayer._renderPassId=this._mainTexture.renderPassId;let i=this._mainTextureDesiredSize.width,h=this._mainTextureDesiredSize.height;i=this._engine.needPOTTextures?pe(i,this._maxSize):i,h=this._engine.needPOTTextures?pe(h,this._maxSize):h;let g;
11this._engine.getCaps().textureHalfFloatRender?g=2:g=0,this._blurTexture1=new K("GlowLayerBlurRTT",{width:i,height:h},this._scene,!1,!0,g),this._blurTexture1.wrapU=C.CLAMP_ADDRESSMODE,this._blurTexture1.wrapV=C.CLAMP_ADDRESSMODE,this._blurTexture1.updateSamplingMode(C.BILINEAR_SAMPLINGMODE),this._blurTexture1.renderParticles=!1,this._blurTexture1.ignoreCameraViewport=!0;const u=Math.floor(i/2),_=Math.floor(h/2);this._blurTexture2=new K("GlowLayerBlurRTT2",{width:u,height:_},this._scene,!1,!0,g),this._blurTexture2.wrapU=C.CLAMP_ADDRESSMODE,this._blurTexture2.wrapV=C.CLAMP_ADDRESSMODE,this._blurTexture2.updateSamplingMode(C.BILINEAR_SAMPLINGMODE),this._blurTexture2.renderParticles=!1,this._blurTexture2.ignoreCameraViewport=!0,this._textures=[this._blurTexture1,this._blurTexture2],this._thinEffectLayer.bindTexturesForCompose=P=>{P.setTexture("textureSampler",this._blurTexture1),P.setTexture("textureSampler2",this._blurTexture2),P.setFloat("offset",this.intensity)},this._thinEffectLayer._createTextureAndPostProcesses();const p=this._thinEffectLayer._postProcesses[0];this._horizontalBlurPostprocess1=new ae("GlowLayerHBP1",p.direction,p.kernel,{samplingMode:C.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),width:i,height:h,textureType:g,effectWrapper:p}),this._horizontalBlurPostprocess1.width=i,this._horizontalBlurPostprocess1.height=h,this._horizontalBlurPostprocess1.externalTextureSamplerBinding=!0,this._horizontalBlurPostprocess1.onApplyObservable.add(P=>{P.setTexture("textureSampler",this._mainTexture)});const m=this._thinEffectLayer._postProcesses[1];this._verticalBlurPostprocess1=new ae("GlowLayerVBP1",m.direction,m.kernel,{samplingMode:C.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),width:i,height:h,textureType:g,effectWrapper:m});const f=this._thinEffectLayer._postProcesses[2];this._horizontalBlurPostprocess2=new ae("GlowLayerHBP2",f.direction,f.kernel,{samplingMode:C.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),width:u,height:_,textureType:g,effectWrapper:f}),this._horizontalBlurPostprocess2.width=u,this._horizontalBlurPostprocess2.height=_,this._horizontalBlurPostprocess2.externalTextureSamplerBinding=!0,this._horizontalBlurPostprocess2.onApplyObservable.add(P=>{P.setTexture("textureSampler",this._blurTexture1)});const b=this._thinEffectLayer._postProcesses[3];this._verticalBlurPostprocess2=new ae("GlowLayerVBP2",b.direction,b.kernel,{samplingMode:C.BILINEAR_SAMPLINGMODE,engine:this._scene.getEngine(),width:u,height:_,textureType:g,effectWrapper:b}),this._postProcesses=[this._horizontalBlurPostprocess1,this._verticalBlurPostprocess1,this._horizontalBlurPostprocess2,this._verticalBlurPostprocess2],this._postProcesses1=[this._horizontalBlurPostprocess1,this._verticalBlurPostprocess1],this._postProcesses2=[this._horizontalBlurPostprocess2,this._verticalBlurPostprocess2],this._mainTexture.samples=this._options.mainTextureSamples,this._mainTexture.onAfterUnbindObservable.add(()=>{const P=this._blurTexture1.renderTarget;if(P){this._scene.postProcessManager.directRender(this._postProcesses1,P,!0);const T=this._blurTexture2.renderTarget;T&&this._scene.postProcessManager.directRender(this._postProcesses2,T,!0),this._engine.unBindFramebuffer(T??P,!0)}}),this._postProcesses.map(P=>{P.autoClear=!1}),this._mainTextureCreatedSize.width=this._mainTextureDesiredSize.width,this._mainTextureCreatedSize.height=this._mainTextureDesiredSize.height}isReady(i,h){return this._thinEffectLayer.isReady(i,h)}needStencil(){return!1}_canRenderMesh(i,h){return this._thinEffectLayer._canRenderMesh(i,h)}_internalRender(i){this._thinEffectLayer._internalCompose(i)}_setEmissiveTextureAndColor(i,h,g){this._thinEffectLayer._setEmissiveTextureAndColor(i,h,g)}_shouldRenderMesh(i){return this._thinEffectLayer._shouldRenderMesh(i)}_addCustomEffectDefines(i){this._thinEffectLayer._addCustomEffectDefines(i)}addExcludedMesh(i){this._thinEffectLayer.addExcludedMesh(i)}removeExcludedMesh(i){this._thinEffectLayer.removeExcludedMesh(i)}addIncludedOnlyMesh(i){this._thinEffectLayer.addIncludedOnlyMesh(i)}removeIncludedOnlyMesh(i){this._thinEffectLayer.removeIncludedOnlyMesh(i)}setExcludedByDefault(i){this._thinEffectLayer.setExcludedByDefault(i)}hasMesh(i){return this._thinEffectLayer.hasMesh(i)}_useMeshMaterial(i){return this._thinEffectLayer._useMeshMaterial(i)}referenceMeshToUseItsOwnMaterial(i){this._thinEffectLayer.referenceMeshToUseItsOwnMaterial(i)}unReferenceMeshFromUsingItsOwnMaterial(i){this._thinEffectLayer.unReferenceMeshFromUsingItsOwnMaterial(i,this._mainTexture.renderPassId)}_disposeMesh(i){this._thinEffectLayer._disposeMesh(i)}getClassName(){return"GlowLayer"}serialize(){const i=ee.Serialize(this);i.customType="BABYLON.GlowLayer";let h;i.includedMeshes=[];const g=this._thinEffectLayer._includedOnlyMeshes;if(g.length)for(h=0;h<g.length;h++){const _=this._scene.getMeshByUniqueId(g[h]);_&&i.includedMeshes.push(_.id)}i.excludedMeshes=[];const u=this._thinEffectLayer._excludedMeshes;if(u.length)for(h=0;h<u.length;h++){const _=this._scene.getMeshByUniqueId(u[h]);_&&i.excludedMeshes.push(_.id)}return i}static Parse(i,h,g){const u=ee.Parse(()=>new c(i.name,h,i.options),i,h,g);let _;for(_=0;_<i.excludedMeshes.length;_++){const p=h.getMeshById(i.excludedMeshes[_]);p&&u.addExcludedMesh(p)}for(_=0;_<i.includedMeshes.length;_++){const p=h.getMeshById(i.includedMeshes[_]);p&&u.addIncludedOnlyMesh(p)}return u}},(()=>{const l=typeof Symbol=="function"&&Symbol.metadata?Object.create(e[Symbol.metadata]??null):void 0;s=[S()],n=[S()],r=[S("options")],E(c,null,s,{kind:"getter",name:"blurKernelSize",static:!1,private:!1,access:{has:i=>"blurKernelSize"in i,get:i=>i.blurKernelSize},metadata:l}
11,null,t),E(c,null,n,{kind:"getter",name:"intensity",static:!1,private:!1,access:{has:i=>"intensity"in i,get:i=>i.intensity},metadata:l},null,t),E(null,null,r,{kind:"field",name:"_options",static:!1,private:!1,access:{has:i=>"_options"in i,get:i=>i._options,set:(i,h)=>{i._options=h}},metadata:l},a,o),l&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:l})})(),c.DefaultBlurKernelSize=32,c.DefaultTextureRatio=.5,c})();class se extends Y{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(x(()=>import("./sharpen.fragment-WHeUnM61.js"),__vite__mapDeps([32,3])))):t.push(x(()=>import("./sharpen.fragment-_1RHKVDs.js"),__vite__mapDeps([33,3])))}constructor(e,t=null,s){super({...s,name:e,engine:t||N.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:se.FragmentUrl,uniforms:se.Uniforms}),this.colorAmount=1,this.edgeAmount=.3,this.textureWidth=0,this.textureHeight=0}bind(e=!1){super.bind(e);const t=this._drawWrapper.effect;t.setFloat2("screenSize",this.textureWidth,this.textureHeight),t.setFloat2("sharpnessAmounts",this.edgeAmount,this.colorAmount)}}se.FragmentUrl="sharpen";se.Uniforms=["sharpnessAmounts","screenSize"];let mt=(()=>{var c;let e=q,t=[],s,n;return c=class extends e{get colorAmount(){return this._effectWrapper.colorAmount}set colorAmount(a){this._effectWrapper.colorAmount=a}get edgeAmount(){return this._effectWrapper.edgeAmount}set edgeAmount(a){this._effectWrapper.edgeAmount=a}getClassName(){return"SharpenPostProcess"}constructor(a,o,l,i,h,g,u=0,_=!1){const p={uniforms:se.Uniforms,size:typeof o=="number"?o:void 0,camera:l,samplingMode:i,engine:h,reusable:g,textureType:u,blockCompilation:_,...o};super(a,se.FragmentUrl,{effectWrapper:typeof o=="number"||!o.effectWrapper?new se(a,h,p):void 0,...p}),B(this,t),this.onApply=m=>{this._effectWrapper.textureWidth=this.width,this._effectWrapper.textureHeight=this.height}}static _Parse(a,o,l,i){return ee.Parse(()=>new c(a.name,a.options,o,a.renderTargetSamplingMode,l.getEngine(),a.textureType,a.reusable),a,l,i)}},(()=>{const r=typeof Symbol=="function"&&Symbol.metadata?Object.create(e[Symbol.metadata]??null):void 0;s=[S()],n=[S()],E(c,null,s,{kind:"getter",name:"colorAmount",static:!1,private:!1,access:{has:a=>"colorAmount"in a,get:a=>a.colorAmount},metadata:r},null,t),E(c,null,n,{kind:"getter",name:"edgeAmount",static:!1,private:!1,access:{has:a=>"edgeAmount"in a,get:a=>a.edgeAmount},metadata:r},null,t),r&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r})})(),c})();class _e extends Y{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(x(()=>import("./imageProcessing.fragment-BCB_qP39.js"),__vite__mapDeps([34,3,35,21])))):t.push(x(()=>import("./imageProcessing.fragment-t8y0MU3q.js"),__vite__mapDeps([36,3,24,1,2,5,6,25,26])))}get imageProcessingConfiguration(){return this._imageProcessingConfiguration}set imageProcessingConfiguration(e){e.applyByPostProcess=!0,this._attachImageProcessingConfiguration(e)}_attachImageProcessingConfiguration(e,t=!1){if(e!==this._imageProcessingConfiguration){if(this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),e)this._imageProcessingConfiguration=e;else{let s=this.options.scene;if(!s){const n=this.options.engine;if(n&&n.scenes){const r=n.scenes;s=r[r.length-1]}else s=N.LastCreatedScene}s?this._imageProcessingConfiguration=s.imageProcessingConfiguration:this._imageProcessingConfiguration=new ge}this._imageProcessingConfiguration&&(this._imageProcessingObserver=this._imageProcessingConfiguration.onUpdateParameters.add(()=>{this._updateParameters()})),t||this._updateParameters()}}get colorCurves(){return this.imageProcessingConfiguration.colorCurves}set colorCurves(e){this.imageProcessingConfiguration.colorCurves=e}get colorCurvesEnabled(){return this.imageProcessingConfiguration.colorCurvesEnabled}set colorCurvesEnabled(e){this.imageProcessingConfiguration.colorCurvesEnabled=e}get colorGradingTexture(){return this.imageProcessingConfiguration.colorGradingTexture}set colorGradingTexture(e){this.imageProcessingConfiguration.colorGradingTexture=e}get colorGradingEnabled(){return this.imageProcessingConfiguration.colorGradingEnabled}set colorGradingEnabled(e){this.imageProcessingConfiguration.colorGradingEnabled=e}get exposure(){return this.imageProcessingConfiguration.exposure}set exposure(e){this.imageProcessingConfiguration.exposure=e}get toneMappingEnabled(){return this._imageProcessingConfiguration.toneMappingEnabled}set toneMappingEnabled(e){this._imageProcessingConfiguration.toneMappingEnabled=e}get toneMappingType(){return this._imageProcessingConfiguration.toneMappingType}set toneMappingType(e){this._imageProcessingConfiguration.toneMappingType=e}get contrast(){return this.imageProcessingConfiguration.contrast}set contrast(e){this.imageProcessingConfiguration.contrast=e}get vignetteStretch(){return this.imageProcessingConfiguration.vignetteStretch}set vignetteStretch(e){this.imageProcessingConfiguration.vignetteStretch=e}get vignetteCentreX(){return this.imageProcessingConfiguration.vignetteCenterX}set vignetteCentreX(e){this.imageProcessingConfiguration.vignetteCenterX=e}get vignetteCentreY(){return this.imageProcessingConfiguration.vignetteCenterY}set vignetteCentreY(e){this.imageProcessingConfiguration.vignetteCenterY=e}get vignetteCenterY(){return this.imageProcessingConfiguration.vignetteCenterY}set vignetteCenterY(e){this.imageProcessingConfiguration.vignetteCenterY=e}get vignetteCenterX(){return this.imageProcessingConfiguration.vignetteCenterX}set vignetteCenterX(e){this.imageProcessingConfiguration.vignetteCenterX=e}get vignetteWeight(){return this.imageProcessingConfiguration.vignetteWeight}set vignetteWeight(e){this.imageProcessingConfiguration.vignetteWeight=e}get vignetteColor(){return this.imageProcessingConfiguration.vignetteColor}set vignetteColor(e){this.imageProcessingConfiguration.vignetteColor=e}get vignetteCameraFov(){return this.imageProcessingConfiguration.vignetteCameraFov}set vignetteCameraFov(e){this.imageProcessingConfiguration.vignetteCameraFov=e}get vignetteBlendMode(){return this.imageProcessingConfiguration.vignetteBlendMode}set vignetteBlendMode(e){this.imageProcessingConfiguration.vignetteBlendMode=e}get vignetteEnabled(){return this.imageProcessingConfiguration.vignetteEnabled}set vignetteEnabled(e){this.imageProcessingConfiguration.vignetteEnabled=e}get ditheringIntensity(){return this.imageProcessingConfiguration.ditheringIntensity}set ditheringIntensity(e){this.imageProcessingConfiguration.ditheringIntensity=e}get ditheringEnabled(){return this.imageProcessingConfiguration.ditheringEnabled}set ditheringEnabled(e){this.imageProcessingConfiguration.ditheringEnabled=e}get fromLinearSpace(){return this._fromLinearSpace}set fromLinearSpace(e){this._fromLinearSpace!==e&&(this._fromLinearSpace
11=e,this._updateParameters())}get outputTextureWidth(){return this.imageProcessingConfiguration.outputTextureWidth}set outputTextureWidth(e){this.imageProcessingConfiguration.outputTextureWidth=e}get outputTextureHeight(){return this.imageProcessingConfiguration.outputTextureHeight}set outputTextureHeight(e){this.imageProcessingConfiguration.outputTextureHeight=e}constructor(e,t=null,s){super({...s,name:e,engine:t||N.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:_e.FragmentUrl}),this._fromLinearSpace=!0,this._defines={IMAGEPROCESSING:!1,VIGNETTE:!1,VIGNETTEBLENDMODEMULTIPLY:!1,VIGNETTEBLENDMODEOPAQUE:!1,TONEMAPPING:0,CONTRAST:!1,COLORCURVES:!1,COLORGRADING:!1,COLORGRADING3D:!1,FROMLINEARSPACE:!1,SAMPLER3DGREENDEPTH:!1,SAMPLER3DBGRMAP:!1,DITHER:!1,IMAGEPROCESSINGPOSTPROCESS:!1,EXPOSURE:!1,SKIPFINALCOLORCLAMP:!1};const n=s?.imageProcessingConfiguration;n?(n.applyByPostProcess=!0,this._attachImageProcessingConfiguration(n,!0),this._updateParameters()):(this._attachImageProcessingConfiguration(null,!0),this.imageProcessingConfiguration.applyByPostProcess=!0)}_updateParameters(){this._defines.FROMLINEARSPACE=this._fromLinearSpace,this.imageProcessingConfiguration.prepareDefines(this._defines,!0);let e="";for(const n in this._defines){const r=this._defines[n];switch(typeof r){case"number":case"string":e+=`#define ${n} ${r}; 12`;break;default:r&&(e+=`#define ${n}; 13`);break}}const t=["textureSampler"],s=["scale"];ge&&(ge.PrepareSamplers(t,this._defines),ge.PrepareUniforms(s,this._defines)),this.updateEffect(e,s,t)}bind(e=!1){super.bind(e),this.imageProcessingConfiguration.bind(this.effect,this.overrideAspectRatio)}dispose(){super.dispose(),this._imageProcessingConfiguration&&this._imageProcessingObserver&&this._imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingObserver),this._imageProcessingConfiguration&&(this.imageProcessingConfiguration.applyByPostProcess=!1)}}_e.FragmentUrl="imageProcessing";let bt=(()=>{var c;let e=q,t=[],s;return c=class extends e{get _imageProcessingConfiguration(){return this._effectWrapper.imageProcessingConfiguration}get imageProcessingConfiguration(){return this._effectWrapper.imageProcessingConfiguration}set imageProcessingConfiguration(r){this._effectWrapper.imageProcessingConfiguration=r}get isSupported(){const r=this.getEffect();return!r||r.isSupported}get colorCurves(){return this.imageProcessingConfiguration.colorCurves}set colorCurves(r){this.imageProcessingConfiguration.colorCurves=r}get colorCurvesEnabled(){return this.imageProcessingConfiguration.colorCurvesEnabled}set colorCurvesEnabled(r){this.imageProcessingConfiguration.colorCurvesEnabled=r}get colorGradingTexture(){return this.imageProcessingConfiguration.colorGradingTexture}set colorGradingTexture(r){this.imageProcessingConfiguration.colorGradingTexture=r}get colorGradingEnabled(){return this.imageProcessingConfiguration.colorGradingEnabled}set colorGradingEnabled(r){this.imageProcessingConfiguration.colorGradingEnabled=r}get exposure(){return this.imageProcessingConfiguration.exposure}set exposure(r){this.imageProcessingConfiguration.exposure=r}get toneMappingEnabled(){return this._imageProcessingConfiguration.toneMappingEnabled}set toneMappingEnabled(r){this._imageProcessingConfiguration.toneMappingEnabled=r}get toneMappingType(){return this._imageProcessingConfiguration.toneMappingType}set toneMappingType(r){this._imageProcessingConfiguration.toneMappingType=r}get contrast(){return this.imageProcessingConfiguration.contrast}set contrast(r){this.imageProcessingConfiguration.contrast=r}get vignetteStretch(){return this.imageProcessingConfiguration.vignetteStretch}set vignetteStretch(r){this.imageProcessingConfiguration.vignetteStretch=r}get vignetteCentreX(){return this.imageProcessingConfiguration.vignetteCenterX}set vignetteCentreX(r){this.imageProcessingConfiguration.vignetteCenterX=r}get vignetteCentreY(){return this.imageProcessingConfiguration.vignetteCenterY}set vignetteCentreY(r){this.imageProcessingConfiguration.vignetteCenterY=r}get vignetteCenterY(){return this.imageProcessingConfiguration.vignetteCenterY}set vignetteCenterY(r){this.imageProcessingConfiguration.vignetteCenterY=r}get vignetteCenterX(){return this.imageProcessingConfiguration.vignetteCenterX}set vignetteCenterX(r){this.imageProcessingConfiguration.vignetteCenterX=r}get vignetteWeight(){return this.imageProcessingConfiguration.vignetteWeight}set vignetteWeight(r){this.imageProcessingConfiguration.vignetteWeight=r}get vignetteColor(){return this.imageProcessingConfiguration.vignetteColor}set vignetteColor(r){this.imageProcessingConfiguration.vignetteColor=r}get vignetteCameraFov(){return this.imageProcessingConfiguration.vignetteCameraFov}set vignetteCameraFov(r){this.imageProcessingConfiguration.vignetteCameraFov=r}get vignetteBlendMode(){return this.imageProcessingConfiguration.vignetteBlendMode}set vignetteBlendMode(r){this.imageProcessingConfiguration.vignetteBlendMode=r}get vignetteEnabled(){return this.imageProcessingConfiguration.vignetteEnabled}set vignetteEnabled(r){this.imageProcessingConfiguration.vignetteEnabled=r}get ditheringIntensity(){return this.imageProcessingConfiguration.ditheringIntensity}set ditheringIntensity(r){this.imageProcessingConfiguration.ditheringIntensity=r}get ditheringEnabled(){return this.imageProcessingConfiguration.ditheringEnabled}set ditheringEnabled(r){this.imageProcessingConfiguration.ditheringEnabled=r}get fromLinearSpace(){return this._effectWrapper.fromLinearSpace}
13set fromLinearSpace(r){this._effectWrapper.fromLinearSpace=r}constructor(r,a,o=null,l,i,h,g=0,u){const _={size:typeof a=="number"?a:void 0,camera:o,samplingMode:l,engine:i,reusable:h,textureType:g,imageProcessingConfiguration:u,scene:o?.getScene(),...a,blockCompilation:!0};super(r,_e.FragmentUrl,{effectWrapper:typeof a=="number"||!a.effectWrapper?new _e(r,i,_):void 0,..._}),B(this,t),this.onApply=()=>{this._effectWrapper.overrideAspectRatio=this.aspectRatio}}getClassName(){return"ImageProcessingPostProcess"}_updateParameters(){this._effectWrapper._updateParameters()}dispose(r){super.dispose(r),this._imageProcessingConfiguration&&(this.imageProcessingConfiguration.applyByPostProcess=!1)}},(()=>{const n=typeof Symbol=="function"&&Symbol.metadata?Object.create(e[Symbol.metadata]??null):void 0;s=[S()],E(c,null,s,{kind:"getter",name:"fromLinearSpace",static:!1,private:!1,access:{has:r=>"fromLinearSpace"in r,get:r=>r.fromLinearSpace},metadata:n},null,t),n&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n})})(),c})();class re extends Y{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(x(()=>import("./chromaticAberration.fragment-BCdzgA2r.js"),__vite__mapDeps([37,3])))):t.push(x(()=>import("./chromaticAberration.fragment-Fi2ii56G.js"),__vite__mapDeps([38,3])))}constructor(e,t=null,s){super({...s,name:e,engine:t||N.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:re.FragmentUrl,uniforms:re.Uniforms}),this.aberrationAmount=30,this.radialIntensity=0,this.direction=new j(.707,.707),this.centerPosition=new j(.5,.5)}bind(e=!1){super.bind(e);const t=this._drawWrapper.effect;t.setFloat("chromatic_aberration",this.aberrationAmount),t.setFloat("screen_width",this.screenWidth),t.setFloat("screen_height",this.screenHeight),t.setFloat("radialIntensity",this.radialIntensity),t.setFloat2("direction",this.direction.x,this.direction.y),t.setFloat2("centerPosition",this.centerPosition.x,this.centerPosition.y)}}re.FragmentUrl="chromaticAberration";re.Uniforms=["chromatic_aberration","screen_width","screen_height","direction","radialIntensity","centerPosition"];let Pt=(()=>{var c;let e=q,t=[],s,n,r,a,o,l;return c=class extends e{get aberrationAmount(){return this._effectWrapper.aberrationAmount}set aberrationAmount(h){this._effectWrapper.aberrationAmount=h}get radialIntensity(){return this._effectWrapper.radialIntensity}set radialIntensity(h){this._effectWrapper.radialIntensity=h}get direction(){return this._effectWrapper.direction}set direction(h){this._effectWrapper.direction=h}get centerPosition(){return this._effectWrapper.centerPosition}set centerPosition(h){this._effectWrapper.centerPosition=h}get screenWidth(){return this._effectWrapper.screenWidth}set screenWidth(h){this._effectWrapper.screenWidth=h}get screenHeight(){return this._effectWrapper.screenHeight}set screenHeight(h){this._effectWrapper.screenHeight=h}getClassName(){return"ChromaticAberrationPostProcess"}constructor(h,g,u,_,p,m,f,b,P=0,T=!1){const v={uniforms:re.Uniforms,size:typeof _=="number"?_:void 0,camera:p,samplingMode:m,engine:f,reusable:b,textureType:P,blockCompilation:T,..._};super(h,re.FragmentUrl,{effectWrapper:typeof _=="number"||!_.effectWrapper?new re(h,f,v):void 0,...v}),B(this,t),this.screenWidth=g,this.screenHeight=u}static _Parse(h,g,u,_){return ee.Parse(()=>new c(h.name,h.screenWidth,h.screenHeight,h.options,g,h.renderTargetSamplingMode,u.getEngine(),h.reusable,h.textureType,!1),h,u,_)}},(()=>{const i=typeof Symbol=="function"&&Symbol.metadata?Object.create(e[Symbol.metadata]??null):void 0;s=[S()],n=[S()],r=[S()],a=[S()],o=[S()],l=[S()],E(c,null,s,{kind:"getter",name:"aberrationAmount",static:!1,private:!1,access:{has:h=>"aberrationAmount"in h,get:h=>h.aberrationAmount},metadata:i},null,t),E(c,null,n,{kind:"getter",name:"radialIntensity",static:!1,private:!1,access:{has:h=>"radialIntensity"in h,get:h=>h.radialIntensity},metadata:i},null,t),E(c,null,r,{kind:"getter",name:"direction",static:!1,private:!1,access:{has:h=>"direction"in h,get:h=>h.direction},metadata:i},null,t),E(c,null,a,{kind:"getter",name:"centerPosition",static:!1,private:!1,access:{has:h=>"centerPosition"in h,get:h=>h.centerPosition},metadata:i},null,t),E(c,null,o,{kind:"getter",name:"screenWidth",static:!1,private:!1,access:{has:h=>"screenWidth"in h,get:h=>h.screenWidth},metadata:i},null,t),E(c,null,l,{kind:"getter",name:"screenHeight",static:!1,private:!1,access:{has:h=>"screenHeight"in h,get:h=>h.screenHeight},metadata:i},null,t),i&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:i})})(),c})();class ie extends Y{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(x(()=>import("./grain.fragment-hs_sTg5H.js"),__vite__mapDeps([39,3,21])))):t.push(x(()=>import("./grain.fragment-Bwnf7zc6.js"),__vite__mapDeps([40,3,26])))}constructor(e,t=null,s){super({...s,name:e,engine:t||N.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:ie.FragmentUrl,uniforms:ie.Uniforms}),this.intensity=30,this.animated=!1}bind(e=!1){super.bind(e),this._drawWrapper.effect.setFloat("intensity",this.intensity),this._drawWrapper.effect.setFloat("animatedSeed",this.animated?Math.random()+1:1)}}ie.FragmentUrl="grain";ie.Uniforms=["intensity","animatedSeed"];let Rt=(()=>{var c;let e=q,t=[],s,n;return c=class extends e{get intensity(){return this._effectWrapper.intensity}set intensity(a){this._effectWrapper.intensity=a}get animated(){return this._effectWrapper.animated}set animated(a){this._effectWrapper.animated=a}getClassName(){return"GrainPostProcess"}constructor(a,o,l,i,h,g,u=0,_=!1){const p={uniforms:ie.Uniforms,size:typeof o=="number"?o:void 0,camera:l,samplingMode:i,engine:h,reusable:g,textureType:u,blockCompilation:_,...o};super(a,ie.FragmentUrl,{effectWrapper:typeof o=="number"||!o.effectWrapper?new ie(a,h,p):void 0,...p}),B(this,t)}static _Parse(a,o,l,i){return ee.Parse(()=>new c(a.name,a.options,o,a.renderTargetSamplingMode,l.getEngine(),a.reusable),a,l,i)}},(()=>{const r=typeof Symbol=="function"&&Symbol.metadata?Object.create(e[Symbol.metadata]??null):void 0;s=[S()],n=[S()],E(c,null,s,{kind:"getter",name:"intensity",static:!1,private:!1,access:{has:a=>"intensity"in a,get:a=>a.intensity},metadata:r}
13,null,t),E(c,null,n,{kind:"getter",name:"animated",static:!1,private:!1,access:{has:a=>"animated"in a,get:a=>a.animated},metadata:r},null,t),r&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:r})})(),c})();class H extends Y{static _GetDefines(e){return e&&e.extractDriverInfo().toLowerCase().indexOf("mali")>-1?`#define MALI 1 14`:null}_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(Promise.all([x(()=>import("./fxaa.fragment-DfDkdQo7.js"),__vite__mapDeps([41,3])),x(()=>import("./fxaa.vertex-CjV7cvTk.js"),__vite__mapDeps([42,3]))]))):t.push(Promise.all([x(()=>import("./fxaa.fragment-CbWvVchD.js"),__vite__mapDeps([43,3])),x(()=>import("./fxaa.vertex-BhM5ikBy.js"),__vite__mapDeps([44,3]))]))}constructor(e,t=null,s){const n={...s,name:e,engine:t||N.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,vertexShader:H.VertexUrl,fragmentShader:H.FragmentUrl,uniforms:H.Uniforms};super({...n,defines:H._GetDefines(n.engine)}),this.texelSize=new j(0,0)}bind(e=!1){super.bind(e),this._drawWrapper.effect.setFloat2("texelSize",this.texelSize.x,this.texelSize.y)}}H.VertexUrl="fxaa";H.FragmentUrl="fxaa";H.Uniforms=["texelSize"];class Ee extends q{getClassName(){return"FxaaPostProcess"}constructor(e,t,s=null,n,r,a,o=0){const l={uniforms:H.Uniforms,size:typeof t=="number"?t:void 0,camera:s,samplingMode:n||C.BILINEAR_SAMPLINGMODE,engine:r,reusable:a,textureType:o,...t};super(e,H.FragmentUrl,{effectWrapper:typeof t=="number"||!t.effectWrapper?new H(e,r,l):void 0,...l}),this.onApplyObservable.add(i=>{this._effectWrapper.texelSize=this.texelSize})}static _Parse(e,t,s,n){return ee.Parse(()=>new Ee(e.name,e.options,t,e.renderTargetSamplingMode,s.getEngine(),e.reusable),e,s,n)}}let ve;class Et{constructor(e){this.name=z.NAME_POSTPROCESSRENDERPIPELINEMANAGER,this.scene=e}register(){this.scene._gatherRenderTargetsStage.registerStep(z.STEP_GATHERRENDERTARGETS_POSTPROCESSRENDERPIPELINEMANAGER,this,this._gatherRenderTargets)}rebuild(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager._rebuild()}dispose(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager.dispose()}_gatherRenderTargets(){this.scene._postProcessRenderPipelineManager&&this.scene._postProcessRenderPipelineManager.update()}}let ye=!1;function Ke(c){c&&(ve=c),!ye&&(ye=!0,Object.defineProperty(me.prototype,"postProcessRenderPipelineManager",{get:function(){if(!this._postProcessRenderPipelineManager){let e=this._getComponent(z.NAME_POSTPROCESSRENDERPIPELINEMANAGER);e||(e=new Et(this),this._addComponent(e)),this._postProcessRenderPipelineManager=new ve}return this._postProcessRenderPipelineManager},enumerable:!0,configurable:!0}))}class Me{constructor(){this._renderPipelines={},this._onNewPipelineAddedObservable=new I,this._onPipelineRemovedObservable=new I,Ke(Me)}get onNewPipelineAddedObservable(){return this._onNewPipelineAddedObservable}get onPipelineRemovedObservable(){return this._onPipelineRemovedObservable}get supportedPipelines(){const e=[];for(const t in this._renderPipelines)if(Object.prototype.hasOwnProperty.call(this._renderPipelines,t)){const s=this._renderPipelines[t];s.isSupported&&e.push(s)}return e}addPipeline(e){this.removePipeline(e._name),this._renderPipelines[e._name]=e,this._onNewPipelineAddedObservable.notifyObservers(e)}removePipeline(e){const t=this._renderPipelines[e];t&&(this._onPipelineRemovedObservable.notifyObservers(t),delete this._renderPipelines[e])}attachCamerasToRenderPipeline(e,t,s=!1){const n=this._renderPipelines[e];n&&n._attachCameras(t,s)}detachCamerasFromRenderPipeline(e,t){const s=this._renderPipelines[e];s&&s._detachCameras(t)}enableEffectInPipeline(e,t,s){const n=this._renderPipelines[e];n&&n._enableEffect(t,s)}disableEffectInPipeline(e,t,s){const n=this._renderPipelines[e];n&&n._disableEffect(t,s)}update(){for(const e in this._renderPipelines)if(Object.prototype.hasOwnProperty.call(this._renderPipelines,e)){const t=this._renderPipelines[e];t.isSupported?t._update():(t.dispose(),delete this._renderPipelines[e])}}_rebuild(){for(const e in this._renderPipelines)Object.prototype.hasOwnProperty.call(this._renderPipelines,e)&&this._renderPipelines[e]._rebuild()}dispose(){for(const e in this._renderPipelines)Object.prototype.hasOwnProperty.call(this._renderPipelines,e)&&this._renderPipelines[e].dispose()}}let Mt=(()=>{var c;let e,t=[],s=[];return c=class{get name(){return this._name}get cameras(){return this._cameras}get engine(){return this._engine}constructor(r,a){this._engine=r,this._name=B(this,t,void 0),this.uniqueId=(B(this,s),ze.UniqueId),Ke(Me),this._name=a,this._renderEffects={},this._renderEffectsForIsolatedPass=new Array,this._cameras=[]}getClassName(){return"PostProcessRenderPipeline"}get isSupported(){for(const r in this._renderEffects)if(Object.prototype.hasOwnProperty.call(this._renderEffects,r)&&!this._renderEffects[r].isSupported)return!1;return!0}addEffect(r){this._renderEffects[r._name]=r}_rebuild(){}_enableEffect(r,a){const o=this._renderEffects[r];o&&o._enable(Z.MakeArray(a||this._cameras))}_disableEffect(r,a){const o=this._renderEffects[r];o&&o._disable(Z.MakeArray(a||this._cameras))}_attachCameras(r,a){const o=Z.MakeArray(r||this._cameras);if(!o)return;const l=[];let i;for(i=0;i<o.length;i++){const h=o[i];h&&(this._cameras.indexOf(h)===-1?this._cameras.push(h):a&&l.push(i))}for(i=0;i<l.length;i++)o.splice(l[i],1);for(const h in this._renderEffects)Object.prototype.hasOwnProperty.call(this._renderEffects,h)&&this._renderEffects[h]._attachCameras(o)}_detachCameras(r){const a=Z.MakeArray(r||this._cameras);if(a){for(const o in this._renderEffects)Object.prototype.hasOwnProperty.call(this._renderEffects,o)&&this._renderEffects[o]._detachCameras(a);for(let o=0;o<a.length;o++)this._cameras.splice(this._cameras.indexOf(a[o]),1)}}
14_update(){for(const r in this._renderEffects)Object.prototype.hasOwnProperty.call(this._renderEffects,r)&&this._renderEffects[r]._update();for(let r=0;r<this._cameras.length;r++){if(!this._cameras[r])continue;const a=this._cameras[r].name;this._renderEffectsForIsolatedPass[a]&&this._renderEffectsForIsolatedPass[a]._update()}}_reset(){this._renderEffects={},this._renderEffectsForIsolatedPass=new Array}_enableMSAAOnFirstPostProcess(r){if(!this._engine._features.supportMSAA)return!1;const a=Object.keys(this._renderEffects);if(a.length>0){const o=this._renderEffects[a[0]].getPostProcesses();o&&(o[0].samples=r)}return!0}_adaptPostProcessesToViewPort(){const r=Object.keys(this._renderEffects);for(const a of r){const o=this._renderEffects[a].getPostProcesses();if(o)for(const l of o)l.adaptScaleToCurrentViewport=!0}}setPrePassRenderer(r){return!1}dispose(){}},(()=>{const n=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;e=[S()],E(null,null,e,{kind:"field",name:"_name",static:!1,private:!1,access:{has:r=>"_name"in r,get:r=>r._name,set:(r,a)=>{r._name=a}},metadata:n},t,s),n&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n})})(),c})();class ne{constructor(e,t,s,n=!0){this._name=t,this._singleInstance=n,this._getPostProcesses=s,this._cameras={},this._indicesForCamera={},this._postProcesses={}}get isSupported(){for(const e in this._postProcesses)if(Object.prototype.hasOwnProperty.call(this._postProcesses,e)){const t=this._postProcesses[e];for(let s=0;s<t.length;s++)if(!t[s].isSupported)return!1}return!0}_update(){}_attachCameras(e){let t;const s=Z.MakeArray(e||this._cameras);if(s)for(let n=0;n<s.length;n++){const r=s[n];if(!r)continue;const a=r.name;if(this._singleInstance?t=0:t=a,!this._postProcesses[t]){const l=this._getPostProcesses();l&&(this._postProcesses[t]=Array.isArray(l)?l:[l])}this._indicesForCamera[a]||(this._indicesForCamera[a]=[]);const o=this._postProcesses[t];for(const l of o){const i=r.attachPostProcess(l);this._indicesForCamera[a].push(i)}this._cameras[a]||(this._cameras[a]=r)}}_detachCameras(e){const t=Z.MakeArray(e||this._cameras);if(t)for(let s=0;s<t.length;s++){const n=t[s],r=n.name,a=this._postProcesses[this._singleInstance?0:r];if(a)for(const o of a)n.detachPostProcess(o);this._cameras[r]&&(this._cameras[r]=null),delete this._indicesForCamera[r]}}_enable(e){const t=Z.MakeArray(e||this._cameras);if(t)for(let s=0;s<t.length;s++){const n=t[s],r=n.name,a=this._singleInstance?0:r;for(let o=0;o<this._indicesForCamera[r].length;o++){const l=this._indicesForCamera[r][o],i=n._postProcesses[l];i==null&&t[s].attachPostProcess(this._postProcesses[a][o],l)}}}_disable(e){const t=Z.MakeArray(e||this._cameras);if(t)for(let s=0;s<t.length;s++){const n=t[s],r=n.name,a=this._postProcesses[this._singleInstance?0:r];for(const o of a)n.detachPostProcess(o)}}getPostProcesses(e){return this._singleInstance?this._postProcesses[0]:e?this._postProcesses[e.name]:null}}class W extends Y{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(x(()=>import("./circleOfConfusion.fragment-P5YaA0xn.js"),__vite__mapDeps([45,3])))):t.push(x(()=>import("./circleOfConfusion.fragment-C302VVoN.js"),__vite__mapDeps([46,3])))}constructor(e,t=null,s){super({...s,name:e,engine:t||N.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:W.FragmentUrl,uniforms:W.Uniforms,samplers:W.Samplers,defines:s?.depthNotNormalized?W.DefinesDepthNotNormalized:void 0}),this.lensSize=50,this.fStop=1.4,this.focusDistance=2e3,this.focalLength=50}bind(e=!1){super.bind(e);const t=this.options,s=this._drawWrapper.effect;t.depthNotNormalized||s.setFloat2("cameraMinMaxZ",this.camera.minZ,this.camera.maxZ-this.camera.minZ);const r=this.lensSize/this.fStop*this.focalLength/(this.focusDistance-this.focalLength);s.setFloat("focusDistance",this.focusDistance),s.setFloat("cocPrecalculation",r)}}W.FragmentUrl="circleOfConfusion";W.Uniforms=["cameraMinMaxZ","focusDistance","cocPrecalculation"];W.Samplers=["depthSampler"];W.DefinesDepthNotNormalized="#define COC_DEPTH_NOT_NORMALIZED";let St=(()=>{var c;let e=q,t=[],s,n,r,a;return c=class extends e{get lensSize(){return this._effectWrapper.lensSize}set lensSize(l){this._effectWrapper.lensSize=l}get fStop(){return this._effectWrapper.fStop}set fStop(l){this._effectWrapper.fStop=l}
14get focusDistance(){return this._effectWrapper.focusDistance}set focusDistance(l){this._effectWrapper.focusDistance=l}get focalLength(){return this._effectWrapper.focalLength}set focalLength(l){this._effectWrapper.focalLength=l}getClassName(){return"CircleOfConfusionPostProcess"}constructor(l,i,h,g,u,_,p,m=0,f=!1){const b={uniforms:W.Uniforms,samplers:W.Samplers,defines:typeof h=="object"&&h.depthNotNormalized?W.DefinesDepthNotNormalized:void 0,size:typeof h=="number"?h:void 0,camera:g,samplingMode:u,engine:_,reusable:p,textureType:m,blockCompilation:f,...h};super(l,W.FragmentUrl,{effectWrapper:typeof h=="number"||!h.effectWrapper?new W(l,_,b):void 0,...b}),this._depthTexture=(B(this,t),null),this._depthTexture=i,this.onApplyObservable.add(P=>{if(!this._depthTexture){te.Warn("No depth texture set on CircleOfConfusionPostProcess");return}P.setTexture("depthSampler",this._depthTexture),this._effectWrapper.camera=this._depthTexture.activeCamera})}set depthTexture(l){this._depthTexture=l}},(()=>{const o=typeof Symbol=="function"&&Symbol.metadata?Object.create(e[Symbol.metadata]??null):void 0;s=[S()],n=[S()],r=[S()],a=[S()],E(c,null,s,{kind:"getter",name:"lensSize",static:!1,private:!1,access:{has:l=>"lensSize"in l,get:l=>l.lensSize},metadata:o},null,t),E(c,null,n,{kind:"getter",name:"fStop",static:!1,private:!1,access:{has:l=>"fStop"in l,get:l=>l.fStop},metadata:o},null,t),E(c,null,r,{kind:"getter",name:"focusDistance",static:!1,private:!1,access:{has:l=>"focusDistance"in l,get:l=>l.focusDistance},metadata:o},null,t),E(c,null,a,{kind:"getter",name:"focalLength",static:!1,private:!1,access:{has:l=>"focalLength"in l,get:l=>l.focalLength},metadata:o},null,t),o&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o})})(),c})();class Pe extends D{constructor(e,t=null,s,n,r){super(e,t,s,n,{...r,defines:`#define DOF 1 15`})}}class Oe extends ae{getClassName(){return"DepthOfFieldBlurPostProcess"}constructor(e,t,s,n,r,a,o,l=null,i=C.BILINEAR_SAMPLINGMODE,h,g,u=0,_=!1,p=5){const m={size:typeof r=="number"?r:void 0,camera:a,samplingMode:i=2,engine:h,reusable:g,textureType:u,defines:`#define DOF 1 16`,blockCompilation:_,textureFormat:p,...r};super(e,s,n,{effectWrapper:typeof r=="number"||!r.effectWrapper?new Pe(e,h,s,n,m):void 0,...m}),this.externalTextureSamplerBinding=!!l,this.onApplyObservable.add(f=>{l!=null&&f.setTextureFromPostProcess("textureSampler",l),f.setTextureFromPostProcessOutput("circleOfConfusionSampler",o)})}}class Q extends Y{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(x(()=>import("./depthOfFieldMerge.fragment-B0zPmvWr.js"),__vite__mapDeps([47,3])))):t.push(x(()=>import("./depthOfFieldMerge.fragment-lA6Py4NA.js"),__vite__mapDeps([48,3])))}constructor(e,t=null,s){super({...s,name:e,engine:t||N.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:Q.FragmentUrl,samplers:Q.Samplers})}}Q.FragmentUrl="depthOfFieldMerge";Q.Samplers=["circleOfConfusionSampler","blurStep0","blurStep1","blurStep2"];class Ct extends q{getClassName(){return"DepthOfFieldMergePostProcess"}constructor(e,t,s,n,r,a,o,l,i,h=0,g=!1){const u=typeof r=="number"?g:!!r.blockCompilation,_={samplers:Q.Samplers,size:typeof r=="number"?r:void 0,camera:a,samplingMode:o,engine:l,reusable:i,textureType:h,...r,blockCompilation:!0};super(e,Q.FragmentUrl,{effectWrapper:typeof r=="number"||!r.effectWrapper?new Q(e,l,_):void 0,..._}),this._blurSteps=n,this.externalTextureSamplerBinding=!0,this.onApplyObservable.add(p=>{p.setTextureFromPostProcess("textureSampler",t),p.setTextureFromPostProcessOutput("circleOfConfusionSampler",s);for(let m=0;m<n.length;m++){const f=n[m];
16p.setTextureFromPostProcessOutput("blurStep"+(n.length-m-1),f)}}),u||this.updateEffect()}updateEffect(e=null,t=null,s=null,n,r,a){e||(e="",e+="#define BLUR_LEVEL "+(this._blurSteps.length-1)+` 17`),super.updateEffect(e,t,s,n,r,a)}}var Te;(function(c){c[c.Low=0]="Low",c[c.Medium=1]="Medium",c[c.High=2]="High"})(Te||(Te={}));class xt{set focalLength(e){this._circleOfConfusion.focalLength=e}get focalLength(){return this._circleOfConfusion.focalLength}set fStop(e){this._circleOfConfusion.fStop=e}get fStop(){return this._circleOfConfusion.fStop}set focusDistance(e){this._circleOfConfusion.focusDistance=e}get focusDistance(){return this._circleOfConfusion.focusDistance}set lensSize(e){this._circleOfConfusion.lensSize=e}get lensSize(){return this._circleOfConfusion.lensSize}constructor(e,t,s=0,n=!1,r=!1){this._depthOfFieldBlurX=[],this._depthOfFieldBlurY=[],this._circleOfConfusion=new W(e,t,{depthNotNormalized:n,blockCompilation:r}),this.blurLevel=s;let a,o;switch(s){case 2:{a=3,o=51;break}case 1:{a=2,o=31;break}default:{o=15,a=1;break}}const l=o/Math.pow(2,a-1);let i=1;for(let h=0;h<a;h++)this._depthOfFieldBlurY.push([new Pe(e,t,new j(0,1),l,{blockCompilation:r}),i]),i=.75/Math.pow(2,h),this._depthOfFieldBlurX.push([new Pe(e,t,new j(1,0),l,{blockCompilation:r}),i]);this._dofMerge=new Q(e,t,{blockCompilation:r})}isReady(){let e=this._circleOfConfusion.isReady()&&this._dofMerge.isReady();for(let t=0;t<this._depthOfFieldBlurX.length;t++)e=e&&this._depthOfFieldBlurX[t][0].isReady()&&this._depthOfFieldBlurY[t][0].isReady();return e}}var Ae;(function(c){c[c.Low=0]="Low",c[c.Medium=1]="Medium",c[c.High=2]="High"})(Ae||(Ae={}));class Ie extends ne{set focalLength(e){this._thinDepthOfFieldEffect.focalLength=e}get focalLength(){return this._thinDepthOfFieldEffect.focalLength}set fStop(e){this._thinDepthOfFieldEffect.fStop=e}get fStop(){return this._thinDepthOfFieldEffect.fStop}set focusDistance(e){this._thinDepthOfFieldEffect.focusDistance=e}get focusDistance(){return this._thinDepthOfFieldEffect.focusDistance}set lensSize(e){this._thinDepthOfFieldEffect.lensSize=e}get lensSize(){return this._thinDepthOfFieldEffect.lensSize}constructor(e,t,s=0,n=0,r=!1,a=!1){const o=e._renderForCamera?e.getEngine():e;super(o,"depth of field",()=>this._effects,!0),this._effects=[],this._thinDepthOfFieldEffect=new xt("Depth of Field",o,s,!1,r);const l=o.isWebGPU||o.version>1?6:5;this._circleOfConfusion=new St("circleOfConfusion",t,{size:1,samplingMode:C.BILINEAR_SAMPLINGMODE,engine:o,textureType:n,blockCompilation:r,depthNotNormalized:a,effectWrapper:this._thinDepthOfFieldEffect._circleOfConfusion},null),this._depthOfFieldBlurY=[],this._depthOfFieldBlurX=[];const i=this._thinDepthOfFieldEffect._depthOfFieldBlurX.length;for(let h=0;h<i;h++){const[g,u]=this._thinDepthOfFieldEffect._depthOfFieldBlurY[h],_=new Oe("vertical blur",null,g.direction,g.kernel,{size:u,samplingMode:C.BILINEAR_SAMPLINGMODE,engine:o,textureType:n,blockCompilation:r,textureFormat:h==0?l:5,effectWrapper:g},null,this._circleOfConfusion,h==0?this._circleOfConfusion:null);_.autoClear=!1;const[p,m]=this._thinDepthOfFieldEffect._depthOfFieldBlurX[h],f=new Oe("horizontal blur",null,p.direction,p.kernel,{size:m,samplingMode:C.BILINEAR_SAMPLINGMODE,engine:o,textureType:n,blockCompilation:r,effectWrapper:p},null,this._circleOfConfusion,null);f.autoClear=!1,this._depthOfFieldBlurY.push(_),this._depthOfFieldBlurX.push(f)}this._effects=[this._circleOfConfusion];for(let h=0;h<this._depthOfFieldBlurX.length;h++)this._effects.push(this._depthOfFieldBlurY[h]),this._effects.push(this._depthOfFieldBlurX[h]);this._dofMerge=new Ct("dofMerge",this._circleOfConfusion,this._circleOfConfusion,this._depthOfFieldBlurX,{size:this._thinDepthOfFieldEffect._depthOfFieldBlurX[i-1][1],samplingMode:C.BILINEAR_SAMPLINGMODE,engine:o,textureType:n,blockCompilation:r,effectWrapper:this._thinDepthOfFieldEffect._dofMerge},null),this._dofMerge.autoClear=!1,this._effects.push(this._dofMerge)}getClassName(){return"DepthOfFieldEffect"}set depthTexture(e){this._circleOfConfusion.depthTexture=e}disposeEffects(e){for(let t=0;t<this._effects.length;t++)this._effects[t].dispose(e)}_updateEffects(){for(let e=0;e<this._effects.length;e++)this._effects[e].updateEffect()}_isReady(){return this._thinDepthOfFieldEffect.isReady()}}class J extends Y{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(x(()=>import("./extractHighlights.fragment-Cr8yCBxw.js"),__vite__mapDeps([49,3,21])))):t.push(x(()=>import("./extractHighlights.fragment-DAR5o5jJ.js"),__vite__mapDeps([50,3,26])))}constructor(e,t=null,s){super({...s,name:e,engine:t||N.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:J.FragmentUrl,uniforms:J.Uniforms}),this.threshold=.9,this._exposure=1}bind(e=!1){super.bind(e);const t=this._drawWrapper.effect;t.setFloat("threshold",Math.pow(this.threshold,nt)),t.setFloat("exposure",this._exposure)}}J.FragmentUrl="extractHighlights";J.Uniforms=["threshold","exposure"];let vt=(()=>{var c;let e=q,t=[],s;return c=class extends e{get threshold(){return this._effectWrapper.threshold}set threshold(r){this._effectWrapper.threshold=r}get _exposure(){return this._effectWrapper._exposure}set _exposure(r){this._effectWrapper._exposure=r}getClassName(){return"ExtractHighlightsPostProcess"}
17constructor(r,a,o=null,l,i,h,g=0,u=!1){const _={uniforms:J.Uniforms,size:typeof a=="number"?a:void 0,camera:o,samplingMode:l,engine:i,reusable:h,textureType:g,blockCompilation:u,...a};super(r,J.FragmentUrl,{effectWrapper:typeof a=="number"||!a.effectWrapper?new J(r,i,_):void 0,..._}),this._inputPostProcess=(B(this,t),null),this.onApplyObservable.add(p=>{this.externalTextureSamplerBinding=!!this._inputPostProcess,this._inputPostProcess&&p.setTextureFromPostProcess("textureSampler",this._inputPostProcess)})}},(()=>{const n=typeof Symbol=="function"&&Symbol.metadata?Object.create(e[Symbol.metadata]??null):void 0;s=[S()],E(c,null,s,{kind:"getter",name:"threshold",static:!1,private:!1,access:{has:r=>"threshold"in r,get:r=>r.threshold},metadata:n},null,t),n&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n})})(),c})();class k extends Y{_gatherImports(e,t){e?(this._webGPUReady=!0,t.push(x(()=>import("./bloomMerge.fragment-BhFJJCYP.js"),__vite__mapDeps([51,3])))):t.push(x(()=>import("./bloomMerge.fragment-DHRUqM7b.js"),__vite__mapDeps([52,3])))}constructor(e,t=null,s){super({...s,name:e,engine:t||N.LastCreatedEngine,useShaderStore:!0,useAsPostProcess:!0,fragmentShader:k.FragmentUrl,uniforms:k.Uniforms,samplers:k.Samplers}),this.weight=1}bind(e=!1){super.bind(e),this._drawWrapper.effect.setFloat("bloomWeight",this.weight)}}k.FragmentUrl="bloomMerge";k.Uniforms=["bloomWeight"];k.Samplers=["bloomBlur"];let yt=(()=>{var c;let e=q,t=[],s;return c=class extends e{get weight(){return this._effectWrapper.weight}set weight(r){this._effectWrapper.weight=r}getClassName(){return"BloomMergePostProcess"}constructor(r,a,o,l,i,h=null,g,u,_,p=0,m=!1){const f=typeof i=="number"?m:!!i.blockCompilation,b={uniforms:k.Uniforms,samplers:k.Samplers,size:typeof i=="number"?i:void 0,camera:h,samplingMode:g,engine:u,reusable:_,textureType:p,...i,blockCompilation:!0};super(r,k.FragmentUrl,{effectWrapper:typeof i=="number"||!i.effectWrapper?new k(r,u,b):void 0,...b}),B(this,t),this.weight=l,this.externalTextureSamplerBinding=!0,this.onApplyObservable.add(P=>{P.setTextureFromPostProcess("textureSampler",a),P.setTextureFromPostProcessOutput("bloomBlur",o)}),f||this.updateEffect()}},(()=>{const n=typeof Symbol=="function"&&Symbol.metadata?Object.create(e[Symbol.metadata]??null):void 0;s=[S()],E(c,null,s,{kind:"getter",name:"weight",static:!1,private:!1,access:{has:r=>"weight"in r,get:r=>r.weight},metadata:n},null,t),n&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n})})(),c})();class Ot{get threshold(){return this._downscale.threshold}set threshold(e){this._downscale.threshold=e}get weight(){return this._merge.weight}set weight(e){this._merge.weight=e}get kernel(){return this._blurX.kernel/this.scale}set kernel(e){this._blurX.kernel=e*this.scale,this._blurY.kernel=e*this.scale}constructor(e,t,s,n=!1){this.scale=s,this._downscale=new J(e+"_downscale",t,{blockCompilation:n}),this._blurX=new D(e+"_blurX",t,new j(1,0),10,{blockCompilation:n}),this._blurY=new D(e+"_blurY",t,new j(0,1),10,{blockCompilation:n}),this._merge=new k(e+"_merge",t,{blockCompilation:n})}isReady(){return this._downscale.isReady()&&this._blurX.isReady()&&this._blurY.isReady()&&this._merge.isReady()}}class Le extends ne{get threshold(){return this._thinBloomEffect.threshold}set threshold(e){this._thinBloomEffect.threshold=e}get weight(){return this._thinBloomEffect.weight}set weight(e){this._thinBloomEffect.weight=e}get kernel(){return this._thinBloomEffect.kernel}set kernel(e){this._thinBloomEffect.kernel=e}get bloomScale(){return this._thinBloomEffect.scale}constructor(e,t,s,n,r=0,a=!1){const o=e._renderForCamera?e.getEngine():e;super(o,"bloom",()=>this._effects,!0),this._effects=[],this._thinBloomEffect=new Ot("bloom",o,t,a),this._downscale=new vt("highlights",{size:1,samplingMode:C.BILINEAR_SAMPLINGMODE,engine:o,textureType:r,blockCompilation:a,effectWrapper:this._thinBloomEffect._downscale}),this._blurX=new ae("horizontal blur",this._thinBloomEffect._blurX.direction,this._thinBloomEffect._blurX.kernel,{size:t,samplingMode:C.BILINEAR_SAMPLINGMODE,engine:o,textureType:r,blockCompilation:a,effectWrapper:this._thinBloomEffect._blurX}),this._blurX.alwaysForcePOT=!0,this._blurX.autoClear=!1,this._blurY=new ae("vertical blur",this._thinBloomEffect._blurY.direction,this._thinBloomEffect._blurY.kernel,{size:t,samplingMode:C.BILINEAR_SAMPLINGMODE,engine:o,textureType:r,blockCompilation:a,effectWrapper:this._thinBloomEffect._blurY}),this._blurY.alwaysForcePOT=!0,this._blurY.autoClear=!1,this.kernel=n,this._effects=[this._downscale,this._blurX,this._blurY],this._merge=new yt("bloomMerge",this._downscale,this._blurY,s,{size:t,samplingMode:C.BILINEAR_SAMPLINGMODE,engine:o,textureType:r,blockCompilation:a,effectWrapper:this._thinBloomEffect._merge}),this._merge.autoClear=!1,this._effects.push(this._merge)}disposeEffects(e){for(let t=0;t<this._effects.length;t++)this._effects[t].dispose(e)}_updateEffects(){for(let e=0;e<this._effects.length;e++)this._effects[e].updateEffect()}_isReady(){return this._thinBloomEffect.isReady()}}class Tt{constructor(e){this.name=z.NAME_DEPTHRENDERER,this.scene=e}register(){this.scene._gatherRenderTargetsStage.registerStep(z.STEP_GATHERRENDERTARGETS_DEPTHRENDERER,this,this._gatherRenderTargets),this.scene._gatherActiveCameraRenderTargetsStage.registerStep(z.STEP_GATHERACTIVECAMERARENDERTARGETS_DEPTHRENDERER,this,this._gatherActiveCameraRenderTargets),this.scene._isReadyForMeshStage.registerStep(z.STEP_ISREADYFORMESH_DEPTHRENDERER,this,this._isReadyForMesh)}rebuild(){}dispose(){for(const e in this.scene._depthRenderer)this.scene._depthRenderer[e].dispose()}_gatherRenderTargets(e){if(this.scene._depthRenderer)for(const t in this.scene._depthRenderer){const s=this.scene._depthRenderer[t];s.enabled&&!s.useOnlyInActiveCamera&&e.push(s.getDepthMap())}}_isReadyForMesh(e,t){if(!this.scene._depthRenderer)return!0;for(const s in this.scene._depthRenderer){const n=this.scene._depthRenderer[s];if(n.enabled&&e.subMeshes)for(let r=0;r<e.subMeshes.length;++r){const a=e.subMeshes[r],o=a.getMaterial();if(!(!o||o.disableDepthWrite||a.verticesCount===0)&&!n.isReady(a,t))return!1}}return!0}_gatherActiveCameraRenderTargets(e){if(this.scene._depthRenderer)for(const t in this.scene._depthRenderer){const s=this.scene._depthRenderer[t];s.enabled&&s.useOnlyInActiveCamera&&`${this.scene.activeCamera.uniqueId}`===t&&e.push(s.getDepthMap())}}}let we=!1;function Ye(c){we||(we=!0,me.prototype.enableDepthRenderer=function(e,t=!1,s=!1,n=3,r=!1,a){if(e=e||this.activeCamera,!e)throw"No camera available to enable depth renderer";if(this._depthRenderer||(this._depthRenderer={}),!this._depthRenderer[e.uniqueId]){const o=!!this.getEngine().getCaps().textureFloatRen
17der;let l;this.getEngine().getCaps().textureHalfFloatRender&&(!s||!o)?l=2:o?l=1:l=0,this._depthRenderer[e.uniqueId]=new c(this,l,e,t,n,r,void 0,a)}return this._depthRenderer[e.uniqueId]},me.prototype.disableDepthRenderer=function(e){e=e||this.activeCamera,!(!e||!this._depthRenderer||!this._depthRenderer[e.uniqueId])&&this._depthRenderer[e.uniqueId].dispose()},c._SceneComponentInitialization=e=>{let t=e._getComponent(z.NAME_DEPTHRENDERER);t||(t=new Tt(e),e._addComponent(t))})}function Be(c){return c==="GaussianSplattingMesh"||c==="GaussianSplattingStream"}class he{get shaderLanguage(){return this._shaderLanguage}get alphaBlendedDepth(){return this._alphaBlendedDepth}set alphaBlendedDepth(e){this._alphaBlendedDepth!==e&&(this._alphaBlendedDepth=e,this._alphaBlendedDepthMaterialCache.clear())}setMaterialForRendering(e,t){this._depthMap.setMaterialForRendering(e,t)}_ensureGaussianSplattingDepthMaterial(e,t){let s=e._internalAbstractMeshDataInfo._materialForRenderPass?.[t];const n=this._alphaBlendedDepthMaterialCache.get(e.uniqueId);if(s===void 0||n!==this.alphaBlendedDepth){const r=e.material;if(!r)return null;const a=e.isCompound;s=r.makeDepthRenderingMaterial(this._scene,this._shaderLanguage,this.alphaBlendedDepth,a),this.setMaterialForRendering(e,s),this._alphaBlendedDepthMaterialCache.set(e.uniqueId,this.alphaBlendedDepth)}return s}constructor(e,t=1,s=null,n=!1,r=C.TRILINEAR_SAMPLINGMODE,a=!1,o,l){this._shaderLanguage=0,this.enabled=!0,this.forceDepthWriteTransparentMeshes=!1,this._alphaBlendedDepth=!1,this._alphaBlendedDepthMaterialCache=new Map,this.useOnlyInActiveCamera=!1,this.reverseCulling=!1,this._shadersLoaded=!1,this._scene=e,this._storeNonLinearDepth=n,this._storeCameraSpaceZ=a,this.isPacked=t===0,this.isPacked?this.clearColor=new fe(1,1,1,1):this.clearColor=new fe(a?0:1,0,0,1),this._initShaderSourceAsync(),Ye(he),he._SceneComponentInitialization(this._scene);const i=e.getEngine();this._camera=s,r!==C.NEAREST_SAMPLINGMODE&&(t===1&&!i._caps.textureFloatLinearFiltering&&(r=C.NEAREST_SAMPLINGMODE),t===2&&!i._caps.textureHalfFloatLinearFiltering&&(r=C.NEAREST_SAMPLINGMODE));const h=this.isPacked||!i._features.supportExtendedTextureFormats?5:6;this._depthMap=l??new K(o??"DepthRenderer",{width:i.getRenderWidth(),height:i.getRenderHeight()},this._scene,!1,!0,t,!1,r,void 0,void 0,void 0,h),this._depthMap.wrapU=C.CLAMP_ADDRESSMODE,this._depthMap.wrapV=C.CLAMP_ADDRESSMODE,this._depthMap.refreshRate=1,this._depthMap.renderParticles=!1,this._depthMap.renderList=null,this._depthMap.noPrePassRenderer=!0,this._depthMap.activeCamera=this._camera,this._depthMap.ignoreCameraViewport=!0,this._depthMap.useCameraPostProcesses=!1,this._depthMap.onClearObservable.add(u=>{u.clear(this.clearColor,!0,!0,!0)}),this._depthMap.customIsReadyFunction=(u,_,p)=>{if((p||_===0)&&u.subMeshes)for(let m=0;m<u.subMeshes.length;++m){const f=u.subMeshes[m],b=f.getMaterial(),P=f.getEffectiveMesh();if(!b||P.infiniteDistance||b.disableDepthWrite||f.verticesCount===0)continue;const T=f.getRenderingMesh(),v=T._getInstancesRenderList(f._id,!!f.getReplacementMesh()),L=i.getCaps().instancedArrays&&(v.visibleInstances[f._id]!==null&&v.visibleInstances[f._id]!==void 0||T.hasThinInstances);if(!this.isReady(f,L))return!1}return!0};const g=u=>{const _=u.getRenderingMesh(),p=u.getEffectiveMesh(),m=this._scene,f=m.getEngine(),b=u.getMaterial();if(p._internalAbstractMeshDataInfo._isActiveIntermediate=!1,!b||p.infiniteDistance||b.disableDepthWrite||u.verticesCount===0||u._renderId===m.getRenderId())return;const P=p._getWorldMatrixDeterminant()<0;let T=b._getEffectiveOrientation(_);P&&(T=T===0?1:0);const v=T===0;f.setState(b.backFaceCulling,0,!1,v,this.reverseCulling?!b.cullBackFaces:b.cullBackFaces);const L=_._getInstancesRenderList(u._id,!!u.getReplacementMesh());if(L.mustReturn)return;const y=f.getCaps().instancedArrays&&(L.visibleInstances[u._id]!==null&&L.visibleInstances[u._id]!==void 0||_.hasThinInstances),M=this._camera||m.activeCamera;if(this.isReady(u,y)&&M){u._renderId=m.getRenderId();const F=p.getClassName();if(Be(F)){const $=this._ensureGaussianSplattingDepthMaterial(p,f.currentRenderPassId);if($&&!$.isReadyForSubMesh(p,u,y))return;this.alphaBlendedDepth&&b.needAlphaBlendingForMesh(p)?f.setAlphaMode(2):f.setAlphaMode(0),p.render(u,!1);return}const U=p._internalAbstractMeshDataInfo._materialForRenderPass?.[f.currentRenderPassId];let O=u._getDrawWrapper();!O&&U&&(O=U._getDrawWrapper());const d=M.mode===be.ORTHOGRAPHIC_CAMERA;if(!O)return;const R=O.effect;f.enableEffect(O),y||_._bind(u,R,b.fillMode),U?U.bindForSubMesh(p.getWorldMatrix(),p,u):(R.setMatrix("viewProjection",m.getTransformMatrix()),R.setMatrix("world",p.getWorldMatrix()),this._storeCameraSpaceZ&&R.setMatrix("view",m.getViewMatrix()));let w,ce;if(d?(w=!f.useReverseDepthBuffer&&f.isNDCHalfZRange?0:1,ce=f.useReverseDepthBuffer&&f.isNDCHalfZRange?0:1):(w=f.useReverseDepthBuffer&&f.isNDCHalfZRange?M.minZ:f.isNDCHalfZRange?0:M.minZ,ce=f.useReverseDepthBuffer&&f.isNDCHalfZRange?0:M.maxZ),R.setFloat2("depthValues",w,w+ce),!U){if(b.needAlphaTestingForMesh(p)){const X=b.getAlphaTestTexture();X&&(R.setTexture("diffuseSampler",X),R.setMatrix("diffuseMatrix",X.getTextureMatrix()))}Ge(_,R),je(R,b,m),Ve(_,R),_.morphTargetManager&&_.morphTargetManager.isUsingTextureForTargets&&_.morphTargetManager._bind(R);const $=u.getMesh().bakedVertexAnimationManager;$&&$.isEnabled&&$.bind(R,y),b.pointsCloud&&R.setFloat("pointSize",b.pointSize)}this.alphaBlendedDepth&&b.needAlphaBlendingForMesh(p)?f.setAlphaMode(2):f.setAlphaMode(0),_._processRendering(p,u,R,b.fillMode,L,y,($,X)=>R.setMatrix("world",X))}};this._depthMap.customRenderFunction=(u,_,p,m)=>{const f=this._scene.getEngine(),b=f.getAlphaMode();let P;if(m.length)for(P=0;P<m.length;P++)g(m.data[P]);for(P=0;P<u.length;P++)g(u.data[P]);for(P=0;P<_.length;P++)g(_.data[P]);if(this.forceDepthWriteTransparentMeshes)for(P=0;P<p.length;P++)g(p.data[P]);else for(P=0;P<p.length;P++)p.data[P].getEffectiveMesh()._internalAbstractMeshDataInfo._isActiveIntermediate=!1;this.alphaBlendedDepth&&f.setAlphaMode(b)}}async _initShaderSourceAsync(e=!1){this._scene.getEngine().isWebGPU&&!e&&!he.ForceGLSL?(this._shaderLanguage=1,await Promise.all([x(()=>import("./depth.vertex-BYcK_DMi.js"),__vite__mapDeps([53,3,18,19])),x(()=>import("./depth.fragment-DlSrnZth.js"),__vite__mapDeps([54,3,22,9]))])):await Promise.all([x(()=>import("./depth.vertex-CE_vWSxS.js"),__vite__mapDeps([55,3,24,1,2,5,6,25,26])),x(()=>import("./depth.fragment-CI8ydOYO.js"),__vite__mapDeps([56,3,24,1,2,5,6,25,26,13]))]),this._shadersLoaded=!0}isReady(e,t){if(!this._shadersLoaded)return!1;const s=this._scene.getEngine(),n=e.getMesh(),r=n.getScene(),a=this._depthMap.renderPassId;let o=n._internalAbstractMeshDataInfo._materialForRenderPass?.[a]??null;if(Be(n.getClassName())&&(o=this._ensureGaussianSplattingDepthMaterial(n,a)),o)return o.isReadyForSubMesh(n,e,t);const l=e.getMaterial();if(!l||l.disableDepthWrite)return!1;const i=[],h=[A.PositionKind];let g=!1,u=!1;const _=!1;
17l.needAlphaTestingForMesh(n)&&l.getAlphaTestTexture()&&(i.push("#define ALPHATEST"),n.isVerticesDataPresent(A.UVKind)&&(h.push(A.UVKind),i.push("#define UV1"),g=!0),n.isVerticesDataPresent(A.UV2Kind)&&(h.push(A.UV2Kind),i.push("#define UV2"),u=!0));const p=new He;if(n.useBones&&n.computeBonesUsingShaders&&n.skeleton){h.push(A.MatricesIndicesKind),h.push(A.MatricesWeightsKind),n.numBoneInfluencers>4&&(h.push(A.MatricesIndicesExtraKind),h.push(A.MatricesWeightsExtraKind)),i.push("#define NUM_BONE_INFLUENCERS "+n.numBoneInfluencers),n.numBoneInfluencers>0&&p.addCPUSkinningFallback(0,n);const M=n.skeleton;M.isUsingTextureForMatrices?i.push("#define BONETEXTURE"):i.push("#define BonesPerMesh "+(M.bones.length+1))}else i.push("#define NUM_BONE_INFLUENCERS 0");const m=n.morphTargetManager?Ne(n.morphTargetManager,i,h,n,!0,!1,!1,g,u,_):0;l.pointsCloud&&i.push("#define POINTSIZE"),t&&(i.push("#define INSTANCES"),We(h),e.getRenderingMesh().hasThinInstances&&i.push("#define THIN_INSTANCES"));const f=n.bakedVertexAnimationManager;f&&f.isEnabled&&(i.push("#define BAKED_VERTEX_ANIMATION_TEXTURE"),t&&h.push("bakedVertexAnimationSettingsInstanced")),this._storeNonLinearDepth&&i.push("#define NONLINEARDEPTH"),this._storeCameraSpaceZ&&i.push("#define STORE_CAMERASPACE_Z"),this.isPacked&&i.push("#define PACKED"),Ue(l,r,i);const b=s.currentRenderPassId,T=this._depthMap.renderPassIds.includes(b)?b:this._depthMap.renderPassId,v=e._getDrawWrapper(T,!0),L=v.defines,y=i.join(` 18`);if(L!==y){const M=["world","mBones","boneTextureInfo","pointSize","viewProjection","view","diffuseMatrix","depthValues","morphTargetInfluences","morphTargetCount","morphTargetTextureInfo","morphTargetTextureIndices","bakedVertexAnimationSettings","bakedVertexAnimationTextureSizeInverted","bakedVertexAnimationTime","bakedVertexAnimationTexture"],F=["diffuseSampler","morphTargets","boneSampler","bakedVertexAnimationTexture"];ke(M),v.setEffect(s.createEffect("depth",{attributes:h,uniformsNames:M,uniformBuffersNames:[],samplers:F,defines:y,fallbacks:p,onCompiled:null,onError:null,indexParameters:{maxSimultaneousMorphTargets:m},shaderLanguage:this._shaderLanguage},s),y)}return v.effect.isReady()}getDepthMap(){return this._depthMap}dispose(){const e=[];for(const t in this._scene._depthRenderer)this._scene._depthRenderer[t]===this&&e.push(t);if(e.length>0){this._depthMap.dispose();for(const t of e)delete this._scene._depthRenderer[t]}}}he.ForceGLSL=!1;he._SceneComponentInitialization=c=>{throw Fe("DepthRendererSceneComponent")};let Re=(()=>{var c;let e=Mt,t=[],s,n,r,a=[],o=[],l,i=[],h=[],g,u=[],_=[],p,m,f,b,P,T,v,L,y,M,F,U;return c=class extends e{get automaticBuild(){return this._buildAllowed}set automaticBuild(d){this._buildAllowed=d}get scene(){return this._scene}set sharpenEnabled(d){this._sharpenEnabled!==d&&(this._sharpenEnabled=d,this._buildPipeline())}get sharpenEnabled(){return this._sharpenEnabled}get bloomKernel(){return this._bloomKernel}set bloomKernel(d){this._bloomKernel=d,this.bloom.kernel=d/this._hardwareScaleLevel}set bloomWeight(d){this._bloomWeight!==d&&(this.bloom.weight=d,this._bloomWeight=d)}get bloomWeight(){return this._bloomWeight}set bloomThreshold(d){this._bloomThreshold!==d&&(this.bloom.threshold=d,this._bloomThreshold=d)}get bloomThreshold(){return this._bloomThreshold}set bloomScale(d){this._bloomScale!==d&&(this._bloomScale=d,this._rebuildBloom(),this._buildPipeline())}get bloomScale(){return this._bloomScale}set bloomEnabled(d){this._bloomEnabled!==d&&(this._bloomEnabled=d,this._buildPipeline())}get bloomEnabled(){return this._bloomEnabled}_rebuildBloom(){const d=this.bloom;this.bloom=new Le(this._scene,this.bloomScale,this._bloomWeight,this.bloomKernel/this._hardwareScaleLevel,this._defaultPipelineTextureType,!1),this.bloom.threshold=d.threshold;for(let R=0;R<this._cameras.length;R++)d.disposeEffects(this._cameras[R])}get depthOfFieldEnabled(){return this._depthOfFieldEnabled}set depthOfFieldEnabled(d){this._depthOfFieldEnabled!==d&&(this._depthOfFieldEnabled=d,this._buildPipeline())}get depthOfFieldBlurLevel(){return this._depthOfFieldBlurLevel}set depthOfFieldBlurLevel(d){if(this._depthOfFieldBlurLevel===d)return;this._depthOfFieldBlurLevel=d;const R=this.depthOfField;this.depthOfField=new Ie(this._scene,null,this._depthOfFieldBlurLevel,this._defaultPipelineTextureType,!1),this.depthOfField.focalLength=R.focalLength,this.depthOfField.focusDistance=R.focusDistance,this.depthOfField.fStop=R.fStop,this.depthOfField.lensSize=R.lensSize;for(let w=0;w<this._cameras.length;w++)R.disposeEffects(this._cameras[w]);this._buildPipeline()}set fxaaEnabled(d){this._fxaaEnabled!==d&&(this._fxaaEnabled=d,this._buildPipeline())}get fxaaEnabled(){return this._fxaaEnabled}set samples(d){this._samples!==d&&(this._samples=d,this._buildPipeline())}get samples(){return this._samples}set imageProcessingEnabled(d){this._imageProcessingEnabled!==d&&(this._scene.imageProcessingConfiguration.isEnabled=d)}get imageProcessingEnabled(){return this._imageProcessingEnabled}set glowLayerEnabled(d){d&&!this._glowLayer?this._glowLayer=new pt("",this._scene):!d&&this._glowLayer&&(this._glowLayer.dispose(),this._glowLayer=null)}get glowLayerEnabled(){return this._glowLayer!=null}get glowLayer(){return this._glowLayer}set chromaticAberrationEnabled(d){this._chromaticAberrationEnabled!==d&&(this._chromaticAberrationEnabled=d,this._buildPipeline())}get chromaticAberrationEnabled(){return this._chromaticAberrationEnabled}set grainEnabled(d){this._grainEnabled!==d&&(this._grainEnabled=d,this._buildPipeline())}get grainEnabled(){return this._grainEnabled}constructor(d="",R=!0,w=N.LastCreatedScene,ce,$=!0){Ye(he),super(w.getEngine(),d),this._scene=B(this,t),this._camerasToBeAttached=[],this.SharpenPostProcessId="SharpenPostProcessEffect",this.ImageProcessingPostProcessId="ImageProcessingPostProcessEffect",this.FxaaPostProcessId="FxaaPostProcessEffect",this.ChromaticAberrationPostProcessId="ChromaticAberrationPostProcessEffect",this.GrainPostProcessId="GrainPostProcessEffect",this._glowLayer=null,this.animations=[],this._imageProcessingConfigurationObserver=null,this._sharpenEnabled=!1,this._bloomEnabled=!1,this._depthOfFieldEnabled=!1,this._depthOfFieldBlurLevel=0,this._fxaaEnabled=!1,this._imageProcessingEnabled=!0,this._bloomScale=.5,this._chromaticAberrationEnabled=!1,this._grainEnabled=!1,this._buildAllowed=!0,this.onBuildObservable=new I,this._resizeObserver=null,this._hardwareScaleLevel=1,this._bloomKernel=64,this._bloomWeight=
18B(this,a,.15),this._bloomThreshold=(B(this,o),B(this,i,.9)),this._hdr=(B(this,h),B(this,u,void 0)),this._samples=(B(this,_),1),this._hasCleared=!1,this._prevPostProcess=null,this._prevPrevPostProcess=null,this._depthOfFieldSceneObserver=null,this._activeCameraChangedObserver=null,this._activeCamerasChangedObserver=null,this._cameras=ce||w.cameras,this._cameras=this._cameras.slice(),this._camerasToBeAttached=this._cameras.slice(),this._buildAllowed=$,this._scene=w;const X=this._scene.getEngine().getCaps();this._hdr=R&&(X.textureHalfFloatRender||X.textureFloatRender),this._hdr?X.textureHalfFloatRender?this._defaultPipelineTextureType=2:X.textureFloatRender&&(this._defaultPipelineTextureType=1):this._defaultPipelineTextureType=0,w.postProcessRenderPipelineManager.addPipeline(this);const V=this._scene.getEngine();this.sharpen=new mt("sharpen",1,null,C.BILINEAR_SAMPLINGMODE,V,!1,this._defaultPipelineTextureType,!0),this._sharpenEffect=new ne(V,this.SharpenPostProcessId,()=>this.sharpen,!0),this.depthOfField=new Ie(this._scene,null,this._depthOfFieldBlurLevel,this._defaultPipelineTextureType,!0),this._hardwareScaleLevel=V.getHardwareScalingLevel(),this._resizeObserver=V.onResizeObservable.add(()=>{this._hardwareScaleLevel=V.getHardwareScalingLevel(),this.bloomKernel=this._bloomKernel}),this.bloom=new Le(this._scene,this._bloomScale,this._bloomWeight,this.bloomKernel/this._hardwareScaleLevel,this._defaultPipelineTextureType,!0),this.chromaticAberration=new Pt("ChromaticAberration",V.getRenderWidth(),V.getRenderHeight(),1,null,C.BILINEAR_SAMPLINGMODE,V,!1,this._defaultPipelineTextureType,!0),this._chromaticAberrationEffect=new ne(V,this.ChromaticAberrationPostProcessId,()=>this.chromaticAberration,!0),this.grain=new Rt("Grain",1,null,C.BILINEAR_SAMPLINGMODE,V,!1,this._defaultPipelineTextureType,!0),this._grainEffect=new ne(V,this.GrainPostProcessId,()=>this.grain,!0);let Se=!0;this._imageProcessingConfigurationObserver=this._scene.imageProcessingConfiguration.onUpdateParameters.add(()=>{this.bloom._downscale._exposure=this._scene.imageProcessingConfiguration.exposure,this.imageProcessingEnabled!==this._scene.imageProcessingConfiguration.isEnabled&&(this._imageProcessingEnabled=this._scene.imageProcessingConfiguration.isEnabled,Se?at.SetImmediate(()=>{this._buildPipeline()}):this._buildPipeline())}),this._buildPipeline(),Se=!1}getClassName(){return"DefaultRenderingPipeline"}prepare(){const d=this._buildAllowed;this._buildAllowed=!0,this._buildPipeline(),this._buildAllowed=d}_setAutoClearAndTextureSharing(d,R=!1){this._hasCleared?d.autoClear=!1:(d.autoClear=!0,this._scene.autoClear=!1,this._hasCleared=!0),R||(this._prevPrevPostProcess?d.shareOutputWith(this._prevPrevPostProcess):d.useOwnOutput(),this._prevPostProcess&&(this._prevPrevPostProcess=this._prevPostProcess),this._prevPostProcess=d)}_buildPipeline(){if(!this._buildAllowed)return;this._scene.autoClear=!0;const d=this._scene.getEngine();if(this._disposePostProcesses(),this._cameras!==null&&(this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._cameras=this._camerasToBeAttached.slice()),this._reset(),this._prevPostProcess=null,this._prevPrevPostProcess=null,this._hasCleared=!1,this.depthOfFieldEnabled){if(this._cameras.length>1){for(const R of this._cameras){const w=this._scene.enableDepthRenderer(R);w.useOnlyInActiveCamera=!0}this._depthOfFieldSceneObserver=this._scene.onAfterRenderTargetsRenderObservable.add(R=>{this._cameras.indexOf(R.activeCamera)>-1&&(this.depthOfField.depthTexture=R.enableDepthRenderer(R.activeCamera).getDepthMap())})}else{this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);const R=this._scene.enableDepthRenderer(this._cameras[0]);this.depthOfField.depthTexture=R.getDepthMap()}this.depthOfField._isReady()||this.depthOfField._updateEffects(),this.addEffect(this.depthOfField),this._setAutoClearAndTextureSharing(this.depthOfField._effects[0],!0)}else this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver);this.bloomEnabled&&(this.bloom._isReady()||this.bloom._updateEffects(),this.addEffect(this.bloom),this._setAutoClearAndTextureSharing(this.bloom._effects[0],!0)),this._imageProcessingEnabled&&(this.imageProcessing=new bt("imageProcessing",1,null,C.BILINEAR_SAMPLINGMODE,d,!1,this._defaultPipelineTextureType,this.scene.imageProcessingConfiguration),this._hdr?(this.addEffect(new ne(d,this.ImageProcessingPostProcessId,()=>this.imageProcessing,!0)),this._setAutoClearAndTextureSharing(this.imageProcessing)):this._scene.imageProcessingConfiguration.applyByPostProcess=!1,(!this._cameras||this._cameras.length===0)&&(this._scene.imageProcessingConfiguration.applyByPostProcess=!1),this.imageProcessing.getEffect()||this.imageProcessing._updateParameters()),this.sharpenEnabled&&(this.sharpen.isReady()||this.sharpen.updateEffect(),this.addEffect(this._sharpenEffect),this._setAutoClearAndTextureSharing(this.sharpen)),this.grainEnabled&&(this.grain.isReady()||this.grain.updateEffect(),this.addEffect(this._grainEffect),this._setAutoClearAndTextureSharing(this.grain)),this.chromaticAberrationEnabled&&(this.chromaticAberration.isReady()||this.chromaticAberration.updateEffect(),this.addEffect(this._chromaticAberrationEffect),this._setAutoClearAndTextureSharing(this.chromaticAberration)),this.fxaaEnabled&&(this.fxaa=new Ee("fxaa",1,null,C.BILINEAR_SAMPLINGMODE,d,!1,this._defaultPipelineTextureType),this.addEffect(new ne(d,this.FxaaPostProcessId,()=>this.fxaa,!0)),this._setAutoClearAndTextureSharing(this.fxaa,!0)),this._cameras!==null&&this._scene.postProcessRenderPipelineManager.attachCamerasToRenderPipeline(this._name,this._cameras),(this._scene.activeCameras&&this._scene.activeCameras.length>1||this._scene.activeCamera&&this._cameras.indexOf(this._scene.activeCamera)===-1)&&(this._scene.autoClear=!0),this._activeCameraChangedObserver||(this._activeCameraChangedObserver=this._scene.onActiveCameraChanged.add(()=>{this._scene.activeCamera&&this._cameras.indexOf(this._scene.activeCamera)===-1&&(this._scene.autoClear=!0)})),this._activeCamerasChangedObserver||(this._activeCamerasChangedObserver=this._scene.onActiveCamerasChanged.add(()=>{this._scene.activeCameras&&this._scene.activeCameras.length>1&&(this._scene.autoClear=!0)})),this._adaptPostProcessesToViewPort(),!this._enableMSAAOnFirstPostProcess(this.samples)&&this.samples>1&&te.Warn("MSAA failed to enable, MSAA is only supported in browsers that support webGL >= 2.0"),this.onBuildObservable.notifyObservers(this)}_disposePostProcesses(d=!1){for(let R=0;R<this._cameras.length;R++){const w=this._cameras[R];this.imageProcessing&&this.imageProcessing.dispose(w),this.fxaa&&this.fxaa.dispose(w),d&&(this.sharpen&&this.sharpen.dispose(w),this.depthOfField&&(this._scene.onAfterRenderTargetsRenderObservable.remove(this._depthOfFieldSceneObserver),this.depthOfField.disposeEffects(w)),this.bloom&&this.bloom.disposeEffects(w),this.chromaticAberration&&this.chromaticAberration.dispose(w),this.grain&&this.grain.dispose(w),this._glowLayer&&this._glowLayer.dispose())}this.imageProcessing=null,this.fxaa=null,d&&(this.sharpen=null,this._sharpenEffect=null,this.depthOfField=null,this.bloom=null,this.chromaticAberration=null,this._chromaticAberrationEffect=null,this.grain=null,this._grainEffect=null,this._glowLayer=null)}addCamera(d){this._camerasToBeAttached.push(d),this._buildPipeline()}removeCamera(d){const R=this._camerasToBeAttached.indexOf(d);this._camerasToBeAttached.splice(R,1),this._buildPipeline()}dispose(){this._buildAllowed=!1,this.onBuildObservable.clear(),this._disposePostProcesses(!0),this._scene.postProcessRenderPipelineManager.detachCamerasFromRenderPipeline(this._name,this._cameras),this._scene._postProcessRenderPipelineManager.removePipeline(this.name),this._scene.autoClear=!0,this._resizeObserver&&(this._scene.getEngine().onResizeObservable.remove(this._resizeObserver),this._resizeObserver=null),this._scene.onActiveCameraChanged.remove(this._activeCameraChangedObserver),this._scene.onActiveCamerasChanged.remove(this._activeCamerasChangedObserver),this._scene.imageProcessingConfiguration.onUpdateParameters.remove(this._imageProcessingConfigurationObserver),super.dispose()}serialize(){const d=ee.Serialize(this);return d.customType="DefaultRenderingPipeline",d}},(()=>{const O=typeof Symbol=="function"&&Symbol.metadata?Object.create(e[Symbol.metadata]??null):void 0;s=[S()],n=[S()],r=[S()],l=[S()],g=[S()],p=[S()],m=[S()],f=[S()],b=[S()],P=[S()],T=[S()],v=[S()],L=[S()],y=[S()],M=[S()],F=[S()],U=[S()],E(c,null,s,{kind:"getter",name:"sharpenEnabled",static:!1,private:!1,access:{has:d=>"sharpenEnabled"in d,get:d=>d.sharpenEnabled},metadata:O}
18,null,t),E(c,null,n,{kind:"getter",name:"bloomKernel",static:!1,private:!1,access:{has:d=>"bloomKernel"in d,get:d=>d.bloomKernel},metadata:O},null,t),E(c,null,p,{kind:"getter",name:"bloomWeight",static:!1,private:!1,access:{has:d=>"bloomWeight"in d,get:d=>d.bloomWeight},metadata:O},null,t),E(c,null,m,{kind:"getter",name:"bloomThreshold",static:!1,private:!1,access:{has:d=>"bloomThreshold"in d,get:d=>d.bloomThreshold},metadata:O},null,t),E(c,null,f,{kind:"getter",name:"bloomScale",static:!1,private:!1,access:{has:d=>"bloomScale"in d,get:d=>d.bloomScale},metadata:O},null,t),E(c,null,b,{kind:"getter",name:"bloomEnabled",static:!1,private:!1,access:{has:d=>"bloomEnabled"in d,get:d=>d.bloomEnabled},metadata:O},null,t),E(c,null,P,{kind:"getter",name:"depthOfFieldEnabled",static:!1,private:!1,access:{has:d=>"depthOfFieldEnabled"in d,get:d=>d.depthOfFieldEnabled},metadata:O},null,t),E(c,null,T,{kind:"getter",name:"depthOfFieldBlurLevel",static:!1,private:!1,access:{has:d=>"depthOfFieldBlurLevel"in d,get:d=>d.depthOfFieldBlurLevel},metadata:O},null,t),E(c,null,v,{kind:"getter",name:"fxaaEnabled",static:!1,private:!1,access:{has:d=>"fxaaEnabled"in d,get:d=>d.fxaaEnabled},metadata:O},null,t),E(c,null,L,{kind:"getter",name:"samples",static:!1,private:!1,access:{has:d=>"samples"in d,get:d=>d.samples},metadata:O},null,t),E(c,null,y,{kind:"getter",name:"imageProcessingEnabled",static:!1,private:!1,access:{has:d=>"imageProcessingEnabled"in d,get:d=>d.imageProcessingEnabled},metadata:O},null,t),E(c,null,M,{kind:"getter",name:"glowLayerEnabled",static:!1,private:!1,access:{has:d=>"glowLayerEnabled"in d,get:d=>d.glowLayerEnabled},metadata:O},null,t),E(c,null,F,{kind:"getter",name:"chromaticAberrationEnabled",static:!1,private:!1,access:{has:d=>"chromaticAberrationEnabled"in d,get:d=>d.chromaticAberrationEnabled},metadata:O},null,t),E(c,null,U,{kind:"getter",name:"grainEnabled",static:!1,private:!1,access:{has:d=>"grainEnabled"in d,get:d=>d.grainEnabled},metadata:O},null,t),E(null,null,r,{kind:"field",name:"_bloomWeight",static:!1,private:!1,access:{has:d=>"_bloomWeight"in d,get:d=>d._bloomWeight,set:(d,R)=>{d._bloomWeight=R}},metadata:O},a,o),E(null,null,l,{kind:"field",name:"_bloomThreshold",static:!1,private:!1,access:{has:d=>"_bloomThreshold"in d,get:d=>d._bloomThreshold,set:(d,R)=>{d._bloomThreshold=R}},metadata:O},i,h),E(null,null,g,{kind:"field",name:"_hdr",static:!1,private:!1,access:{has:d=>"_hdr"in d,get:d=>d._hdr,set:(d,R)=>{d._hdr=R}},metadata:O},u,_),O&&Object.defineProperty(c,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:O})})(),c})(),De=!1;function At(c,e,t){return ee.Parse(()=>new Re(c._name,c._name._hdr,e),c,e,t)}function It(){De||(De=!0,Re.Parse=At,ot("BABYLON.DefaultRenderingPipeline",Re))}It();export{Re as DefaultRenderingPipeline,At as DefaultRenderingPipelineParse,It as RegisterDefaultRenderingPipeline};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.