"use strict";(self.webpackChunkluna=self.webpackChunkluna||[]).push([[12],{52:(e,t,i)=>{var s=i(31),a=i(11),n=i(2),r=(i(26),i(38)),o=i(0);const d=256,h=new Float32Array(d),l=new Float32Array(d),c=new Float32Array(d),g=new Float32Array(d),u=new Float32Array(d),p=new Float32Array(4),L=new Float32Array([4,0,0,0]),_=new Float32Array([0,0,0,0]),m=new Float32Array([0,0,0,0]),y=new Float32Array([0,0,0,0]),I=new Float32Array(16),E=new Float32Array([0,0,0,0]),T=new pc.Vec4,A=new pc.Vec4(-1,1,-1,-1),D=new o.i,R=[],P=[],C=[],v=[],U=new a.a,f=new a.a;let w=null;class S extends s.a{constructor(e,t,i){super(e,t,i),this.urpAsset=UnityEngine.Rendering.GraphicsSettings.renderPipelineAsset,this.additionalLightsRenderingMode=this.urpAsset.AdditionalLightsRenderingMode;const s=this.device.scope;var a;this.unityUrpIds={mainLightColor:s.resolve("_MainLightColor"),mainLightPosition:s.resolve("_MainLightPosition"),lightDirection:s.resolve("_LightDirection"),unityLightData:s.resolve("unity_LightData"),lightIndices:s.resolve("unity_LightIndices[0]"),additionalLightsCount:s.resolve("_AdditionalLightsCount"),occlusionProbes:s.resolve("unity_ProbesOcclusion"),glossyEnvironmentColor:s.resolve("_GlossyEnvironmentColor"),additionalLightsPosition:s.resolve("_AdditionalLightsPosition[0]"),additionalLightsColor:s.resolve("_AdditionalLightsColor[0]"),additionalLightsAttenuation:s.resolve("_AdditionalLightsAttenuation[0]"),additionalLightsSpotDir:s.resolve("_AdditionalLightsSpotDir[0]"),additionalLightsOcclusionProbe:s.resolve("_AdditionalLightsOcclusionProbes[0]"),cameraOpaqueTexture:s.resolve("_CameraOpaqueTexture"),scaledScreenParamsId:s.resolve("_ScaledScreenParams"),invCameraViewProj:s.resolve((a="_InvCameraViewProj","hlslcc_mtx4x4"+a+"[0]"))}}setCamera(e,t,i=!1){D.copy(e.invViewProjMat),this.unityUrpIds.invCameraViewProj.setValue(D.data),super.setCamera(e,t,i)}processClear(e){if(e.additionalCameraData.renderType===n.c.URP_CAMERA_RENDER_TYPE_BASE)this.device.clear(e.camera._clearOptions);else if(e.additionalCameraData.renderType===n.c.URP_CAMERA_RENDER_TYPE_OVERLAY&&e.additionalCameraData.clearDepth){const e={depth:1,flags:n.c.CLEARFLAG_DEPTH};this.device.clear(e)}}renderCameras(e){for(let t=0;t0;if(!d||0===s.mesh.primitive.length||0===s.mesh.primitive[0].count)return;this.getPassesFromMaterial(d);const l=R.length>0,c=v.length>0,g=C.length>0;if(!l&&!c&&!g)return;h&&s.configureLightmap(),this.updateScissor();const u=s.morphInstance&&s.morphInstance._vertexBuffer||s.mesh.vertexBuffer;if(this.device.setVertexBuffer(u,0),this.device.setIndexBuffer(s.mesh.indexBuffer[0]),this.app.counters.recordDrawCall(),s.mesh.meshInstance){const e=s.mesh.meshInstance.instancingData;this.app.counters.recordVertices(e&&e.count>0?u.numVertices*e.count:u.numVertices)}else this.app.counters.recordVertices(u.numVertices);if(this.setSkinning(this.device,s),this.setMaterial(this.device,s.material),this.pushUniforms(this.device,s.parameters),this.setDrawCall(this.device,s),o.setDepthRange((s._shaderDefs&n.c.SHADERDEF_RENDERTYPE_BACKGROUND)>0?1:0,1),e.merge(d.keywords),e.merge(U),h&&e.enableKeywordId(a.b.LIGHTMAP_ON),(s._shaderDefs&n.c.SHADERDEF_DIRLM)>0&&e.enableKeywordId(a.b.DIRLIGHTMAP_COMBINED),!g||l||c||this.renderMeshInstancePasses(C,e,s),!l&&!c)return this.popUniforms(this.device,s.parameters),void this.setDrawCall(this.device,null);l&&(P[0]=R[0],this.drawUrpForwardLitPass(P,s,r,e,h,t,i)),c&&this.renderMeshInstancePasses(v,e,s),this.restoreScissorTest(),this.popUniforms(o,s.parameters),this.setDrawCall(o,null)}setupGlobalKeywordsForCamera(e,t){let i=!1,s=!1;for(let e=0;ee._type===n.c.LIGHTTYPE_POINT))&&i.filter((e=>e._type===n.c.LIGHTTYPE_DIRECTIONAL)).length<=1&&f.enableKeywordId(a.b._ADDITIONAL_LIGHTS_VERTEX),this.renderMeshInstancePasses(e,f,t)}dispatchLights(e,t){const i=e.vertexLights.length>0?e.vertexLights.length:e.pixelLights.length;!t||e.mainLight&&!e.mainLight.affectLightmapped?(_[1]=0===i&&e.mainLight?1:i,_[2]=e.mainLight?1:0):(_[1]=0===i&&e.mainLight&&0===UnityEngine.RenderSettings.mixedBakeMode?1:i,_[2]=e.mainLight&&0===UnityEngine.RenderSettings.mixedBakeMode?1:0),this.unityUrpIds.unityLightData.setValue(_),this.unityUrpIds.occlusionProbes.setValue([1,1,1,1]),this.dispatchAdditionalLights(e)}dispatchMainLightUrp(e){null===e?(m[0]=0,m[1]=0,m[2]=0,m[3]=1,y[0]=0,y[1]=0,y[2]=-1,y[3]=0,I.set(pc.Mat4.IDENTITY.data)):(m.set(e._finalColor),y[0]=e._directionToLight.x,y[1]=e._directionToLight.y,y[2]=e._directionToLight.z,y[3]=0,I.set(e._worldToLightMatrix.data)),this.unityUrpIds.mainLightColor.setValue(m),this.unityUrpIds.mainLightPosition.setValue(y),this.unityUrpIds.lightDirection.setValue(y),this.lightIds.matrix.setValue(I)}dispatchAdditionalLights(e){const t=this.additionalLightsRenderingMode===UnityEngine.Rendering.Universal.LightRenderingMode.PerPixel?e.pixelLights:e.vertexLights,i=Math.min(t.length,UnityEngine.RenderSettings._pixelLightCount);for(let e=0;e{e.O(0,[1],(()=>{return t=52,e(e.s=t);var t}));e.O()}]);