<!-- SOLUV · part 649 -->
y.isArray(yt))for(let At=0;At<yt.length;At++){let vt=yt[At];cd(vt,H,N,k),V.add(vt)}else cd(yt,H,N,k),V.add(yt)}),T=v.pop(),F!==null&&F.renderEnd(),V},this.compileAsync=function(M,N,H=null){let V=this.compile(M,N,H);return new Promise(k=>{function yt(){if(V.forEach(function(At){let Ct=G.get(At).currentProgram;(Ct===void 0||Ct.isReady())&&V.delete(At)}),V.size===0){k(M);return}setTimeout(yt,10)}jt.get("KHR_parallel_shader_compile")!==null?yt():setTimeout(yt,10)})};let vc=null;function om(M){vc&&vc(M)}function hd(){bi.stop()}function ud(){bi.start()}let bi=new Qp;bi.setAnimationLoop(om),typeof self<"u"&&bi.setContext(self),this.setAnimationLoop=function(M){vc=M,It.setAnimationLoop(M),M===null?bi.stop():bi.start()},It.addEventListener("sessionstart",hd),It.addEventListener("sessionend",ud),this.render=function(M,N){if(N!==void 0&&N.isCamera!==!0){Lt("WebGLRenderer.render: camera is not an instance of THREE.Camera.");return}if(L===!0)return;F!==null&&F.renderStart(M,N);let H=It.enabled===!0&&It.isPresenting===!0,V=A!==null&&(st===null||H)&&A.begin(I,st);if(M.matrixWorldAutoUpdate===!0&&M.updateMatrixWorld(),N.parent===null&&N.matrixWorldAutoUpdate===!0&&N.updateMatrixWorld(),It.enabled===!0&&It.isPresenting===!0&&(A===null||A.isCompositing()===!1)&&(It.cameraAutoUpdate===!0&&It.updateCamera(N),N=It.getCamera()),M.isScene===!0&&M.onBeforeRender(I,M,N,st),T=ft.get(M,v.length),T.init(N),T.state.textureUnits=Y.getTextureUnits(),v.push(T),ot.multiplyMatrices(N.projectionMatrix,N.matrixWorldInverse),tt.setFromProjectionMatrix(ot,ln,N.reversedDepth),at=this.localClippingEnabled,rt=Ut.init(this.clippingPlanes,at),E=gt.get(M,R.length),E.init(),R.push(E),It.enabled===!0&&It.isPresenting===!0){let At=I.xr.getDepthSensingMesh();At!==null&&yc(At,N,-1/0,I.sortObjects)}yc(M,N,0,I.sortObjects),E.finish(),F!==null&&F.updateLights(T.state.lightsArray),I.sortObjects===!0&&E.sort(xt,Vt),Ht=It.enabled===!1||It.isPresenting===!1||It.hasDepthSensing()===!1,Ht&&Zt.addToRenderList(E,M),this.info.render.frame++,this.info.autoReset===!0&&this.info.reset(),rt===!0&&Ut.beginShadows();let k=T.state.shadowsArray;if(zt.render(k,M,N),rt===!0&&Ut.endShadows(),(V&&A.hasRenderPass())===!1){let At=E.opaque,vt=E.transmissive;if(T.setupLights(),N.isArrayCamera){let Ct=N.cameras;if(vt.length>0)for(let Pt=0,$t=Ct.length;Pt<$t;Pt++){let te=Ct[Pt];fd(At,vt,M,te)}Ht&&Zt.render(M);for(let Pt=0,$t=Ct.length;Pt<$t;Pt++){let te=Ct[Pt];dd(E,M,te,te.viewport)}}else vt.length>0&&fd(At,vt,M,N),Ht&&Zt.render(M),dd(E,M,N)}st!==null&&W===0&&(Y.updateMultisampleRenderTarget(st),Y.updateRenderTargetMipmap(st)),V&&A.end(I),M.isScene===!0&&M.onAfterRender(I,M,N),St.resetDefaultState(),q=-1,Q=null,v.pop(),v.length>0?(T=v[v.length-1],Y.setTextureUnits(T.state.textureUnits),rt===!0&&Ut.setGlobalState(I.clippingPlanes,T.state.camera)):T=null,R.pop(),R.length>0?E=R[R.length-1]:E=null,F!==null&&F.renderEnd()};function yc(M,N,H,V){if(M.visible===!1)return;if(M.layers.test(N.layers)){if(M.isGroup)H=M.renderOrder;else if(M.isLOD)M.autoUpdate===!0&&M.update(N);else if(M.isLightProbeGrid)T.pushLightProbeGrid(M);else if(M.isLight)T.pushLight(M),M.castShadow&&T.pushShadow(M);else if(M.isSprite){if(!M.frustumCulled||M.intersectsFrustum(tt)){V&&Bt.setFromMatrixPosition(M.matrixWorld).applyMatrix4(ot);let At=K.update(M),vt=M.material;vt.visible&&E.push(M,At,vt,H,Bt.z,null,N)}}else if((M.isMesh||M.isLine||M.isPoints)&&(!M.frustumCulled||M.intersectsFrustum(tt))){let At=K.update(M),vt=M.material;if(V&&(M.boundingSphere!==void 0?(M.boundingSphere===null&&M.computeBoundingSphere(),Bt.copy(M.boundingSphere.center)):(At.boundingSphere===null&&At.computeBoundingSphere(),Bt.copy(At.boundingSphere.center)),Bt.applyMatrix4(M.matrixWorld).applyMatrix4(ot)),Array.isArray(vt)){let Ct=At.groups;for(let Pt=0,$t=Ct.length;Pt<$t;Pt++){let te=Ct[Pt],Rt=vt[te.materialIndex];Rt&&Rt.visible&&E.push(M,At,Rt,H,Bt.z,te,N)}}else vt.visible&&E.push(M,At,vt,H,Bt.z,null,N)}}let yt=M.children;for(let At=0,vt=yt.length;At<vt;At++)yc(yt[At],N,H,V)}function dd(M,N,H,V){let{opaque:k,transmissive:yt,transparent:At}=M;T.setupLightsView(H),rt===!0&&Ut.setGlobalState(I.clippingPlanes,H),V&&y.viewport(et.copy(V)),k.length>0&&ha(k,N,H),yt.length>0&&ha(yt,N,H),At.length>0&&ha(At,N,H),y.buffers.depth.setTest(!0),y.buffers.depth.setMask(!0),y.buffers.color.setMask(!0),y.setPolygonOffset(!1)}function fd(M,N,H,V){if((H.isScene===!0?H.overrideMaterial:null)!==null)return;if(T.state.transmissionRenderTarget[V.id]===void 0){let Rt=jt.has("EXT_color_buffer_half_float")||jt.has("EXT_color_buffer_float");T.state.transmissionRenderTarget[V.id]=new Ge(1,1,{generateMipmaps:!0,type:Rt?wn:rn,minFilter:Vn,samples:Math.max(4,w.samples),stencilBuffer:r,resolveDepthBuffer:!1,resolveStencilBuffer:!1,storeMultisampledDepthBuffer:!1,storeMultisampledStencilBuffer:!1,colorSpace:ee.workingColorSpace})}let yt=T.state.transmissionRenderTarget[V.id],At=V.viewport||et;yt.setSize(At.z*I.transmissionResolutionScale,At.w*I.tran