月球大数据地理空间分析展示平台-【前端】-月球2期前端
WX
2023-06-16 ffb95c5b73c2bf11cd66b3c05955833397dc553b
1
'use strict';function a6_0x2304(_0x3e9b9b,_0x572dc2){var _0x553736=a6_0x5537();return a6_0x2304=function(_0x2304c3,_0x1f889c){_0x2304c3=_0x2304c3-0x11b;var _0x50e4b2=_0x553736[_0x2304c3];return _0x50e4b2;},a6_0x2304(_0x3e9b9b,_0x572dc2);}var a6_0x1e64fa=a6_0x2304;function a6_0x5537(){var _0x4cfc63=['_addUniformToLeftOverUBO','#ifdef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0auniform\x20float\x20bakedVertexAnimationTime;\x0auniform\x20vec2\x20bakedVertexAnimationTextureSizeInverted;\x0auniform\x20vec4\x20bakedVertexAnimationSettings;\x0auniform\x20sampler2D\x20bakedVertexAnimationTexture;\x0a#ifdef\x20INSTANCES\x0aattribute\x20vec4\x20bakedVertexAnimationSettingsInstanced;\x0a#endif\x0a#define\x20inline\x0amat4\x20readMatrixFromRawSamplerVAT(sampler2D\x20smp,float\x20index,float\x20frame)\x0a{\x0afloat\x20offset=index*4.0;\x0afloat\x20frameUV=(frame+0.5)*bakedVertexAnimationTextureSizeInverted.y;\x0afloat\x20dx=bakedVertexAnimationTextureSizeInverted.x;\x0avec4\x20m0=texture2D(smp,vec2(dx*(offset+0.5),frameUV));\x0avec4\x20m1=texture2D(smp,vec2(dx*(offset+1.5),frameUV));\x0avec4\x20m2=texture2D(smp,vec2(dx*(offset+2.5),frameUV));\x0avec4\x20m3=texture2D(smp,vec2(dx*(offset+3.5),frameUV));\x0areturn\x20mat4(m0,m1,m2,m3);\x0a}\x0a#endif\x0a','\x20=\x20texture2DLodEXT(','tan','GL_ALPHA_EQUATION_REVERSE_SUBTRACT','#define\x20CLIPPLANE3','No\x20fixed\x20size\x20for\x20Stencil8\x20format!','bindingIndex','min','minmaxReduxPixelShader','_getSamplingParameters','_fragmentSourceCode','ref','_width','noisePixelShader','morphTargetsVertex','then','createRawTexture3D','#ifdef\x20REFLECTION\x0astruct\x20reflectionOutParams\x0a{\x0avec4\x20environmentRadiance;\x0avec3\x20environmentIrradiance;\x0a#ifdef\x20REFLECTIONMAP_3D\x0avec3\x20reflectionCoords;\x0a#else\x0avec2\x20reflectionCoords;\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20!defined(NORMAL)\x20||\x20!defined(USESPHERICALINVERTEX)\x0avec3\x20irradianceVector;\x0a#endif\x0a#endif\x0a#endif\x0a};\x0a#define\x20pbr_inline\x0avoid\x20createReflectionCoords(\x0ain\x20vec3\x20vPositionW,\x0ain\x20vec3\x20normalW,\x0a#ifdef\x20ANISOTROPIC\x0ain\x20anisotropicOutParams\x20anisotropicOut,\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0aout\x20vec3\x20reflectionCoords\x0a#else\x0aout\x20vec2\x20reflectionCoords\x0a#endif\x0a)\x0a{\x0a#ifdef\x20ANISOTROPIC\x0avec3\x20reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),anisotropicOut.anisotropicNormal);\x0a#else\x0avec3\x20reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0areflectionVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0areflectionCoords=reflectionVector;\x0a#else\x0areflectionCoords=reflectionVector.xy;\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0areflectionCoords/=reflectionVector.z;\x0a#endif\x0areflectionCoords.y=1.0-reflectionCoords.y;\x0a#endif\x0a}\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20sampleReflectionTexture(\x0ain\x20float\x20alphaG,\x0ain\x20vec3\x20vReflectionMicrosurfaceInfos,\x0ain\x20vec2\x20vReflectionInfos,\x0ain\x20vec3\x20vReflectionColor,\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0ain\x20float\x20NdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0ain\x20float\x20roughness,\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSampler,\x0aconst\x20vec3\x20reflectionCoords,\x0a#else\x0ain\x20sampler2D\x20reflectionSampler,\x0aconst\x20vec2\x20reflectionCoords,\x0a#endif\x0a#ifndef\x20LODBASEDMICROSFURACE\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSamplerLow,\x0ain\x20samplerCube\x20reflectionSamplerHigh,\x0a#else\x0ain\x20sampler2D\x20reflectionSamplerLow,\x0ain\x20sampler2D\x20reflectionSamplerHigh,\x0a#endif\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0ain\x20vec2\x20vReflectionFilteringInfo,\x0a#endif\x0aout\x20vec4\x20environmentRadiance\x0a)\x0a{\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0afloat\x20reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG,NdotVUnclamped);\x0a#elif\x20defined(LINEARSPECULARREFLECTION)\x0afloat\x20reflectionLOD=getLinearLodFromRoughness(vReflectionMicrosurfaceInfos.x,roughness);\x0a#else\x0afloat\x20reflectionLOD=getLodFromAlphaG(vReflectionMicrosurfaceInfos.x,alphaG);\x0a#endif\x0a#ifdef\x20LODBASEDMICROSFURACE\x0areflectionLOD=reflectionLOD*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;\x0a#ifdef\x20LODINREFLECTIONALPHA\x0afloat\x20automaticReflectionLOD=UNPACK_LOD(sampleReflection(reflectionSampler,reflectionCoords).a);\x0afloat\x20requestedReflectionLOD=max(automaticReflectionLOD,reflectionLOD);\x0a#else\x0afloat\x20requestedReflectionLOD=reflectionLOD;\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0aenvironmentRadiance=vec4(radiance(alphaG,reflectionSampler,reflectionCoords,vReflectionFilteringInfo),1.0);\x0a#else\x0aenvironmentRadiance=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\x0a#endif\x0a#else\x0afloat\x20lodReflectionNormalized=saturate(reflectionLOD/log2(vReflectionMicrosurfaceInfos.x));\x0afloat\x20lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;\x0avec4\x20environmentMid=sampleReflection(reflectionSampler,reflectionCoords);\x0aif\x20(lodReflectionNormalizedDoubled<1.0){\x0aenvironmentRadiance=mix(\x0asampleReflection(reflectionSamplerHigh,reflectionCoords),\x0aenvironmentMid,\x0alodReflectionNormalizedDoubled\x0a);\x0a}\x20else\x20{\x0aenvironmentRadiance=mix(\x0aenvironmentMid,\x0asampleReflection(reflectionSamplerLow,reflectionCoords),\x0alodReflectionNormalizedDoubled-1.0\x0a);\x0a}\x0a#endif\x0a#ifdef\x20RGBDREFLECTION\x0aenvironmentRadiance.rgb=fromRGBD(environmentRadiance);\x0a#endif\x0a#ifdef\x20GAMMAREFLECTION\x0aenvironmentRadiance.rgb=toLinearSpace(environmentRadiance.rgb);\x0a#endif\x0aenvironmentRadiance.rgb*=vReflectionInfos.x;\x0aenvironmentRadiance.rgb*=vReflectionColor.rgb;\x0a}\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20reflectionBlock(\x0ain\x20vec3\x20vPositionW,\x0ain\x20vec3\x20normalW,\x0ain\x20float\x20alphaG,\x0ain\x20vec3\x20vReflectionMicrosurfaceInfos,\x0ain\x20vec2\x20vReflectionInfos,\x0ain\x20vec3\x20vReflectionColor,\x0a#ifdef\x20ANISOTROPIC\x0ain\x20anisotropicOutParams\x20anisotropicOut,\x0a#endif\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0ain\x20float\x20NdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0ain\x20float\x20roughness,\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSampler,\x0a#else\x0ain\x20sampler2D\x20reflectionSampler,\x0a#endif\x0a#if\x20defined(NORMAL)\x20&&\x20defined(USESPHERICALINVERTEX)\x0ain\x20vec3\x20vEnvironmentIrradiance,\x0a#endif\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20!defined(NORMAL)\x20||\x20!defined(USESPHERICALINVERTEX)\x0ain\x20mat4\x20reflectionMatrix,\x0a#endif\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20irradianceSampler,\x0a#else\x0ain\x20sampler2D\x20irradianceSampler,\x0a#endif\x0a#endif\x0a#ifndef\x20LODBASEDMICROSFURACE\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSamplerLow,\x0ain\x20samplerCube\x20reflectionSamplerHigh,\x0a#else\x0ain\x20sampler2D\x20reflectionSamplerLow,\x0ain\x20sampler2D\x20reflectionSamplerHigh,\x0a#endif\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0ain\x20vec2\x20vReflectionFilteringInfo,\x0a#endif\x0aout\x20reflectionOutParams\x20outParams\x0a)\x0a{\x0avec4\x20environmentRadiance=vec4(0.,0.,0.,0.);\x0a#ifdef\x20REFLECTIONMAP_3D\x0avec3\x20reflectionCoords=vec3(0.);\x0a#else\x0avec2\x20reflectionCoords=vec2(0.);\x0a#endif\x0acreateReflectionCoords(\x0avPositionW,\x0anormalW,\x0a#ifdef\x20ANISOTROPIC\x0aanisotropicOut,\x0a#endif\x0areflectionCoords\x0a);\x0asampleReflectionTexture(\x0aalphaG,\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0aNdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0aroughness,\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0areflectionSampler,\x0areflectionCoords,\x0a#else\x0areflectionSampler,\x0areflectionCoords,\x0a#endif\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0aenvironmentRadiance\x0a);\x0avec3\x20environmentIrradiance=vec3(0.,0.,0.);\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20defined(NORMAL)\x20&&\x20defined(USESPHERICALINVERTEX)\x0aenvironmentIrradiance=vEnvironmentIrradiance;\x0a#else\x0a#ifdef\x20ANISOTROPIC\x0avec3\x20irradianceVector=vec3(reflectionMatrix*vec4(anisotropicOut.anisotropicNormal,0)).xyz;\x0a#else\x0avec3\x20irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0airradianceVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20INVERTCUBICMAP\x0airradianceVector.y*=-1.0;\x0a#endif\x0a#if\x20defined(REALTIME_FILTERING)\x0aenvironmentIrradiance=irradiance(reflectionSampler,irradianceVector,vReflectionFilteringInfo);\x0a#else\x0aenvironmentIrradiance=computeEnvironmentIrradiance(irradianceVector);\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0aoutParams.irradianceVector=irradianceVector;\x0a#endif\x0a#endif\x0a#elif\x20defined(USEIRRADIANCEMAP)\x0avec4\x20environmentIrradiance4=sampleReflection(irradianceSampler,reflectionCoords);\x0aenvironmentIrradiance=environmentIrradiance4.rgb;\x0a#ifdef\x20RGBDREFLECTION\x0aenvironmentIrradiance.rgb=fromRGBD(environmentIrradiance4);\x0a#endif\x0a#ifdef\x20GAMMAREFLECTION\x0aenvironmentIrradiance.rgb=toLinearSpace(environmentIrradiance.rgb);\x0a#endif\x0a#endif\x0aenvironmentIrradiance*=vReflectionColor.rgb;\x0aoutParams.environmentRadiance=environmentRadiance;\x0aoutParams.environmentIrradiance=environmentIrradiance;\x0aoutParams.reflectionCoords=reflectionCoords;\x0a}\x0a#endif\x0a','hoverCursor','children','setColorWrite','line','minimizeInPlace','\x20levels','url','zOffset','_BuildSubExpression','isValid',');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20','vClipPlane6','createUniformBuffer','generateDepthBuffer','UniformBuffer','attribute\x20vec2\x20position;\x0auniform\x20vec2\x20delta;\x0avarying\x20vec2\x20sampleCenter;\x0a#include<kernelBlurVaryingDeclaration>[0..varyingCount]\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0asampleCenter=(position*madd+madd);\x0a#include<kernelBlurVertex>[0..varyingCount]\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','createMultiviewRenderTargetTexture','#define\x20CLEARCOATREFLECTANCE90\x201.0\x0astruct\x20lightingInfo\x0a{\x0avec3\x20diffuse;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specular;\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0avec4\x20clearCoat;\x0a#endif\x0a#ifdef\x20SHEEN\x0avec3\x20sheen;\x0a#endif\x0a};\x0afloat\x20adjustRoughnessFromLightProperties(float\x20roughness,float\x20lightRadius,float\x20lightDistance)\x20{\x0a#if\x20defined(USEPHYSICALLIGHTFALLOFF)\x20||\x20defined(USEGLTFLIGHTFALLOFF)\x0afloat\x20lightRoughness=lightRadius/lightDistance;\x0afloat\x20totalRoughness=saturate(lightRoughness+roughness);\x0areturn\x20totalRoughness;\x0a#else\x0areturn\x20roughness;\x0a#endif\x0a}\x0avec3\x20computeHemisphericDiffuseLighting(preLightingInfo\x20info,vec3\x20lightColor,vec3\x20groundColor)\x20{\x0areturn\x20mix(groundColor,lightColor,info.NdotL);\x0a}\x0avec3\x20computeDiffuseLighting(preLightingInfo\x20info,vec3\x20lightColor)\x20{\x0afloat\x20diffuseTerm=diffuseBRDF_Burley(info.NdotL,info.NdotV,info.VdotH,info.roughness);\x0areturn\x20diffuseTerm*info.attenuation*info.NdotL*lightColor;\x0a}\x0a#define\x20inline\x0avec3\x20computeProjectionTextureDiffuseLighting(sampler2D\x20projectionLightSampler,mat4\x20textureProjectionMatrix){\x0avec4\x20strq=textureProjectionMatrix*vec4(vPositionW,1.0);\x0astrq/=strq.w;\x0avec3\x20textureColor=texture2D(projectionLightSampler,strq.xy).rgb;\x0areturn\x20toLinearSpace(textureColor);\x0a}\x0a#ifdef\x20SS_TRANSLUCENCY\x0avec3\x20computeDiffuseAndTransmittedLighting(preLightingInfo\x20info,vec3\x20lightColor,vec3\x20transmittance)\x20{\x0afloat\x20NdotL=absEps(info.NdotLUnclamped);\x0afloat\x20wrapNdotL=computeWrappedDiffuseNdotL(NdotL,0.02);\x0afloat\x20trAdapt=step(0.,info.NdotLUnclamped);\x0avec3\x20transmittanceNdotL=mix(transmittance*wrapNdotL,vec3(wrapNdotL),trAdapt);\x0afloat\x20diffuseTerm=diffuseBRDF_Burley(NdotL,info.NdotV,info.VdotH,info.roughness);\x0areturn\x20diffuseTerm*transmittanceNdotL*info.attenuation*lightColor;\x0a}\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20computeSpecularLighting(preLightingInfo\x20info,vec3\x20N,vec3\x20reflectance0,vec3\x20reflectance90,float\x20geometricRoughnessFactor,vec3\x20lightColor)\x20{\x0afloat\x20NdotH=saturateEps(dot(N,info.H));\x0afloat\x20roughness=max(info.roughness,geometricRoughnessFactor);\x0afloat\x20alphaG=convertRoughnessToAverageSlope(roughness);\x0avec3\x20fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\x0a#ifdef\x20IRIDESCENCE\x0afresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);\x0a#endif\x0afloat\x20distribution=normalDistributionFunction_TrowbridgeReitzGGX(NdotH,alphaG);\x0a#ifdef\x20BRDF_V_HEIGHT_CORRELATED\x0afloat\x20smithVisibility=smithVisibility_GGXCorrelated(info.NdotL,info.NdotV,alphaG);\x0a#else\x0afloat\x20smithVisibility=smithVisibility_TrowbridgeReitzGGXFast(info.NdotL,info.NdotV,alphaG);\x0a#endif\x0avec3\x20specTerm=fresnel*distribution*smithVisibility;\x0areturn\x20specTerm*info.attenuation*info.NdotL*lightColor;\x0a}\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0avec3\x20computeAnisotropicSpecularLighting(preLightingInfo\x20info,vec3\x20V,vec3\x20N,vec3\x20T,vec3\x20B,float\x20anisotropy,vec3\x20reflectance0,vec3\x20reflectance90,float\x20geometricRoughnessFactor,vec3\x20lightColor)\x20{\x0afloat\x20NdotH=saturateEps(dot(N,info.H));\x0afloat\x20TdotH=dot(T,info.H);\x0afloat\x20BdotH=dot(B,info.H);\x0afloat\x20TdotV=dot(T,V);\x0afloat\x20BdotV=dot(B,V);\x0afloat\x20TdotL=dot(T,info.L);\x0afloat\x20BdotL=dot(B,info.L);\x0afloat\x20alphaG=convertRoughnessToAverageSlope(info.roughness);\x0avec2\x20alphaTB=getAnisotropicRoughness(alphaG,anisotropy);\x0aalphaTB=max(alphaTB,square(geometricRoughnessFactor));\x0avec3\x20fresnel=fresnelSchlickGGX(info.VdotH,reflectance0,reflectance90);\x0a#ifdef\x20IRIDESCENCE\x0afresnel=mix(fresnel,reflectance0,info.iridescenceIntensity);\x0a#endif\x0afloat\x20distribution=normalDistributionFunction_BurleyGGX_Anisotropic(NdotH,TdotH,BdotH,alphaTB);\x0afloat\x20smithVisibility=smithVisibility_GGXCorrelated_Anisotropic(info.NdotL,info.NdotV,TdotV,BdotV,TdotL,BdotL,alphaTB);\x0avec3\x20specTerm=fresnel*distribution*smithVisibility;\x0areturn\x20specTerm*info.attenuation*info.NdotL*lightColor;\x0a}\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0avec4\x20computeClearCoatLighting(preLightingInfo\x20info,vec3\x20Ncc,float\x20geometricRoughnessFactor,float\x20clearCoatIntensity,vec3\x20lightColor)\x20{\x0afloat\x20NccdotL=saturateEps(dot(Ncc,info.L));\x0afloat\x20NccdotH=saturateEps(dot(Ncc,info.H));\x0afloat\x20clearCoatRoughness=max(info.roughness,geometricRoughnessFactor);\x0afloat\x20alphaG=convertRoughnessToAverageSlope(clearCoatRoughness);\x0afloat\x20fresnel=fresnelSchlickGGX(info.VdotH,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);\x0afresnel*=clearCoatIntensity;\x0afloat\x20distribution=normalDistributionFunction_TrowbridgeReitzGGX(NccdotH,alphaG);\x0afloat\x20kelemenVisibility=visibility_Kelemen(info.VdotH);\x0afloat\x20clearCoatTerm=fresnel*distribution*kelemenVisibility;\x0areturn\x20vec4(\x0aclearCoatTerm*info.attenuation*NccdotL*lightColor,\x0a1.0-fresnel\x0a);\x0a}\x0avec3\x20computeClearCoatLightingAbsorption(float\x20NdotVRefract,vec3\x20L,vec3\x20Ncc,vec3\x20clearCoatColor,float\x20clearCoatThickness,float\x20clearCoatIntensity)\x20{\x0avec3\x20LRefract=-refract(L,Ncc,vClearCoatRefractionParams.y);\x0afloat\x20NdotLRefract=saturateEps(dot(Ncc,LRefract));\x0avec3\x20absorption=computeClearCoatAbsorption(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness,clearCoatIntensity);\x0areturn\x20absorption;\x0a}\x0a#endif\x0a#ifdef\x20SHEEN\x0avec3\x20computeSheenLighting(preLightingInfo\x20info,vec3\x20N,vec3\x20reflectance0,vec3\x20reflectance90,float\x20geometricRoughnessFactor,vec3\x20lightColor)\x20{\x0afloat\x20NdotH=saturateEps(dot(N,info.H));\x0afloat\x20roughness=max(info.roughness,geometricRoughnessFactor);\x0afloat\x20alphaG=convertRoughnessToAverageSlope(roughness);\x0afloat\x20fresnel=1.;\x0afloat\x20distribution=normalDistributionFunction_CharlieSheen(NdotH,alphaG);\x0a/*#ifdef\x20SHEEN_SOFTER\x0afloat\x20visibility=visibility_CharlieSheen(info.NdotL,info.NdotV,alphaG);\x0a#else\x20*/\x0afloat\x20visibility=visibility_Ashikhmin(info.NdotL,info.NdotV);\x0a/*\x20#endif\x20*/\x0afloat\x20sheenTerm=fresnel*distribution*visibility;\x0areturn\x20sheenTerm*info.attenuation*info.NdotL*lightColor;\x0a}\x0a#endif\x0a','fluidRenderingBilateralBlur','-DepthStencil','GetEffect','_mainPassBundleList','_sphericalPolynomialComputed','TEXTURETYPE_UNSIGNED_SHORT','#ifdef\x20DOF\x0afactor=sampleCoC(sampleCenter+delta*KERNEL_DEP_OFFSET{X});\x0acomputedWeight=KERNEL_DEP_WEIGHT{X}*factor;\x0asumOfWeights+=computedWeight;\x0a#else\x0acomputedWeight=KERNEL_DEP_WEIGHT{X};\x0a#endif\x0a#ifdef\x20PACKEDFLOAT\x0ablend+=unpack(texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X}))*computedWeight;\x0a#else\x0ablend+=texture2D(textureSampler,sampleCenter+delta*KERNEL_DEP_OFFSET{X})*computedWeight;\x0a#endif\x0a','shadowOnlyVertexShader','IsWrapper','_attached','hdrFilteringPixelShader','Unable\x20to\x20get\x202d\x20context','GetCode','layout(set\x20=\x20','source','MAINUV5','_cullFace','#if\x20defined(CLIPPLANE)\x20||\x20defined(CLIPPLANE2)\x20||\x20defined(CLIPPLANE3)\x20||\x20defined(CLIPPLANE4)\x20||\x20defined(CLIPPLANE5)\x20||\x20defined(CLIPPLANE6)\x0aif\x20(false)\x20{}\x0a#endif\x0a#ifdef\x20CLIPPLANE\x0aelse\x20if\x20(fragmentInputs.fClipDistance>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0aelse\x20if\x20(fragmentInputs.fClipDistance2>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0aelse\x20if\x20(fragmentInputs.fClipDistance3>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0aelse\x20if\x20(fragmentInputs.fClipDistance4>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0aelse\x20if\x20(fragmentInputs.fClipDistance5>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0aelse\x20if\x20(fragmentInputs.fClipDistance6>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a','\x0a};\x0avar<private>\x20vertexOutputs\x20:\x20FragmentInputs;\x0a','ALPHA_EXCLUSION','pbrBlockDirectLighting','Depth24PlusStencil8','shift','_physicsImpostor','ALPHA_ONEONE','updateUInt','TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5','getError','sqrt','deviceSlot','vrDistortionCorrectionPixelShader','fogFragment','metersPerUnit','_dstBuffers','BC1RGBAUnorm','maxRenderTriangleCount','_currentBundleList','_dummyFramebuffer','uniformBuffer','fluidRenderingStandardBlur','meshes','_retrieveQueryBuffer','_vrDisplay','BC4RSnorm','popDebugGroup','_appendSpriteVertex','textE','vec3\x20hemisphereCosSample(vec2\x20u)\x20{\x0afloat\x20phi=2.*PI*u.x;\x0afloat\x20cosTheta2=1.-u.y;\x0afloat\x20cosTheta=sqrt(cosTheta2);\x0afloat\x20sinTheta=sqrt(1.-cosTheta2);\x0areturn\x20vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);\x0a}\x0avec3\x20hemisphereImportanceSampleDggx(vec2\x20u,float\x20a)\x20{\x0afloat\x20phi=2.*PI*u.x;\x0afloat\x20cosTheta2=(1.-u.y)/(1.+(a+1.)*((a-1.)*u.y));\x0afloat\x20cosTheta=sqrt(cosTheta2);\x0afloat\x20sinTheta=sqrt(1.-cosTheta2);\x0areturn\x20vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);\x0a}\x0avec3\x20hemisphereImportanceSampleDCharlie(vec2\x20u,float\x20a)\x20{\x20\x0afloat\x20phi=2.*PI*u.x;\x0afloat\x20sinTheta=pow(u.y,a/(2.*a+1.));\x0afloat\x20cosTheta=sqrt(1.-sinTheta*sinTheta);\x0areturn\x20vec3(sinTheta*cos(phi),sinTheta*sin(phi),cosTheta);\x0a}','setMRT','KEYDOWN','_addSamplerBindingDescription','Cannot\x20create\x20canvas\x20to\x20resize\x20texture.','_updatePointerPosition','modelArrayBuff','TEXTUREFORMAT_ALPHA','getInputElementClientRect','Raw3D','samplingModes','clearQuad','updateInt','TEXTURE_INVCUBIC_MODE','prepareDefines','getEffectDefines','rotation','endRenderTargetPass','computePipeline','_bundleLists','uv5','texImage3D','defaultPixelShader','IsExponentOfTwo','_defineEquirectangularName',',\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}','morphTargetsVertexGlobal','hasPointerTriggers','\x20BILLBOARD','sampler2DArrayShadow','.rgb','registerOutput','_setupDepthStencilTexture','\x20\x20@location(','vrdisplaypointerrestricted','COLOR_ATTACHMENT0','temps','#ifdef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a{\x0a#ifdef\x20INSTANCES\x0a#define\x20BVASNAME\x20bakedVertexAnimationSettingsInstanced\x0a#else\x0a#define\x20BVASNAME\x20bakedVertexAnimationSettings\x0a#endif\x0afloat\x20VATStartFrame=BVASNAME.x;\x0afloat\x20VATEndFrame=BVASNAME.y;\x0afloat\x20VATOffsetFrame=BVASNAME.z;\x0afloat\x20VATSpeed=BVASNAME.w;\x0afloat\x20totalFrames=VATEndFrame-VATStartFrame+1.0;\x0afloat\x20time=bakedVertexAnimationTime*VATSpeed/totalFrames;\x0afloat\x20frameCorrection=time<1.0\x20?\x200.0\x20:\x201.0;\x0afloat\x20numOfFrames=totalFrames-frameCorrection;\x0afloat\x20VATFrameNum=fract(time)*numOfFrames;\x0aVATFrameNum=mod(VATFrameNum+VATOffsetFrame,numOfFrames);\x0aVATFrameNum=floor(VATFrameNum);\x0aVATFrameNum+=VATStartFrame+frameCorrection;\x0amat4\x20VATInfluence;\x0aVATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[0],VATFrameNum)*matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[1],VATFrameNum)*matricesWeights[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[2],VATFrameNum)*matricesWeights[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndices[3],VATFrameNum)*matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[0],VATFrameNum)*matricesWeightsExtra[0];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[1],VATFrameNum)*matricesWeightsExtra[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[2],VATFrameNum)*matricesWeightsExtra[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0aVATInfluence+=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,matricesIndicesExtra[3],VATFrameNum)*matricesWeightsExtra[3];\x0a#endif\x0afinalWorld=finalWorld*VATInfluence;\x0a}\x0a#endif\x0a','#elif','precision\x20mediump\x20sampler2DArray;\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2DArray\x20multiviewSampler;\x0auniform\x20int\x20imageIndex;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0agl_FragColor=texture2D(multiviewSampler,vec3(vUV,imageIndex));\x0a}','isFloatTexture','isMultiview','createRenderTargetCubeTexture','query','addPendingData','glowBlurPostProcessPixelShader','pointermove','attribute\x20vec3\x20position;\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<clipPlaneVertexDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20MULTIVIEW\x0auniform\x20mat4\x20viewProjectionR;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0a#ifdef\x20MULTIVIEW\x0aif\x20(gl_ViewID_OVR==0u)\x20{\x0agl_Position=viewProjection*worldPos;\x0a}\x20else\x20{\x0agl_Position=viewProjectionR*worldPos;\x0a}\x0a#else\x0agl_Position=viewProjection*worldPos;\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<vertexColorMixing>\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','#if\x20defined(BUMP)\x20||\x20!defined(NORMAL)\x20||\x20defined(FORCENORMALFORWARD)\x20||\x20defined(SPECULARAA)\x20||\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(ANISOTROPIC)\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#endif\x0a#ifdef\x20LODBASEDMICROSFURACE\x0a#extension\x20GL_EXT_shader_texture_lod\x20:\x20enable\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_BEGIN\x0a#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0a#include<prePassDeclaration>[SCENE_MRT_COUNT]\x0aprecision\x20highp\x20float;\x0a#include<oitDeclaration>\x0a#ifndef\x20FROMLINEARSPACE\x0a#define\x20FROMLINEARSPACE\x0a#endif\x0a#include<__decl__pbrFragment>\x0a#include<pbrFragmentExtraDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<pbrFragmentSamplersDeclaration>\x0a#include<imageProcessingDeclaration>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<logDepthDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#include<helperFunctions>\x0a#include<subSurfaceScatteringFunctions>\x0a#include<importanceSampling>\x0a#include<pbrHelperFunctions>\x0a#include<imageProcessingFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<harmonicsFunctions>\x0a#include<pbrDirectLightingSetupFunctions>\x0a#include<pbrDirectLightingFalloffFunctions>\x0a#include<pbrBRDFFunctions>\x0a#include<hdrFilteringFunctions>\x0a#include<pbrDirectLightingFunctions>\x0a#include<pbrIBLFunctions>\x0a#include<bumpFragmentMainFunctions>\x0a#include<bumpFragmentFunctions>\x0a#ifdef\x20REFLECTION\x0a#include<reflectionFunction>\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0a#include<pbrBlockAlbedoOpacity>\x0a#include<pbrBlockReflectivity>\x0a#include<pbrBlockAmbientOcclusion>\x0a#include<pbrBlockAlphaFresnel>\x0a#include<pbrBlockAnisotropic>\x0a#include<pbrBlockReflection>\x0a#include<pbrBlockSheen>\x0a#include<pbrBlockClearcoat>\x0a#include<pbrBlockIridescence>\x0a#include<pbrBlockSubSurface>\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0a#include<pbrBlockNormalGeometric>\x0a#include<bumpFragment>\x0a#include<pbrBlockNormalFinal>\x0aalbedoOpacityOutParams\x20albedoOpacityOut;\x0a#ifdef\x20ALBEDO\x0avec4\x20albedoTexture=texture2D(albedoSampler,vAlbedoUV+uvOffset);\x0a#endif\x0a#ifdef\x20OPACITY\x0avec4\x20opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\x0a#endif\x0a#ifdef\x20DECAL\x0avec4\x20decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\x0a#endif\x0aalbedoOpacityBlock(\x0avAlbedoColor,\x0a#ifdef\x20ALBEDO\x0aalbedoTexture,\x0avAlbedoInfos,\x0a#endif\x0a#ifdef\x20OPACITY\x0aopacityMap,\x0avOpacityInfos,\x0a#endif\x0a#ifdef\x20DETAIL\x0adetailColor,\x0avDetailInfos,\x0a#endif\x0a#ifdef\x20DECAL\x0adecalColor,\x0avDecalInfos,\x0a#endif\x0aalbedoOpacityOut\x0a);\x0avec3\x20surfaceAlbedo=albedoOpacityOut.surfaceAlbedo;\x0afloat\x20alpha=albedoOpacityOut.alpha;\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_ALPHA\x0a#include<depthPrePass>\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_LIGHTS\x0aambientOcclusionOutParams\x20aoOut;\x0a#ifdef\x20AMBIENT\x0avec3\x20ambientOcclusionColorMap=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb;\x0a#endif\x0aambientOcclusionBlock(\x0a#ifdef\x20AMBIENT\x0aambientOcclusionColorMap,\x0avAmbientInfos,\x0a#endif\x0aaoOut\x0a);\x0a#include<pbrBlockLightmapInit>\x0a#ifdef\x20UNLIT\x0avec3\x20diffuseBase=vec3(1.,1.,1.);\x0a#else\x0avec3\x20baseColor=surfaceAlbedo;\x0areflectivityOutParams\x20reflectivityOut;\x0a#if\x20defined(REFLECTIVITY)\x0avec4\x20surfaceMetallicOrReflectivityColorMap=texture2D(reflectivitySampler,vReflectivityUV+uvOffset);\x0avec4\x20baseReflectivity=surfaceMetallicOrReflectivityColorMap;\x0a#ifndef\x20METALLICWORKFLOW\x0a#ifdef\x20REFLECTIVITY_GAMMA\x0asurfaceMetallicOrReflectivityColorMap=toLinearSpace(surfaceMetallicOrReflectivityColorMap);\x0a#endif\x0asurfaceMetallicOrReflectivityColorMap.rgb*=vReflectivityInfos.y;\x0a#endif\x0a#endif\x0a#if\x20defined(MICROSURFACEMAP)\x0avec4\x20microSurfaceTexel=texture2D(microSurfaceSampler,vMicroSurfaceSamplerUV+uvOffset)*vMicroSurfaceSamplerInfos.y;\x0a#endif\x0a#ifdef\x20METALLICWORKFLOW\x0avec4\x20metallicReflectanceFactors=vMetallicReflectanceFactors;\x0a#ifdef\x20REFLECTANCE\x0avec4\x20reflectanceFactorsMap=texture2D(reflectanceSampler,vReflectanceUV+uvOffset);\x0a#ifdef\x20REFLECTANCE_GAMMA\x0areflectanceFactorsMap=toLinearSpace(reflectanceFactorsMap);\x0a#endif\x0ametallicReflectanceFactors.rgb*=reflectanceFactorsMap.rgb;\x0a#endif\x0a#ifdef\x20METALLIC_REFLECTANCE\x0avec4\x20metallicReflectanceFactorsMap=texture2D(metallicReflectanceSampler,vMetallicReflectanceUV+uvOffset);\x0a#ifdef\x20METALLIC_REFLECTANCE_GAMMA\x0ametallicReflectanceFactorsMap=toLinearSpace(metallicReflectanceFactorsMap);\x0a#endif\x0a#ifndef\x20METALLIC_REFLECTANCE_USE_ALPHA_ONLY\x0ametallicReflectanceFactors.rgb*=metallicReflectanceFactorsMap.rgb;\x0a#endif\x0ametallicReflectanceFactors*=metallicReflectanceFactorsMap.a;\x0a#endif\x0a#endif\x0areflectivityBlock(\x0avReflectivityColor,\x0a#ifdef\x20METALLICWORKFLOW\x0asurfaceAlbedo,\x0ametallicReflectanceFactors,\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x0avReflectivityInfos,\x0asurfaceMetallicOrReflectivityColorMap,\x0a#endif\x0a#if\x20defined(METALLICWORKFLOW)\x20&&\x20defined(REFLECTIVITY)\x20&&\x20defined(AOSTOREINMETALMAPRED)\x0aaoOut.ambientOcclusionColor,\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0amicroSurfaceTexel,\x0a#endif\x0a#ifdef\x20DETAIL\x0adetailColor,\x0avDetailInfos,\x0a#endif\x0areflectivityOut\x0a);\x0afloat\x20microSurface=reflectivityOut.microSurface;\x0afloat\x20roughness=reflectivityOut.roughness;\x0a#ifdef\x20METALLICWORKFLOW\x0asurfaceAlbedo=reflectivityOut.surfaceAlbedo;\x0a#endif\x0a#if\x20defined(METALLICWORKFLOW)\x20&&\x20defined(REFLECTIVITY)\x20&&\x20defined(AOSTOREINMETALMAPRED)\x0aaoOut.ambientOcclusionColor=reflectivityOut.ambientOcclusionColor;\x0a#endif\x0a#ifdef\x20ALPHAFRESNEL\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(ALPHABLEND)\x0aalphaFresnelOutParams\x20alphaFresnelOut;\x0aalphaFresnelBlock(\x0anormalW,\x0aviewDirectionW,\x0aalpha,\x0amicroSurface,\x0aalphaFresnelOut\x0a);\x0aalpha=alphaFresnelOut.alpha;\x0a#endif\x0a#endif\x0a#include<pbrBlockGeometryInfo>\x0a#ifdef\x20ANISOTROPIC\x0aanisotropicOutParams\x20anisotropicOut;\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0avec3\x20anisotropyMapData=texture2D(anisotropySampler,vAnisotropyUV+uvOffset).rgb*vAnisotropyInfos.y;\x0a#endif\x0aanisotropicBlock(\x0avAnisotropy,\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0aanisotropyMapData,\x0a#endif\x0aTBN,\x0anormalW,\x0aviewDirectionW,\x0aanisotropicOut\x0a);\x0a#endif\x0a#ifdef\x20REFLECTION\x0areflectionOutParams\x20reflectionOut;\x0a#ifndef\x20USE_CUSTOM_REFLECTION\x0areflectionBlock(\x0avPositionW,\x0anormalW,\x0aalphaG,\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0a#ifdef\x20ANISOTROPIC\x0aanisotropicOut,\x0a#endif\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0aNdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0aroughness,\x0a#endif\x0areflectionSampler,\x0a#if\x20defined(NORMAL)\x20&&\x20defined(USESPHERICALINVERTEX)\x0avEnvironmentIrradiance,\x0a#endif\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20!defined(NORMAL)\x20||\x20!defined(USESPHERICALINVERTEX)\x0areflectionMatrix,\x0a#endif\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0airradianceSampler,\x0a#endif\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0areflectionOut\x0a);\x0a#else\x0a#define\x20CUSTOM_REFLECTION\x0a#endif\x0a#endif\x0a#include<pbrBlockReflectance0>\x0a#ifdef\x20SHEEN\x0asheenOutParams\x20sheenOut;\x0a#ifdef\x20SHEEN_TEXTURE\x0avec4\x20sheenMapData=texture2D(sheenSampler,vSheenUV+uvOffset);\x0a#endif\x0a#if\x20defined(SHEEN_ROUGHNESS)\x20&&\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x20&&\x20!defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0avec4\x20sheenMapRoughnessData=texture2D(sheenRoughnessSampler,vSheenRoughnessUV+uvOffset)*vSheenInfos.w;\x0a#endif\x0asheenBlock(\x0avSheenColor,\x0a#ifdef\x20SHEEN_ROUGHNESS\x0avSheenRoughness,\x0a#if\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x20&&\x20!defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0asheenMapRoughnessData,\x0a#endif\x0a#endif\x0aroughness,\x0a#ifdef\x20SHEEN_TEXTURE\x0asheenMapData,\x0avSheenInfos.y,\x0a#endif\x0areflectance,\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0abaseColor,\x0asurfaceAlbedo,\x0a#endif\x0a#ifdef\x20ENVIRONMENTBRDF\x0aNdotV,\x0aenvironmentBrdf,\x0a#endif\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(ENVIRONMENTBRDF)\x0aAARoughnessFactors,\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0avLightingIntensity,\x0areflectionSampler,\x0areflectionOut.reflectionCoords,\x0aNdotVUnclamped,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(RADIANCEOCCLUSION)\x0aseo,\x0a#endif\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(HORIZONOCCLUSION)\x20&&\x20defined(BUMP)\x20&&\x20defined(REFLECTIONMAP_3D)\x0aeho,\x0a#endif\x0a#endif\x0asheenOut\x0a);\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0asurfaceAlbedo=sheenOut.surfaceAlbedo;\x0a#endif\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0avec2\x20clearCoatMapData=texture2D(clearCoatSampler,vClearCoatUV+uvOffset).rg*vClearCoatInfos.y;\x0a#endif\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0airidescenceOutParams\x20iridescenceOut;\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0avec2\x20iridescenceMapData=texture2D(iridescenceSampler,vIridescenceUV+uvOffset).rg*vIridescenceInfos.y;\x0a#endif\x0a#ifdef\x20IRIDESCENCE_THICKNESS_TEXTURE\x0avec2\x20iridescenceThicknessMapData=texture2D(iridescenceThicknessSampler,vIridescenceThicknessUV+uvOffset).rg*vIridescenceInfos.w;\x0a#endif\x0airidescenceBlock(\x0avIridescenceParams,\x0aNdotV,\x0aspecularEnvironmentR0,\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0airidescenceMapData,\x0a#endif\x0a#ifdef\x20IRIDESCENCE_THICKNESS_TEXTURE\x0airidescenceThicknessMapData,\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0aNdotVUnclamped,\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0aclearCoatMapData,\x0a#endif\x0a#endif\x0airidescenceOut\x0a);\x0afloat\x20iridescenceIntensity=iridescenceOut.iridescenceIntensity;\x0aspecularEnvironmentR0=iridescenceOut.specularEnvironmentR0;\x0a#endif\x0aclearcoatOutParams\x20clearcoatOut;\x0a#ifdef\x20CLEARCOAT\x0a#if\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x20&&\x20!defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0avec4\x20clearCoatMapRoughnessData=texture2D(clearCoatRoughnessSampler,vClearCoatRoughnessUV+uvOffset)*vClearCoatInfos.w;\x0a#endif\x0a#if\x20defined(CLEARCOAT_TINT)\x20&&\x20defined(CLEARCOAT_TINT_TEXTURE)\x0avec4\x20clearCoatTintMapData=texture2D(clearCoatTintSampler,vClearCoatTintUV+uvOffset);\x0a#endif\x0a#ifdef\x20CLEARCOAT_BUMP\x0avec4\x20clearCoatBumpMapData=texture2D(clearCoatBumpSampler,vClearCoatBumpUV+uvOffset);\x0a#endif\x0aclearcoatBlock(\x0avPositionW,\x0ageometricNormalW,\x0aviewDirectionW,\x0avClearCoatParams,\x0a#if\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x20&&\x20!defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0aclearCoatMapRoughnessData,\x0a#endif\x0aspecularEnvironmentR0,\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0aclearCoatMapData,\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT\x0avClearCoatTintParams,\x0aclearCoatColorAtDistance,\x0avClearCoatRefractionParams,\x0a#ifdef\x20CLEARCOAT_TINT_TEXTURE\x0aclearCoatTintMapData,\x0a#endif\x0a#endif\x0a#ifdef\x20CLEARCOAT_BUMP\x0avClearCoatBumpInfos,\x0aclearCoatBumpMapData,\x0avClearCoatBumpUV,\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0avTBN,\x0a#else\x0avClearCoatTangentSpaceParams,\x0a#endif\x0a#ifdef\x20OBJECTSPACE_NORMALMAP\x0anormalMatrix,\x0a#endif\x0a#endif\x0a#if\x20defined(FORCENORMALFORWARD)\x20&&\x20defined(NORMAL)\x0afaceNormal,\x0a#endif\x0a#ifdef\x20REFLECTION\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0avLightingIntensity,\x0areflectionSampler,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0a#ifdef\x20RADIANCEOCCLUSION\x0aambientMonochrome,\x0a#endif\x0a#endif\x0a#if\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(TWOSIDEDLIGHTING)\x0a(gl_FrontFacing\x20?\x201.\x20:\x20-1.),\x0a#endif\x0aclearcoatOut\x0a);\x0a#else\x0aclearcoatOut.specularEnvironmentR0=specularEnvironmentR0;\x0a#endif\x0a#include<pbrBlockReflectance>\x0asubSurfaceOutParams\x20subSurfaceOut;\x0a#ifdef\x20SUBSURFACE\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0avec4\x20thicknessMap=texture2D(thicknessSampler,vThicknessUV+uvOffset);\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0avec4\x20refractionIntensityMap=texture2D(refractionIntensitySampler,vRefractionIntensityUV+uvOffset);\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0avec4\x20translucencyIntensityMap=texture2D(translucencyIntensitySampler,vTranslucencyIntensityUV+uvOffset);\x0a#endif\x0asubSurfaceBlock(\x0avSubSurfaceIntensity,\x0avThicknessParam,\x0avTintColor,\x0anormalW,\x0aspecularEnvironmentReflectance,\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0athicknessMap,\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0arefractionIntensityMap,\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0atranslucencyIntensityMap,\x0a#endif\x0a#ifdef\x20REFLECTION\x0a#ifdef\x20SS_TRANSLUCENCY\x0areflectionMatrix,\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20!defined(NORMAL)\x20||\x20!defined(USESPHERICALINVERTEX)\x0areflectionOut.irradianceVector,\x0a#endif\x0a#if\x20defined(REALTIME_FILTERING)\x0areflectionSampler,\x0avReflectionFilteringInfo,\x0a#endif\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0airradianceSampler,\x0a#endif\x0a#endif\x0a#endif\x0a#if\x20defined(SS_REFRACTION)\x20||\x20defined(SS_TRANSLUCENCY)\x0asurfaceAlbedo,\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0avPositionW,\x0aviewDirectionW,\x0aview,\x0avRefractionInfos,\x0arefractionMatrix,\x0avRefractionMicrosurfaceInfos,\x0avLightingIntensity,\x0a#ifdef\x20SS_LINKREFRACTIONTOTRANSPARENCY\x0aalpha,\x0a#endif\x0a#ifdef\x20SS_LODINREFRACTIONALPHA\x0aNdotVUnclamped,\x0a#endif\x0a#ifdef\x20SS_LINEARSPECULARREFRACTION\x0aroughness,\x0a#endif\x0aalphaG,\x0arefractionSampler,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0arefractionSamplerLow,\x0arefractionSamplerHigh,\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0aanisotropicOut,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avRefractionFilteringInfo,\x0a#endif\x0a#ifdef\x20SS_USE_LOCAL_REFRACTIONMAP_CUBIC\x0avRefractionPosition,\x0avRefractionSize,\x0a#endif\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0avDiffusionDistance,\x0a#endif\x0asubSurfaceOut\x0a);\x0a#ifdef\x20SS_REFRACTION\x0asurfaceAlbedo=subSurfaceOut.surfaceAlbedo;\x0a#ifdef\x20SS_LINKREFRACTIONTOTRANSPARENCY\x0aalpha=subSurfaceOut.alpha;\x0a#endif\x0a#endif\x0a#else\x0asubSurfaceOut.specularEnvironmentReflectance=specularEnvironmentReflectance;\x0a#endif\x0a#include<pbrBlockDirectLighting>\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#include<pbrBlockFinalLitComponents>\x0a#endif\x20\x0a#include<pbrBlockFinalUnlitComponents>\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_FINALCOLORCOMPOSITION\x0a#include<pbrBlockFinalColorComposition>\x0a#include<logDepthFragment>\x0a#include<fogFragment>(color,finalColor)\x0a#include<pbrBlockImageProcessing>\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\x0a#ifdef\x20PREPASS\x0afloat\x20writeGeometryInfo=finalColor.a>0.4\x20?\x201.0\x20:\x200.0;\x0a#ifdef\x20PREPASS_POSITION\x0agl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\x0a#endif\x0a#ifdef\x20PREPASS_VELOCITY\x0avec2\x20a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\x0avec2\x20b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\x0avec2\x20velocity=abs(a-b);\x0avelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\x0agl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\x0a#endif\x0a#ifdef\x20PREPASS_ALBEDO_SQRT\x0avec3\x20sqAlbedo=sqrt(surfaceAlbedo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_IRRADIANCE\x0avec3\x20irradiance=finalDiffuse;\x0a#ifndef\x20UNLIT\x0a#ifdef\x20REFLECTION\x0airradiance+=finalIrradiance;\x0a#endif\x0a#endif\x0a#ifdef\x20SS_SCATTERING\x0agl_FragData[0]=vec4(finalColor.rgb-irradiance,finalColor.a);\x20\x0airradiance/=sqAlbedo;\x0a#else\x0agl_FragData[0]=finalColor;\x20\x0afloat\x20scatteringDiffusionProfile=255.;\x0a#endif\x0agl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(clamp(irradiance,vec3(0.),vec3(1.)),writeGeometryInfo*scatteringDiffusionProfile/255.);\x20\x0a#else\x0agl_FragData[0]=vec4(finalColor.rgb,finalColor.a);\x0a#endif\x0a#ifdef\x20PREPASS_DEPTH\x0agl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_NORMAL\x0agl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_ALBEDO_SQRT\x0agl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(sqAlbedo,writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_REFLECTIVITY\x0a#ifndef\x20UNLIT\x0agl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(specularEnvironmentR0,microSurface)*writeGeometryInfo;\x0a#else\x0agl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(\x200.0,0.0,0.0,1.0\x20)*writeGeometryInfo;\x0a#endif\x0a#endif\x0a#endif\x0a#if\x20!defined(PREPASS)\x20||\x20defined(WEBGL2)\x0agl_FragColor=finalColor;\x0a#endif\x0a#include<oitFragment>\x0a#if\x20ORDER_INDEPENDENT_TRANSPARENCY\x0aif\x20(fragDepth==nearestDepth)\x20{\x0afrontColor.rgb+=finalColor.rgb*finalColor.a*alphaMultiplier;\x0afrontColor.a=1.0-alphaMultiplier*(1.0-finalColor.a);\x0a}\x20else\x20{\x0abackColor+=finalColor;\x0a}\x0a#endif\x0a#include<pbrDebug>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','isExternalTexture','#ifdef\x20LOGARITHMICDEPTH\x0agl_FragDepthEXT=log2(vFragmentDepth)*logarithmicDepthConstant*0.5;\x0a#endif\x0a','ASTC10x6Unorm','isRenderTarget','_createEffects','updateFloat4','_physicsTimeAccumulator','postprocessVertexShader','_cacheFloat2','#if\x20defined(FORCENORMALFORWARD)\x20&&\x20defined(NORMAL)\x0avec3\x20faceNormal=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w;\x0a#if\x20defined(TWOSIDEDLIGHTING)\x0afaceNormal=gl_FrontFacing\x20?\x20faceNormal\x20:\x20-faceNormal;\x0a#endif\x0anormalW*=sign(dot(normalW,faceNormal));\x0a#endif\x0a#if\x20defined(TWOSIDEDLIGHTING)\x20&&\x20defined(NORMAL)\x0anormalW=gl_FrontFacing\x20?\x20normalW\x20:\x20-normalW;\x0a#endif\x0a','vrdisplaypresentchange','lensHighlightsPixelShader','invertU','ASTC12x10Unorm','textureFloatRender','_emitFunctionFromInclude','UNSIGNED_SHORT','NodeMaterial\x20does\x20not\x20have\x20a\x20vertex\x20output.\x20You\x20need\x20to\x20at\x20least\x20add\x20a\x20block\x20that\x20generates\x20a\x20glPosition\x20value.\x0d\x0a','generateStencilBuffer','opDepthFail','fogMode','copy','buffer','enableGPUDebugMarkers','No\x20fixed\x20size\x20for\x20Depth24Plus\x20format!','startsWith','SHADER\x20ERROR','message','onPointerObservable','ASTC8x5Unorm','data','bindFramebuffer','_setupFramebufferDepthAttachments','_onVrDisplayConnect','zOffsetUnits','-etc1.ktx','blackAndWhitePixelShader','Object','updateInt2','isVRDevicePresent','pixelStorei','\x20\x20vertexOutputs.position.y\x20=\x20vertexOutputs.position.y\x20*\x20internals.yFactor_;\x0a\x20\x20return\x20vertexOutputs;','_externalProperties','boundingBoxRendererPixelShader','2xqBRox','internal\x20process\x20texture\x20-\x20invertY=','wrapV','updateTextureSamplingMode','getRenderHeight','blendFuncSeparate','Linear','variableNames','#if','furVertexShader','mask','getGPUFrameTimeCounter','Clear','_cacheFloat3','engine','concat','stages','fragmentInputs.position','updateUInt3','RENDERBUFFER','size','\x20-\x20','modelTotalCount','index','#version\x203','ReadOnlyStorage','anaglyphPixelShader','_epsilon','start','additionalData','supportSRGBBuffers','_defineCubicName','release','InternalsUBOName','_debugFlushPendingCommands','setBindGroup','_isCullDirty','TEXTURETYPE_UNSIGNED_INT','uniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0a#if\x20defined(PASS_POST_PROCESS)\x0avoid\x20main(void)\x0a{\x0avec4\x20color=texture2D(textureSampler,vUV);\x0agl_FragColor=color;\x0a}\x0a#endif\x0a#if\x20defined(DOWN_SAMPLE_X4)\x0auniform\x20vec2\x20dsOffsets[16];\x0avoid\x20main(void)\x0a{\x0avec4\x20average=vec4(0.0,0.0,0.0,0.0);\x0aaverage=texture2D(textureSampler,vUV+dsOffsets[0]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[1]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[2]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[3]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[4]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[5]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[6]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[7]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[8]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[9]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[10]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[11]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[12]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[13]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[14]);\x0aaverage+=texture2D(textureSampler,vUV+dsOffsets[15]);\x0aaverage/=16.0;\x0agl_FragColor=average;\x0a}\x0a#endif\x0a#if\x20defined(BRIGHT_PASS)\x0auniform\x20vec2\x20dsOffsets[4];\x0auniform\x20float\x20brightThreshold;\x0avoid\x20main(void)\x0a{\x0avec4\x20average=vec4(0.0,0.0,0.0,0.0);\x0aaverage=texture2D(textureSampler,vUV+vec2(dsOffsets[0].x,dsOffsets[0].y));\x0aaverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[1].x,dsOffsets[1].y));\x0aaverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[2].x,dsOffsets[2].y));\x0aaverage+=texture2D(textureSampler,vUV+vec2(dsOffsets[3].x,dsOffsets[3].y));\x0aaverage*=0.25;\x0afloat\x20luminance=length(average.rgb);\x0aif\x20(luminance<brightThreshold)\x20{\x0aaverage=vec4(0.0,0.0,0.0,1.0);\x0a}\x0agl_FragColor=average;\x0a}\x0a#endif\x0a#if\x20defined(TEXTURE_ADDER)\x0auniform\x20sampler2D\x20otherSampler;\x0auniform\x20sampler2D\x20lensSampler;\x0auniform\x20float\x20exposure;\x0avoid\x20main(void)\x0a{\x0avec3\x20colour=texture2D(textureSampler,vUV).rgb;\x0acolour*=exposure;\x0avec3\x20X=max(vec3(0.0,0.0,0.0),colour-0.004);\x0avec3\x20retColor=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06);\x0acolour=retColor*retColor;\x0acolour+=colour*texture2D(lensSampler,vUV).rgb;\x0avec4\x20finalColor=vec4(colour.rgb,1.0)+texture2D(otherSampler,vUV);\x0agl_FragColor=finalColor;\x0a}\x0a#endif\x0a#if\x20defined(VLS)\x0a#define\x20PI\x203.1415926535897932384626433832795\x0auniform\x20mat4\x20shadowViewProjection;\x0auniform\x20mat4\x20lightWorld;\x0auniform\x20vec3\x20cameraPosition;\x0auniform\x20vec3\x20sunDirection;\x0auniform\x20vec3\x20sunColor;\x0auniform\x20vec2\x20depthValues;\x0auniform\x20float\x20scatteringCoefficient;\x0auniform\x20float\x20scatteringPower;\x0auniform\x20sampler2D\x20shadowMapSampler;\x0auniform\x20sampler2D\x20positionSampler;\x0afloat\x20computeScattering(float\x20lightDotView)\x0a{\x0afloat\x20result=1.0-scatteringCoefficient*scatteringCoefficient;\x0aresult/=(4.0*PI*pow(1.0+scatteringCoefficient*scatteringCoefficient-(2.0*scatteringCoefficient)*lightDotView,1.5));\x0areturn\x20result;\x0a}\x0avoid\x20main(void)\x0a{\x0avec3\x20worldPos=texture2D(positionSampler,vUV).rgb;\x0avec3\x20startPosition=cameraPosition;\x0avec3\x20rayVector=worldPos-startPosition;\x0afloat\x20rayLength=length(rayVector);\x0avec3\x20rayDirection=rayVector/rayLength;\x0afloat\x20stepLength=rayLength/NB_STEPS;\x0avec3\x20stepL=rayDirection*stepLength;\x0avec3\x20currentPosition=startPosition;\x0avec3\x20accumFog=vec3(0.0);\x0afor\x20(int\x20i=0;\x20i<int(NB_STEPS);\x20i++)\x0a{\x0avec4\x20worldInShadowCameraSpace=shadowViewProjection*vec4(currentPosition,1.0);\x0afloat\x20depthMetric=\x20(worldInShadowCameraSpace.z+depthValues.x)/(depthValues.y);\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.0,1.0);\x0aworldInShadowCameraSpace.xyz/=worldInShadowCameraSpace.w;\x0aworldInShadowCameraSpace.xyz=0.5*worldInShadowCameraSpace.xyz+vec3(0.5);\x0afloat\x20shadowMapValue=texture2D(shadowMapSampler,worldInShadowCameraSpace.xy).r;\x0aif\x20(shadowMapValue>shadowPixelDepth)\x0aaccumFog+=sunColor*computeScattering(dot(rayDirection,sunDirection));\x0acurrentPosition+=stepL;\x0a}\x0aaccumFog/=NB_STEPS;\x0avec3\x20color=accumFog*scatteringPower;\x0agl_FragColor=vec4(color*exp(color)\x20,1.0);\x0a}\x0a#endif\x0a#if\x20defined(VLSMERGE)\x0auniform\x20sampler2D\x20originalSampler;\x0avoid\x20main(void)\x0a{\x0agl_FragColor=texture2D(originalSampler,vUV)+texture2D(textureSampler,vUV);\x0a}\x0a#endif\x0a#if\x20defined(LUMINANCE)\x0auniform\x20vec2\x20lumOffsets[4];\x0avoid\x20main()\x0a{\x0afloat\x20average=0.0;\x0avec4\x20color=vec4(0.0);\x0afloat\x20maximum=-1e20;\x0avec3\x20weight=vec3(0.299,0.587,0.114);\x0afor\x20(int\x20i=0;\x20i<4;\x20i++)\x0a{\x0acolor=texture2D(textureSampler,vUV+\x20lumOffsets[i]);\x0afloat\x20GreyValue=dot(color.rgb,vec3(0.33,0.33,0.33));\x0a#ifdef\x20WEIGHTED_AVERAGE\x0afloat\x20GreyValue=dot(color.rgb,weight);\x0a#endif\x0a#ifdef\x20BRIGHTNESS\x0afloat\x20GreyValue=max(color.r,max(color.g,color.b));\x0a#endif\x0a#ifdef\x20HSL_COMPONENT\x0afloat\x20GreyValue=0.5*(max(color.r,max(color.g,color.b))+min(color.r,min(color.g,color.b)));\x0a#endif\x0a#ifdef\x20MAGNITUDE\x0afloat\x20GreyValue=length(color.rgb);\x0a#endif\x0amaximum=max(maximum,GreyValue);\x0aaverage+=(0.25*log(1e-5+GreyValue));\x0a}\x0aaverage=exp(average);\x0agl_FragColor=vec4(average,maximum,0.0,1.0);\x0a}\x0a#endif\x0a#if\x20defined(LUMINANCE_DOWN_SAMPLE)\x0auniform\x20vec2\x20dsOffsets[9];\x0auniform\x20float\x20halfDestPixelSize;\x0a#ifdef\x20FINAL_DOWN_SAMPLER\x0a#include<packingFunctions>\x0a#endif\x0avoid\x20main()\x0a{\x0avec4\x20color=vec4(0.0);\x0afloat\x20average=0.0;\x0afor\x20(int\x20i=0;\x20i<9;\x20i++)\x0a{\x0acolor=texture2D(textureSampler,vUV+vec2(halfDestPixelSize,halfDestPixelSize)+dsOffsets[i]);\x0aaverage+=color.r;\x0a}\x0aaverage/=9.0;\x0a#ifdef\x20FINAL_DOWN_SAMPLER\x0agl_FragColor=pack(average);\x0a#else\x0agl_FragColor=vec4(average,average,0.0,1.0);\x0a#endif\x0a}\x0a#endif\x0a#if\x20defined(HDR)\x0auniform\x20sampler2D\x20textureAdderSampler;\x0auniform\x20float\x20averageLuminance;\x0avoid\x20main()\x0a{\x0avec4\x20color=texture2D(textureAdderSampler,vUV);\x0a#ifndef\x20AUTO_EXPOSURE\x0avec4\x20adjustedColor=color/averageLuminance;\x0acolor=adjustedColor;\x0acolor.a=1.0;\x0a#endif\x0agl_FragColor=color;\x0a}\x0a#endif\x0a#if\x20defined(LENS_FLARE)\x0a#define\x20GHOSTS\x203\x0auniform\x20sampler2D\x20lensColorSampler;\x0auniform\x20float\x20strength;\x0auniform\x20float\x20ghostDispersal;\x0auniform\x20float\x20haloWidth;\x0auniform\x20vec2\x20resolution;\x0auniform\x20float\x20distortionStrength;\x0afloat\x20hash(vec2\x20p)\x0a{\x0afloat\x20h=dot(p,vec2(127.1,311.7));\x0areturn\x20-1.0+2.0*fract(sin(h)*43758.5453123);\x0a}\x0afloat\x20noise(in\x20vec2\x20p)\x0a{\x0avec2\x20i=floor(p);\x0avec2\x20f=fract(p);\x0avec2\x20u=f*f*(3.0-2.0*f);\x0areturn\x20mix(mix(hash(i+vec2(0.0,0.0)),\x0ahash(i+vec2(1.0,0.0)),u.x),\x0amix(hash(i+vec2(0.0,1.0)),\x0ahash(i+vec2(1.0,1.0)),u.x),u.y);\x0a}\x0afloat\x20fbm(vec2\x20p)\x0a{\x0afloat\x20f=0.0;\x0af+=0.5000*noise(p);\x20p*=2.02;\x0af+=0.2500*noise(p);\x20p*=2.03;\x0af+=0.1250*noise(p);\x20p*=2.01;\x0af+=0.0625*noise(p);\x20p*=2.04;\x0af/=0.9375;\x0areturn\x20f;\x0a}\x0avec3\x20pattern(vec2\x20uv)\x0a{\x0avec2\x20p=-1.0+2.0*uv;\x0afloat\x20p2=dot(p,p);\x0afloat\x20f=fbm(vec2(15.0*p2))/2.0;\x0afloat\x20r=0.2+0.6*sin(12.5*length(uv-vec2(0.5)));\x0afloat\x20g=0.2+0.6*sin(20.5*length(uv-vec2(0.5)));\x0afloat\x20b=0.2+0.6*sin(17.2*length(uv-vec2(0.5)));\x0areturn\x20(1.0-f)*vec3(r,g,b);\x0a}\x0afloat\x20luminance(vec3\x20color)\x0a{\x0areturn\x20dot(color.rgb,vec3(0.2126,0.7152,0.0722));\x0a}\x0avec4\x20textureDistorted(sampler2D\x20tex,vec2\x20texcoord,vec2\x20direction,vec3\x20distortion)\x0a{\x0areturn\x20vec4(\x0atexture2D(tex,texcoord+direction*distortion.r).r,\x0atexture2D(tex,texcoord+direction*distortion.g).g,\x0atexture2D(tex,texcoord+direction*distortion.b).b,\x0a1.0\x0a);\x0a}\x0avoid\x20main(void)\x0a{\x0avec2\x20uv=-vUV+vec2(1.0);\x0avec2\x20ghostDir=(vec2(0.5)-uv)*ghostDispersal;\x0avec2\x20texelSize=1.0/resolution;\x0avec3\x20distortion=vec3(-texelSize.x*distortionStrength,0.0,texelSize.x*distortionStrength);\x0avec4\x20result=vec4(0.0);\x0afloat\x20ghostIndice=1.0;\x0afor\x20(int\x20i=0;\x20i<GHOSTS;\x20++i)\x0a{\x0avec2\x20offset=fract(uv+ghostDir*ghostIndice);\x0afloat\x20weight=length(vec2(0.5)-offset)/length(vec2(0.5));\x0aweight=pow(1.0-weight,10.0);\x0aresult+=textureDistorted(textureSampler,offset,normalize(ghostDir),distortion)*weight*strength;\x0aghostIndice+=1.0;\x0a}\x0avec2\x20haloVec=normalize(ghostDir)*haloWidth;\x0afloat\x20weight=length(vec2(0.5)-fract(uv+haloVec))/length(vec2(0.5));\x0aweight=pow(1.0-weight,10.0);\x0aresult+=textureDistorted(textureSampler,fract(uv+haloVec),normalize(ghostDir),distortion)*weight*strength;\x0aresult*=texture2D(lensColorSampler,vec2(length(vec2(0.5)-uv)/length(vec2(0.5))));\x0agl_FragColor=result;\x0a}\x0a#endif\x0a#if\x20defined(LENS_FLARE_COMPOSE)\x0auniform\x20sampler2D\x20otherSampler;\x0auniform\x20sampler2D\x20lensDirtSampler;\x0auniform\x20sampler2D\x20lensStarSampler;\x0auniform\x20mat4\x20lensStarMatrix;\x0avoid\x20main(void)\x0a{\x0avec2\x20lensFlareCoords=(lensStarMatrix*vec4(vUV,1.0,1.0)).xy;\x0avec4\x20lensMod=texture2D(lensDirtSampler,vUV);\x0alensMod+=texture2D(lensStarSampler,vUV/*lensFlareCoords*/);\x0avec4\x20result=texture2D(textureSampler,vUV)*lensMod;\x0agl_FragColor=texture2D(otherSampler,vUV)+result;\x0a}\x0a#endif\x0a#if\x20defined(DEPTH_OF_FIELD)\x0auniform\x20sampler2D\x20otherSampler;\x0auniform\x20sampler2D\x20depthSampler;\x0auniform\x20float\x20distance;\x0avoid\x20main(void)\x0a{\x0avec4\x20sharp=texture2D(otherSampler,vUV);\x0avec4\x20blur=texture2D(textureSampler,vUV);\x0afloat\x20dist=clamp(texture2D(depthSampler,vUV).r*distance,0.0,1.0);\x0afloat\x20factor=0.0;\x0aif\x20(dist<0.05)\x0afactor=1.0;\x0aelse\x20if\x20(dist<0.1)\x0afactor=20.0*(0.1-dist);\x0aelse\x20if\x20(dist<0.5)\x0afactor=0.0;\x0aelse\x0afactor=2.0*(dist-0.5);\x0afactor=clamp(factor,0.0,0.90);\x0agl_FragColor=mix(sharp,blur,factor);\x0a}\x0a#endif\x0a#if\x20defined(MOTION_BLUR)\x0auniform\x20mat4\x20inverseViewProjection;\x0auniform\x20mat4\x20prevViewProjection;\x0auniform\x20vec2\x20screenSize;\x0auniform\x20float\x20motionScale;\x0auniform\x20float\x20motionStrength;\x0auniform\x20sampler2D\x20depthSampler;\x0avoid\x20main(void)\x0a{\x0avec2\x20texelSize=1.0/screenSize;\x0afloat\x20depth=texture2D(depthSampler,vUV).r;\x0avec4\x20cpos=vec4(vUV*2.0-1.0,depth,1.0);\x0acpos=cpos*inverseViewProjection;\x0avec4\x20ppos=cpos*prevViewProjection;\x0appos.xyz/=ppos.w;\x0appos.xy=ppos.xy*0.5+0.5;\x0avec2\x20velocity=(ppos.xy-vUV)*motionScale*motionStrength;\x0afloat\x20speed=length(velocity/texelSize);\x0aint\x20nSamples=int(clamp(speed,1.0,MAX_MOTION_SAMPLES));\x0avec4\x20result=texture2D(textureSampler,vUV);\x0afor\x20(int\x20i=1;\x20i<int(MAX_MOTION_SAMPLES);\x20++i)\x20{\x0aif\x20(i>=nSamples)\x0abreak;\x0avec2\x20offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);\x0aresult+=texture2D(textureSampler,offset1);\x0a}\x0agl_FragColor=result/float(nSamples);\x0a}\x0a#endif\x0a','unnamed','#ifdef\x20DECAL\x0auniform\x20vec4\x20vDecalInfos;\x0auniform\x20mat4\x20decalMatrix;\x0a#endif\x0a','//Uniforms\x0d\x0a','linePixelShader',';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2\x20','precision\x20highp\x20float;\x0d\x0a','_defaultAttachments','];\x0a','animationStarted','_getNextFreeBinding','REFLECTIONMAP_EXPLICIT','TEXTURETYPE_SHORT','_finalizeFrame','SetImmediate','grainPixelShader','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20screenSize;\x0auniform\x20float\x20kernel[9];\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec2\x20onePixel=vec2(1.0,1.0)/screenSize;\x0avec4\x20colorSum\x20=\x0atexture2D(textureSampler,vUV+onePixel*vec2(-1,-1))*kernel[0]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(0,-1))*kernel[1]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(1,-1))*kernel[2]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(-1,0))*kernel[3]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(0,0))*kernel[4]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(1,0))*kernel[5]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(-1,1))*kernel[6]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(0,1))*kernel[7]\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(1,1))*kernel[8];\x0afloat\x20kernelWeight\x20=\x0akernel[0]\x20+\x0akernel[1]\x20+\x0akernel[2]\x20+\x0akernel[3]\x20+\x0akernel[4]\x20+\x0akernel[5]\x20+\x0akernel[6]\x20+\x0akernel[7]\x20+\x0akernel[8];\x0aif\x20(kernelWeight<=0.0)\x20{\x0akernelWeight=1.0;\x0a}\x0agl_FragColor=vec4((colorSum/kernelWeight).rgb,1);\x0a}','_textureHelper','extractHighlightsPixelShader','setBuffer','endOfUniformBufferProcessor','_context','setQuaternion','physicsImpostor','MouseWheelZ','texturesSupported','_skipPointerTap','endFrame','_nativeTexture','copyBufferToTexture','match','setArray3','_rigPostProcess','shadowMapVertexShader','blitFramebuffer','viewForWriting','pbrPixelShader','_areImageProcessingDirty','circleOfConfusionPixelShader','main','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec4\x20color;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0avec4\x20baseColor=texture2D(textureSampler,vUV);\x0agl_FragColor=baseColor*color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','shadowsVertex','width','volumetricLightScatteringPassVertexShader','_processPointerMove','createDynamicUniformBuffer','parent','infixToPostfix','CONSTANT_COLOR','_partialLoadImg','setStencilEnabled','clearQuadPixelShader','blurSizeDivisor','normal','onAfterPhysicsObservable','R32Uint','_needNormals','materialContext','compressedTexImage2D','_resetIndexBufferBinding','_keys','true','TEXTURE_EXPLICIT_MODE','#if\x20defined(CLIPPLANE)\x20||\x20defined(CLIPPLANE2)\x20||\x20defined(CLIPPLANE3)\x20||\x20defined(CLIPPLANE4)\x20||\x20defined(CLIPPLANE5)\x20||\x20defined(CLIPPLANE6)\x0aif\x20(false)\x20{}\x0a#endif\x0a#ifdef\x20CLIPPLANE\x0aelse\x20if\x20(fClipDistance>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0aelse\x20if\x20(fClipDistance2>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0aelse\x20if\x20(fClipDistance3>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0aelse\x20if\x20(fClipDistance4>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0aelse\x20if\x20(fClipDistance5>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0aelse\x20if\x20(fClipDistance6>0.0)\x0a{\x0adiscard;\x0a}\x0a#endif\x0a','_onVRDisplayPointerRestricted','_vertexArrayObject','PREPASS_POSITION_TEXTURE_TYPE','pbrFragmentDeclaration','uniform\x20samplerCube\x20','TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV','attribute\x20vec2\x20position;\x0avarying\x20vec2\x20vPosition;\x0avarying\x20vec2\x20vUV;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avPosition=position;\x0avUV=position*madd+madd;\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','ShadersStoreWGSL','LongPressDelay','lines','markAsMiscDirty','_mainRenderPassWrapper','#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,b)\x20texture2D(s,c,b)\x0a#endif\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20texelSize;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec2\x20sampleCoordS;\x0avarying\x20vec2\x20sampleCoordE;\x0avarying\x20vec2\x20sampleCoordN;\x0avarying\x20vec2\x20sampleCoordW;\x0avarying\x20vec2\x20sampleCoordNW;\x0avarying\x20vec2\x20sampleCoordSE;\x0avarying\x20vec2\x20sampleCoordNE;\x0avarying\x20vec2\x20sampleCoordSW;\x0aconst\x20float\x20fxaaQualitySubpix=1.0;\x0aconst\x20float\x20fxaaQualityEdgeThreshold=0.166;\x0aconst\x20float\x20fxaaQualityEdgeThresholdMin=0.0833;\x0aconst\x20vec3\x20kLumaCoefficients=vec3(0.2126,0.7152,0.0722);\x0a#define\x20FxaaLuma(rgba)\x20dot(rgba.rgb,kLumaCoefficients)\x0avoid\x20main(){\x0avec2\x20posM;\x0aposM.x=vUV.x;\x0aposM.y=vUV.y;\x0avec4\x20rgbyM=TEXTUREFUNC(textureSampler,vUV,0.0);\x0afloat\x20lumaM=FxaaLuma(rgbyM);\x0afloat\x20lumaS=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordS,0.0));\x0afloat\x20lumaE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordE,0.0));\x0afloat\x20lumaN=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordN,0.0));\x0afloat\x20lumaW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordW,0.0));\x0afloat\x20maxSM=max(lumaS,lumaM);\x0afloat\x20minSM=min(lumaS,lumaM);\x0afloat\x20maxESM=max(lumaE,maxSM);\x0afloat\x20minESM=min(lumaE,minSM);\x0afloat\x20maxWN=max(lumaN,lumaW);\x0afloat\x20minWN=min(lumaN,lumaW);\x0afloat\x20rangeMax=max(maxWN,maxESM);\x0afloat\x20rangeMin=min(minWN,minESM);\x0afloat\x20rangeMaxScaled=rangeMax*fxaaQualityEdgeThreshold;\x0afloat\x20range=rangeMax-rangeMin;\x0afloat\x20rangeMaxClamped=max(fxaaQualityEdgeThresholdMin,rangeMaxScaled);\x0a#ifndef\x20MALI\x0aif(range<rangeMaxClamped)\x20\x0a{\x0agl_FragColor=rgbyM;\x0areturn;\x0a}\x0a#endif\x0afloat\x20lumaNW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordNW,0.0));\x0afloat\x20lumaSE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordSE,0.0));\x0afloat\x20lumaNE=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordNE,0.0));\x0afloat\x20lumaSW=FxaaLuma(TEXTUREFUNC(textureSampler,sampleCoordSW,0.0));\x0afloat\x20lumaNS=lumaN+lumaS;\x0afloat\x20lumaWE=lumaW+lumaE;\x0afloat\x20subpixRcpRange=1.0/range;\x0afloat\x20subpixNSWE=lumaNS+lumaWE;\x0afloat\x20edgeHorz1=(-2.0*lumaM)+lumaNS;\x0afloat\x20edgeVert1=(-2.0*lumaM)+lumaWE;\x0afloat\x20lumaNESE=lumaNE+lumaSE;\x0afloat\x20lumaNWNE=lumaNW+lumaNE;\x0afloat\x20edgeHorz2=(-2.0*lumaE)+lumaNESE;\x0afloat\x20edgeVert2=(-2.0*lumaN)+lumaNWNE;\x0afloat\x20lumaNWSW=lumaNW+lumaSW;\x0afloat\x20lumaSWSE=lumaSW+lumaSE;\x0afloat\x20edgeHorz4=(abs(edgeHorz1)*2.0)+abs(edgeHorz2);\x0afloat\x20edgeVert4=(abs(edgeVert1)*2.0)+abs(edgeVert2);\x0afloat\x20edgeHorz3=(-2.0*lumaW)+lumaNWSW;\x0afloat\x20edgeVert3=(-2.0*lumaS)+lumaSWSE;\x0afloat\x20edgeHorz=abs(edgeHorz3)+edgeHorz4;\x0afloat\x20edgeVert=abs(edgeVert3)+edgeVert4;\x0afloat\x20subpixNWSWNESE=lumaNWSW+lumaNESE;\x0afloat\x20lengthSign=texelSize.x;\x0abool\x20horzSpan=edgeHorz>=edgeVert;\x0afloat\x20subpixA=subpixNSWE*2.0+subpixNWSWNESE;\x0aif\x20(!horzSpan)\x0a{\x0alumaN=lumaW;\x0a}\x0aif\x20(!horzSpan)\x20\x0a{\x0alumaS=lumaE;\x0a}\x0aif\x20(horzSpan)\x20\x0a{\x0alengthSign=texelSize.y;\x0a}\x0afloat\x20subpixB=(subpixA*(1.0/12.0))-lumaM;\x0afloat\x20gradientN=lumaN-lumaM;\x0afloat\x20gradientS=lumaS-lumaM;\x0afloat\x20lumaNN=lumaN+lumaM;\x0afloat\x20lumaSS=lumaS+lumaM;\x0abool\x20pairN=abs(gradientN)>=abs(gradientS);\x0afloat\x20gradient=max(abs(gradientN),abs(gradientS));\x0aif\x20(pairN)\x0a{\x0alengthSign=-lengthSign;\x0a}\x0afloat\x20subpixC=clamp(abs(subpixB)*subpixRcpRange,0.0,1.0);\x0avec2\x20posB;\x0aposB.x=posM.x;\x0aposB.y=posM.y;\x0avec2\x20offNP;\x0aoffNP.x=(!horzSpan)\x20?\x200.0\x20:\x20texelSize.x;\x0aoffNP.y=(horzSpan)\x20?\x200.0\x20:\x20texelSize.y;\x0aif\x20(!horzSpan)\x20\x0a{\x0aposB.x+=lengthSign*0.5;\x0a}\x0aif\x20(horzSpan)\x0a{\x0aposB.y+=lengthSign*0.5;\x0a}\x0avec2\x20posN;\x0aposN.x=posB.x-offNP.x*1.5;\x0aposN.y=posB.y-offNP.y*1.5;\x0avec2\x20posP;\x0aposP.x=posB.x+offNP.x*1.5;\x0aposP.y=posB.y+offNP.y*1.5;\x0afloat\x20subpixD=((-2.0)*subpixC)+3.0;\x0afloat\x20lumaEndN=FxaaLuma(TEXTUREFUNC(textureSampler,posN,0.0));\x0afloat\x20subpixE=subpixC*subpixC;\x0afloat\x20lumaEndP=FxaaLuma(TEXTUREFUNC(textureSampler,posP,0.0));\x0aif\x20(!pairN)\x20\x0a{\x0alumaNN=lumaSS;\x0a}\x0afloat\x20gradientScaled=gradient*1.0/4.0;\x0afloat\x20lumaMM=lumaM-lumaNN*0.5;\x0afloat\x20subpixF=subpixD*subpixE;\x0abool\x20lumaMLTZero=lumaMM<0.0;\x0alumaEndN-=lumaNN*0.5;\x0alumaEndP-=lumaNN*0.5;\x0abool\x20doneN=abs(lumaEndN)>=gradientScaled;\x0abool\x20doneP=abs(lumaEndP)>=gradientScaled;\x0aif\x20(!doneN)\x20\x0a{\x0aposN.x-=offNP.x*3.0;\x0a}\x0aif\x20(!doneN)\x20\x0a{\x0aposN.y-=offNP.y*3.0;\x0a}\x0abool\x20doneNP=(!doneN)\x20||\x20(!doneP);\x0aif\x20(!doneP)\x20\x0a{\x0aposP.x+=offNP.x*3.0;\x0a}\x0aif\x20(!doneP)\x0a{\x0aposP.y+=offNP.y*3.0;\x0a}\x0aif\x20(doneNP)\x0a{\x0aif\x20(!doneN)\x20lumaEndN=FxaaLuma(TEXTUREFUNC(textureSampler,posN.xy,0.0));\x0aif\x20(!doneP)\x20lumaEndP=FxaaLuma(TEXTUREFUNC(textureSampler,posP.xy,0.0));\x0aif\x20(!doneN)\x20lumaEndN=lumaEndN-lumaNN*0.5;\x0aif\x20(!doneP)\x20lumaEndP=lumaEndP-lumaNN*0.5;\x0adoneN=abs(lumaEndN)>=gradientScaled;\x0adoneP=abs(lumaEndP)>=gradientScaled;\x0aif\x20(!doneN)\x20posN.x-=offNP.x*12.0;\x0aif\x20(!doneN)\x20posN.y-=offNP.y*12.0;\x0adoneNP=(!doneN)\x20||\x20(!doneP);\x0aif\x20(!doneP)\x20posP.x+=offNP.x*12.0;\x0aif\x20(!doneP)\x20posP.y+=offNP.y*12.0;\x0a}\x0afloat\x20dstN=posM.x-posN.x;\x0afloat\x20dstP=posP.x-posM.x;\x0aif\x20(!horzSpan)\x0a{\x0adstN=posM.y-posN.y;\x0a}\x0aif\x20(!horzSpan)\x20\x0a{\x0adstP=posP.y-posM.y;\x0a}\x0abool\x20goodSpanN=(lumaEndN<0.0)\x20!=\x20lumaMLTZero;\x0afloat\x20spanLength=(dstP+dstN);\x0abool\x20goodSpanP=(lumaEndP<0.0)\x20!=\x20lumaMLTZero;\x0afloat\x20spanLengthRcp=1.0/spanLength;\x0abool\x20directionN=dstN<dstP;\x0afloat\x20dst=min(dstN,dstP);\x0abool\x20goodSpan=directionN\x20?\x20goodSpanN\x20:\x20goodSpanP;\x0afloat\x20subpixG=subpixF*subpixF;\x0afloat\x20pixelOffset=(dst*(-spanLengthRcp))+0.5;\x0afloat\x20subpixH=subpixG*fxaaQualitySubpix;\x0afloat\x20pixelOffsetGood=goodSpan\x20?\x20pixelOffset\x20:\x200.0;\x0afloat\x20pixelOffsetSubpix=max(pixelOffsetGood,subpixH);\x0aif\x20(!horzSpan)\x0a{\x0aposM.x+=pixelOffsetSubpix*lengthSign;\x0a}\x0aif\x20(horzSpan)\x0a{\x0aposM.y+=pixelOffsetSubpix*lengthSign;\x0a}\x0a#ifdef\x20MALI\x0aif(range<rangeMaxClamped)\x20\x0a{\x0agl_FragColor=rgbyM;\x0a}\x0aelse\x0a{\x0agl_FragColor=TEXTUREFUNC(textureSampler,posM,0.0);\x0a}\x0a#else\x0agl_FragColor=TEXTUREFUNC(textureSampler,posM,0.0);\x0a#endif\x0a}','isAnimationSheetEnabled','.texture\x20=\x20new\x20BABYLON.Texture(\x22','previousWorldMatrices','_textureFormat','_reflectionVectorName','onCompiled','Forward','_removeCameraPointerObserver','precision\x20mediump\x20float;\x0a','#ifdef\x20CLIPPLANE\x0auniform\x20vec4\x20vClipPlane;\x0avarying\x20float\x20fClipDistance;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0auniform\x20vec4\x20vClipPlane2;\x0avarying\x20float\x20fClipDistance2;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0auniform\x20vec4\x20vClipPlane3;\x0avarying\x20float\x20fClipDistance3;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0auniform\x20vec4\x20vClipPlane4;\x0avarying\x20float\x20fClipDistance4;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0auniform\x20vec4\x20vClipPlane5;\x0avarying\x20float\x20fClipDistance5;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0auniform\x20vec4\x20vClipPlane6;\x0avarying\x20float\x20fClipDistance6;\x0a#endif\x0a','buildUniformLayout','Vertex','operand','_excludedCompressedTextures','R16Uint','ShadersStore','matrixData','IncludesShadersStoreWGSL','clipPlane4','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec4\x20color;\x0a#include<helperFunctions>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0avec4\x20baseColor=texture2D(textureSampler,vUV);\x0a#ifdef\x20LINEAR\x0abaseColor.rgb=toGammaSpace(baseColor.rgb);\x0a#endif\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0agl_FragColor=baseColor*color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','UNSIGNED_BYTE','CreateNew','thinInstanceAdd','getEngine','effect','inlineShaderCode','meshUboDeclaration','gradientPixelShader','meshUnderPointer','_processSamplers','POSITIVE_INFINITY','kernelBlurVaryingDeclaration','#include<clipPlaneFragmentDeclaration>\x0auniform\x20vec4\x20color;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0agl_FragColor=color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','mapAsync','_getCurrentRenderPassIndex','pbrDirectLightingFunctions','ASTC10x10Unorm','varying\x20vec2\x20vUV;\x0auniform\x20samplerCube\x20textureSampler;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0avec2\x20uv=vUV*2.0-1.0;\x0a#ifdef\x20POSITIVEX\x0agl_FragColor=textureCube(textureSampler,vec3(1.001,uv.y,uv.x));\x0a#endif\x0a#ifdef\x20NEGATIVEX\x0agl_FragColor=textureCube(textureSampler,vec3(-1.001,uv.y,uv.x));\x0a#endif\x0a#ifdef\x20POSITIVEY\x0agl_FragColor=textureCube(textureSampler,vec3(uv.y,1.001,uv.x));\x0a#endif\x0a#ifdef\x20NEGATIVEY\x0agl_FragColor=textureCube(textureSampler,vec3(uv.y,-1.001,uv.x));\x0a#endif\x0a#ifdef\x20POSITIVEZ\x0agl_FragColor=textureCube(textureSampler,vec3(uv,1.001));\x0a#endif\x0a#ifdef\x20NEGATIVEZ\x0agl_FragColor=textureCube(textureSampler,vec3(uv,-1.001));\x0a#endif\x0a}','vrPresentationAttributes','BilateralBlurX','pointerId','postProcess','AutoSamplerSuffix','setFileName','screenSpaceRayTrace','layerType','samplerNames','_depthMask','LeftOvertUBOName','rttBlurred','setAlphaBlendFactors','originalPickingInfo','_opStencilDepthPass','RegisteredExternalClasses','_delay','samplingMode','932939GlzIwU','querySet',',\x20H:\x20','_requestVRFrame','_areTexturesDirty','bonesDeclaration','_releaseFramebufferObjects','forcedExtension','exec','stage','DST_ALPHA','TEXTUREFORMAT_DEPTH24UNORM_STENCIL8','#define\x20CLIPPLANE','now','updateMultipleRenderTargetTextureSampleCount','_deviceInputSystem','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20originalColor;\x0auniform\x20vec4\x20viewport;\x0avarying\x20vec2\x20vUV;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0avec4\x20ssaoColor=texture2D(textureSampler,viewport.xy+vUV*viewport.zw);\x0avec4\x20sceneColor=texture2D(originalColor,vUV);\x0agl_FragColor=sceneColor*ssaoColor;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','hasEndpoints','setUsage','sceneUboDeclaration','_preProcessors','CLIPPLANE4','preventDefault','create\x20cube\x20mipmaps\x20-\x20','All','stop','_GpuTextureViewDimensionByWebGPUTextureType','CubeSampler','createRenderTargetTexture','No\x20fixed\x20size\x20for\x20Depth24PlusStencil8\x20format!','compressedTexImage3D','boundingBoxRendererFragmentDeclaration','clickToPlay','updateArray','TEXTURE_CUBE_MAP_NEGATIVE_X','createView','_ignore','fireVertexShader','texParameteri','canvasTabIndex','fibonacci','_MSAARenderBuffers','_getShaderSource','LIGHTTYPEID_DIRECTIONALLIGHT','_thinInstanceDataStorage','#define\x20CYLINDEREMITTER','boundingBox','_samples','glFragData','setSampler','importExternalTexture','_advancePhysicsEngineStep','MiddleClick','faceForward','abs','bindForSubMesh','\x0a\x20\x20\x20\x20const\x20vec2\x20pos[4]\x20=\x20vec2[4](vec2(-1.0f,\x201.0f),\x20vec2(1.0f,\x201.0f),\x20vec2(-1.0f,\x20-1.0f),\x20vec2(1.0f,\x20-1.0f));\x0a\x20\x20\x20\x20const\x20vec2\x20tex[4]\x20=\x20vec2[4](vec2(0.0f,\x200.0f),\x20vec2(1.0f,\x200.0f),\x20vec2(0.0f,\x201.0f),\x20vec2(1.0f,\x201.0f));\x0a\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20vec2\x20vTex;\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20vTex\x20=\x20tex[gl_VertexIndex];\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20vec4(pos[gl_VertexIndex],\x200.0,\x201.0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','#ifdef\x20LIGHT{X}\x0auniform\x20Light{X}\x0a{\x0avec4\x20vLightData;\x0avec4\x20vLightDiffuse;\x0avec4\x20vLightSpecular;\x0a#ifdef\x20SPOTLIGHT{X}\x0avec4\x20vLightDirection;\x0avec4\x20vLightFalloff;\x0a#elif\x20defined(POINTLIGHT{X})\x0avec4\x20vLightFalloff;\x0a#elif\x20defined(HEMILIGHT{X})\x0avec3\x20vLightGround;\x0a#endif\x0avec4\x20shadowsInfo;\x0avec2\x20depthValues;\x0a}\x20light{X};\x0a#ifdef\x20SHADOW{X}\x0a#ifdef\x20SHADOWCSM{X}\x0auniform\x20mat4\x20lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20float\x20vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromCamera{X};\x0a#elif\x20defined(SHADOWCUBE{X})\x0a#else\x0avarying\x20vec4\x20vPositionFromLight{X};\x0avarying\x20float\x20vDepthMetric{X};\x0auniform\x20mat4\x20lightMatrix{X};\x0a#endif\x0a#endif\x0a#endif\x0a','baseHeight','_onVRFullScreenTriggered','MATERIAL_PointListDrawMode','#include<samplerFragmentDeclaration>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo,_SAMPLERNAME_,albedo)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity,_SAMPLERNAME_,reflectivity)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler,_SAMPLERNAME_,microSurface)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance,_SAMPLERNAME_,metallicReflectance)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance,_SAMPLERNAME_,reflectance)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)\x0a#ifdef\x20CLEARCOAT\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat,_SAMPLERNAME_,clearCoat)\x0a#include<samplerFragmentAlternateDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness)\x0a#if\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x20&&\x20!defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL)\x0auniform\x20sampler2D\x20clearCoatRoughnessSampler;\x0a#endif\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump,_SAMPLERNAME_,clearCoatBump)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint,_SAMPLERNAME_,clearCoatTint)\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence,_SAMPLERNAME_,iridescence)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness,_SAMPLERNAME_,iridescenceThickness)\x0a#endif\x0a#ifdef\x20SHEEN\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen,_SAMPLERNAME_,sheen)\x0a#include<samplerFragmentAlternateDeclaration>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness)\x0a#if\x20defined(SHEEN_ROUGHNESS)\x20&&\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x20&&\x20!defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL)\x0auniform\x20sampler2D\x20sheenRoughnessSampler;\x0a#endif\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy,_SAMPLERNAME_,anisotropy)\x0a#endif\x0a#ifdef\x20REFLECTION\x0a#ifdef\x20REFLECTIONMAP_3D\x0a#define\x20sampleReflection(s,c)\x20textureCube(s,c)\x0auniform\x20samplerCube\x20reflectionSampler;\x0a#ifdef\x20LODBASEDMICROSFURACE\x0a#define\x20sampleReflectionLod(s,c,l)\x20textureCubeLodEXT(s,c,l)\x0a#else\x0auniform\x20samplerCube\x20reflectionSamplerLow;\x0auniform\x20samplerCube\x20reflectionSamplerHigh;\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0auniform\x20samplerCube\x20irradianceSampler;\x0a#endif\x0a#else\x0a#define\x20sampleReflection(s,c)\x20texture2D(s,c)\x0auniform\x20sampler2D\x20reflectionSampler;\x0a#ifdef\x20LODBASEDMICROSFURACE\x0a#define\x20sampleReflectionLod(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0auniform\x20sampler2D\x20reflectionSamplerLow;\x0auniform\x20sampler2D\x20reflectionSamplerHigh;\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0auniform\x20sampler2D\x20irradianceSampler;\x0a#endif\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#else\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20ENVIRONMENTBRDF\x0auniform\x20sampler2D\x20environmentBrdfSampler;\x0a#endif\x0a#ifdef\x20SUBSURFACE\x0a#ifdef\x20SS_REFRACTION\x0a#ifdef\x20SS_REFRACTIONMAP_3D\x0a#define\x20sampleRefraction(s,c)\x20textureCube(s,c)\x0auniform\x20samplerCube\x20refractionSampler;\x0a#ifdef\x20LODBASEDMICROSFURACE\x0a#define\x20sampleRefractionLod(s,c,l)\x20textureCubeLodEXT(s,c,l)\x0a#else\x0auniform\x20samplerCube\x20refractionSamplerLow;\x0auniform\x20samplerCube\x20refractionSamplerHigh;\x0a#endif\x0a#else\x0a#define\x20sampleRefraction(s,c)\x20texture2D(s,c)\x0auniform\x20sampler2D\x20refractionSampler;\x0a#ifdef\x20LODBASEDMICROSFURACE\x0a#define\x20sampleRefractionLod(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0auniform\x20sampler2D\x20refractionSamplerLow;\x0auniform\x20sampler2D\x20refractionSamplerHigh;\x0a#endif\x0a#endif\x0a#endif\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness,_SAMPLERNAME_,thickness)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity,_SAMPLERNAME_,refractionIntensity)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity,_SAMPLERNAME_,translucencyIntensity)\x0a#endif\x0a','Sampler','EACR11Unorm','numBoneInfluencers','toArray','clone','FALLOFF_STANDARD','_repeatableContentAnchorIndex','decorate','\x20=\x20textureCube(','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20lightScatteringSampler;\x0auniform\x20float\x20decay;\x0auniform\x20float\x20exposure;\x0auniform\x20float\x20weight;\x0auniform\x20float\x20density;\x0auniform\x20vec2\x20meshPositionOnScreen;\x0avarying\x20vec2\x20vUV;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0avec2\x20tc=vUV;\x0avec2\x20deltaTexCoord=(tc-meshPositionOnScreen.xy);\x0adeltaTexCoord*=1.0/float(NUM_SAMPLES)*density;\x0afloat\x20illuminationDecay=1.0;\x0avec4\x20color=texture2D(lightScatteringSampler,tc)*0.4;\x0afor(int\x20i=0;\x20i<NUM_SAMPLES;\x20i++)\x20{\x0atc-=deltaTexCoord;\x0avec4\x20dataSample=texture2D(lightScatteringSampler,tc)*0.4;\x0adataSample*=illuminationDecay*weight;\x0acolor+=dataSample;\x0ailluminationDecay*=decay;\x0a}\x0avec4\x20realColor=texture2D(textureSampler,vUV);\x0agl_FragColor=((vec4((vec3(color.r,color.g,color.b)*exposure),1))+(realColor*(1.5-0.4)));\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','attributes','HasTags','oitFragment','preventDefaultOnPointerUp','_workingCanvas','#if\x20DEBUGMODE>0\x0aif\x20(vClipSpacePosition.x/vClipSpacePosition.w>=vDebugMode.x)\x20{\x0a#if\x20DEBUGMODE==1\x0agl_FragColor.rgb=vPositionW.rgb;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==2\x20&&\x20defined(NORMAL)\x0agl_FragColor.rgb=vNormalW.rgb;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==3\x20&&\x20defined(BUMP)\x20||\x20DEBUGMODE==3\x20&&\x20defined(PARALLAX)\x20||\x20DEBUGMODE==3\x20&&\x20defined(ANISOTROPIC)\x0agl_FragColor.rgb=TBN[0];\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==4\x20&&\x20defined(BUMP)\x20||\x20DEBUGMODE==4\x20&&\x20defined(PARALLAX)\x20||\x20DEBUGMODE==4\x20&&\x20defined(ANISOTROPIC)\x0agl_FragColor.rgb=TBN[1];\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==5\x0agl_FragColor.rgb=normalW;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==6\x20&&\x20defined(MAINUV1)\x0agl_FragColor.rgb=vec3(vMainUV1,0.0);\x0a#elif\x20DEBUGMODE==7\x20&&\x20defined(MAINUV2)\x0agl_FragColor.rgb=vec3(vMainUV2,0.0);\x0a#elif\x20DEBUGMODE==8\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_BUMP)\x0agl_FragColor.rgb=clearcoatOut.TBNClearCoat[0];\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==9\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_BUMP)\x0agl_FragColor.rgb=clearcoatOut.TBNClearCoat[1];\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==10\x20&&\x20defined(CLEARCOAT)\x0agl_FragColor.rgb=clearcoatOut.clearCoatNormalW;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==11\x20&&\x20defined(ANISOTROPIC)\x0agl_FragColor.rgb=anisotropicOut.anisotropicNormal;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==12\x20&&\x20defined(ANISOTROPIC)\x0agl_FragColor.rgb=anisotropicOut.anisotropicTangent;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==13\x20&&\x20defined(ANISOTROPIC)\x0agl_FragColor.rgb=anisotropicOut.anisotropicBitangent;\x0a#define\x20DEBUGMODE_NORMALIZE\x0a#elif\x20DEBUGMODE==20\x20&&\x20defined(ALBEDO)\x0agl_FragColor.rgb=albedoTexture.rgb;\x0a#elif\x20DEBUGMODE==21\x20&&\x20defined(AMBIENT)\x0agl_FragColor.rgb=aoOut.ambientOcclusionColorMap.rgb;\x0a#elif\x20DEBUGMODE==22\x20&&\x20defined(OPACITY)\x0agl_FragColor.rgb=opacityMap.rgb;\x0a#elif\x20DEBUGMODE==23\x20&&\x20defined(EMISSIVE)\x0agl_FragColor.rgb=emissiveColorTex.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==24\x20&&\x20defined(LIGHTMAP)\x0agl_FragColor.rgb=lightmapColor.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==25\x20&&\x20defined(REFLECTIVITY)\x20&&\x20defined(METALLICWORKFLOW)\x0agl_FragColor.rgb=reflectivityOut.surfaceMetallicColorMap.rgb;\x0a#elif\x20DEBUGMODE==26\x20&&\x20defined(REFLECTIVITY)\x20&&\x20!defined(METALLICWORKFLOW)\x0agl_FragColor.rgb=reflectivityOut.surfaceReflectivityColorMap.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==27\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_TEXTURE)\x0agl_FragColor.rgb=vec3(clearcoatOut.clearCoatMapData.rg,0.0);\x0a#elif\x20DEBUGMODE==28\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_TINT)\x20&&\x20defined(CLEARCOAT_TINT_TEXTURE)\x0agl_FragColor.rgb=clearcoatOut.clearCoatTintMapData.rgb;\x0a#elif\x20DEBUGMODE==29\x20&&\x20defined(SHEEN)\x20&&\x20defined(SHEEN_TEXTURE)\x0agl_FragColor.rgb=sheenOut.sheenMapData.rgb;\x0a#elif\x20DEBUGMODE==30\x20&&\x20defined(ANISOTROPIC)\x20&&\x20defined(ANISOTROPIC_TEXTURE)\x0agl_FragColor.rgb=anisotropicOut.anisotropyMapData.rgb;\x0a#elif\x20DEBUGMODE==31\x20&&\x20defined(SUBSURFACE)\x20&&\x20defined(SS_THICKNESSANDMASK_TEXTURE)\x0agl_FragColor.rgb=subSurfaceOut.thicknessMap.rgb;\x0a#elif\x20DEBUGMODE==40\x20&&\x20defined(SS_REFRACTION)\x0agl_FragColor.rgb=subSurfaceOut.environmentRefraction.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==41\x20&&\x20defined(REFLECTION)\x0agl_FragColor.rgb=reflectionOut.environmentRadiance.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==42\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(REFLECTION)\x0agl_FragColor.rgb=clearcoatOut.environmentClearCoatRadiance.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==50\x0agl_FragColor.rgb=diffuseBase.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==51\x20&&\x20defined(SPECULARTERM)\x0agl_FragColor.rgb=specularBase.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==52\x20&&\x20defined(CLEARCOAT)\x0agl_FragColor.rgb=clearCoatBase.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==53\x20&&\x20defined(SHEEN)\x0agl_FragColor.rgb=sheenBase.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==54\x20&&\x20defined(REFLECTION)\x0agl_FragColor.rgb=reflectionOut.environmentIrradiance.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==60\x0agl_FragColor.rgb=surfaceAlbedo.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==61\x0agl_FragColor.rgb=clearcoatOut.specularEnvironmentR0;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==62\x20&&\x20defined(METALLICWORKFLOW)\x0agl_FragColor.rgb=vec3(reflectivityOut.metallicRoughness.r);\x0a#elif\x20DEBUGMODE==71\x20&&\x20defined(METALLICWORKFLOW)\x0agl_FragColor.rgb=reflectivityOut.metallicF0;\x0a#elif\x20DEBUGMODE==63\x0agl_FragColor.rgb=vec3(roughness);\x0a#elif\x20DEBUGMODE==64\x0agl_FragColor.rgb=vec3(alphaG);\x0a#elif\x20DEBUGMODE==65\x0agl_FragColor.rgb=vec3(NdotV);\x0a#elif\x20DEBUGMODE==66\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_TINT)\x0agl_FragColor.rgb=clearcoatOut.clearCoatColor.rgb;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==67\x20&&\x20defined(CLEARCOAT)\x0agl_FragColor.rgb=vec3(clearcoatOut.clearCoatRoughness);\x0a#elif\x20DEBUGMODE==68\x20&&\x20defined(CLEARCOAT)\x0agl_FragColor.rgb=vec3(clearcoatOut.clearCoatNdotV);\x0a#elif\x20DEBUGMODE==69\x20&&\x20defined(SUBSURFACE)\x20&&\x20defined(SS_TRANSLUCENCY)\x0agl_FragColor.rgb=subSurfaceOut.transmittance;\x0a#elif\x20DEBUGMODE==70\x20&&\x20defined(SUBSURFACE)\x20&&\x20defined(SS_REFRACTION)\x0agl_FragColor.rgb=subSurfaceOut.refractionTransmittance;\x0a#elif\x20DEBUGMODE==80\x20&&\x20defined(RADIANCEOCCLUSION)\x0agl_FragColor.rgb=vec3(seo);\x0a#elif\x20DEBUGMODE==81\x20&&\x20defined(HORIZONOCCLUSION)\x0agl_FragColor.rgb=vec3(eho);\x0a#elif\x20DEBUGMODE==82\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0agl_FragColor.rgb=vec3(energyConservationFactor);\x0a#elif\x20DEBUGMODE==83\x20&&\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0agl_FragColor.rgb=specularEnvironmentReflectance;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==84\x20&&\x20defined(CLEARCOAT)\x20&&\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0agl_FragColor.rgb=clearcoatOut.clearCoatEnvironmentReflectance;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==85\x20&&\x20defined(SHEEN)\x20&&\x20defined(REFLECTION)\x0agl_FragColor.rgb=sheenOut.sheenEnvironmentReflectance;\x0a#define\x20DEBUGMODE_GAMMA\x0a#elif\x20DEBUGMODE==86\x20&&\x20defined(ALPHABLEND)\x0agl_FragColor.rgb=vec3(luminanceOverAlpha);\x0a#elif\x20DEBUGMODE==87\x0agl_FragColor.rgb=vec3(alpha);\x0a#endif\x0agl_FragColor.rgb*=vDebugMode.y;\x0a#ifdef\x20DEBUGMODE_NORMALIZE\x0agl_FragColor.rgb=normalize(gl_FragColor.rgb)*0.5+0.5;\x0a#endif\x0a#ifdef\x20DEBUGMODE_GAMMA\x0agl_FragColor.rgb=toGammaSpace(gl_FragColor.rgb);\x0a#endif\x0agl_FragColor.a=1.0;\x0a#ifdef\x20PREPASS\x0agl_FragData[0]=toLinearSpace(gl_FragColor);\x20\x0agl_FragData[1]=vec4(0.,0.,0.,0.);\x20\x0a#endif\x0areturn;\x0a}\x0a#endif\x0a','AddSamplers','_boundRenderFunction','StorageTexture','struct\x20preLightingInfo\x0a{\x0avec3\x20lightOffset;\x0afloat\x20lightDistanceSquared;\x0afloat\x20lightDistance;\x0afloat\x20attenuation;\x0avec3\x20L;\x0avec3\x20H;\x0afloat\x20NdotV;\x0afloat\x20NdotLUnclamped;\x0afloat\x20NdotL;\x0afloat\x20VdotH;\x0afloat\x20roughness;\x0a#ifdef\x20IRIDESCENCE\x0afloat\x20iridescenceIntensity;\x0a#endif\x0a};\x0apreLightingInfo\x20computePointAndSpotPreLightingInfo(vec4\x20lightData,vec3\x20V,vec3\x20N)\x20{\x0apreLightingInfo\x20result;\x0aresult.lightOffset=lightData.xyz-vPositionW;\x0aresult.lightDistanceSquared=dot(result.lightOffset,result.lightOffset);\x0aresult.lightDistance=sqrt(result.lightDistanceSquared);\x0aresult.L=normalize(result.lightOffset);\x0aresult.H=normalize(V+result.L);\x0aresult.VdotH=saturate(dot(V,result.H));\x0aresult.NdotLUnclamped=dot(N,result.L);\x0aresult.NdotL=saturateEps(result.NdotLUnclamped);\x0areturn\x20result;\x0a}\x0apreLightingInfo\x20computeDirectionalPreLightingInfo(vec4\x20lightData,vec3\x20V,vec3\x20N)\x20{\x0apreLightingInfo\x20result;\x0aresult.lightDistance=length(-lightData.xyz);\x0aresult.L=normalize(-lightData.xyz);\x0aresult.H=normalize(V+result.L);\x0aresult.VdotH=saturate(dot(V,result.H));\x0aresult.NdotLUnclamped=dot(N,result.L);\x0aresult.NdotL=saturateEps(result.NdotLUnclamped);\x0areturn\x20result;\x0a}\x0apreLightingInfo\x20computeHemisphericPreLightingInfo(vec4\x20lightData,vec3\x20V,vec3\x20N)\x20{\x0apreLightingInfo\x20result;\x0aresult.NdotL=dot(N,lightData.xyz)*0.5+0.5;\x0aresult.NdotL=saturateEps(result.NdotL);\x0aresult.NdotLUnclamped=result.NdotL;\x0a#ifdef\x20SPECULARTERM\x0aresult.L=normalize(lightData.xyz);\x0aresult.H=normalize(V+result.L);\x0aresult.VdotH=saturate(dot(V,result.H));\x0a#endif\x0areturn\x20result;\x0a}','_isBlendFunctionParametersDirty','createStorageBuffer','pbrBlockAlphaFresnel','_resizeOrCreateMultiviewTexture','#ifdef\x20DEPTHPREPASS\x0agl_FragColor=vec4(0.,0.,0.,1.0);\x0areturn;\x0a#endif\x0a','setImmediate','#ifdef\x20SHADOWS\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,b)\x20texture2D(s,c,b)\x0a#endif\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20unpack(vec4\x20color)\x0a{\x0aconst\x20vec4\x20bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);\x0areturn\x20dot(color,bit_shift);\x0a}\x0a#endif\x0afloat\x20computeFallOff(float\x20value,vec2\x20clipSpace,float\x20frustumEdgeFalloff)\x0a{\x0afloat\x20mask=smoothstep(1.0-frustumEdgeFalloff,1.00000012,clamp(dot(clipSpace,clipSpace),0.,1.));\x0areturn\x20mix(value,1.0,mask);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowCube(vec3\x20lightPosition,samplerCube\x20shadowSampler,float\x20darkness,vec2\x20depthValues)\x0a{\x0avec3\x20directionToLight=vPositionW-lightPosition;\x0afloat\x20depth=length(directionToLight);\x0adepth=(depth+depthValues.x)/(depthValues.y);\x0adepth=clamp(depth,0.,1.0);\x0adirectionToLight=normalize(directionToLight);\x0adirectionToLight.y=-directionToLight.y;\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadow=unpack(textureCube(shadowSampler,directionToLight));\x0a#else\x0afloat\x20shadow=textureCube(shadowSampler,directionToLight).x;\x0a#endif\x0areturn\x20depth>shadow\x20?\x20darkness\x20:\x201.0;\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPoissonSamplingCube(vec3\x20lightPosition,samplerCube\x20shadowSampler,float\x20mapSize,float\x20darkness,vec2\x20depthValues)\x0a{\x0avec3\x20directionToLight=vPositionW-lightPosition;\x0afloat\x20depth=length(directionToLight);\x0adepth=(depth+depthValues.x)/(depthValues.y);\x0adepth=clamp(depth,0.,1.0);\x0adirectionToLight=normalize(directionToLight);\x0adirectionToLight.y=-directionToLight.y;\x0afloat\x20visibility=1.;\x0avec3\x20poissonDisk[4];\x0apoissonDisk[0]=vec3(-1.0,1.0,-1.0);\x0apoissonDisk[1]=vec3(1.0,-1.0,-1.0);\x0apoissonDisk[2]=vec3(-1.0,-1.0,-1.0);\x0apoissonDisk[3]=vec3(1.0,-1.0,1.0);\x0a#ifndef\x20SHADOWFLOAT\x0aif\x20(unpack(textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize))<depth)\x20visibility-=0.25;\x0aif\x20(unpack(textureCube(shadowSampler,directionToLight+poissonDisk[1]*mapSize))<depth)\x20visibility-=0.25;\x0aif\x20(unpack(textureCube(shadowSampler,directionToLight+poissonDisk[2]*mapSize))<depth)\x20visibility-=0.25;\x0aif\x20(unpack(textureCube(shadowSampler,directionToLight+poissonDisk[3]*mapSize))<depth)\x20visibility-=0.25;\x0a#else\x0aif\x20(textureCube(shadowSampler,directionToLight+poissonDisk[0]*mapSize).x<depth)\x20visibility-=0.25;\x0aif\x20(textureCube(shadowSampler,directionToLight+poissonDisk[1]*mapSize).x<depth)\x20visibility-=0.25;\x0aif\x20(textureCube(shadowSampler,directionToLight+poissonDisk[2]*mapSize).x<depth)\x20visibility-=0.25;\x0aif\x20(textureCube(shadowSampler,directionToLight+poissonDisk[3]*mapSize).x<depth)\x20visibility-=0.25;\x0a#endif\x0areturn\x20min(1.0,visibility+darkness);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithESMCube(vec3\x20lightPosition,samplerCube\x20shadowSampler,float\x20darkness,float\x20depthScale,vec2\x20depthValues)\x0a{\x0avec3\x20directionToLight=vPositionW-lightPosition;\x0afloat\x20depth=length(directionToLight);\x0adepth=(depth+depthValues.x)/(depthValues.y);\x0afloat\x20shadowPixelDepth=clamp(depth,0.,1.0);\x0adirectionToLight=normalize(directionToLight);\x0adirectionToLight.y=-directionToLight.y;\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadowMapSample=unpack(textureCube(shadowSampler,directionToLight));\x0a#else\x0afloat\x20shadowMapSample=textureCube(shadowSampler,directionToLight).x;\x0a#endif\x0afloat\x20esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);\x20\x0areturn\x20esm;\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCloseESMCube(vec3\x20lightPosition,samplerCube\x20shadowSampler,float\x20darkness,float\x20depthScale,vec2\x20depthValues)\x0a{\x0avec3\x20directionToLight=vPositionW-lightPosition;\x0afloat\x20depth=length(directionToLight);\x0adepth=(depth+depthValues.x)/(depthValues.y);\x0afloat\x20shadowPixelDepth=clamp(depth,0.,1.0);\x0adirectionToLight=normalize(directionToLight);\x0adirectionToLight.y=-directionToLight.y;\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadowMapSample=unpack(textureCube(shadowSampler,directionToLight));\x0a#else\x0afloat\x20shadowMapSample=textureCube(shadowSampler,directionToLight).x;\x0a#endif\x0afloat\x20esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);\x0areturn\x20esm;\x0a}\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20inline\x0afloat\x20computeShadowCSM(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArray\x20shadowSampler,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec2\x20uv=0.5*clipSpace.xy+vec2(0.5);\x0avec3\x20uvLayer=vec3(uv.x,uv.y,layer);\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.,1.0);\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadow=unpack(texture2D(shadowSampler,uvLayer));\x0a#else\x0afloat\x20shadow=texture2D(shadowSampler,uvLayer).x;\x0a#endif\x0areturn\x20shadowPixelDepth>shadow\x20?\x20computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff)\x20:\x201.;\x0a}\x0a#endif\x0a#define\x20inline\x0afloat\x20computeShadow(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20shadowSampler,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec2\x20uv=0.5*clipSpace.xy+vec2(0.5);\x0aif\x20(uv.x<0.\x20||\x20uv.x>1.0\x20||\x20uv.y<0.\x20||\x20uv.y>1.0)\x0a{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.,1.0);\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadow=unpack(TEXTUREFUNC(shadowSampler,uv,0.));\x0a#else\x0afloat\x20shadow=TEXTUREFUNC(shadowSampler,uv,0.).x;\x0a#endif\x0areturn\x20shadowPixelDepth>shadow\x20?\x20computeFallOff(darkness,clipSpace.xy,frustumEdgeFalloff)\x20:\x201.;\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPoissonSampling(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20shadowSampler,float\x20mapSize,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec2\x20uv=0.5*clipSpace.xy+vec2(0.5);\x0aif\x20(uv.x<0.\x20||\x20uv.x>1.0\x20||\x20uv.y<0.\x20||\x20uv.y>1.0)\x0a{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.,1.0);\x0afloat\x20visibility=1.;\x0avec2\x20poissonDisk[4];\x0apoissonDisk[0]=vec2(-0.94201624,-0.39906216);\x0apoissonDisk[1]=vec2(0.94558609,-0.76890725);\x0apoissonDisk[2]=vec2(-0.094184101,-0.92938870);\x0apoissonDisk[3]=vec2(0.34495938,0.29387760);\x0a#ifndef\x20SHADOWFLOAT\x0aif\x20(unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[0]*mapSize,0.))<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[1]*mapSize,0.))<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[2]*mapSize,0.))<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(unpack(TEXTUREFUNC(shadowSampler,uv+poissonDisk[3]*mapSize,0.))<shadowPixelDepth)\x20visibility-=0.25;\x0a#else\x0aif\x20(TEXTUREFUNC(shadowSampler,uv+poissonDisk[0]*mapSize,0.).x<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(TEXTUREFUNC(shadowSampler,uv+poissonDisk[1]*mapSize,0.).x<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(TEXTUREFUNC(shadowSampler,uv+poissonDisk[2]*mapSize,0.).x<shadowPixelDepth)\x20visibility-=0.25;\x0aif\x20(TEXTUREFUNC(shadowSampler,uv+poissonDisk[3]*mapSize,0.).x<shadowPixelDepth)\x20visibility-=0.25;\x0a#endif\x0areturn\x20computeFallOff(min(1.0,visibility+darkness),clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithESM(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20shadowSampler,float\x20darkness,float\x20depthScale,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec2\x20uv=0.5*clipSpace.xy+vec2(0.5);\x0aif\x20(uv.x<0.\x20||\x20uv.x>1.0\x20||\x20uv.y<0.\x20||\x20uv.y>1.0)\x0a{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.,1.0);\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadowMapSample=unpack(TEXTUREFUNC(shadowSampler,uv,0.));\x0a#else\x0afloat\x20shadowMapSample=TEXTUREFUNC(shadowSampler,uv,0.).x;\x0a#endif\x0afloat\x20esm=1.0-clamp(exp(min(87.,depthScale*shadowPixelDepth))*shadowMapSample,0.,1.-darkness);\x0areturn\x20computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCloseESM(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20shadowSampler,float\x20darkness,float\x20depthScale,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec2\x20uv=0.5*clipSpace.xy+vec2(0.5);\x0aif\x20(uv.x<0.\x20||\x20uv.x>1.0\x20||\x20uv.y<0.\x20||\x20uv.y>1.0)\x0a{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0afloat\x20shadowPixelDepth=clamp(depthMetric,0.,1.0);\x20\x0a#ifndef\x20SHADOWFLOAT\x0afloat\x20shadowMapSample=unpack(TEXTUREFUNC(shadowSampler,uv,0.));\x0a#else\x0afloat\x20shadowMapSample=TEXTUREFUNC(shadowSampler,uv,0.).x;\x0a#endif\x0afloat\x20esm=clamp(exp(min(87.,-depthScale*(shadowPixelDepth-shadowMapSample))),darkness,1.);\x0areturn\x20computeFallOff(esm,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#ifdef\x20IS_NDC_HALF_ZRANGE\x0a#define\x20ZINCLIP\x20clipSpace.z\x0a#else\x0a#define\x20ZINCLIP\x20uvDepth.z\x0a#endif\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20GREATEST_LESS_THAN_ONE\x200.99999994\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCF1(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArrayShadow\x20shadowSampler,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);\x0avec4\x20uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);\x0afloat\x20shadow=texture2D(shadowSampler,uvDepthLayer);\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCF3(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArrayShadow\x20shadowSampler,vec2\x20shadowMapSizeAndInverse,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);\x0avec2\x20uv=uvDepth.xy*shadowMapSizeAndInverse.x;\x20\x0auv+=0.5;\x20\x0avec2\x20st=fract(uv);\x20\x0avec2\x20base_uv=floor(uv)-0.5;\x20\x0abase_uv*=shadowMapSizeAndInverse.y;\x20\x0avec2\x20uvw0=3.-2.*st;\x0avec2\x20uvw1=1.+2.*st;\x0avec2\x20u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;\x0avec2\x20v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;\x0afloat\x20shadow=0.;\x0ashadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));\x0ashadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));\x0ashadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));\x0ashadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));\x0ashadow=shadow/16.;\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCF5(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArrayShadow\x20shadowSampler,vec2\x20shadowMapSizeAndInverse,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);\x0avec2\x20uv=uvDepth.xy*shadowMapSizeAndInverse.x;\x20\x0auv+=0.5;\x20\x0avec2\x20st=fract(uv);\x20\x0avec2\x20base_uv=floor(uv)-0.5;\x20\x0abase_uv*=shadowMapSizeAndInverse.y;\x20\x0avec2\x20uvw0=4.-3.*st;\x0avec2\x20uvw1=vec2(7.);\x0avec2\x20uvw2=1.+3.*st;\x0avec3\x20u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;\x0avec3\x20v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;\x0afloat\x20shadow=0.;\x0ashadow+=uvw0.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[0]),layer,uvDepth.z));\x0ashadow+=uvw1.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[0]),layer,uvDepth.z));\x0ashadow+=uvw2.x*uvw0.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[0]),layer,uvDepth.z));\x0ashadow+=uvw0.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[1]),layer,uvDepth.z));\x0ashadow+=uvw1.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[1]),layer,uvDepth.z));\x0ashadow+=uvw2.x*uvw1.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[1]),layer,uvDepth.z));\x0ashadow+=uvw0.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[0],v[2]),layer,uvDepth.z));\x0ashadow+=uvw1.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[1],v[2]),layer,uvDepth.z));\x0ashadow+=uvw2.x*uvw2.y*texture2D(shadowSampler,vec4(base_uv.xy+vec2(u[2],v[2]),layer,uvDepth.z));\x0ashadow=shadow/144.;\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCF1(vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DShadow\x20shadowSampler,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0aif\x20(depthMetric>1.0\x20||\x20depthMetric<0.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=ZINCLIP;\x0afloat\x20shadow=TEXTUREFUNC(shadowSampler,uvDepth,0.);\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCF3(vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DShadow\x20shadowSampler,vec2\x20shadowMapSizeAndInverse,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0aif\x20(depthMetric>1.0\x20||\x20depthMetric<0.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=ZINCLIP;\x0avec2\x20uv=uvDepth.xy*shadowMapSizeAndInverse.x;\x20\x0auv+=0.5;\x20\x0avec2\x20st=fract(uv);\x20\x0avec2\x20base_uv=floor(uv)-0.5;\x20\x0abase_uv*=shadowMapSizeAndInverse.y;\x20\x0avec2\x20uvw0=3.-2.*st;\x0avec2\x20uvw1=1.+2.*st;\x0avec2\x20u=vec2((2.-st.x)/uvw0.x-1.,st.x/uvw1.x+1.)*shadowMapSizeAndInverse.y;\x0avec2\x20v=vec2((2.-st.y)/uvw0.y-1.,st.y/uvw1.y+1.)*shadowMapSizeAndInverse.y;\x0afloat\x20shadow=0.;\x0ashadow+=uvw0.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z),0.);\x0ashadow+=uvw1.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z),0.);\x0ashadow+=uvw0.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z),0.);\x0ashadow+=uvw1.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z),0.);\x0ashadow=shadow/16.;\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCF5(vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DShadow\x20shadowSampler,vec2\x20shadowMapSizeAndInverse,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0aif\x20(depthMetric>1.0\x20||\x20depthMetric<0.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=ZINCLIP;\x0avec2\x20uv=uvDepth.xy*shadowMapSizeAndInverse.x;\x20\x0auv+=0.5;\x20\x0avec2\x20st=fract(uv);\x20\x0avec2\x20base_uv=floor(uv)-0.5;\x20\x0abase_uv*=shadowMapSizeAndInverse.y;\x20\x0avec2\x20uvw0=4.-3.*st;\x0avec2\x20uvw1=vec2(7.);\x0avec2\x20uvw2=1.+3.*st;\x0avec3\x20u=vec3((3.-2.*st.x)/uvw0.x-2.,(3.+st.x)/uvw1.x,st.x/uvw2.x+2.)*shadowMapSizeAndInverse.y;\x0avec3\x20v=vec3((3.-2.*st.y)/uvw0.y-2.,(3.+st.y)/uvw1.y,st.y/uvw2.y+2.)*shadowMapSizeAndInverse.y;\x0afloat\x20shadow=0.;\x0ashadow+=uvw0.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[0]),uvDepth.z),0.);\x0ashadow+=uvw1.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[0]),uvDepth.z),0.);\x0ashadow+=uvw2.x*uvw0.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[0]),uvDepth.z),0.);\x0ashadow+=uvw0.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[1]),uvDepth.z),0.);\x0ashadow+=uvw1.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[1]),uvDepth.z),0.);\x0ashadow+=uvw2.x*uvw1.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[1]),uvDepth.z),0.);\x0ashadow+=uvw0.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[0],v[2]),uvDepth.z),0.);\x0ashadow+=uvw1.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[1],v[2]),uvDepth.z),0.);\x0ashadow+=uvw2.x*uvw2.y*TEXTUREFUNC(shadowSampler,vec3(base_uv.xy+vec2(u[2],v[2]),uvDepth.z),0.);\x0ashadow=shadow/144.;\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0aconst\x20vec3\x20PoissonSamplers32[64]=vec3[64](\x0avec3(0.06407013,0.05409927,0.),\x0avec3(0.7366577,0.5789394,0.),\x0avec3(-0.6270542,-0.5320278,0.),\x0avec3(-0.4096107,0.8411095,0.),\x0avec3(0.6849564,-0.4990818,0.),\x0avec3(-0.874181,-0.04579735,0.),\x0avec3(0.9989998,0.0009880066,0.),\x0avec3(-0.004920578,-0.9151649,0.),\x0avec3(0.1805763,0.9747483,0.),\x0avec3(-0.2138451,0.2635818,0.),\x0avec3(0.109845,0.3884785,0.),\x0avec3(0.06876755,-0.3581074,0.),\x0avec3(0.374073,-0.7661266,0.),\x0avec3(0.3079132,-0.1216763,0.),\x0avec3(-0.3794335,-0.8271583,0.),\x0avec3(-0.203878,-0.07715034,0.),\x0avec3(0.5912697,0.1469799,0.),\x0avec3(-0.88069,0.3031784,0.),\x0avec3(0.5040108,0.8283722,0.),\x0avec3(-0.5844124,0.5494877,0.),\x0avec3(0.6017799,-0.1726654,0.),\x0avec3(-0.5554981,0.1559997,0.),\x0avec3(-0.3016369,-0.3900928,0.),\x0avec3(-0.5550632,-0.1723762,0.),\x0avec3(0.925029,0.2995041,0.),\x0avec3(-0.2473137,0.5538505,0.),\x0avec3(0.9183037,-0.2862392,0.),\x0avec3(0.2469421,0.6718712,0.),\x0avec3(0.3916397,-0.4328209,0.),\x0avec3(-0.03576927,-0.6220032,0.),\x0avec3(-0.04661255,0.7995201,0.),\x0avec3(0.4402924,0.3640312,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.),\x0avec3(0.,0.,0.)\x0a);\x0aconst\x20vec3\x20PoissonSamplers64[64]=vec3[64](\x0avec3(-0.613392,0.617481,0.),\x0avec3(0.170019,-0.040254,0.),\x0avec3(-0.299417,0.791925,0.),\x0avec3(0.645680,0.493210,0.),\x0avec3(-0.651784,0.717887,0.),\x0avec3(0.421003,0.027070,0.),\x0avec3(-0.817194,-0.271096,0.),\x0avec3(-0.705374,-0.668203,0.),\x0avec3(0.977050,-0.108615,0.),\x0avec3(0.063326,0.142369,0.),\x0avec3(0.203528,0.214331,0.),\x0avec3(-0.667531,0.326090,0.),\x0avec3(-0.098422,-0.295755,0.),\x0avec3(-0.885922,0.215369,0.),\x0avec3(0.566637,0.605213,0.),\x0avec3(0.039766,-0.396100,0.),\x0avec3(0.751946,0.453352,0.),\x0avec3(0.078707,-0.715323,0.),\x0avec3(-0.075838,-0.529344,0.),\x0avec3(0.724479,-0.580798,0.),\x0avec3(0.222999,-0.215125,0.),\x0avec3(-0.467574,-0.405438,0.),\x0avec3(-0.248268,-0.814753,0.),\x0avec3(0.354411,-0.887570,0.),\x0avec3(0.175817,0.382366,0.),\x0avec3(0.487472,-0.063082,0.),\x0avec3(-0.084078,0.898312,0.),\x0avec3(0.488876,-0.783441,0.),\x0avec3(0.470016,0.217933,0.),\x0avec3(-0.696890,-0.549791,0.),\x0avec3(-0.149693,0.605762,0.),\x0avec3(0.034211,0.979980,0.),\x0avec3(0.503098,-0.308878,0.),\x0avec3(-0.016205,-0.872921,0.),\x0avec3(0.385784,-0.393902,0.),\x0avec3(-0.146886,-0.859249,0.),\x0avec3(0.643361,0.164098,0.),\x0avec3(0.634388,-0.049471,0.),\x0avec3(-0.688894,0.007843,0.),\x0avec3(0.464034,-0.188818,0.),\x0avec3(-0.440840,0.137486,0.),\x0avec3(0.364483,0.511704,0.),\x0avec3(0.034028,0.325968,0.),\x0avec3(0.099094,-0.308023,0.),\x0avec3(0.693960,-0.366253,0.),\x0avec3(0.678884,-0.204688,0.),\x0avec3(0.001801,0.780328,0.),\x0avec3(0.145177,-0.898984,0.),\x0avec3(0.062655,-0.611866,0.),\x0avec3(0.315226,-0.604297,0.),\x0avec3(-0.780145,0.486251,0.),\x0avec3(-0.371868,0.882138,0.),\x0avec3(0.200476,0.494430,0.),\x0avec3(-0.494552,-0.711051,0.),\x0avec3(0.612476,0.705252,0.),\x0avec3(-0.578845,-0.768792,0.),\x0avec3(-0.772454,-0.090976,0.),\x0avec3(0.504440,0.372295,0.),\x0avec3(0.155736,0.065157,0.),\x0avec3(0.391522,0.849605,0.),\x0avec3(-0.620106,-0.328104,0.),\x0avec3(0.789239,-0.419965,0.),\x0avec3(-0.545396,0.538133,0.),\x0avec3(-0.178564,-0.596057,0.)\x0a);\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCSS(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArray\x20depthSampler,highp\x20sampler2DArrayShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff,int\x20searchTapCount,int\x20pcfTapCount,vec3[64]\x20poissonSamplers,vec2\x20lightSizeUVCorrection,float\x20depthCorrection,float\x20penumbraDarkness)\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=clamp(ZINCLIP,0.,GREATEST_LESS_THAN_ONE);\x0avec4\x20uvDepthLayer=vec4(uvDepth.x,uvDepth.y,layer,uvDepth.z);\x0afloat\x20blockerDepth=0.0;\x0afloat\x20sumBlockerDepth=0.0;\x0afloat\x20numBlocker=0.0;\x0afor\x20(int\x20i=0;\x20i<searchTapCount;\x20i\x20++)\x20{\x0ablockerDepth=texture2D(depthSampler,vec3(uvDepth.xy+(lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse*PoissonSamplers32[i].xy),layer)).r;\x0aif\x20(blockerDepth<depthMetric)\x20{\x0asumBlockerDepth+=blockerDepth;\x0anumBlocker++;\x0a}\x0a}\x0afloat\x20avgBlockerDepth=sumBlockerDepth/numBlocker;\x0afloat\x20AAOffset=shadowMapSizeInverse*10.;\x0afloat\x20penumbraRatio=((depthMetric-avgBlockerDepth)*depthCorrection+AAOffset);\x0avec4\x20filterRadius=vec4(penumbraRatio*lightSizeUV*lightSizeUVCorrection*shadowMapSizeInverse,0.,0.);\x0afloat\x20random=getRand(vPositionFromLight.xy);\x0afloat\x20rotationAngle=random*3.1415926;\x0avec2\x20rotationVector=vec2(cos(rotationAngle),sin(rotationAngle));\x0afloat\x20shadow=0.;\x0afor\x20(int\x20i=0;\x20i<pcfTapCount;\x20i++)\x20{\x0avec4\x20offset=vec4(poissonSamplers[i],0.);\x0aoffset=vec4(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.,0.);\x0ashadow+=texture2D(shadowSampler,uvDepthLayer+offset*filterRadius);\x0a}\x0ashadow/=float(pcfTapCount);\x0ashadow=mix(shadow,1.,min((depthMetric-avgBlockerDepth)*depthCorrection*penumbraDarkness,1.));\x0ashadow=mix(darkness,1.,shadow);\x0aif\x20(numBlocker<1.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCSS(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20depthSampler,highp\x20sampler2DShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff,int\x20searchTapCount,int\x20pcfTapCount,vec3[64]\x20poissonSamplers)\x0a{\x0aif\x20(depthMetric>1.0\x20||\x20depthMetric<0.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0avec3\x20clipSpace=vPositionFromLight.xyz/vPositionFromLight.w;\x0avec3\x20uvDepth=vec3(0.5*clipSpace.xyz+vec3(0.5));\x0auvDepth.z=ZINCLIP;\x0afloat\x20blockerDepth=0.0;\x0afloat\x20sumBlockerDepth=0.0;\x0afloat\x20numBlocker=0.0;\x0afor\x20(int\x20i=0;\x20i<searchTapCount;\x20i\x20++)\x20{\x0ablockerDepth=TEXTUREFUNC(depthSampler,uvDepth.xy+(lightSizeUV*shadowMapSizeInverse*PoissonSamplers32[i].xy),0.).r;\x0aif\x20(blockerDepth<depthMetric)\x20{\x0asumBlockerDepth+=blockerDepth;\x0anumBlocker++;\x0a}\x0a}\x0aif\x20(numBlocker<1.0)\x20{\x0areturn\x201.0;\x0a}\x0aelse\x0a{\x0afloat\x20avgBlockerDepth=sumBlockerDepth/numBlocker;\x0afloat\x20AAOffset=shadowMapSizeInverse*10.;\x0afloat\x20penumbraRatio=((depthMetric-avgBlockerDepth)+AAOffset);\x0afloat\x20filterRadius=penumbraRatio*lightSizeUV*shadowMapSizeInverse;\x0afloat\x20random=getRand(vPositionFromLight.xy);\x0afloat\x20rotationAngle=random*3.1415926;\x0avec2\x20rotationVector=vec2(cos(rotationAngle),sin(rotationAngle));\x0afloat\x20shadow=0.;\x0afor\x20(int\x20i=0;\x20i<pcfTapCount;\x20i++)\x20{\x0avec3\x20offset=poissonSamplers[i];\x0aoffset=vec3(offset.x*rotationVector.x-offset.y*rotationVector.y,offset.y*rotationVector.x+offset.x*rotationVector.y,0.);\x0ashadow+=TEXTUREFUNC(shadowSampler,uvDepth+offset*filterRadius,0.);\x0a}\x0ashadow/=float(pcfTapCount);\x0ashadow=mix(shadow,1.,depthMetric-avgBlockerDepth);\x0ashadow=mix(darkness,1.,shadow);\x0areturn\x20computeFallOff(shadow,clipSpace.xy,frustumEdgeFalloff);\x0a}\x0a}\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCSS16(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20depthSampler,highp\x20sampler2DShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0areturn\x20computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCSS32(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20depthSampler,highp\x20sampler2DShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0areturn\x20computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithPCSS64(vec4\x20vPositionFromLight,float\x20depthMetric,sampler2D\x20depthSampler,highp\x20sampler2DShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff)\x0a{\x0areturn\x20computeShadowWithPCSS(vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCSS16(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArray\x20depthSampler,highp\x20sampler2DArrayShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff,vec2\x20lightSizeUVCorrection,float\x20depthCorrection,float\x20penumbraDarkness)\x0a{\x0areturn\x20computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,16,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCSS32(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArray\x20depthSampler,highp\x20sampler2DArrayShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff,vec2\x20lightSizeUVCorrection,float\x20depthCorrection,float\x20penumbraDarkness)\x0a{\x0areturn\x20computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,16,32,PoissonSamplers32,lightSizeUVCorrection,depthCorrection,penumbraDarkness);\x0a}\x0a#define\x20inline\x0afloat\x20computeShadowWithCSMPCSS64(float\x20layer,vec4\x20vPositionFromLight,float\x20depthMetric,highp\x20sampler2DArray\x20depthSampler,highp\x20sampler2DArrayShadow\x20shadowSampler,float\x20shadowMapSizeInverse,float\x20lightSizeUV,float\x20darkness,float\x20frustumEdgeFalloff,vec2\x20lightSizeUVCorrection,float\x20depthCorrection,float\x20penumbraDarkness)\x0a{\x0areturn\x20computeShadowWithCSMPCSS(layer,vPositionFromLight,depthMetric,depthSampler,shadowSampler,shadowMapSizeInverse,lightSizeUV,darkness,frustumEdgeFalloff,32,64,PoissonSamplers64,lightSizeUVCorrection,depthCorrection,penumbraDarkness);\x0a}\x0a#endif\x0a#endif\x0a','COLOR_BUFFER_BIT','ARRAY_BUFFER','ETC2RGB8UnormSRGB','isCube','substitutionVars','TransformCoordinatesToRef','diffusionProfile','removeEventListener','i32d','setIntArray2','button','isPickable','textureBlocks','lineVertexShader','createSceneUniformBuffer','attribute\x20vec2\x20position;\x0avarying\x20vec3\x20direction;\x0auniform\x20vec3\x20up;\x0auniform\x20vec3\x20right;\x0auniform\x20vec3\x20front;\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0amat3\x20view=mat3(up,right,front);\x0adirection=view*vec3(position,1.0);\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','_IsComparisonSamplerByWebGPUSamplerType','activeParticleCount','Internals','#ifdef\x20WEBGL2\x0auniform\x20mat4\x20world;\x0auniform\x20float\x20visibility;\x0a#else\x0alayout(std140,column_major)\x20uniform;\x0auniform\x20Mesh\x0a{\x0amat4\x20world;\x0afloat\x20visibility;\x0a};\x0a#endif\x0a#define\x20WORLD_UBO\x0a','uniqueId','textureLod(','TEXTURETYPE_UNSIGNED_BYTE','copyBufferToBuffer','_sphericalPolynomial','IRIDESCENCE_TEXTURE','arrayBufferBlockMaxByteLength','updateRawTexture3D','pbrBlockReflectance','repeatableContentBlocks','_querySet','vertexShader','_ProcessIncludes','onError','sampler2DShadow','_pointerMoveStage','fluidRenderingParticleThicknessPixelShader','_addTextureBindingDescription','_pointerOverDisableMeshTesting','throw','isAttribute','\x0a#define\x20BILLBOARD\x0a','textureHalfFloatLinearFiltering','_currentTotalIndices','attribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#ifdef\x20INSTANCES\x0aattribute\x20vec4\x20world0;\x0aattribute\x20vec4\x20world1;\x0aattribute\x20vec4\x20world2;\x0aattribute\x20vec4\x20world3;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__shadowMapVertex>\x0a#ifdef\x20ALPHATEXTURE\x0avarying\x20vec2\x20vUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#endif\x0a#include<shadowMapVertexExtraDeclaration>\x0a#include<clipPlaneVertexDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalUpdated=normal;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0a#ifdef\x20NORMAL\x0amat3\x20normWorldSM=mat3(finalWorld);\x0a#if\x20defined(INSTANCES)\x20&&\x20defined(THIN_INSTANCES)\x0avec3\x20vNormalW=normalUpdated/vec3(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));\x0avNormalW=normalize(normWorldSM*vNormalW);\x0a#else\x0a#ifdef\x20NONUNIFORMSCALING\x0anormWorldSM=transposeMat3(inverseMat3(normWorldSM));\x0a#endif\x0avec3\x20vNormalW=normalize(normWorldSM*normalUpdated);\x0a#endif\x0a#endif\x0a#include<shadowMapVertexNormalBias>\x0agl_Position=viewProjection*worldPos;\x0a#include<shadowMapVertexMetric>\x0a#ifdef\x20ALPHATEXTURE\x0a#ifdef\x20UV1\x0avUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20UV2\x0avUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#include<clipPlaneVertex>\x0a}','ASTC6x6Unorm','cellIndex','readDataFromBuffer','_record','model','onBeforeCameraRenderObservable','_onVRDisplayPointerUnrestricted','unbindInstanceAttributes','kernelBlurPixelShader','setLayerAndFaceIndices','precision\x20highp\x20float','Output','gl_InstanceIndex','layout(std140,column_major)\x20uniform;\x0auniform\x20Scene\x20{\x0amat4\x20viewProjection;\x0a#ifdef\x20MULTIVIEW\x0amat4\x20viewProjectionR;\x0a#endif\x20\x0amat4\x20view;\x0amat4\x20projection;\x0avec4\x20vEyePosition;\x0a};\x0a','dynamicUniformBlocks','createGPUTextureForInternalTexture','_isMultiTouchGesture','getVRDisplays','faceId','_oldHardwareScaleFactor','colorBufferFloat','_vrSupported','useSRGBBuffers','maxTextureSize','comparisonFunction','#version\x20300\x20es','_pointerCaptures','submit','_viewMatrix','265252iAOvti','emitVertex','REFLECTIONMAP_PROJECTION','uniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vPrimaryColor;\x0a#ifdef\x20USEHIGHLIGHTANDSHADOWCOLORS\x0auniform\x20vec4\x20vPrimaryColorShadow;\x0a#endif\x0auniform\x20float\x20shadowLevel;\x0auniform\x20float\x20alpha;\x0a#ifdef\x20DIFFUSE\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20vec2\x20vReflectionInfos;\x0auniform\x20mat4\x20reflectionMatrix;\x0auniform\x20vec3\x20vReflectionMicrosurfaceInfos;\x0a#endif\x0a#if\x20defined(REFLECTIONFRESNEL)\x20||\x20defined(OPACITYFRESNEL)\x0auniform\x20vec3\x20vBackgroundCenter;\x0a#endif\x0a#ifdef\x20REFLECTIONFRESNEL\x0auniform\x20vec4\x20vReflectionControl;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_SPHERICAL)\x20||\x20defined(REFLECTIONMAP_PROJECTION)\x20||\x20defined(REFRACTION)\x0auniform\x20mat4\x20view;\x0a#endif\x0a','shadow','sampler2DArray','#if\x20NUM_BONE_INFLUENCERS>0\x0aattribute\x20matricesIndices\x20:\x20vec4<f32>;\x0aattribute\x20matricesWeights\x20:\x20vec4<f32>;\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0aattribute\x20matricesIndicesExtra\x20:\x20vec4<f32>;\x0aattribute\x20matricesWeightsExtra\x20:\x20vec4<f32>;\x0a#endif\x0a#ifndef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a#ifdef\x20BONETEXTURE\x0avar\x20boneSampler\x20:\x20texture_2d<f32>;\x0auniform\x20boneTextureWidth\x20:\x20f32;\x0a#else\x0auniform\x20mBones\x20:\x20array<mat4x4,BonesPerMesh>;\x0a#ifdef\x20BONES_VELOCITY_ENABLED\x0auniform\x20mPreviousBones\x20:\x20array<mat4x4,BonesPerMesh>;\x0a#endif\x0a#endif\x0a#ifdef\x20BONETEXTURE\x0afn\x20readMatrixFromRawSampler(smp\x20:\x20texture_2d<f32>,index\x20:\x20f32)->mat4x4<f32>\x0a{\x0alet\x20offset=i32(index)\x20*4;\x20\x0alet\x20m0=textureLoad(smp,vec2<i32>(offset+0,0),0);\x0alet\x20m1=textureLoad(smp,vec2<i32>(offset+1,0),0);\x0alet\x20m2=textureLoad(smp,vec2<i32>(offset+2,0),0);\x0alet\x20m3=textureLoad(smp,vec2<i32>(offset+3,0),0);\x0areturn\x20mat4x4<f32>(m0,m1,m2,m3);\x0a}\x0a#endif\x0a#endif\x0a#endif\x0a','_cull','#ifdef\x20MORPHTARGETS\x0a#ifndef\x20MORPHTARGETS_TEXTURE\x0aattribute\x20vec3\x20position{X};\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0aattribute\x20vec3\x20normal{X};\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0aattribute\x20vec3\x20tangent{X};\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0aattribute\x20vec2\x20uv_{X};\x0a#endif\x0a#endif\x0a#endif\x0a','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#ifdef\x20EMISSIVE\x0auniform\x20sampler2D\x20textureSampler2;\x0a#endif\x0auniform\x20float\x20offset;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0avec4\x20baseColor=texture2D(textureSampler,vUV);\x0a#ifdef\x20EMISSIVE\x0abaseColor+=texture2D(textureSampler2,vUV);\x0abaseColor*=offset;\x0a#else\x0abaseColor.a=abs(offset-baseColor.a);\x0a#ifdef\x20STROKE\x0afloat\x20alpha=smoothstep(.0,.1,baseColor.a);\x0abaseColor.a=alpha;\x0abaseColor.rgb=baseColor.rgb*alpha;\x0a#endif\x0a#endif\x0a#if\x20LDR\x0abaseColor=clamp(baseColor,0.,1.0);\x0a#endif\x0agl_FragColor=baseColor;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','#if\x20SM_SOFTTRANSPARENTSHADOW==1\x0aif\x20((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM*alpha)\x20discard;\x0a#endif\x0a','_localPosition','pbrBlockClearcoat','_transformMatrixR','_projectOnUnIndexedTrianglesToRef','_scene','diffusionD','_OnGenerateOnlyFragmentCodeChanged','autoConfigure','samplerFragmentDeclaration','updateMatrix2x2','GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA','pickedMesh','hasFloatTextures','_onKeyUp','registerInput','setUInt3','stopAnimation','_isUbo','Generate\x20only\x20fragment\x20code','attribute\x20vec4\x20position;\x0aattribute\x20vec2\x20options;\x0aattribute\x20vec2\x20offsets;\x0aattribute\x20vec2\x20inverts;\x0aattribute\x20vec4\x20cellInfo;\x0aattribute\x20vec4\x20color;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec4\x20vColor;\x0a#include<fogVertexDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec3\x20viewPos=(view*vec4(position.xyz,1.0)).xyz;\x20\x0avec2\x20cornerPos;\x0afloat\x20angle=position.w;\x0avec2\x20size=vec2(options.x,options.y);\x0avec2\x20offset=offsets.xy;\x0acornerPos=vec2(offset.x-0.5,offset.y\x20-0.5)*size;\x0avec3\x20rotatedCorner;\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.z=0.;\x0aviewPos+=rotatedCorner;\x0agl_Position=projection*vec4(viewPos,1.0);\x20\x0avColor=color;\x0avec2\x20uvOffset=vec2(abs(offset.x-inverts.x),abs(1.0-offset.y-inverts.y));\x0avec2\x20uvPlace=cellInfo.xy;\x0avec2\x20uvSize=cellInfo.zw;\x0avUV.x=uvPlace.x+uvSize.x*uvOffset.x;\x0avUV.y=uvPlace.y+uvSize.y*uvOffset.y;\x0a#ifdef\x20FOG\x0avFogDistance=viewPos;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','_initActionManager','attribute\x20vec2\x20position;\x0auniform\x20vec2\x20scale;\x0avarying\x20vec2\x20vUV;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avUV=(position*madd+madd)*scale;\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','ASTC8x6Unorm','createRenderPipeline','vec3\x20finalDiffuse=diffuseBase;\x0afinalDiffuse*=surfaceAlbedo.rgb;\x0afinalDiffuse=max(finalDiffuse,0.0);\x0afinalDiffuse*=vLightingIntensity.x;\x0avec3\x20finalAmbient=vAmbientColor;\x0afinalAmbient*=surfaceAlbedo.rgb;\x0avec3\x20finalEmissive=vEmissiveColor;\x0a#ifdef\x20EMISSIVE\x0avec3\x20emissiveColorTex=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb;\x0a#ifdef\x20GAMMAEMISSIVE\x0afinalEmissive*=toLinearSpace(emissiveColorTex.rgb);\x0a#else\x0afinalEmissive*=emissiveColorTex.rgb;\x0a#endif\x0afinalEmissive*=\x20vEmissiveInfos.y;\x0a#endif\x0afinalEmissive*=vLightingIntensity.y;\x0a#ifdef\x20AMBIENT\x0avec3\x20ambientOcclusionForDirectDiffuse=mix(vec3(1.),aoOut.ambientOcclusionColor,vAmbientInfos.w);\x0a#else\x0avec3\x20ambientOcclusionForDirectDiffuse=aoOut.ambientOcclusionColor;\x0a#endif\x0afinalAmbient*=aoOut.ambientOcclusionColor;\x0afinalDiffuse*=ambientOcclusionForDirectDiffuse;\x0a','charCodeAt','_getProjectedParticleConstant','MATERIAL_TriangleStripDrawMode','HALF_FLOAT_OES','_getFreeDefineName','particles','Color3','_generateDepthBuffer','hasOwnProperty','f32d','_useMultiviewToSingleView','World','shadersRepository','etc1','getEffect','vScale','_isPointerSwiping','FluidRenderingDepthTextureCopyRTTDepthStencil','getAspectRatio','_cacheMatrix','_DefaultMaximumThickness','offsets','RemoveTagsFrom','stencilGlobal','RG16Uint','pointerY','ssaoPixelShader','end','Unknown','_textureArrayProcessing','_cameraObserverCount','assign','lastIndex','//Attributes\x0d\x0a','opStencilFail','CLIPPLANE5','offlineProvider','addUniform','vrdisplaydisconnect','TEXTURE_CUBE_MAP_NEGATIVE_Z','precision\x20highp\x20float;\x0auniform\x20sampler2D\x20uFrontColor;\x0auniform\x20sampler2D\x20uBackColor;\x0avoid\x20main()\x20{\x0aivec2\x20fragCoord=ivec2(gl_FragCoord.xy);\x0avec4\x20frontColor=texelFetch(uFrontColor,fragCoord,0);\x0avec4\x20backColor=texelFetch(uBackColor,fragCoord,0);\x0afloat\x20alphaMultiplier=1.0-frontColor.a;\x0aglFragColor=vec4(\x0afrontColor.rgb+alphaMultiplier*backColor.rgb,\x0afrontColor.a+backColor.a\x0a);\x0a}','#ifdef\x20LOGARITHMICDEPTH\x0avFragmentDepth=1.0+gl_Position.w;\x0agl_Position.z=log2(max(0.000001,vFragmentDepth))*logarithmicDepthConstant;\x0a#endif\x0a','contains','previousMatrix','textBuffer','_emitFunction','_onVrDisplayDisconnect','_xSize','lightVxFragmentDeclaration','_SimplifiedKnownBindings','GL_ALPHA_EQUATION_MIN','#version\x20300\x20es\x0a#define\x20PI\x203.14159\x0auniform\x20float\x20currentCount;\x0auniform\x20float\x20timeDelta;\x0auniform\x20float\x20stopFactor;\x0a#ifndef\x20LOCAL\x0auniform\x20mat4\x20emitterWM;\x0a#endif\x0auniform\x20vec2\x20lifeTime;\x0auniform\x20vec2\x20emitPower;\x0auniform\x20vec2\x20sizeRange;\x0auniform\x20vec4\x20scaleRange;\x0a#ifndef\x20COLORGRADIENTS\x0auniform\x20vec4\x20color1;\x0auniform\x20vec4\x20color2;\x0a#endif\x0auniform\x20vec3\x20gravity;\x0auniform\x20sampler2D\x20randomSampler;\x0auniform\x20sampler2D\x20randomSampler2;\x0auniform\x20vec4\x20angleRange;\x0a#ifdef\x20BOXEMITTER\x0auniform\x20vec3\x20direction1;\x0auniform\x20vec3\x20direction2;\x0auniform\x20vec3\x20minEmitBox;\x0auniform\x20vec3\x20maxEmitBox;\x0a#endif\x0a#ifdef\x20POINTEMITTER\x0auniform\x20vec3\x20direction1;\x0auniform\x20vec3\x20direction2;\x0a#endif\x0a#ifdef\x20HEMISPHERICEMITTER\x0auniform\x20float\x20radius;\x0auniform\x20float\x20radiusRange;\x0auniform\x20float\x20directionRandomizer;\x0a#endif\x0a#ifdef\x20SPHEREEMITTER\x0auniform\x20float\x20radius;\x0auniform\x20float\x20radiusRange;\x0a#ifdef\x20DIRECTEDSPHEREEMITTER\x0auniform\x20vec3\x20direction1;\x0auniform\x20vec3\x20direction2;\x0a#else\x0auniform\x20float\x20directionRandomizer;\x0a#endif\x0a#endif\x0a#ifdef\x20CYLINDEREMITTER\x0auniform\x20float\x20radius;\x0auniform\x20float\x20height;\x0auniform\x20float\x20radiusRange;\x0a#ifdef\x20DIRECTEDCYLINDEREMITTER\x0auniform\x20vec3\x20direction1;\x0auniform\x20vec3\x20direction2;\x0a#else\x0auniform\x20float\x20directionRandomizer;\x0a#endif\x0a#endif\x0a#ifdef\x20CONEEMITTER\x0auniform\x20vec2\x20radius;\x0auniform\x20float\x20coneAngle;\x0auniform\x20vec2\x20height;\x0auniform\x20float\x20directionRandomizer;\x0a#endif\x0ain\x20vec3\x20position;\x0a#ifdef\x20CUSTOMEMITTER\x0ain\x20vec3\x20initialPosition;\x0a#endif\x0ain\x20float\x20age;\x0ain\x20float\x20life;\x0ain\x20vec4\x20seed;\x0ain\x20vec3\x20size;\x0a#ifndef\x20COLORGRADIENTS\x0ain\x20vec4\x20color;\x0a#endif\x0ain\x20vec3\x20direction;\x0a#ifndef\x20BILLBOARD\x0ain\x20vec3\x20initialDirection;\x0a#endif\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0ain\x20float\x20angle;\x0a#else\x0ain\x20vec2\x20angle;\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0ain\x20float\x20cellIndex;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0ain\x20float\x20cellStartOffset;\x0a#endif\x0a#endif\x0a#ifdef\x20NOISE\x0ain\x20vec3\x20noiseCoordinates1;\x0ain\x20vec3\x20noiseCoordinates2;\x0a#endif\x0aout\x20vec3\x20outPosition;\x0a#ifdef\x20CUSTOMEMITTER\x0aout\x20vec3\x20outInitialPosition;\x0a#endif\x0aout\x20float\x20outAge;\x0aout\x20float\x20outLife;\x0aout\x20vec4\x20outSeed;\x0aout\x20vec3\x20outSize;\x0a#ifndef\x20COLORGRADIENTS\x0aout\x20vec4\x20outColor;\x0a#endif\x0aout\x20vec3\x20outDirection;\x0a#ifndef\x20BILLBOARD\x0aout\x20vec3\x20outInitialDirection;\x0a#endif\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0aout\x20float\x20outAngle;\x0a#else\x0aout\x20vec2\x20outAngle;\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0aout\x20float\x20outCellIndex;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0aout\x20float\x20outCellStartOffset;\x0a#endif\x0a#endif\x0a#ifdef\x20NOISE\x0aout\x20vec3\x20outNoiseCoordinates1;\x0aout\x20vec3\x20outNoiseCoordinates2;\x0a#endif\x0a#ifdef\x20SIZEGRADIENTS\x0auniform\x20sampler2D\x20sizeGradientSampler;\x0a#endif\x20\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0auniform\x20sampler2D\x20angularSpeedGradientSampler;\x0a#endif\x20\x0a#ifdef\x20VELOCITYGRADIENTS\x0auniform\x20sampler2D\x20velocityGradientSampler;\x0a#endif\x0a#ifdef\x20LIMITVELOCITYGRADIENTS\x0auniform\x20sampler2D\x20limitVelocityGradientSampler;\x0auniform\x20float\x20limitVelocityDamping;\x0a#endif\x0a#ifdef\x20DRAGGRADIENTS\x0auniform\x20sampler2D\x20dragGradientSampler;\x0a#endif\x0a#ifdef\x20NOISE\x0auniform\x20vec3\x20noiseStrength;\x0auniform\x20sampler2D\x20noiseSampler;\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0auniform\x20vec4\x20cellInfos;\x0a#endif\x0avec3\x20getRandomVec3(float\x20offset)\x20{\x0areturn\x20texture(randomSampler2,vec2(float(gl_VertexID)*offset/currentCount,0)).rgb;\x0a}\x0avec4\x20getRandomVec4(float\x20offset)\x20{\x0areturn\x20texture(randomSampler,vec2(float(gl_VertexID)*offset/currentCount,0));\x0a}\x0avoid\x20main()\x20{\x0afloat\x20newAge=age+timeDelta;\x20\x0aif\x20(newAge>=life\x20&&\x20stopFactor\x20!=\x200.)\x20{\x0avec3\x20newPosition;\x0avec3\x20newDirection;\x0avec4\x20randoms=getRandomVec4(seed.x);\x0aoutLife=lifeTime.x+(lifeTime.y-lifeTime.x)*randoms.r;\x0aoutAge=newAge-life;\x0aoutSeed=seed;\x0a#ifdef\x20SIZEGRADIENTS\x20\x0aoutSize.x=texture(sizeGradientSampler,vec2(0,0)).r;\x0a#else\x0aoutSize.x=sizeRange.x+(sizeRange.y-sizeRange.x)*randoms.g;\x0a#endif\x0aoutSize.y=scaleRange.x+(scaleRange.y-scaleRange.x)*randoms.b;\x0aoutSize.z=scaleRange.z+(scaleRange.w-scaleRange.z)*randoms.a;\x20\x0a#ifndef\x20COLORGRADIENTS\x0aoutColor=color1+(color2-color1)*randoms.b;\x0a#endif\x0a#ifndef\x20ANGULARSPEEDGRADIENTS\x20\x0aoutAngle.y=angleRange.x+(angleRange.y-angleRange.x)*randoms.a;\x0aoutAngle.x=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\x0a#else\x0aoutAngle=angleRange.z+(angleRange.w-angleRange.z)*randoms.r;\x0a#endif\x20\x0a#ifdef\x20POINTEMITTER\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0anewPosition=vec3(0,0,0);\x0anewDirection=direction1+(direction2-direction1)*randoms3;\x0a#elif\x20defined(BOXEMITTER)\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0anewPosition=minEmitBox+(maxEmitBox-minEmitBox)*randoms2;\x0anewDirection=direction1+(direction2-direction1)*randoms3;\x20\x0a#elif\x20defined(HEMISPHERICEMITTER)\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0afloat\x20phi=2.0*PI*randoms2.x;\x0afloat\x20theta=acos(2.0*randoms2.y-1.0);\x0afloat\x20randX=cos(phi)*sin(theta);\x0afloat\x20randY=cos(theta);\x0afloat\x20randZ=sin(phi)*sin(theta);\x0anewPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,abs(randY),randZ);\x0anewDirection=newPosition+directionRandomizer*randoms3;\x20\x0a#elif\x20defined(SPHEREEMITTER)\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0afloat\x20phi=2.0*PI*randoms2.x;\x0afloat\x20theta=acos(2.0*randoms2.y-1.0);\x0afloat\x20randX=cos(phi)*sin(theta);\x0afloat\x20randY=cos(theta);\x0afloat\x20randZ=sin(phi)*sin(theta);\x0anewPosition=(radius-(radius*radiusRange*randoms2.z))*vec3(randX,randY,randZ);\x0a#ifdef\x20DIRECTEDSPHEREEMITTER\x0anewDirection=normalize(direction1+(direction2-direction1)*randoms3);\x0a#else\x0anewDirection=normalize(newPosition+directionRandomizer*randoms3);\x0a#endif\x0a#elif\x20defined(CYLINDEREMITTER)\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0afloat\x20yPos=(randoms2.x-0.5)*height;\x0afloat\x20angle=randoms2.y*PI*2.;\x0afloat\x20inverseRadiusRangeSquared=((1.-radiusRange)*(1.-radiusRange));\x0afloat\x20positionRadius=radius*sqrt(inverseRadiusRangeSquared+(randoms2.z*(1.-inverseRadiusRangeSquared)));\x0afloat\x20xPos=positionRadius*cos(angle);\x0afloat\x20zPos=positionRadius*sin(angle);\x0anewPosition=vec3(xPos,yPos,zPos);\x0a#ifdef\x20DIRECTEDCYLINDEREMITTER\x0anewDirection=direction1+(direction2-direction1)*randoms3;\x0a#else\x0aangle=angle+((randoms3.x-0.5)*PI)*directionRandomizer;\x0anewDirection=vec3(cos(angle),(randoms3.y-0.5)*directionRandomizer,sin(angle));\x0anewDirection=normalize(newDirection);\x0a#endif\x0a#elif\x20defined(CONEEMITTER)\x0avec3\x20randoms2=getRandomVec3(seed.y);\x0afloat\x20s=2.0*PI*randoms2.x;\x0a#ifdef\x20CONEEMITTERSPAWNPOINT\x0afloat\x20h=0.0001;\x0a#else\x0afloat\x20h=randoms2.y*height.y;\x0ah=1.-h*h;\x20\x0a#endif\x0afloat\x20lRadius=radius.x-radius.x*randoms2.z*radius.y;\x0alRadius=lRadius*h;\x0afloat\x20randX=lRadius*sin(s);\x0afloat\x20randZ=lRadius*cos(s);\x0afloat\x20randY=h\x20*height.x;\x0anewPosition=vec3(randX,randY,randZ);\x20\x0aif\x20(abs(cos(coneAngle))==1.0)\x20{\x0anewDirection=vec3(0.,1.0,0.);\x0a}\x20else\x20{\x0avec3\x20randoms3=getRandomVec3(seed.z);\x0anewDirection=normalize(newPosition+directionRandomizer*randoms3);\x20\x0a}\x0a#elif\x20defined(CUSTOMEMITTER)\x0anewPosition=initialPosition;\x0aoutInitialPosition=initialPosition;\x0a#else\x20\x0anewPosition=vec3(0.,0.,0.);\x0anewDirection=2.0*(getRandomVec3(seed.w)-vec3(0.5,0.5,0.5));\x0a#endif\x0afloat\x20power=emitPower.x+(emitPower.y-emitPower.x)*randoms.a;\x0a#ifdef\x20LOCAL\x0aoutPosition=newPosition;\x0a#else\x0aoutPosition=(emitterWM*vec4(newPosition,1.)).xyz;\x0a#endif\x0a#ifdef\x20CUSTOMEMITTER\x0aoutDirection=direction;\x0a#ifndef\x20BILLBOARD\x20\x0aoutInitialDirection=direction;\x0a#endif\x0a#else\x0a#ifdef\x20LOCAL\x0avec3\x20initial=newDirection;\x0a#else\x20\x0avec3\x20initial=(emitterWM*vec4(newDirection,0.)).xyz;\x0a#endif\x0aoutDirection=initial*power;\x0a#ifndef\x20BILLBOARD\x20\x0aoutInitialDirection=initial;\x0a#endif\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x20\x0aoutCellIndex=cellInfos.x;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0aoutCellStartOffset=randoms.a*outLife;\x0a#endif\x20\x0a#endif\x0a#ifdef\x20NOISE\x0aoutNoiseCoordinates1=noiseCoordinates1;\x0aoutNoiseCoordinates2=noiseCoordinates2;\x0a#endif\x0a}\x20else\x20{\x0afloat\x20directionScale=timeDelta;\x0aoutAge=newAge;\x0afloat\x20ageGradient=newAge/life;\x0a#ifdef\x20VELOCITYGRADIENTS\x0adirectionScale*=texture(velocityGradientSampler,vec2(ageGradient,0)).r;\x0a#endif\x0a#ifdef\x20DRAGGRADIENTS\x0adirectionScale*=1.0-texture(dragGradientSampler,vec2(ageGradient,0)).r;\x0a#endif\x0a#if\x20defined(CUSTOMEMITTER)\x0aoutPosition=position+(direction-position)*ageGradient;\x20\x0aoutInitialPosition=initialPosition;\x0a#else\x0aoutPosition=position+direction*directionScale;\x0a#endif\x0aoutLife=life;\x0aoutSeed=seed;\x0a#ifndef\x20COLORGRADIENTS\x20\x0aoutColor=color;\x0a#endif\x0a#ifdef\x20SIZEGRADIENTS\x0aoutSize.x=texture(sizeGradientSampler,vec2(ageGradient,0)).r;\x0aoutSize.yz=size.yz;\x0a#else\x0aoutSize=size;\x0a#endif\x20\x0a#ifndef\x20BILLBOARD\x20\x0aoutInitialDirection=initialDirection;\x0a#endif\x0a#ifdef\x20CUSTOMEMITTER\x0aoutDirection=direction;\x0a#else\x0avec3\x20updatedDirection=direction+gravity*timeDelta;\x0a#ifdef\x20LIMITVELOCITYGRADIENTS\x0afloat\x20limitVelocity=texture(limitVelocityGradientSampler,vec2(ageGradient,0)).r;\x0afloat\x20currentVelocity=length(updatedDirection);\x0aif\x20(currentVelocity>limitVelocity)\x20{\x0aupdatedDirection=updatedDirection*limitVelocityDamping;\x0a}\x0a#endif\x0aoutDirection=updatedDirection;\x0a#ifdef\x20NOISE\x0afloat\x20fetchedR=texture(noiseSampler,vec2(noiseCoordinates1.x,noiseCoordinates1.y)*vec2(0.5)+vec2(0.5)).r;\x0afloat\x20fetchedG=texture(noiseSampler,vec2(noiseCoordinates1.z,noiseCoordinates2.x)*vec2(0.5)+vec2(0.5)).r;\x0afloat\x20fetchedB=texture(noiseSampler,vec2(noiseCoordinates2.y,noiseCoordinates2.z)*vec2(0.5)+vec2(0.5)).r;\x0avec3\x20force=vec3(2.*fetchedR-1.,2.*fetchedG-1.,2.*fetchedB-1.)*noiseStrength;\x0aoutDirection=outDirection+force*timeDelta;\x0aoutNoiseCoordinates1=noiseCoordinates1;\x0aoutNoiseCoordinates2=noiseCoordinates2;\x0a#endif\x20\x0a#endif\x20\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0afloat\x20angularSpeed=texture(angularSpeedGradientSampler,vec2(ageGradient,0)).r;\x0aoutAngle=angle+angularSpeed*timeDelta;\x0a#else\x0aoutAngle=vec2(angle.x+angle.y*timeDelta,angle.y);\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x20\x0afloat\x20offsetAge=outAge;\x0afloat\x20dist=cellInfos.y-cellInfos.x;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0aoutCellStartOffset=cellStartOffset;\x0aoffsetAge+=cellStartOffset;\x0a#else\x0afloat\x20cellStartOffset=0.;\x0a#endif\x20\x0afloat\x20ratio=0.;\x0aif\x20(cellInfos.w==1.0)\x20{\x0aratio=clamp(mod(cellStartOffset+cellInfos.z*offsetAge,life)/life,0.,1.0);\x0a}\x0aelse\x20{\x0aratio=clamp(cellStartOffset+cellInfos.z*offsetAge/life,0.,1.0);\x0a}\x0aoutCellIndex=float(int(cellInfos.x+ratio*dist));\x0a#endif\x0a}\x0a}','fogEnabled','vClipPlane2','options','standardPixelShader','_reflectionCoordsName','_drawWrapperBase','RG16Sint','_onAfterUnbindFrameBufferObservable','vrdisplayconnect','loopAnimation','removePendingData','updateDynamicVertexBuffer','_vertexSourceCode','defaultCursor','layerIndex','createComputeContext','itemLength','writeTimestamp','AddStore','split','hasMoreFallbacks','call','shaderProcessingContext','TEXTUREFORMAT_LUMINANCE\x20format\x20not\x20supported\x20in\x20WebGPU','dataStoreArrayBuffer','worldPosition','LINEAR','_OperatorPriority','_PreparePreProcessors','refreshBoundingInfo','lightFragmentDeclaration','getIndex','_releaseBuffer','meshCount','setTexture','_areLightsDisposed','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20int\x20maxFilterSize;\x0auniform\x20vec2\x20blurDir;\x0auniform\x20float\x20projectedParticleConstant;\x0auniform\x20float\x20depthThreshold;\x0avarying\x20vec2\x20vUV;\x0avoid\x20main(void)\x20{\x0afloat\x20depth=textureLod(textureSampler,vUV,0.).x;\x0aif\x20(depth>=1e6\x20||\x20depth<=0.)\x20{\x0aglFragColor=vec4(vec3(depth),1.);\x0areturn;\x0a}\x0aint\x20filterSize=min(maxFilterSize,int(ceil(projectedParticleConstant/depth)));\x0afloat\x20sigma=float(filterSize)/3.0;\x0afloat\x20two_sigma2=2.0*sigma*sigma;\x0afloat\x20sigmaDepth=depthThreshold/3.0;\x0afloat\x20two_sigmaDepth2=2.0*sigmaDepth*sigmaDepth;\x0afloat\x20sum=0.;\x0afloat\x20wsum=0.;\x0afloat\x20sumVel=0.;\x0afor\x20(int\x20x=-filterSize;\x20x<=filterSize;\x20++x)\x20{\x0avec2\x20coords=vec2(x);\x0avec2\x20sampleDepthVel=textureLod(textureSampler,vUV+coords*blurDir,0.).rg;\x0afloat\x20r=dot(coords,coords);\x0afloat\x20w=exp(-r/two_sigma2);\x0afloat\x20rDepth=sampleDepthVel.r-depth;\x0afloat\x20wd=exp(-rDepth*rDepth/two_sigmaDepth2);\x0asum+=sampleDepthVel.r*w*wd;\x0asumVel+=sampleDepthVel.g*w*wd;\x0awsum+=w*wd;\x0a}\x0aglFragColor=vec4(sum/wsum,sumVel/wsum,0.,1.);\x0a}\x0a','convertSpirV2WGSL','uniform\x20mat4\x20viewProjection;\x0auniform\x20mat4\x20view;','_addBufferBindingDescription','search','setFloatArray2','Float','generateMipmap','copyWithInvertY','ASTC5x5Unorm','onPrePointerObservable','includesShadersStore','BC7RGBAUnormSRGB','_blurTextureSizeY','updateId','pbrFragmentSamplersDeclaration','renderWidth','##INJECTCODE##\x0a','generateDepthTexture','repeatKey','imageProcessingFunctions','\x0a\x20\x20\x20\x20@group(0)\x20@binding(0)\x20var\x20videoSampler:\x20sampler;\x0a\x20\x20\x20\x20@group(0)\x20@binding(1)\x20var\x20videoTexture:\x20texture_external;\x0a\x0a\x20\x20\x20\x20@fragment\x0a\x20\x20\x20\x20fn\x20main(\x0a\x20\x20\x20\x20\x20\x20\x20\x20@location(0)\x20fragUV:\x20vec2<f32>\x0a\x20\x20\x20\x20)\x20->\x20@location(0)\x20vec4<f32>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20textureSampleBaseClampToEdge(videoTexture,\x20videoSampler,\x20vec2<f32>(fragUV.x,\x201.0\x20-\x20fragUV.y));\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','bindIndexBuffer','vrMultiviewToSingleviewPixelShader',';\x0d\x0a','ELEMENT_ARRAY_BUFFER','material','7804280anoPBT','setMRTAttachments','_alphaState','varyingFragmentKeywordName','TEXTURE_NEAREST_LINEAR_MIPLINEAR','splice','BC2RGBAUnormSRGB','copyTextureToTexturePixelShader','BC6HRGBFloat','reset','fragmentOutputs.fragDepth','_cacheRenderPipeline','_mask','copy\x20video\x20to\x20texture\x20-\x20invertY=','\x0a\x20\x20\x20\x20#extension\x20GL_EXT_samplerless_texture_functions\x20:\x20enable\x0a\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x200)\x20uniform\x20texture2D\x20img;\x0a\x0a\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20layout(location\x20=\x200)\x20in\x20flat\x20ivec2\x20vTextureSize;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20vec4\x20outColor;\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20texelFetch(img,\x20ivec2(gl_FragCoord.x,\x20vTextureSize.y\x20-\x20gl_FragCoord.y),\x200);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20texelFetch(img,\x20ivec2(gl_FragCoord.xy),\x200);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20#ifdef\x20PREMULTIPLYALPHA\x0a\x20\x20\x20\x20\x20\x20\x20\x20color.rgb\x20*=\x20color.a;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20=\x20color;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','CLAMP_ADDRESSMODE','LastCreatedScene','_defineExplicitName','Lerp','bayerDitherFunctions','MAINUV2','document','destroy','onActivateObservable','-astc.ktx','MAINUV6','gpuUpdateParticlesComputeShader','isReusable','premultiplyAlpha','isDirty','disableAutoAttach','FALLOFF_GLTF','_2DSamplerName','false','setAll','shouldUseHighPrecisionShader','irradianceSampler','TEXTURE_SPHERICAL_MODE','TEXTUREFORMAT_DEPTH24','ALPHA_EQUATION_MIN','_getVRDisplaysAsync','precision\x20highp\x20float;\x0a#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0auniform\x20sampler2D\x20diffuseSampler;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec4\x20vColor;\x0a#include<clipPlaneFragmentDeclaration2>\x20\x0a#include<imageProcessingDeclaration>\x0a#include<logDepthDeclaration>\x0a#include<helperFunctions>\x0a#include<imageProcessingFunctions>\x0avoid\x20main()\x20{\x0a#include<clipPlaneFragment>\x20\x0avec4\x20textureColor=texture2D(diffuseSampler,vUV);\x0agl_FragColor=textureColor*vColor;\x0a#ifdef\x20BLENDMULTIPLYMODE\x0afloat\x20alpha=vColor.a*textureColor.a;\x0agl_FragColor.rgb=gl_FragColor.rgb*alpha+vec3(1.0)*(1.0-alpha);\x0a#endif\x20\x0a#include<logDepthFragment>\x0a#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0agl_FragColor.rgb=toLinearSpace(gl_FragColor.rgb);\x0a#else\x0a#ifdef\x20IMAGEPROCESSING\x0agl_FragColor.rgb=toLinearSpace(gl_FragColor.rgb);\x0agl_FragColor=applyImageProcessing(gl_FragColor);\x0a#endif\x0a#endif\x0a}\x0a','isPointerCaptured','pbrBlockImageProcessing','depthCullingState','checks','projectToRef','cellWidth','_opDepthFail','functions','@group(','_isDirty','toIndex','MapRead','TEXTUREFORMAT_R','renderbufferStorageMultisample','mainUVVaryingDeclaration','useStencilGlobalOnly','_cascadeLoadImgs','InvertYPremultiplyAlphaWithOfst','PrePass\x20and\x20subsurface\x20configuration\x20needs\x20to\x20be\x20enabled\x20for\x20subsurface\x20scattering.','subarray','shadowOnlyPixelShader','parse','#include<sceneUboDeclaration>\x0a','useReverseDepthBuffer','_spriteBuffer','getOwnPropertyDescriptor','STATIC_DRAW','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20float\x20alpha;\x0auniform\x20vec3\x20shadowColor;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0afloat\x20glossiness=0.;\x0a#include<lightFragment>[0..1]\x0avec4\x20color=vec4(shadowColor,(1.0-clamp(shadow,0.,1.))*alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','Texture,\x20','scene','updateStorageBuffer','pbrBRDFFunctions','skyVertexShader','RenderTarget','\x20from\x20block\x20','ALPHA_LAYER_ACCUMULATE','vec4\x20finalColor=vec4(\x0a#ifndef\x20UNLIT\x0a#ifdef\x20REFLECTION\x0afinalIrradiance\x20+\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0afinalSpecularScaled\x20+\x0a#endif\x0a#ifdef\x20SHEEN\x0afinalSheenScaled\x20+\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0afinalClearCoatScaled\x20+\x0a#endif\x0a#ifdef\x20REFLECTION\x0afinalRadianceScaled\x20+\x0a#if\x20defined(SHEEN)\x20&&\x20defined(ENVIRONMENTBRDF)\x0asheenOut.finalSheenRadianceScaled\x20+\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0aclearcoatOut.finalClearCoatRadianceScaled\x20+\x0a#endif\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0asubSurfaceOut.finalRefraction\x20+\x0a#endif\x0a#endif\x0afinalAmbient\x20+\x0afinalDiffuse,\x0aalpha);\x0a#ifdef\x20LIGHTMAP\x0a#ifndef\x20LIGHTMAPEXCLUDED\x0a#ifdef\x20USELIGHTMAPASSHADOWMAP\x0afinalColor.rgb*=lightmapColor.rgb;\x0a#else\x0afinalColor.rgb+=lightmapColor.rgb;\x0a#endif\x0a#endif\x0a#endif\x0afinalColor.rgb+=finalEmissive;\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_FOG\x0afinalColor=max(finalColor,0.0);\x0a','NodeMaterial\x20does\x20not\x20have\x20a\x20fragment\x20output.\x20You\x20need\x20to\x20at\x20least\x20add\x20a\x20block\x20that\x20generates\x20a\x20glFragColor\x20value.\x0d\x0a','_textureFormatInUse','_movePointerInfo','setSubData','#if\x20defined(WEBGL2)\x20||\x20defines(WEBGPU)\x0d\x0aprecision\x20highp\x20sampler2DArray;\x0d\x0a#endif\x0d\x0a','supportSpriteInstancing','clipPlane6','bloomMergePixelShader','applyImpulse','error','_loopAnimation','ALPHA_ALPHATOCOLOR','_depthStencilTexture','struct\x20clearcoatOutParams\x0a{\x0avec3\x20specularEnvironmentR0;\x0afloat\x20conservationFactor;\x0avec3\x20clearCoatNormalW;\x0avec2\x20clearCoatAARoughnessFactors;\x0afloat\x20clearCoatIntensity;\x0afloat\x20clearCoatRoughness;\x0a#ifdef\x20REFLECTION\x0avec3\x20finalClearCoatRadianceScaled;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT\x0avec3\x20absorption;\x0afloat\x20clearCoatNdotVRefract;\x0avec3\x20clearCoatColor;\x0afloat\x20clearCoatThickness;\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0avec3\x20energyConservationFactorClearCoat;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0amat3\x20TBNClearCoat;\x0avec2\x20clearCoatMapData;\x0avec4\x20clearCoatTintMapData;\x0avec4\x20environmentClearCoatRadiance;\x0afloat\x20clearCoatNdotV;\x0avec3\x20clearCoatEnvironmentReflectance;\x0a#endif\x0a};\x0a#ifdef\x20CLEARCOAT\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20clearcoatBlock(\x0ain\x20vec3\x20vPositionW,\x0ain\x20vec3\x20geometricNormalW,\x0ain\x20vec3\x20viewDirectionW,\x0ain\x20vec2\x20vClearCoatParams,\x0a#if\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x20&&\x20!defined(CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0ain\x20vec4\x20clearCoatMapRoughnessData,\x0a#endif\x0ain\x20vec3\x20specularEnvironmentR0,\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0ain\x20vec2\x20clearCoatMapData,\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT\x0ain\x20vec4\x20vClearCoatTintParams,\x0ain\x20float\x20clearCoatColorAtDistance,\x0ain\x20vec4\x20vClearCoatRefractionParams,\x0a#ifdef\x20CLEARCOAT_TINT_TEXTURE\x0ain\x20vec4\x20clearCoatTintMapData,\x0a#endif\x0a#endif\x0a#ifdef\x20CLEARCOAT_BUMP\x0ain\x20vec2\x20vClearCoatBumpInfos,\x0ain\x20vec4\x20clearCoatBumpMapData,\x0ain\x20vec2\x20vClearCoatBumpUV,\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0ain\x20mat3\x20vTBN,\x0a#else\x0ain\x20vec2\x20vClearCoatTangentSpaceParams,\x0a#endif\x0a#ifdef\x20OBJECTSPACE_NORMALMAP\x0ain\x20mat4\x20normalMatrix,\x0a#endif\x0a#endif\x0a#if\x20defined(FORCENORMALFORWARD)\x20&&\x20defined(NORMAL)\x0ain\x20vec3\x20faceNormal,\x0a#endif\x0a#ifdef\x20REFLECTION\x0ain\x20vec3\x20vReflectionMicrosurfaceInfos,\x0ain\x20vec2\x20vReflectionInfos,\x0ain\x20vec3\x20vReflectionColor,\x0ain\x20vec4\x20vLightingIntensity,\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSampler,\x0a#else\x0ain\x20sampler2D\x20reflectionSampler,\x0a#endif\x0a#ifndef\x20LODBASEDMICROSFURACE\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSamplerLow,\x0ain\x20samplerCube\x20reflectionSamplerHigh,\x0a#else\x0ain\x20sampler2D\x20reflectionSamplerLow,\x0ain\x20sampler2D\x20reflectionSamplerHigh,\x0a#endif\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0ain\x20vec2\x20vReflectionFilteringInfo,\x0a#endif\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0a#ifdef\x20RADIANCEOCCLUSION\x0ain\x20float\x20ambientMonochrome,\x0a#endif\x0a#endif\x0a#if\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(TWOSIDEDLIGHTING)\x0ain\x20float\x20frontFacingMultiplier,\x0a#endif\x0aout\x20clearcoatOutParams\x20outParams\x0a)\x0a{\x0afloat\x20clearCoatIntensity=vClearCoatParams.x;\x0afloat\x20clearCoatRoughness=vClearCoatParams.y;\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0aclearCoatIntensity*=clearCoatMapData.x;\x0a#ifdef\x20CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE\x0aclearCoatRoughness*=clearCoatMapData.y;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0aoutParams.clearCoatMapData=clearCoatMapData;\x0a#endif\x0a#endif\x0a#if\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x20&&\x20!defined(CLEARCOAT_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0a#ifdef\x20CLEARCOAT_TEXTURE_ROUGHNESS_IDENTICAL\x0aclearCoatRoughness*=clearCoatMapData.y;\x0a#else\x0aclearCoatRoughness*=clearCoatMapRoughnessData.y;\x0a#endif\x0a#endif\x0aoutParams.clearCoatIntensity=clearCoatIntensity;\x0aoutParams.clearCoatRoughness=clearCoatRoughness;\x0a#ifdef\x20CLEARCOAT_TINT\x0avec3\x20clearCoatColor=vClearCoatTintParams.rgb;\x0afloat\x20clearCoatThickness=vClearCoatTintParams.a;\x0a#ifdef\x20CLEARCOAT_TINT_TEXTURE\x0a#ifdef\x20CLEARCOAT_TINT_GAMMATEXTURE\x0aclearCoatColor*=toLinearSpace(clearCoatTintMapData.rgb);\x0a#else\x0aclearCoatColor*=clearCoatTintMapData.rgb;\x0a#endif\x0aclearCoatThickness*=clearCoatTintMapData.a;\x0a#if\x20DEBUGMODE>0\x0aoutParams.clearCoatTintMapData=clearCoatTintMapData;\x0a#endif\x0a#endif\x0aoutParams.clearCoatColor=computeColorAtDistanceInMedia(clearCoatColor,clearCoatColorAtDistance);\x0aoutParams.clearCoatThickness=clearCoatThickness;\x0a#endif\x0a#ifdef\x20CLEARCOAT_REMAP_F0\x0avec3\x20specularEnvironmentR0Updated=getR0RemappedForClearCoat(specularEnvironmentR0);\x0a#else\x0avec3\x20specularEnvironmentR0Updated=specularEnvironmentR0;\x0a#endif\x0aoutParams.specularEnvironmentR0=mix(specularEnvironmentR0,specularEnvironmentR0Updated,clearCoatIntensity);\x0avec3\x20clearCoatNormalW=geometricNormalW;\x0a#ifdef\x20CLEARCOAT_BUMP\x0a#ifdef\x20NORMALXYSCALE\x0afloat\x20clearCoatNormalScale=1.0;\x0a#else\x0afloat\x20clearCoatNormalScale=vClearCoatBumpInfos.y;\x0a#endif\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0amat3\x20TBNClearCoat=vTBN;\x0a#else\x0avec2\x20TBNClearCoatUV=vClearCoatBumpUV*frontFacingMultiplier;\x0amat3\x20TBNClearCoat=cotangent_frame(clearCoatNormalW*clearCoatNormalScale,vPositionW,TBNClearCoatUV,vClearCoatTangentSpaceParams);\x0a#endif\x0a#if\x20DEBUGMODE>0\x0aoutParams.TBNClearCoat=TBNClearCoat;\x0a#endif\x0a#ifdef\x20OBJECTSPACE_NORMALMAP\x0aclearCoatNormalW=normalize(clearCoatBumpMapData.xyz\x20*2.0-1.0);\x0aclearCoatNormalW=normalize(mat3(normalMatrix)*clearCoatNormalW);\x0a#else\x0aclearCoatNormalW=perturbNormal(TBNClearCoat,clearCoatBumpMapData.xyz,vClearCoatBumpInfos.y);\x0a#endif\x0a#endif\x0a#if\x20defined(FORCENORMALFORWARD)\x20&&\x20defined(NORMAL)\x0aclearCoatNormalW*=sign(dot(clearCoatNormalW,faceNormal));\x0a#endif\x0a#if\x20defined(TWOSIDEDLIGHTING)\x20&&\x20defined(NORMAL)\x0aclearCoatNormalW=clearCoatNormalW*frontFacingMultiplier;\x0a#endif\x0aoutParams.clearCoatNormalW=clearCoatNormalW;\x0aoutParams.clearCoatAARoughnessFactors=getAARoughnessFactors(clearCoatNormalW.xyz);\x0afloat\x20clearCoatNdotVUnclamped=dot(clearCoatNormalW,viewDirectionW);\x0afloat\x20clearCoatNdotV=absEps(clearCoatNdotVUnclamped);\x0a#if\x20DEBUGMODE>0\x0aoutParams.clearCoatNdotV=clearCoatNdotV;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT\x0avec3\x20clearCoatVRefract=refract(-viewDirectionW,clearCoatNormalW,vClearCoatRefractionParams.y);\x0aoutParams.clearCoatNdotVRefract=absEps(dot(clearCoatNormalW,clearCoatVRefract));\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20(!defined(REFLECTIONMAP_SKYBOX)\x20||\x20defined(MS_BRDF_ENERGY_CONSERVATION))\x0avec3\x20environmentClearCoatBrdf=getBRDFLookup(clearCoatNdotV,clearCoatRoughness);\x0a#endif\x0a#if\x20defined(REFLECTION)\x0afloat\x20clearCoatAlphaG=convertRoughnessToAverageSlope(clearCoatRoughness);\x0a#ifdef\x20SPECULARAA\x0aclearCoatAlphaG+=outParams.clearCoatAARoughnessFactors.y;\x0a#endif\x0avec4\x20environmentClearCoatRadiance=vec4(0.,0.,0.,0.);\x0avec3\x20clearCoatReflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),clearCoatNormalW);\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0aclearCoatReflectionVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0avec3\x20clearCoatReflectionCoords=clearCoatReflectionVector;\x0a#else\x0avec2\x20clearCoatReflectionCoords=clearCoatReflectionVector.xy;\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0aclearCoatReflectionCoords/=clearCoatReflectionVector.z;\x0a#endif\x0aclearCoatReflectionCoords.y=1.0-clearCoatReflectionCoords.y;\x0a#endif\x0asampleReflectionTexture(\x0aclearCoatAlphaG,\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0aclearCoatNdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0aclearCoatRoughness,\x0a#endif\x0areflectionSampler,\x0aclearCoatReflectionCoords,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0aenvironmentClearCoatRadiance\x0a);\x0a#if\x20DEBUGMODE>0\x0aoutParams.environmentClearCoatRadiance=environmentClearCoatRadiance;\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0avec3\x20clearCoatEnvironmentReflectance=getReflectanceFromBRDFLookup(vec3(vClearCoatRefractionParams.x),environmentClearCoatBrdf);\x0a#ifdef\x20HORIZONOCCLUSION\x0a#ifdef\x20BUMP\x0a#ifdef\x20REFLECTIONMAP_3D\x0afloat\x20clearCoatEho=environmentHorizonOcclusion(-viewDirectionW,clearCoatNormalW,geometricNormalW);\x0aclearCoatEnvironmentReflectance*=clearCoatEho;\x0a#endif\x0a#endif\x0a#endif\x0a#else\x0avec3\x20clearCoatEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(clearCoatNdotV,vec3(1.),vec3(1.),sqrt(1.-clearCoatRoughness));\x0a#endif\x0aclearCoatEnvironmentReflectance*=clearCoatIntensity;\x0a#if\x20DEBUGMODE>0\x0aoutParams.clearCoatEnvironmentReflectance=clearCoatEnvironmentReflectance;\x0a#endif\x0aoutParams.finalClearCoatRadianceScaled=\x0aenvironmentClearCoatRadiance.rgb\x20*\x0aclearCoatEnvironmentReflectance\x20*\x0avLightingIntensity.z;\x0a#endif\x0a#if\x20defined(CLEARCOAT_TINT)\x0aoutParams.absorption=computeClearCoatAbsorption(outParams.clearCoatNdotVRefract,outParams.clearCoatNdotVRefract,outParams.clearCoatColor,clearCoatThickness,clearCoatIntensity);\x0a#endif\x0afloat\x20fresnelIBLClearCoat=fresnelSchlickGGX(clearCoatNdotV,vClearCoatRefractionParams.x,CLEARCOATREFLECTANCE90);\x0afresnelIBLClearCoat*=clearCoatIntensity;\x0aoutParams.conservationFactor=(1.-fresnelIBLClearCoat);\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0aoutParams.energyConservationFactorClearCoat=getEnergyConservationFactor(outParams.specularEnvironmentR0,environmentClearCoatBrdf);\x0a#endif\x0a}\x0a#endif\x0a','bindGroupLayoutEntries','_prefiltered','shadowMapFragmentExtraDeclaration','uniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vSpecularColor;\x0a#endif\x0auniform\x20vec3\x20vEmissiveColor;\x0auniform\x20vec3\x20vAmbientColor;\x0auniform\x20float\x20visibility;\x0a#ifdef\x20DIFFUSE\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20AMBIENT\x0auniform\x20vec2\x20vAmbientInfos;\x0a#endif\x0a#ifdef\x20OPACITY\x20\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0auniform\x20vec2\x20vEmissiveInfos;\x0a#endif\x0a#ifdef\x20LIGHTMAP\x0auniform\x20vec2\x20vLightmapInfos;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20vec3\x20vBumpInfos;\x0auniform\x20vec2\x20vTangentSpaceParams;\x0a#endif\x0a#ifdef\x20ALPHATEST\x0auniform\x20float\x20alphaCutOff;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_SPHERICAL)\x20||\x20defined(REFLECTIONMAP_PROJECTION)\x20||\x20defined(REFRACTION)\x20||\x20defined(PREPASS)\x0auniform\x20mat4\x20view;\x0a#endif\x0a#ifdef\x20REFRACTION\x0auniform\x20vec4\x20vRefractionInfos;\x0a#ifndef\x20REFRACTIONMAP_3D\x0auniform\x20mat4\x20refractionMatrix;\x0a#endif\x0a#ifdef\x20REFRACTIONFRESNEL\x0auniform\x20vec4\x20refractionLeftColor;\x0auniform\x20vec4\x20refractionRightColor;\x0a#endif\x0a#if\x20defined(USE_LOCAL_REFRACTIONMAP_CUBIC)\x20&&\x20defined(REFRACTIONMAP_3D)\x0auniform\x20vec3\x20vRefractionPosition;\x0auniform\x20vec3\x20vRefractionSize;\x20\x0a#endif\x0a#endif\x0a#if\x20defined(SPECULAR)\x20&&\x20defined(SPECULARTERM)\x0auniform\x20vec2\x20vSpecularInfos;\x0a#endif\x0a#ifdef\x20DIFFUSEFRESNEL\x0auniform\x20vec4\x20diffuseLeftColor;\x0auniform\x20vec4\x20diffuseRightColor;\x0a#endif\x0a#ifdef\x20OPACITYFRESNEL\x0auniform\x20vec4\x20opacityParts;\x0a#endif\x0a#ifdef\x20EMISSIVEFRESNEL\x0auniform\x20vec4\x20emissiveLeftColor;\x0auniform\x20vec4\x20emissiveRightColor;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20vec2\x20vReflectionInfos;\x0a#if\x20defined(REFLECTIONMAP_PLANAR)\x20||\x20defined(REFLECTIONMAP_CUBIC)\x20||\x20defined(REFLECTIONMAP_PROJECTION)\x20||\x20defined(REFLECTIONMAP_EQUIRECTANGULAR)\x20||\x20defined(REFLECTIONMAP_SPHERICAL)\x20||\x20defined(REFLECTIONMAP_SKYBOX)\x0auniform\x20mat4\x20reflectionMatrix;\x0a#endif\x0a#ifndef\x20REFLECTIONMAP_SKYBOX\x0a#if\x20defined(USE_LOCAL_REFLECTIONMAP_CUBIC)\x20&&\x20defined(REFLECTIONMAP_CUBIC)\x0auniform\x20vec3\x20vReflectionPosition;\x0auniform\x20vec3\x20vReflectionSize;\x20\x0a#endif\x0a#endif\x0a#ifdef\x20REFLECTIONFRESNEL\x0auniform\x20vec4\x20reflectionLeftColor;\x0auniform\x20vec4\x20reflectionRightColor;\x0a#endif\x0a#endif\x0a#ifdef\x20DETAIL\x0auniform\x20vec4\x20vDetailInfos;\x0a#endif\x0a#include<decalFragmentDeclaration>\x0a#define\x20ADDITIONAL_FRAGMENT_DECLARATION\x0a','_ssDiffusionS','pbrBlockFinalColorComposition','CylinderParticleEmitter','Error','_checkForPicking','_blurNumIterations','WriteOnly','mousePosition','associatedVariableName','BC6HRGBUFloat','_excludeVariableName','vertexShaderName','_time','#include<__decl__defaultFragment>\x0a#if\x20defined(BUMP)\x20||\x20!defined(NORMAL)\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#endif\x0a#include<prePassDeclaration>[SCENE_MRT_COUNT]\x0a#include<oitDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_BEGIN\x0a#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0a#define\x20RECIPROCAL_PI2\x200.15915494\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<mainUVVaryingDeclaration>[1..7]\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_SAMPLERNAME_,diffuse)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)\x0a#ifdef\x20REFRACTION\x0a#ifdef\x20REFRACTIONMAP_3D\x0auniform\x20samplerCube\x20refractionCubeSampler;\x0a#else\x0auniform\x20sampler2D\x20refraction2DSampler;\x0a#endif\x0a#endif\x0a#if\x20defined(SPECULARTERM)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_SAMPLERNAME_,specular)\x0a#endif\x0a#include<fresnelFunction>\x0a#ifdef\x20REFLECTION\x0a#ifdef\x20REFLECTIONMAP_3D\x0auniform\x20samplerCube\x20reflectionCubeSampler;\x0a#else\x0auniform\x20sampler2D\x20reflection2DSampler;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#else\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#endif\x0a#include<reflectionFunction>\x0a#endif\x0a#include<imageProcessingDeclaration>\x0a#include<imageProcessingFunctions>\x0a#include<bumpFragmentMainFunctions>\x0a#include<bumpFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<logDepthDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=normalize(-cross(dFdx(vPositionW),dFdy(vPositionW)));\x0a#endif\x0a#include<bumpFragment>\x0a#ifdef\x20TWOSIDEDLIGHTING\x0anormalW=gl_FrontFacing\x20?\x20normalW\x20:\x20-normalW;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0abaseColor=texture2D(diffuseSampler,vDiffuseUV+uvOffset);\x0a#if\x20defined(ALPHATEST)\x20&&\x20!defined(ALPHATEST_AFTERALLALPHACOMPUTATIONS)\x0aif\x20(baseColor.a<alphaCutOff)\x0adiscard;\x0a#endif\x0a#ifdef\x20ALPHAFROMDIFFUSE\x0aalpha*=baseColor.a;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_ALPHA\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20DECAL\x0avec4\x20decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\x0a#include<decalFragment>(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)\x0a#endif\x0a#include<depthPrePass>\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20DETAIL\x0abaseColor.rgb=baseColor.rgb*2.0*mix(0.5,detailColor.r,vDetailInfos.y);\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_DIFFUSE\x0avec3\x20baseAmbientColor=vec3(1.,1.,1.);\x0a#ifdef\x20AMBIENT\x0abaseAmbientColor=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb*vAmbientInfos.y;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_LIGHTS\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#ifdef\x20SPECULAR\x0avec4\x20specularMapColor=texture2D(specularSampler,vSpecularUV+uvOffset);\x0aspecularColor=specularMapColor.rgb;\x0a#ifdef\x20GLOSSINESS\x0aglossiness=glossiness*specularMapColor.a;\x0a#endif\x0a#endif\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x0afloat\x20shadow=1.;\x0a#ifdef\x20LIGHTMAP\x0avec4\x20lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);\x0a#ifdef\x20RGBDLIGHTMAP\x0alightmapColor.rgb=fromRGBD(lightmapColor);\x0a#endif\x0alightmapColor.rgb*=vLightmapInfos.y;\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0avec4\x20refractionColor=vec4(0.,0.,0.,1.);\x0a#ifdef\x20REFRACTION\x0avec3\x20refractionVector=normalize(refract(-viewDirectionW,normalW,vRefractionInfos.y));\x0a#ifdef\x20REFRACTIONMAP_3D\x0a#ifdef\x20USE_LOCAL_REFRACTIONMAP_CUBIC\x0arefractionVector=parallaxCorrectNormal(vPositionW,refractionVector,vRefractionSize,vRefractionPosition);\x0a#endif\x0arefractionVector.y=refractionVector.y*vRefractionInfos.w;\x0avec4\x20refractionLookup=textureCube(refractionCubeSampler,refractionVector);\x0aif\x20(dot(refractionVector,viewDirectionW)<1.0)\x20{\x0arefractionColor=refractionLookup;\x0a}\x0a#else\x0avec3\x20vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));\x0avec2\x20refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;\x0arefractionCoords.y=1.0-refractionCoords.y;\x0arefractionColor=texture2D(refraction2DSampler,refractionCoords);\x0a#endif\x0a#ifdef\x20RGBDREFRACTION\x0arefractionColor.rgb=fromRGBD(refractionColor);\x0a#endif\x0a#ifdef\x20IS_REFRACTION_LINEAR\x0arefractionColor.rgb=toGammaSpace(refractionColor.rgb);\x0a#endif\x0arefractionColor.rgb*=vRefractionInfos.x;\x0a#endif\x0avec4\x20reflectionColor=vec4(0.,0.,0.,1.);\x0a#ifdef\x20REFLECTION\x0avec3\x20vReflectionUVW=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0avReflectionUVW.z*=-1.0;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0a#ifdef\x20ROUGHNESS\x0afloat\x20bias=vReflectionInfos.y;\x0a#ifdef\x20SPECULARTERM\x0a#ifdef\x20SPECULAR\x0a#ifdef\x20GLOSSINESS\x0abias*=(1.0-specularMapColor.a);\x0a#endif\x0a#endif\x0a#endif\x0areflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW,bias);\x0a#else\x0areflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW);\x0a#endif\x0a#else\x0avec2\x20coords=vReflectionUVW.xy;\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0acoords/=vReflectionUVW.z;\x0a#endif\x0acoords.y=1.0-coords.y;\x0areflectionColor=texture2D(reflection2DSampler,coords);\x0a#endif\x0a#ifdef\x20RGBDREFLECTION\x0areflectionColor.rgb=fromRGBD(reflectionColor);\x0a#endif\x0a#ifdef\x20IS_REFLECTION_LINEAR\x0areflectionColor.rgb=toGammaSpace(reflectionColor.rgb);\x0a#endif\x0areflectionColor.rgb*=vReflectionInfos.x;\x0a#ifdef\x20REFLECTIONFRESNEL\x0afloat\x20reflectionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,reflectionRightColor.a,reflectionLeftColor.a);\x0a#ifdef\x20REFLECTIONFRESNELFROMSPECULAR\x0a#ifdef\x20SPECULARTERM\x0areflectionColor.rgb*=specularColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\x0a#else\x0areflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\x0a#endif\x0a#else\x0areflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20REFRACTIONFRESNEL\x0afloat\x20refractionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,refractionRightColor.a,refractionLeftColor.a);\x0arefractionColor.rgb*=refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*refractionRightColor.rgb;\x0a#endif\x0a#ifdef\x20OPACITY\x0avec4\x20opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\x0a#ifdef\x20OPACITYRGB\x0aopacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11);\x0aalpha*=(opacityMap.x+opacityMap.y+opacityMap.z)*\x20vOpacityInfos.y;\x0a#else\x0aalpha*=opacityMap.a*vOpacityInfos.y;\x0a#endif\x0a#endif\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20OPACITYFRESNEL\x0afloat\x20opacityFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,opacityParts.z,opacityParts.w);\x0aalpha+=opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*opacityParts.y;\x0a#endif\x0a#ifdef\x20ALPHATEST\x0a#ifdef\x20ALPHATEST_AFTERALLALPHACOMPUTATIONS\x0aif\x20(alpha<alphaCutOff)\x0adiscard;\x0a#endif\x0a#ifndef\x20ALPHABLEND\x0aalpha=1.0;\x0a#endif\x0a#endif\x0avec3\x20emissiveColor=vEmissiveColor;\x0a#ifdef\x20EMISSIVE\x0aemissiveColor+=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb*vEmissiveInfos.y;\x0a#endif\x0a#ifdef\x20EMISSIVEFRESNEL\x0afloat\x20emissiveFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,emissiveRightColor.a,emissiveLeftColor.a);\x0aemissiveColor*=emissiveLeftColor.rgb*(1.0-emissiveFresnelTerm)+emissiveFresnelTerm*emissiveRightColor.rgb;\x0a#endif\x0a#ifdef\x20DIFFUSEFRESNEL\x0afloat\x20diffuseFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,diffuseRightColor.a,diffuseLeftColor.a);\x0adiffuseBase*=diffuseLeftColor.rgb*(1.0-diffuseFresnelTerm)+diffuseFresnelTerm*diffuseRightColor.rgb;\x0a#endif\x0a#ifdef\x20EMISSIVEASILLUMINATION\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\x0a#else\x0a#ifdef\x20LINKEMISSIVEWITHDIFFUSE\x0avec3\x20finalDiffuse=clamp((diffuseBase+emissiveColor)*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\x0a#else\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor+emissiveColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\x0a#endif\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#ifdef\x20SPECULAROVERALPHA\x0aalpha=clamp(alpha+dot(finalSpecular,vec3(0.3,0.59,0.11)),0.,1.);\x0a#endif\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0a#ifdef\x20REFLECTIONOVERALPHA\x0aalpha=clamp(alpha+dot(reflectionColor.rgb,vec3(0.3,0.59,0.11)),0.,1.);\x0a#endif\x0a#ifdef\x20EMISSIVEASILLUMINATION\x0avec4\x20color=vec4(clamp(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+emissiveColor+refractionColor.rgb,0.0,1.0),alpha);\x0a#else\x0avec4\x20color=vec4(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+refractionColor.rgb,alpha);\x0a#endif\x0a#ifdef\x20LIGHTMAP\x0a#ifndef\x20LIGHTMAPEXCLUDED\x0a#ifdef\x20USELIGHTMAPASSHADOWMAP\x0acolor.rgb*=lightmapColor.rgb;\x0a#else\x0acolor.rgb+=lightmapColor.rgb;\x0a#endif\x0a#endif\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_FOG\x0acolor.rgb=max(color.rgb,0.);\x0a#include<logDepthFragment>\x0a#include<fogFragment>\x0a#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0acolor.rgb=toLinearSpace(color.rgb);\x0a#else\x0a#ifdef\x20IMAGEPROCESSING\x0acolor.rgb=toLinearSpace(color.rgb);\x0acolor=applyImageProcessing(color);\x0a#endif\x0a#endif\x0acolor.a*=visibility;\x0a#ifdef\x20PREMULTIPLYALPHA\x0acolor.rgb*=color.a;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\x0a#ifdef\x20PREPASS\x0afloat\x20writeGeometryInfo=color.a>0.4\x20?\x201.0\x20:\x200.0;\x0agl_FragData[0]=color;\x20\x0a#ifdef\x20PREPASS_POSITION\x0agl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\x0a#endif\x0a#ifdef\x20PREPASS_VELOCITY\x0avec2\x20a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\x0avec2\x20b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\x0avec2\x20velocity=abs(a-b);\x0avelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\x0agl_FragData[PREPASS_VELOCITY_INDEX]=vec4(velocity,0.0,writeGeometryInfo);\x0a#endif\x0a#ifdef\x20PREPASS_IRRADIANCE\x0agl_FragData[PREPASS_IRRADIANCE_INDEX]=vec4(0.0,0.0,0.0,writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_DEPTH\x0agl_FragData[PREPASS_DEPTH_INDEX]=vec4(vViewPos.z,0.0,0.0,writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_NORMAL\x0agl_FragData[PREPASS_NORMAL_INDEX]=vec4(normalize((view*vec4(normalW,0.0)).rgb),writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_ALBEDO_SQRT\x0agl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(0.0,0.0,0.0,writeGeometryInfo);\x20\x0a#endif\x0a#ifdef\x20PREPASS_REFLECTIVITY\x0a#if\x20defined(SPECULARTERM)\x0a#if\x20defined(SPECULAR)\x0agl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularMapColor))*writeGeometryInfo;\x20\x0a#else\x0agl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularColor),1.0)*writeGeometryInfo;\x0a#endif\x0a#else\x0agl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(0.0,0.0,0.0,1.0)*writeGeometryInfo;\x0a#endif\x0a#endif\x0a#endif\x0a#if\x20!defined(PREPASS)\x20||\x20defined(WEBGL2)\x0agl_FragColor=color;\x0a#endif\x0a#include<oitFragment>\x0a#if\x20ORDER_INDEPENDENT_TRANSPARENCY\x0aif\x20(fragDepth==nearestDepth)\x20{\x0afrontColor.rgb+=color.rgb*color.a*alphaMultiplier;\x0afrontColor.a=1.0-alphaMultiplier*(1.0-color.a);\x0a}\x20else\x20{\x0abackColor+=color;\x0a}\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20float\x20degree;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0avec3\x20color=texture2D(textureSampler,vUV).rgb;\x0afloat\x20luminance=dot(color,vec3(0.3,0.59,0.11));\x20\x0avec3\x20blackAndWhite=vec3(luminance,luminance,luminance);\x0agl_FragColor=vec4(color-((color-blackAndWhite)*degree),1.0);\x0a}','bindUniformBlock','is32Bits','_getUseSRGBBuffer','vClipPlane3','delay','thickness','depthSampler','blurMaxFilterSize','_define3DName','E2dArray','_getEngine','sampler_comparison','UniformSizes','#ifdef\x20_DEFINENAME_\x0a#if\x20_DEFINENAME_DIRECTUV==1\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV1\x0a#elif\x20_DEFINENAME_DIRECTUV==2\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV2\x0a#elif\x20_DEFINENAME_DIRECTUV==3\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV3\x0a#elif\x20_DEFINENAME_DIRECTUV==4\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV4\x0a#elif\x20_DEFINENAME_DIRECTUV==5\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV5\x0a#elif\x20_DEFINENAME_DIRECTUV==6\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV6\x0a#else\x0avarying\x20vec2\x20v_VARYINGNAME_UV;\x0a#endif\x0a#endif\x0a','LIGHTMAP_SPECULAR','null','_declareOutput','UNSIGNED_INT_24_8','layerIndices','const\x20vec3\x20TWO=vec3(2.0,2.0,2.0);\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20camASampler;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20stepSize;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0abool\x20useCamA;\x0abool\x20useCamB;\x0avec2\x20texCoord1;\x0avec2\x20texCoord2;\x0avec3\x20frag1;\x0avec3\x20frag2;\x0a#ifdef\x20IS_STEREOSCOPIC_HORIZ\x0auseCamB=vUV.x>0.5;\x0auseCamA=!useCamB;\x0atexCoord1=vec2(useCamB\x20?\x20(vUV.x-0.5)*2.0\x20:\x20vUV.x*2.0,vUV.y);\x0atexCoord2=vec2(texCoord1.x+stepSize.x,vUV.y);\x0a#else\x0a#ifdef\x20IS_STEREOSCOPIC_INTERLACED\x0afloat\x20rowNum=floor(vUV.y/stepSize.y);\x0auseCamA=mod(rowNum,2.0)==1.0;\x0auseCamB=mod(rowNum,2.0)==0.0;\x0atexCoord1=vec2(vUV.x,vUV.y);\x0atexCoord2=vec2(vUV.x,vUV.y);\x0a#else\x0auseCamB=vUV.y>0.5;\x0auseCamA=!useCamB;\x0atexCoord1=vec2(vUV.x,useCamB\x20?\x20(vUV.y-0.5)*2.0\x20:\x20vUV.y*2.0);\x0atexCoord2=vec2(vUV.x,texCoord1.y+stepSize.y);\x0a#endif\x0a#endif\x0aif\x20(useCamB){\x0afrag1=texture2D(textureSampler,texCoord1).rgb;\x0afrag2=texture2D(textureSampler,texCoord2).rgb;\x0a}else\x20if\x20(useCamA){\x0afrag1=texture2D(camASampler\x20,texCoord1).rgb;\x0afrag2=texture2D(camASampler\x20,texCoord2).rgb;\x0a}else\x20{\x0adiscard;\x0a}\x0agl_FragColor=vec4((frag1+frag2)/TWO,1.0);\x0a}\x0a','recordVertexArrayObject','pickWorldPosition','_vertexData','setTextureFormatToUse','_getPipeline','UNSIGNED_INT','#ifndef','_tintWASM','ACTION_OnLeftPickTrigger','layerVertexShader','testExpression','formats','motionBlurPixelShader','SNAPSHOTRENDERING_STANDARD','Float\x20textures\x20are\x20not\x20supported.\x20Render\x20target\x20forced\x20to\x20TEXTURETYPE_UNSIGNED_BYTE\x20type','drawBuffers','#ifdef\x20ALPHATEST\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0avarying\x20float\x20vDepthMetric;\x0a#ifdef\x20PACKED\x0a#include<packingFunctions>\x0a#endif\x0a#ifdef\x20STORE_CAMERASPACE_Z\x0avarying\x20vec4\x20vViewPos;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#include<clipPlaneFragment>\x0a#ifdef\x20ALPHATEST\x0aif\x20(texture2D(diffuseSampler,vUV).a<0.4)\x0adiscard;\x0a#endif\x0a#ifdef\x20STORE_CAMERASPACE_Z\x0a#ifdef\x20PACKED\x0agl_FragColor=pack(vViewPos.z);\x0a#else\x0agl_FragColor=vec4(vViewPos.z,0.0,0.0,1.0);\x0a#endif\x0a#else\x0a#ifdef\x20NONLINEARDEPTH\x0a#ifdef\x20PACKED\x0agl_FragColor=pack(gl_FragCoord.z);\x0a#else\x0agl_FragColor=vec4(gl_FragCoord.z,0.0,0.0,0.0);\x0a#endif\x0a#else\x0a#ifdef\x20PACKED\x0agl_FragColor=pack(vDepthMetric);\x0a#else\x0agl_FragColor=vec4(vDepthMetric,0.0,0.0,1.0);\x0a#endif\x0a#endif\x0a#endif\x0a}','getOrAdd','updateIntArray','attachCamerasToRenderPipeline','blockingBlocks','Dot','_injectAtEnd','renderTargetBlur','TEXTURE_CUBE_MAP_POSITIVE_Z','RGB_INTEGER\x20format\x20not\x20supported\x20in\x20WebGPU','Vector4','_setCubeMapTextureParams','ETC2RGBA8UnormSRGB','polygonOffset','stencilMaterial','isMainRender',')\x20uniform','POINTERUP','generateMipMaps','attribute\x20vec3\x20position;\x0a#include<__decl__boundingBoxRendererVertex>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec4\x20worldPos=world*vec4(position,1.0);\x0a#ifdef\x20MULTIVIEW\x0aif\x20(gl_ViewID_OVR==0u)\x20{\x0agl_Position=viewProjection*worldPos;\x0a}\x20else\x20{\x0agl_Position=viewProjectionR*worldPos;\x0a}\x0a#else\x0agl_Position=viewProjection*worldPos;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','rgbdEncodePixelShader','_partialLoadFile','GL_ALPHA_EQUATION_SUBTRACT','_shareDepth','_currentRenderTarget','reflectionFunction','_pipelineContext','isVisible','isConnected','bindUniformBuffer','_previousStartingPointerPosition','TEXTUREFORMAT_RGB_INTEGER\x20format\x20not\x20supported\x20in\x20WebGPU','getHostWindow','ALPHA_ADD','GetExponentOfTwo','getInputBlockByPredicate','parts','_KnownUBOs','TEXTUREFORMAT_RGB\x20format\x20not\x20supported\x20in\x20WebGPU','setArray4','ASTC5x4Unorm','!!INVALID\x20EXPRESSION!!','uniform\x20mat4\x20world;\x0auniform\x20float\x20visibility;\x0a','#include<','getAttributeNextLocation','BC3RGBAUnorm','markAsProcessed','_zOffset','pbrVertexDeclaration','sources','IridescenceBlock','toGlobal','_funcRef','ONE_MINUS_CONSTANT_COLOR','#define','_currentPickResult','acos','frontFace','pbrBlockSubSurface','_MSAAFramebuffer','createComputePipelineContext','_meshUnderPointerId','#if\x20defined(','shadowMapVertexNormalBias','_videoCompiledShaders','deleteRenderbuffer','Storage','vertexColorMixing','attached','invertV','tangent','KnownUBOs','-etc2.ktx','.fx','fragmentShader','attach','createShaderModule','extensions','onVRRequestPresentComplete','isVRPresenting','charAt','computeBonesUsingShaders','colorVertexShader','vClipPlane5','_drawWrapperFogDepth','_debugPushGroup','FLOAT','DEPTH_COMPONENT','_webVRInitPromise','computeDispatch','createEffect','_attributesWGSL','pbrDebug','clearQuadVertexShader','ASTC12x12UnormSRGB','clipPlane5','precision\x20highp\x20float;\x0a#include<__decl__pbrVertex>\x0a#define\x20CUSTOM_VERTEX_BEGIN\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20TANGENT\x0aattribute\x20vec4\x20tangent;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#include<uvAttributeDeclaration>[2..7]\x0a#include<mainUVVaryingDeclaration>[1..7]\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<helperFunctions>\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0a#include<prePassVertexDeclaration>\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)\x0a#ifdef\x20CLEARCOAT\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint)\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness)\x0a#endif\x0a#ifdef\x20SHEEN\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness)\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy)\x0a#endif\x0a#ifdef\x20SUBSURFACE\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity)\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#if\x20DEBUGMODE>0\x0avarying\x20vec4\x20vClipSpacePosition;\x0a#endif\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#if\x20defined(USESPHERICALFROMREFLECTIONMAP)\x20&&\x20defined(USESPHERICALINVERTEX)\x0avarying\x20vec3\x20vEnvironmentIrradiance;\x0a#include<harmonicsFunctions>\x0a#endif\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<bumpVertexDeclaration>\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#include<logDepthDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec3\x20positionUpdated=position;\x0a#ifdef\x20NORMAL\x0avec3\x20normalUpdated=normal;\x0a#endif\x0a#ifdef\x20TANGENT\x0avec4\x20tangentUpdated=tangent;\x0a#endif\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avPositionUVW=positionUpdated;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_UPDATE_POSITION\x0a#define\x20CUSTOM_VERTEX_UPDATE_NORMAL\x0a#include<instancesVertex>\x0a#if\x20defined(PREPASS)\x20&&\x20defined(PREPASS_VELOCITY)\x20&&\x20!defined(BONES_VELOCITY_ENABLED)\x0avCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\x0a#endif\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0avPositionW=vec3(worldPos);\x0a#include<prePassVertex>\x0a#ifdef\x20NORMAL\x0amat3\x20normalWorld=mat3(finalWorld);\x0a#if\x20defined(INSTANCES)\x20&&\x20defined(THIN_INSTANCES)\x0avNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));\x0avNormalW=normalize(normalWorld*vNormalW);\x0a#else\x0a#ifdef\x20NONUNIFORMSCALING\x0anormalWorld=transposeMat3(inverseMat3(normalWorld));\x0a#endif\x0avNormalW=normalize(normalWorld*normalUpdated);\x0a#endif\x0a#if\x20defined(USESPHERICALFROMREFLECTIONMAP)\x20&&\x20defined(USESPHERICALINVERTEX)\x0avec3\x20reflectionVector=vec3(reflectionMatrix*vec4(vNormalW,0)).xyz;\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0areflectionVector.z*=-1.0;\x0a#endif\x0avEnvironmentIrradiance=computeEnvironmentIrradiance(reflectionVector);\x0a#endif\x0a#endif\x0a#define\x20CUSTOM_VERTEX_UPDATE_WORLDPOS\x0a#ifdef\x20MULTIVIEW\x0aif\x20(gl_ViewID_OVR==0u)\x20{\x0agl_Position=viewProjection*worldPos;\x0a}\x20else\x20{\x0agl_Position=viewProjectionR*worldPos;\x0a}\x0a#else\x0agl_Position=viewProjection*worldPos;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0avClipSpacePosition=gl_Position;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uvUpdated=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20MAINUV1\x0avMainUV1=uvUpdated;\x0a#endif\x0a#include<uvVariableDeclaration>[2..7]\x0a#include<samplerVertexImplementation>(_DEFINENAME_,ALBEDO,_VARYINGNAME_,Albedo,_MATRIXNAME_,albedo,_INFONAME_,AlbedoInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,REFLECTIVITY,_VARYINGNAME_,Reflectivity,_MATRIXNAME_,reflectivity,_INFONAME_,ReflectivityInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,MICROSURFACEMAP,_VARYINGNAME_,MicroSurfaceSampler,_MATRIXNAME_,microSurfaceSampler,_INFONAME_,MicroSurfaceSamplerInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,METALLIC_REFLECTANCE,_VARYINGNAME_,MetallicReflectance,_MATRIXNAME_,metallicReflectance,_INFONAME_,MetallicReflectanceInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,REFLECTANCE,_VARYINGNAME_,Reflectance,_MATRIXNAME_,reflectance,_INFONAME_,ReflectanceInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)\x0a#ifdef\x20CLEARCOAT\x0a#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TEXTURE,_VARYINGNAME_,ClearCoat,_MATRIXNAME_,clearCoat,_INFONAME_,ClearCoatInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TEXTURE_ROUGHNESS,_VARYINGNAME_,ClearCoatRoughness,_MATRIXNAME_,clearCoatRoughness,_INFONAME_,ClearCoatInfos.z)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_BUMP,_VARYINGNAME_,ClearCoatBump,_MATRIXNAME_,clearCoatBump,_INFONAME_,ClearCoatBumpInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,CLEARCOAT_TINT_TEXTURE,_VARYINGNAME_,ClearCoatTint,_MATRIXNAME_,clearCoatTint,_INFONAME_,ClearCoatTintInfos.x)\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0a#include<samplerVertexImplementation>(_DEFINENAME_,IRIDESCENCE_TEXTURE,_VARYINGNAME_,Iridescence,_MATRIXNAME_,iridescence,_INFONAME_,IridescenceInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,IRIDESCENCE_THICKNESS_TEXTURE,_VARYINGNAME_,IridescenceThickness,_MATRIXNAME_,iridescenceThickness,_INFONAME_,IridescenceInfos.z)\x0a#endif\x0a#ifdef\x20SHEEN\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SHEEN_TEXTURE,_VARYINGNAME_,Sheen,_MATRIXNAME_,sheen,_INFONAME_,SheenInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SHEEN_TEXTURE_ROUGHNESS,_VARYINGNAME_,SheenRoughness,_MATRIXNAME_,sheen,_INFONAME_,SheenInfos.z)\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0a#include<samplerVertexImplementation>(_DEFINENAME_,ANISOTROPIC_TEXTURE,_VARYINGNAME_,Anisotropy,_MATRIXNAME_,anisotropy,_INFONAME_,AnisotropyInfos.x)\x0a#endif\x0a#ifdef\x20SUBSURFACE\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SS_THICKNESSANDMASK_TEXTURE,_VARYINGNAME_,Thickness,_MATRIXNAME_,thickness,_INFONAME_,ThicknessInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SS_REFRACTIONINTENSITY_TEXTURE,_VARYINGNAME_,RefractionIntensity,_MATRIXNAME_,refractionIntensity,_INFONAME_,RefractionIntensityInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SS_TRANSLUCENCYINTENSITY_TEXTURE,_VARYINGNAME_,TranslucencyIntensity,_MATRIXNAME_,translucencyIntensity,_INFONAME_,TranslucencyIntensityInfos.x)\x0a#endif\x0a#include<bumpVertex>\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#include<logDepthVertex>\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','_isFrontFaceDirty','POINTERWHEEL','postProcessor','colorPixelShader','R8Snorm','#define\x20FOG','updateDynamicTexture','R16Sint','updateFlag','_prepareEffect','onVRDisplayChangedObservable','platformName','_prepareWorkingCanvas','createDepthStencilTexture','setColor3','GL_ALPHA_FUNCTION_CONSTANT_ALPHA','rightOperand','_cacheFloat4','#ifdef\x20PREPASS_DEPTH\x0avViewPos=(view*worldPos).rgb;\x0a#endif\x0a#if\x20defined(PREPASS_VELOCITY)\x20&&\x20defined(BONES_VELOCITY_ENABLED)\x0avCurrentPosition=viewProjection*worldPos;\x0a#if\x20NUM_BONE_INFLUENCERS>0\x0amat4\x20previousInfluence;\x0apreviousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\x0a#endif\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);\x0a#else\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\x0a#endif\x0a#endif\x0a','restoreDefaultInputTexture','is2DArray','observable','DepthOnly','mag','passCubePixelShader','matchesTagsQuery','getUniform','wrapU','HasDepthAndStencilAspects','\x20\x20fragmentInputs\x20=\x20input;\x0a\x20\x20','struct\x20Scene\x20{\x0aviewProjection\x20:\x20mat4x4<f32>,\x0a#ifdef\x20MULTIVIEW\x0aviewProjectionR\x20:\x20mat4x4<f32>,\x0a#endif\x20\x0aview\x20:\x20mat4x4<f32>,\x0aprojection\x20:\x20mat4x4<f32>,\x0avEyePosition\x20:\x20vec4<f32>,\x0a};\x0avar<uniform>\x20scene\x20:\x20Scene;\x0a','faceIndices','MATERIAL_TextureDirtyFlag','E2d','NAME_PARTICLESYSTEM','getCaps','RG8Uint','_delayedSimpleClick','dataOffsetStart','createSampler','DEPTH_STENCIL_ATTACHMENT','TEXTURE0','GetSamplerHashCode','setColorFormat','sin','MATERIAL_LineStripDrawMode','releaseBuffer','Invalid\x20fragment\x20shader:\x20The\x20varying\x20named\x20\x22','LeftOver','updateRawTexture','_availableIndices','_webgpuMSAATexture','getUniforms','boundingBoxPosition','_swipeButtonPressed','layerMask','_injectStartingAndEndingCode','drawArraysType','DragMovementThreshold','Auto','oitDeclaration','isCompatible','NEAREST','layout(location\x20=\x200)\x20','TEXTUREFORMAT_ALPHA\x20format\x20not\x20supported\x20in\x20WebGPU','#ifdef\x20DECAL\x0a#ifdef\x20GAMMADECAL\x0adecalColor.rgb=toLinearSpace(decalColor.rgb);\x0a#endif\x0a#ifdef\x20DECAL_SMOOTHALPHA\x0adecalColor.a*=decalColor.a;\x0a#endif\x0asurfaceAlbedo.rgb=mix(surfaceAlbedo.rgb,decalColor.rgb,decalColor.a);\x0a#endif\x0a','_setInitialTarget','.y\x20=\x201.0\x20-\x20','DoubleClickDelay','pbrHelperFunctions','pbrDirectLightingSetupFunctions','_drawWrapperFog','TEXTUREFORMAT_RGB_INTEGER','ASTC8x5UnormSRGB','pbrVertexShader','varyingProcessor','_FileToolsLoadFile','#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0avec3\x20specularEnvironmentReflectance=getReflectanceFromBRDFLookup(clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,environmentBrdf);\x0a#ifdef\x20RADIANCEOCCLUSION\x0aspecularEnvironmentReflectance*=seo;\x0a#endif\x0a#ifdef\x20HORIZONOCCLUSION\x0a#ifdef\x20BUMP\x0a#ifdef\x20REFLECTIONMAP_3D\x0aspecularEnvironmentReflectance*=eho;\x0a#endif\x0a#endif\x0a#endif\x0a#else\x0avec3\x20specularEnvironmentReflectance=getReflectanceFromAnalyticalBRDFLookup_Jones(NdotV,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,sqrt(microSurface));\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0aspecularEnvironmentReflectance*=clearcoatOut.conservationFactor;\x0a#if\x20defined(CLEARCOAT_TINT)\x0aspecularEnvironmentReflectance*=clearcoatOut.absorption;\x0a#endif\x0a#endif\x0a','frameId','mat4','_framebufferDepthStencil','#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,b)\x20texture2D(s,c,b)\x0a#endif\x0aprecision\x20highp\x20float;\x0avarying\x20vec3\x20vPosition;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec2\x20tUV;\x0auniform\x20float\x20time;\x0auniform\x20float\x20spriteCount;\x0auniform\x20sampler2D\x20spriteSheet;\x0auniform\x20vec2\x20spriteMapSize;\x0auniform\x20vec2\x20outputSize;\x0auniform\x20vec2\x20stageSize;\x0auniform\x20sampler2D\x20frameMap;\x0auniform\x20sampler2D\x20tileMaps[LAYERS];\x0auniform\x20sampler2D\x20animationMap;\x0auniform\x20vec3\x20colorMul;\x0afloat\x20mt;\x0aconst\x20float\x20fdStep=1./4.;\x0aconst\x20float\x20aFrameSteps=1./MAX_ANIMATION_FRAMES;\x0amat4\x20getFrameData(float\x20frameID){\x0afloat\x20fX=frameID/spriteCount;\x0areturn\x20mat4(\x0atexture2D(frameMap,vec2(fX,0.),0.),\x0atexture2D(frameMap,vec2(fX,fdStep*1.),0.),\x0atexture2D(frameMap,vec2(fX,fdStep*2.),0.),\x0avec4(0.)\x0a);\x0a}\x0avoid\x20main(){\x0avec4\x20color=vec4(0.);\x0avec2\x20tileUV=fract(tUV);\x0a#ifdef\x20FLIPU\x0atileUV.y=1.0-tileUV.y;\x0a#endif\x0avec2\x20tileID=floor(tUV);\x0avec2\x20sheetUnits=1./spriteMapSize;\x0afloat\x20spriteUnits=1./spriteCount;\x0avec2\x20stageUnits=1./stageSize;\x0afor(int\x20i=0;\x20i<LAYERS;\x20i++)\x20{\x0afloat\x20frameID;\x0a#define\x20LAYER_ID_SWITCH\x0avec4\x20animationData=TEXTUREFUNC(animationMap,vec2((frameID+0.5)/spriteCount,0.),0.);\x0aif(animationData.y>0.)\x20{\x0amt=mod(time*animationData.z,1.0);\x0afor(float\x20f=0.;\x20f<MAX_ANIMATION_FRAMES;\x20f++){\x0aif(animationData.y>mt){\x0aframeID=animationData.x;\x0abreak;\x0a}\x0aanimationData=TEXTUREFUNC(animationMap,vec2((frameID+0.5)/spriteCount,aFrameSteps*f),0.);\x0a}\x0a}\x0amat4\x20frameData=getFrameData(frameID+0.5);\x0avec2\x20frameSize=(frameData[0].zw)/spriteMapSize;\x0avec2\x20offset=frameData[0].xy*sheetUnits;\x0avec2\x20ratio=frameData[2].xy/frameData[0].zw;\x0aif\x20(frameData[2].z==1.){\x0atileUV.xy=tileUV.yx;\x0a}\x0avec4\x20nc=texture2D(spriteSheet,tileUV*frameSize+offset);\x0aif\x20(i==0){\x0acolor=nc;\x0a}\x20else\x20{\x0afloat\x20alpha=min(color.a+nc.a,1.0);\x0avec3\x20mixed=mix(color.xyz,nc.xyz,nc.a);\x0acolor=vec4(mixed,alpha);\x0a}\x0a}\x0acolor.xyz*=colorMul;\x0agl_FragColor=color;\x0a}','textD','remove','ALPHA_MULTIPLY','emitComments','getBuffer','attribute\x20vec2\x20position;\x0avarying\x20vec2\x20vUV;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avUV=position*madd+madd;\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','_isAlphaBlendDirty','postProcessManager','_reflectionPositionName','MAINUV7','SetData','textureUsages','cellHeight','_ubDontInvertY','uniform\x20float\x20particleAlpha;\x0avarying\x20vec2\x20uv;\x0avoid\x20main(void)\x20{\x0avec3\x20normal;\x0anormal.xy=uv*2.0-1.0;\x0afloat\x20r2=dot(normal.xy,normal.xy);\x0aif\x20(r2>1.0)\x20discard;\x0afloat\x20thickness=sqrt(1.0-r2);\x0aglFragColor=vec4(vec3(particleAlpha*thickness),1.0);\x0a}\x0a','uniformRegexp','createRawBuffer','BC7RGBAUnorm','mixVertexShader','_doNotHandleContextLost','//Constants\x0d\x0a',');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20','_SimplifyNegation','outputRenderTarget','drawElementsType','label','_pickedDownMesh','#ifdef\x20MORPHTARGETS\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x0afloat\x20vertexID;\x0a#endif\x0a#endif\x0a','_tempVector','Depth\x20texture\x20format\x20is\x20not\x20supported.','heightRange','_renderPipelines','markAsPrePassDirty','isNDCHalfZRange','uv6','setEnabled','getBoundingInfo','LIGHTTYPEID_HEMISPHERICLIGHT','Touch','_defineMirroredEquirectangularFixedName','_timeElapsedQueryEnded','viewMatrix','vIridescenceParams','_SimplifiedKnownUBOs','getPhysicsEngine','RGBA8Sint','_engine','clipPlaneVertex','input\x20','GL_ALPHA_FUNCTION_ONE_MINUS_DST_COLOR','_createBlurPostProcesses','UNPACK_ALIGNMENT','subtract','_pointerOverMesh','backgroundPixelShader','#ifdef\x20FOG\x0avFogDistance=(view*worldPos).xyz;\x0a#endif\x0a','setCommandEncoder','preProcessor','screenSpaceReflection2BlurCombinerPixelShader','_numFloatTextures','_Stack','setVector2','multiplyToRef','setInt','#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,lod)\x20texture2DLodEXT(s,c,lod)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,bias)\x20texture2D(s,c,bias)\x0a#endif\x0auniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20circleOfConfusionSampler;\x0auniform\x20sampler2D\x20blurStep0;\x0a#if\x20BLUR_LEVEL>0\x0auniform\x20sampler2D\x20blurStep1;\x0a#endif\x0a#if\x20BLUR_LEVEL>1\x0auniform\x20sampler2D\x20blurStep2;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0afloat\x20coc=TEXTUREFUNC(circleOfConfusionSampler,vUV,0.0).r;\x0a#if\x20BLUR_LEVEL==0\x0avec4\x20original=TEXTUREFUNC(textureSampler,vUV,0.0);\x0avec4\x20blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);\x0agl_FragColor=mix(original,blurred0,coc);\x0a#endif\x0a#if\x20BLUR_LEVEL==1\x0aif(coc<0.5){\x0avec4\x20original=TEXTUREFUNC(textureSampler,vUV,0.0);\x0avec4\x20blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);\x0agl_FragColor=mix(original,blurred1,coc/0.5);\x0a}else{\x0avec4\x20blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);\x0avec4\x20blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);\x0agl_FragColor=mix(blurred1,blurred0,(coc-0.5)/0.5);\x0a}\x0a#endif\x0a#if\x20BLUR_LEVEL==2\x0aif(coc<0.33){\x0avec4\x20original=TEXTUREFUNC(textureSampler,vUV,0.0);\x0avec4\x20blurred2=TEXTUREFUNC(blurStep2,vUV,0.0);\x0agl_FragColor=mix(original,blurred2,coc/0.33);\x0a}else\x20if(coc<0.66){\x0avec4\x20blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);\x0avec4\x20blurred2=TEXTUREFUNC(blurStep2,vUV,0.0);\x0agl_FragColor=mix(blurred2,blurred1,(coc-0.33)/0.33);\x0a}else{\x0avec4\x20blurred0=TEXTUREFUNC(blurStep0,vUV,0.0);\x0avec4\x20blurred1=TEXTUREFUNC(blurStep1,vUV,0.0);\x0agl_FragColor=mix(blurred1,blurred0,(coc-0.66)/0.34);\x0a}\x0a#endif\x0a}\x0a','GL_ALPHA_EQUATION_MAX','_tags','intensity','ONE_MINUS_SRC_COLOR','\x20\x20\x20\x20','pointerUpPredicate','pow','worldDirection','getHashCode','BILINEAR_SAMPLINGMODE','_deferredReleaseTextures','HasSpecificTrigger','_EvaluatePreProcessors','ASTC6x5UnormSRGB','TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4','_submitVRFrame','#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,lod)\x20texture2DLodEXT(s,c,lod)\x0a#define\x20TEXTURECUBEFUNC(s,c,lod)\x20textureLod(s,c,lod)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,bias)\x20texture2D(s,c,bias)\x0a#define\x20TEXTURECUBEFUNC(s,c,bias)\x20textureCube(s,c,bias)\x0a#endif\x0auniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0a#ifdef\x20SSR_SUPPORTED\x0auniform\x20sampler2D\x20reflectivitySampler;\x0auniform\x20sampler2D\x20normalSampler;\x0auniform\x20sampler2D\x20depthSampler;\x0a#ifdef\x20SSRAYTRACE_USE_BACK_DEPTHBUFFER\x0auniform\x20sampler2D\x20backDepthSampler;\x0auniform\x20float\x20backSizeFactor;\x0a#endif\x0a#ifdef\x20SSR_USE_ENVIRONMENT_CUBE\x0auniform\x20samplerCube\x20envCubeSampler;\x0a#ifdef\x20SSR_USE_LOCAL_REFLECTIONMAP_CUBIC\x0auniform\x20vec3\x20vReflectionPosition;\x0auniform\x20vec3\x20vReflectionSize;\x0a#endif\x0a#endif\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20invView;\x0auniform\x20mat4\x20projection;\x0auniform\x20mat4\x20invProjectionMatrix;\x0auniform\x20mat4\x20projectionPixel;\x0auniform\x20float\x20nearPlaneZ;\x0auniform\x20float\x20stepSize;\x0auniform\x20float\x20maxSteps;\x0auniform\x20float\x20strength;\x0auniform\x20float\x20thickness;\x0auniform\x20float\x20roughnessFactor;\x0auniform\x20float\x20reflectionSpecularFalloffExponent;\x0auniform\x20float\x20maxDistance;\x0auniform\x20float\x20selfCollisionNumSkip;\x0auniform\x20float\x20reflectivityThreshold;\x0a#include<helperFunctions>\x0a#include<screenSpaceRayTrace>\x0avec3\x20fresnelSchlick(float\x20cosTheta,vec3\x20F0)\x0a{\x0areturn\x20F0+(1.0-F0)*pow(1.0-cosTheta,5.0);\x0a}\x0avec3\x20hash(vec3\x20a)\x0a{\x0aa=fract(a*0.8);\x0aa+=dot(a,a.yxz+19.19);\x0areturn\x20fract((a.xxy+a.yxx)*a.zyx);\x0a}\x0avec3\x20computeViewPosFromUVDepth(vec2\x20texCoord,float\x20depth)\x20{\x0avec4\x20ndc;\x0andc.xy=texCoord*2.0-1.0;\x0a#ifdef\x20SSRAYTRACE_RIGHT_HANDED_SCENE\x0andc.z=-projection[2].z-projection[3].z/depth;\x0a#else\x0andc.z=projection[2].z+projection[3].z/depth;\x0a#endif\x0andc.w=1.0;\x0avec4\x20eyePos=invProjectionMatrix*ndc;\x0aeyePos.xyz/=eyePos.w;\x0areturn\x20eyePos.xyz;\x0a}\x0afloat\x20computeAttenuationForIntersection(ivec2\x20hitPixel,vec2\x20hitUV,vec3\x20vsRayOrigin,vec3\x20vsHitPoint,vec3\x20reflectionVector,float\x20maxRayDistance,float\x20numIterations)\x20{\x0afloat\x20attenuation=1.0;\x0a#ifdef\x20SSR_ATTENUATE_SCREEN_BORDERS\x0avec2\x20dCoords=smoothstep(0.2,0.6,abs(vec2(0.5,0.5)-hitUV.xy));\x0aattenuation*=clamp(1.0-(dCoords.x+dCoords.y),0.0,1.0);\x0a#endif\x0a#ifdef\x20SSR_ATTENUATE_INTERSECTION_DISTANCE\x0aattenuation*=1.0-clamp(distance(vsRayOrigin,vsHitPoint)/maxRayDistance,0.0,1.0);\x0a#endif\x0a#ifdef\x20SSR_ATTENUATE_INTERSECTION_NUMITERATIONS\x0aattenuation*=1.0-(numIterations/maxSteps);\x0a#endif\x0a#ifdef\x20SSR_ATTENUATE_BACKFACE_REFLECTION\x0avec3\x20reflectionNormal=texelFetch(normalSampler,hitPixel,0).xyz;\x0afloat\x20directionBasedAttenuation=smoothstep(-0.17,0.0,dot(reflectionNormal,-reflectionVector));\x0aattenuation*=directionBasedAttenuation;\x0a#endif\x0areturn\x20attenuation;\x0a}\x0a#endif\x0avoid\x20main()\x0a{\x0a#ifdef\x20SSR_SUPPORTED\x0avec4\x20colorFull=TEXTUREFUNC(textureSampler,vUV,0.0);\x0avec3\x20color=colorFull.rgb;\x0avec4\x20reflectivity=TEXTUREFUNC(reflectivitySampler,vUV,0.0);\x0aif\x20(max(reflectivity.r,max(reflectivity.g,reflectivity.b))<=reflectivityThreshold)\x20{\x0a#ifdef\x20SSR_USE_BLUR\x0agl_FragColor=vec4(0.);\x0a#else\x0agl_FragColor=colorFull;\x0a#endif\x0areturn;\x0a}\x0a#ifdef\x20SSR_INPUT_IS_GAMMA_SPACE\x0acolor=toLinearSpace(color);\x0a#endif\x0avec2\x20texSize=vec2(textureSize(depthSampler,0));\x0avec3\x20csNormal=texelFetch(normalSampler,ivec2(vUV*texSize),0).xyz;\x20\x0afloat\x20depth=texelFetch(depthSampler,ivec2(vUV*texSize),0).r;\x0avec3\x20csPosition=computeViewPosFromUVDepth(vUV,depth);\x0avec3\x20csViewDirection=normalize(csPosition);\x0avec3\x20csReflectedVector=reflect(csViewDirection,csNormal);\x0a#ifdef\x20SSR_USE_ENVIRONMENT_CUBE\x0avec3\x20wReflectedVector=vec3(invView*vec4(csReflectedVector,0.0));\x0a#ifdef\x20SSR_USE_LOCAL_REFLECTIONMAP_CUBIC\x0avec4\x20worldPos=invView*vec4(csPosition,1.0);\x0awReflectedVector=parallaxCorrectNormal(worldPos.xyz,normalize(wReflectedVector),vReflectionSize,vReflectionPosition);\x0a#endif\x0a#ifdef\x20SSR_INVERTCUBICMAP\x0awReflectedVector.y*=-1.0;\x0a#endif\x0a#ifdef\x20SSRAYTRACE_RIGHT_HANDED_SCENE\x0awReflectedVector.z*=-1.0;\x0a#endif\x0avec3\x20envColor=TEXTURECUBEFUNC(envCubeSampler,wReflectedVector,0.0).xyz;\x0a#ifdef\x20SSR_ENVIRONMENT_CUBE_IS_GAMMASPACE\x0aenvColor=toLinearSpace(envColor);\x0a#endif\x0a#else\x0avec3\x20envColor=color;\x0a#endif\x0afloat\x20reflectionAttenuation=1.0;\x0abool\x20rayHasHit=false;\x0avec2\x20startPixel;\x0avec2\x20hitPixel;\x0avec3\x20hitPoint;\x0afloat\x20numIterations;\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0avec3\x20debugColor;\x0a#endif\x0a#ifdef\x20SSR_ATTENUATE_FACING_CAMERA\x0areflectionAttenuation*=1.0-smoothstep(0.25,0.5,dot(-csViewDirection,csReflectedVector));\x0a#endif\x0aif\x20(reflectionAttenuation>0.0)\x20{\x0a#ifdef\x20SSR_USE_BLUR\x0avec3\x20jitt=vec3(0.);\x0a#else\x0afloat\x20roughness=1.0-reflectivity.a;\x0avec3\x20jitt=mix(vec3(0.0),hash(csPosition),roughness)*roughnessFactor;\x20\x0a#endif\x0avec2\x20uv2=vUV*texSize;\x0afloat\x20c=(uv2.x+uv2.y)*0.25;\x0afloat\x20jitter=mod(c,1.0);\x20\x0arayHasHit=traceScreenSpaceRay1(\x0acsPosition,\x0anormalize(csReflectedVector+jitt),\x0aprojectionPixel,\x0adepthSampler,\x0atexSize,\x0a#ifdef\x20SSRAYTRACE_USE_BACK_DEPTHBUFFER\x0abackDepthSampler,\x0abackSizeFactor,\x0a#endif\x0athickness,\x0anearPlaneZ,\x0astepSize,\x0ajitter,\x0amaxSteps,\x0amaxDistance,\x0aselfCollisionNumSkip,\x0astartPixel,\x0ahitPixel,\x0ahitPoint,\x0anumIterations\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0a,debugColor\x0a#endif\x0a);\x0a}\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0agl_FragColor=vec4(debugColor,1.);\x0areturn;\x0a#endif\x0avec3\x20F0=reflectivity.rgb;\x0avec3\x20fresnel=fresnelSchlick(max(dot(csNormal,-csViewDirection),0.0),F0);\x0avec3\x20SSR=envColor;\x0aif\x20(rayHasHit)\x20{\x0avec3\x20reflectedColor=texelFetch(textureSampler,ivec2(hitPixel),0).rgb;\x0a#ifdef\x20SSR_INPUT_IS_GAMMA_SPACE\x0areflectedColor=toLinearSpace(reflectedColor);\x0a#endif\x0areflectionAttenuation*=computeAttenuationForIntersection(ivec2(hitPixel),hitPixel/texSize,csPosition,hitPoint,csReflectedVector,maxDistance,numIterations);\x0aSSR=reflectedColor*reflectionAttenuation+(1.0-reflectionAttenuation)*envColor;\x0a}\x0aSSR*=fresnel;\x0a#ifdef\x20SSR_USE_BLUR\x0afloat\x20blur_radius=0.0;\x0afloat\x20roughness=1.0-reflectivity.a*(1.0-roughnessFactor);\x0aif\x20(roughness>0.001)\x20{\x0afloat\x20cone_angle=min(roughness,0.999)*3.14159265*0.5;\x0afloat\x20cone_len=distance(startPixel,hitPixel);\x0afloat\x20op_len=2.0*tan(cone_angle)*cone_len;\x20\x0afloat\x20a=op_len;\x0afloat\x20h=cone_len;\x0afloat\x20a2=a*a;\x0afloat\x20fh2=4.0f*h*h;\x0ablur_radius=(a*(sqrt(a2+fh2)-a))/(4.0f*h);\x0a}\x0agl_FragColor=vec4(SSR,blur_radius/255.0);\x20\x0a#else\x0avec3\x20reflectionMultiplier=clamp(pow(reflectivity.rgb*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);\x0avec3\x20colorMultiplier=1.0-reflectionMultiplier;\x0avec3\x20finalColor=(color*colorMultiplier)+(SSR*reflectionMultiplier);\x0a#ifdef\x20SSR_OUTPUT_IS_GAMMA_SPACE\x0afinalColor=toGammaSpace(finalColor);\x0a#endif\x0agl_FragColor=vec4(finalColor,colorFull.a);\x0a#endif\x0a#else\x0agl_FragColor=TEXTUREFUNC(textureSampler,vUV,0.0);\x0a#endif\x0a}\x0a','isParallelCompiled','#version\x20450\x0d\x0a','TEXTURE_CLAMP_ADDRESSMODE','_textureType','GetRightPlaneToRef','clientY','freeGroupIndex','sampleType','particleSystems','struct\x20Particle\x20{\x0aposition\x20:\x20vec3<f32>,\x0aage\x20:\x20f32,\x0asize\x20:\x20vec3<f32>,\x0alife\x20:\x20f32,\x0aseed\x20:\x20vec4<f32>,\x0adirection\x20:\x20vec3<f32>,\x0adummy0:\x20f32,\x0a#ifdef\x20CUSTOMEMITTER\x0ainitialPosition\x20:\x20vec3<f32>,\x0adummy1:\x20f32,\x0a#endif\x0a#ifndef\x20COLORGRADIENTS\x0acolor\x20:\x20vec4<f32>,\x0a#endif\x0a#ifndef\x20BILLBOARD\x0ainitialDirection\x20:\x20vec3<f32>,\x0adummy2:\x20f32,\x0a#endif\x0a#ifdef\x20NOISE\x0anoiseCoordinates1\x20:\x20vec3<f32>,\x0adummy3:\x20f32,\x0anoiseCoordinates2\x20:\x20vec3<f32>,\x0adummy4:\x20f32,\x0a#endif\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0aangle\x20:\x20f32,\x0a#else\x0aangle\x20:\x20vec2<f32>,\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0acellIndex\x20:\x20f32,\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0acellStartOffset\x20:\x20f32,\x0a#endif\x0a#endif\x0a};\x0astruct\x20Particles\x20{\x0aparticles\x20:\x20array<Particle>,\x0a};\x0astruct\x20SimParams\x20{\x0acurrentCount\x20:\x20f32,\x0atimeDelta\x20:\x20f32,\x0astopFactor\x20:\x20f32,\x0arandomTextureSize:\x20i32,\x0alifeTime\x20:\x20vec2<f32>,\x0aemitPower\x20:\x20vec2<f32>,\x0a#ifndef\x20COLORGRADIENTS\x0acolor1\x20:\x20vec4<f32>,\x0acolor2\x20:\x20vec4<f32>,\x0a#endif\x0asizeRange\x20:\x20vec2<f32>,\x0ascaleRange\x20:\x20vec4<f32>,\x0aangleRange\x20:\x20vec4<f32>,\x0agravity\x20:\x20vec3<f32>,\x0a#ifdef\x20LIMITVELOCITYGRADIENTS\x0alimitVelocityDamping\x20:\x20f32,\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0acellInfos\x20:\x20vec4<f32>,\x0a#endif\x0a#ifdef\x20NOISE\x0anoiseStrength\x20:\x20vec3<f32>,\x0a#endif\x0a#ifndef\x20LOCAL\x0aemitterWM\x20:\x20mat4x4<f32>,\x0a#endif\x0a#ifdef\x20BOXEMITTER\x0adirection1\x20:\x20vec3<f32>,\x0adirection2\x20:\x20vec3<f32>,\x0aminEmitBox\x20:\x20vec3<f32>,\x0amaxEmitBox\x20:\x20vec3<f32>,\x0a#endif\x0a#ifdef\x20CONEEMITTER\x0aradius\x20:\x20vec2<f32>,\x0aconeAngle\x20:\x20f32,\x0aheight\x20:\x20vec2<f32>,\x0adirectionRandomizer\x20:\x20f32,\x0a#endif\x0a#ifdef\x20CYLINDEREMITTER\x0aradius\x20:\x20f32,\x0aheight\x20:\x20f32,\x0aradiusRange\x20:\x20f32,\x0a#ifdef\x20DIRECTEDCYLINDEREMITTER\x0adirection1\x20:\x20vec3<f32>,\x0adirection2\x20:\x20vec3<f32>,\x0a#else\x0adirectionRandomizer\x20:\x20f32,\x0a#endif\x0a#endif\x0a#ifdef\x20HEMISPHERICEMITTER\x0aradius\x20:\x20f32,\x0aradiusRange\x20:\x20f32,\x0adirectionRandomizer\x20:\x20f32,\x0a#endif\x0a#ifdef\x20POINTEMITTER\x0adirection1\x20:\x20vec3<f32>,\x0adirection2\x20:\x20vec3<f32>,\x0a#endif\x0a#ifdef\x20SPHEREEMITTER\x0aradius\x20:\x20f32,\x0aradiusRange\x20:\x20f32,\x0a#ifdef\x20DIRECTEDSPHEREEMITTER\x0adirection1\x20:\x20vec3<f32>,\x0adirection2\x20:\x20vec3<f32>,\x0a#else\x0adirectionRandomizer\x20:\x20f32,\x0a#endif\x0a#endif\x0a};\x0a@binding(0)\x20@group(0)\x20var<uniform>\x20params\x20:\x20SimParams;\x0a@binding(1)\x20@group(0)\x20var<storage,read>\x20particlesIn\x20:\x20Particles;\x0a@binding(2)\x20@group(0)\x20var<storage,read_write>\x20particlesOut\x20:\x20Particles;\x0a@binding(3)\x20@group(0)\x20var\x20randomTexture\x20:\x20texture_2d<f32>;\x0a@binding(4)\x20@group(0)\x20var\x20randomTexture2\x20:\x20texture_2d<f32>;\x0a#ifdef\x20SIZEGRADIENTS\x0a@binding(0)\x20@group(1)\x20var\x20sizeGradientSampler\x20:\x20sampler;\x0a@binding(1)\x20@group(1)\x20var\x20sizeGradientTexture\x20:\x20texture_2d<f32>;\x0a#endif\x20\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0a@binding(2)\x20@group(1)\x20var\x20angularSpeedGradientSampler\x20:\x20sampler;\x0a@binding(3)\x20@group(1)\x20var\x20angularSpeedGradientTexture\x20:\x20texture_2d<f32>;\x0a#endif\x20\x0a#ifdef\x20VELOCITYGRADIENTS\x0a@binding(4)\x20@group(1)\x20var\x20velocityGradientSampler\x20:\x20sampler;\x0a@binding(5)\x20@group(1)\x20var\x20velocityGradientTexture\x20:\x20texture_2d<f32>;\x0a#endif\x0a#ifdef\x20LIMITVELOCITYGRADIENTS\x0a@binding(6)\x20@group(1)\x20var\x20limitVelocityGradientSampler\x20:\x20sampler;\x0a@binding(7)\x20@group(1)\x20var\x20limitVelocityGradientTexture\x20:\x20texture_2d<f32>;\x0a#endif\x0a#ifdef\x20DRAGGRADIENTS\x0a@binding(8)\x20@group(1)\x20var\x20dragGradientSampler\x20:\x20sampler;\x0a@binding(9)\x20@group(1)\x20var\x20dragGradientTexture\x20:\x20texture_2d<f32>;\x0a#endif\x0a#ifdef\x20NOISE\x0a@binding(10)\x20@group(1)\x20var\x20noiseSampler\x20:\x20sampler;\x0a@binding(11)\x20@group(1)\x20var\x20noiseTexture\x20:\x20texture_2d<f32>;\x0a#endif\x0afn\x20getRandomVec3(offset\x20:\x20f32,vertexID\x20:\x20f32)->vec3<f32>\x20{\x0areturn\x20textureLoad(randomTexture2,vec2<i32>(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize))\x20%\x20params.randomTextureSize,0),0).rgb;\x0a}\x0afn\x20getRandomVec4(offset\x20:\x20f32,vertexID\x20:\x20f32)->vec4<f32>\x20{\x0areturn\x20textureLoad(randomTexture,vec2<i32>(i32(vertexID*offset/params.currentCount*f32(params.randomTextureSize))\x20%\x20params.randomTextureSize,0),0);\x0a}\x0a@compute\x20@workgroup_size(64)\x0afn\x20main(@builtin(global_invocation_id)\x20GlobalInvocationID\x20:\x20vec3<u32>)\x20{\x0alet\x20index\x20:\x20u32=GlobalInvocationID.x;\x0alet\x20vertexID\x20:\x20f32=f32(index);\x0aif\x20(index>=u32(params.currentCount))\x20{\x0areturn;\x0a}\x0alet\x20PI\x20:\x20f32=3.14159;\x0alet\x20timeDelta\x20:\x20f32=params.timeDelta;\x0alet\x20newAge\x20:\x20f32=particlesIn.particles[index].age+timeDelta;\x0alet\x20life\x20:\x20f32=particlesIn.particles[index].life;\x0alet\x20seed\x20:\x20vec4<f32>=particlesIn.particles[index].seed;\x0alet\x20direction\x20:\x20vec3<f32>=particlesIn.particles[index].direction;\x0aif\x20(newAge>=life\x20&&\x20params.stopFactor\x20!=\x200.)\x20{\x0avar\x20newPosition\x20:\x20vec3<f32>;\x0avar\x20newDirection\x20:\x20vec3<f32>;\x0alet\x20randoms\x20:\x20vec4<f32>=getRandomVec4(seed.x,vertexID);\x0alet\x20outLife\x20:\x20f32=params.lifeTime.x+(params.lifeTime.y-params.lifeTime.x)*randoms.r;\x0aparticlesOut.particles[index].life=outLife;\x0aparticlesOut.particles[index].age=newAge-life;\x0aparticlesOut.particles[index].seed=seed;\x0avar\x20sizex\x20:\x20f32;\x0a#ifdef\x20SIZEGRADIENTS\x20\x0asizex=textureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2<f32>(0.,0.),0.).r;\x0a#else\x0asizex=params.sizeRange.x+(params.sizeRange.y-params.sizeRange.x)*randoms.g;\x0a#endif\x0aparticlesOut.particles[index].size=vec3<f32>(\x0asizex,\x0aparams.scaleRange.x+(params.scaleRange.y-params.scaleRange.x)*randoms.b,\x0aparams.scaleRange.z+(params.scaleRange.w-params.scaleRange.z)*randoms.a);\x0a#ifndef\x20COLORGRADIENTS\x0aparticlesOut.particles[index].color=params.color1+(params.color2-params.color1)*randoms.b;\x0a#endif\x0a#ifndef\x20ANGULARSPEEDGRADIENTS\x20\x0aparticlesOut.particles[index].angle=vec2<f32>(\x0aparams.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r,\x0aparams.angleRange.x+(params.angleRange.y-params.angleRange.x)*randoms.a);\x0a#else\x0aparticlesOut.particles[index].angle=params.angleRange.z+(params.angleRange.w-params.angleRange.z)*randoms.r;\x0a#endif\x20\x0a#if\x20defined(POINTEMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0anewPosition=vec3<f32>(0.,0.,0.);\x0anewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\x0a#elif\x20defined(BOXEMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0anewPosition=params.minEmitBox+(params.maxEmitBox-params.minEmitBox)*randoms2;\x0anewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\x20\x0a#elif\x20defined(HEMISPHERICEMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0alet\x20phi\x20:\x20f32=2.0*PI*randoms2.x;\x0alet\x20theta\x20:\x20f32=acos(-1.0+2.0*randoms2.y);\x0alet\x20randX\x20:\x20f32=cos(phi)*sin(theta);\x0alet\x20randY\x20:\x20f32=cos(theta);\x0alet\x20randZ\x20:\x20f32=sin(phi)*sin(theta);\x0anewPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3<f32>(randX,abs(randY),randZ);\x0anewDirection=normalize(newPosition+params.directionRandomizer*randoms3);\x0a#elif\x20defined(SPHEREEMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0alet\x20phi\x20:\x20f32=2.0*PI*randoms2.x;\x0alet\x20theta\x20:\x20f32=acos(-1.0+2.0*randoms2.y);\x0alet\x20randX\x20:\x20f32=cos(phi)*sin(theta);\x0alet\x20randY\x20:\x20f32=cos(theta);\x0alet\x20randZ\x20:\x20f32=sin(phi)*sin(theta);\x0anewPosition=(params.radius-(params.radius*params.radiusRange*randoms2.z))*vec3<f32>(randX,randY,randZ);\x0a#ifdef\x20DIRECTEDSPHEREEMITTER\x0anewDirection=normalize(params.direction1+(params.direction2-params.direction1)*randoms3);\x0a#else\x0anewDirection=normalize(newPosition+params.directionRandomizer*randoms3);\x0a#endif\x0a#elif\x20defined(CYLINDEREMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0alet\x20yPos\x20:\x20f32=(-0.5+randoms2.x)*params.height;\x0avar\x20angle\x20:\x20f32=randoms2.y*PI*2.;\x0alet\x20inverseRadiusRangeSquared\x20:\x20f32=(1.-params.radiusRange)*(1.-params.radiusRange);\x0alet\x20positionRadius\x20:\x20f32=params.radius*sqrt(inverseRadiusRangeSquared+randoms2.z*(1.-inverseRadiusRangeSquared));\x0alet\x20xPos\x20:\x20f32=positionRadius*cos(angle);\x0alet\x20zPos\x20:\x20f32=positionRadius*sin(angle);\x0anewPosition=vec3<f32>(xPos,yPos,zPos);\x0a#ifdef\x20DIRECTEDCYLINDEREMITTER\x0anewDirection=params.direction1+(params.direction2-params.direction1)*randoms3;\x0a#else\x0aangle=angle+(-0.5+randoms3.x)*PI*params.directionRandomizer;\x0anewDirection=vec3<f32>(cos(angle),(-0.5+randoms3.y)*params.directionRandomizer,sin(angle));\x0anewDirection=normalize(newDirection);\x0a#endif\x0a#elif\x20defined(CONEEMITTER)\x0alet\x20randoms2\x20:\x20vec3<f32>=getRandomVec3(seed.y,vertexID);\x0alet\x20s\x20:\x20f32=2.0*PI*randoms2.x;\x0a#ifdef\x20CONEEMITTERSPAWNPOINT\x0alet\x20h\x20:\x20f32=0.0001;\x0a#else\x0avar\x20h\x20:\x20f32=randoms2.y*params.height.y;\x0ah=1.-h*h;\x20\x0a#endif\x0avar\x20lRadius\x20:\x20f32=params.radius.x-params.radius.x*randoms2.z*params.radius.y;\x0alRadius=lRadius*h;\x0alet\x20randX\x20:\x20f32=lRadius*sin(s);\x0alet\x20randZ\x20:\x20f32=lRadius*cos(s);\x0alet\x20randY\x20:\x20f32=h\x20*params.height.x;\x0anewPosition=vec3<f32>(randX,randY,randZ);\x20\x0aif\x20(abs(cos(params.coneAngle))==1.0)\x20{\x0anewDirection=vec3<f32>(0.,1.0,0.);\x0a}\x20else\x20{\x0alet\x20randoms3\x20:\x20vec3<f32>=getRandomVec3(seed.z,vertexID);\x0anewDirection=normalize(newPosition+params.directionRandomizer*randoms3);\x20\x0a}\x0a#elif\x20defined(CUSTOMEMITTER)\x0anewPosition=particlesIn.particles[index].initialPosition;\x0aparticlesOut.particles[index].initialPosition=newPosition;\x0a#else\x20\x0anewPosition=vec3<f32>(0.,0.,0.);\x0anewDirection=2.0*(getRandomVec3(seed.w,vertexID)-vec3<f32>(0.5,0.5,0.5));\x0a#endif\x0alet\x20power\x20:\x20f32=params.emitPower.x+(params.emitPower.y-params.emitPower.x)*randoms.a;\x0a#ifdef\x20LOCAL\x0aparticlesOut.particles[index].position=newPosition;\x0a#else\x0aparticlesOut.particles[index].position=(params.emitterWM*vec4<f32>(newPosition,1.)).xyz;\x0a#endif\x0a#ifdef\x20CUSTOMEMITTER\x0aparticlesOut.particles[index].direction=direction;\x0a#ifndef\x20BILLBOARD\x20\x0aparticlesOut.particles[index].initialDirection=direction;\x0a#endif\x0a#else\x0a#ifdef\x20LOCAL\x0alet\x20initial\x20:\x20vec3<f32>=newDirection;\x0a#else\x20\x0alet\x20initial\x20:\x20vec3<f32>=(params.emitterWM*vec4<f32>(newDirection,0.)).xyz;\x0a#endif\x0aparticlesOut.particles[index].direction=initial*power;\x0a#ifndef\x20BILLBOARD\x20\x0aparticlesOut.particles[index].initialDirection=initial;\x0a#endif\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x20\x0aparticlesOut.particles[index].cellIndex=params.cellInfos.x;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0aparticlesOut.particles[index].cellStartOffset=randoms.a*outLife;\x0a#endif\x20\x0a#endif\x0a#ifdef\x20NOISE\x0aparticlesOut.particles[index].noiseCoordinates1=particlesIn.particles[index].noiseCoordinates1;\x0aparticlesOut.particles[index].noiseCoordinates2=particlesIn.particles[index].noiseCoordinates2;\x0a#endif\x0a}\x20else\x20{\x0avar\x20directionScale\x20:\x20f32=timeDelta;\x0aparticlesOut.particles[index].age=newAge;\x0alet\x20ageGradient\x20:\x20f32=newAge/life;\x0a#ifdef\x20VELOCITYGRADIENTS\x0adirectionScale=directionScale*textureSampleLevel(velocityGradientTexture,velocityGradientSampler,vec2<f32>(ageGradient,0.),0.).r;\x0a#endif\x0a#ifdef\x20DRAGGRADIENTS\x0adirectionScale=directionScale*(1.0-textureSampleLevel(dragGradientTexture,dragGradientSampler,vec2<f32>(ageGradient,0.),0.).r);\x0a#endif\x0alet\x20position\x20:\x20vec3<f32>=particlesIn.particles[index].position;\x0a#if\x20defined(CUSTOMEMITTER)\x0aparticlesOut.particles[index].position=position+(direction-position)*ageGradient;\x20\x0aparticlesOut.particles[index].initialPosition=particlesIn.particles[index].initialPosition;\x0a#else\x0aparticlesOut.particles[index].position=position+direction*directionScale;\x0a#endif\x0aparticlesOut.particles[index].life=life;\x0aparticlesOut.particles[index].seed=seed;\x0a#ifndef\x20COLORGRADIENTS\x20\x0aparticlesOut.particles[index].color=particlesIn.particles[index].color;\x0a#endif\x0a#ifdef\x20SIZEGRADIENTS\x0aparticlesOut.particles[index].size=vec3<f32>(\x0atextureSampleLevel(sizeGradientTexture,sizeGradientSampler,vec2<f32>(ageGradient,0.),0.).r,\x0aparticlesIn.particles[index].size.yz);\x0a#else\x0aparticlesOut.particles[index].size=particlesIn.particles[index].size;\x0a#endif\x20\x0a#ifndef\x20BILLBOARD\x20\x0aparticlesOut.particles[index].initialDirection=particlesIn.particles[index].initialDirection;\x0a#endif\x0a#ifdef\x20CUSTOMEMITTER\x0aparticlesOut.particles[index].direction=direction;\x0a#else\x0avar\x20updatedDirection\x20:\x20vec3<f32>=direction+params.gravity*timeDelta;\x0a#ifdef\x20LIMITVELOCITYGRADIENTS\x0alet\x20limitVelocity\x20:\x20f32=textureSampleLevel(limitVelocityGradientTexture,limitVelocityGradientSampler,vec2<f32>(ageGradient,0.),0.).r;\x0alet\x20currentVelocity\x20:\x20f32=length(updatedDirection);\x0aif\x20(currentVelocity>limitVelocity)\x20{\x0aupdatedDirection=updatedDirection*params.limitVelocityDamping;\x0a}\x0a#endif\x0aparticlesOut.particles[index].direction=updatedDirection;\x0a#ifdef\x20NOISE\x0alet\x20noiseCoordinates1\x20:\x20vec3<f32>=particlesIn.particles[index].noiseCoordinates1;\x0alet\x20noiseCoordinates2\x20:\x20vec3<f32>=particlesIn.particles[index].noiseCoordinates2;\x0alet\x20fetchedR\x20:\x20f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates1.x,noiseCoordinates1.y)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;\x0alet\x20fetchedG\x20:\x20f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates1.z,noiseCoordinates2.x)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;\x0alet\x20fetchedB\x20:\x20f32=textureSampleLevel(noiseTexture,noiseSampler,vec2<f32>(noiseCoordinates2.y,noiseCoordinates2.z)*vec2<f32>(0.5,0.5)+vec2<f32>(0.5,0.5),0.).r;\x0alet\x20force\x20:\x20vec3<f32>=vec3<f32>(-1.+2.*fetchedR,-1.+2.*fetchedG,-1.+2.*fetchedB)*params.noiseStrength;\x0aparticlesOut.particles[index].direction=particlesOut.particles[index].direction+force*timeDelta;\x0aparticlesOut.particles[index].noiseCoordinates1=noiseCoordinates1;\x0aparticlesOut.particles[index].noiseCoordinates2=noiseCoordinates2;\x0a#endif\x20\x0a#endif\x20\x0a#ifdef\x20ANGULARSPEEDGRADIENTS\x0alet\x20angularSpeed\x20:\x20f32=textureSampleLevel(angularSpeedGradientTexture,angularSpeedGradientSampler,vec2<f32>(ageGradient,0.),0.).r;\x0aparticlesOut.particles[index].angle=particlesIn.particles[index].angle+angularSpeed*timeDelta;\x0a#else\x0alet\x20angle\x20:\x20vec2<f32>=particlesIn.particles[index].angle;\x0aparticlesOut.particles[index].angle=vec2<f32>(angle.x+angle.y*timeDelta,angle.y);\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x20\x0avar\x20offsetAge\x20:\x20f32=particlesOut.particles[index].age;\x0alet\x20dist\x20:\x20f32=params.cellInfos.y-params.cellInfos.x;\x0a#ifdef\x20ANIMATESHEETRANDOMSTART\x0alet\x20cellStartOffset\x20:\x20f32=particlesIn.particles[index].cellStartOffset;\x0aparticlesOut.particles[index].cellStartOffset=cellStartOffset;\x0aoffsetAge=offsetAge+cellStartOffset;\x0a#else\x0alet\x20cellStartOffset\x20:\x20f32=0.;\x0a#endif\x20\x0avar\x20ratio\x20:\x20f32;\x0aif\x20(params.cellInfos.w==1.0)\x20{\x0aratio=clamp(((cellStartOffset+params.cellInfos.z*offsetAge)\x20%\x20life)/life,0.,1.0);\x0a}\x0aelse\x20{\x0aratio=clamp((cellStartOffset+params.cellInfos.z*offsetAge)/life,0.,1.0);\x0a}\x0aparticlesOut.particles[index].cellIndex=f32(i32(params.cellInfos.x+ratio*dist));\x0a#endif\x0a}\x0a}\x0a','_createCompositionEffect','projection','_itemLength','cos','#define\x20RECIPROCAL_PI2\x200.15915494','_removeOnDetach','vec4\x20glFragCoord_;\x0a','unshift','replace','uv3','file:','uniform\x20vec4\x20color;\x0a','pickId','buildTextureLayout','#ifdef\x20NUM_SAMPLES\x0a#if\x20NUM_SAMPLES>0\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0afloat\x20radicalInverse_VdC(uint\x20bits)\x20\x0a{\x0abits=(bits<<16u)\x20|\x20(bits>>16u);\x0abits=((bits\x20&\x200x55555555u)<<1u)\x20|\x20((bits\x20&\x200xAAAAAAAAu)>>1u);\x0abits=((bits\x20&\x200x33333333u)<<2u)\x20|\x20((bits\x20&\x200xCCCCCCCCu)>>2u);\x0abits=((bits\x20&\x200x0F0F0F0Fu)<<4u)\x20|\x20((bits\x20&\x200xF0F0F0F0u)>>4u);\x0abits=((bits\x20&\x200x00FF00FFu)<<8u)\x20|\x20((bits\x20&\x200xFF00FF00u)>>8u);\x0areturn\x20float(bits)*2.3283064365386963e-10;\x20\x0a}\x0avec2\x20hammersley(uint\x20i,uint\x20N)\x0a{\x0areturn\x20vec2(float(i)/float(N),radicalInverse_VdC(i));\x0a}\x0a#else\x0afloat\x20vanDerCorpus(int\x20n,int\x20base)\x0a{\x0afloat\x20invBase=1.0/float(base);\x0afloat\x20denom\x20=1.0;\x0afloat\x20result\x20=0.0;\x0afor(int\x20i=0;\x20i<32;\x20++i)\x0a{\x0aif(n>0)\x0a{\x0adenom\x20=mod(float(n),2.0);\x0aresult+=denom*invBase;\x0ainvBase=invBase/2.0;\x0an\x20=int(float(n)/2.0);\x0a}\x0a}\x0areturn\x20result;\x0a}\x0avec2\x20hammersley(int\x20i,int\x20N)\x0a{\x0areturn\x20vec2(float(i)/float(N),vanDerCorpus(i,2));\x0a}\x0a#endif\x0afloat\x20log4(float\x20x)\x20{\x0areturn\x20log2(x)/2.;\x0a}\x0aconst\x20float\x20NUM_SAMPLES_FLOAT=float(NUM_SAMPLES);\x0aconst\x20float\x20NUM_SAMPLES_FLOAT_INVERSED=1./NUM_SAMPLES_FLOAT;\x0aconst\x20float\x20K=4.;\x0a#define\x20inline\x0avec3\x20irradiance(samplerCube\x20inputTexture,vec3\x20inputN,vec2\x20filteringInfo)\x0a{\x0avec3\x20n=normalize(inputN);\x0avec3\x20result=vec3(0.0);\x0avec3\x20tangent=abs(n.z)<0.999\x20?\x20vec3(0.,0.,1.)\x20:\x20vec3(1.,0.,0.);\x0atangent=normalize(cross(tangent,n));\x0avec3\x20bitangent=cross(n,tangent);\x0amat3\x20tbn=mat3(tangent,bitangent,n);\x0afloat\x20maxLevel=filteringInfo.y;\x0afloat\x20dim0=filteringInfo.x;\x0afloat\x20omegaP=(4.*PI)/(6.*dim0*dim0);\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0afor(uint\x20i=0u;\x20i<NUM_SAMPLES;\x20++i)\x0a#else\x0afor(int\x20i=0;\x20i<NUM_SAMPLES;\x20++i)\x0a#endif\x0a{\x0avec2\x20Xi=hammersley(i,NUM_SAMPLES);\x0avec3\x20Ls=hemisphereCosSample(Xi);\x0aLs=normalize(Ls);\x0avec3\x20Ns=vec3(0.,0.,1.);\x0afloat\x20NoL=dot(Ns,Ls);\x0aif\x20(NoL>0.)\x20{\x0afloat\x20pdf_inversed=PI/NoL;\x0afloat\x20omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;\x0afloat\x20l=log4(omegaS)-log4(omegaP)+log4(K);\x0afloat\x20mipLevel=clamp(l,0.0,maxLevel);\x0avec3\x20c=textureCubeLodEXT(inputTexture,tbn*Ls,mipLevel).rgb;\x0a#ifdef\x20GAMMA_INPUT\x0ac=toLinearSpace(c);\x0a#endif\x0aresult+=c;\x0a}\x0a}\x0aresult=result*NUM_SAMPLES_FLOAT_INVERSED;\x0areturn\x20result;\x0a}\x0a#define\x20inline\x0avec3\x20radiance(float\x20alphaG,samplerCube\x20inputTexture,vec3\x20inputN,vec2\x20filteringInfo)\x0a{\x0avec3\x20n=normalize(inputN);\x0aif\x20(alphaG==0.)\x20{\x0avec3\x20c=textureCube(inputTexture,n).rgb;\x0a#ifdef\x20GAMMA_INPUT\x0ac=toLinearSpace(c);\x0a#endif\x0areturn\x20c;\x0a}\x20else\x20{\x0avec3\x20result=vec3(0.);\x0avec3\x20tangent=abs(n.z)<0.999\x20?\x20vec3(0.,0.,1.)\x20:\x20vec3(1.,0.,0.);\x0atangent=normalize(cross(tangent,n));\x0avec3\x20bitangent=cross(n,tangent);\x0amat3\x20tbn=mat3(tangent,bitangent,n);\x0afloat\x20maxLevel=filteringInfo.y;\x0afloat\x20dim0=filteringInfo.x;\x0afloat\x20omegaP=(4.*PI)/(6.*dim0*dim0);\x0afloat\x20weight=0.;\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0afor(uint\x20i=0u;\x20i<NUM_SAMPLES;\x20++i)\x0a#else\x0afor(int\x20i=0;\x20i<NUM_SAMPLES;\x20++i)\x0a#endif\x0a{\x0avec2\x20Xi=hammersley(i,NUM_SAMPLES);\x0avec3\x20H=hemisphereImportanceSampleDggx(Xi,alphaG);\x0afloat\x20NoV=1.;\x0afloat\x20NoH=H.z;\x0afloat\x20NoH2=H.z*H.z;\x0afloat\x20NoL=2.*NoH2-1.;\x0avec3\x20L=vec3(2.*NoH*H.x,2.*NoH*H.y,NoL);\x0aL=normalize(L);\x0aif\x20(NoL>0.)\x20{\x0afloat\x20pdf_inversed=4./normalDistributionFunction_TrowbridgeReitzGGX(NoH,alphaG);\x0afloat\x20omegaS=NUM_SAMPLES_FLOAT_INVERSED*pdf_inversed;\x0afloat\x20l=log4(omegaS)-log4(omegaP)+log4(K);\x0afloat\x20mipLevel=clamp(float(l),0.0,maxLevel);\x0aweight+=NoL;\x0avec3\x20c=textureCubeLodEXT(inputTexture,tbn*L,mipLevel).rgb;\x0a#ifdef\x20GAMMA_INPUT\x0ac=toLinearSpace(c);\x0a#endif\x0aresult+=c*NoL;\x0a}\x0a}\x0aresult=result/weight;\x0areturn\x20result;\x0a}\x0a}\x0a#endif\x0a#endif\x0a','_useInstancing','_bundleEncoder','#define\x20RECIPROCAL_PI2\x200.15915494\x0a#define\x20RECIPROCAL_PI\x200.31830988618\x0a#define\x20MINIMUMVARIANCE\x200.0005\x0afloat\x20convertRoughnessToAverageSlope(float\x20roughness)\x0a{\x0areturn\x20square(roughness)+MINIMUMVARIANCE;\x0a}\x0afloat\x20fresnelGrazingReflectance(float\x20reflectance0)\x20{\x0afloat\x20reflectance90=saturate(reflectance0*25.0);\x0areturn\x20reflectance90;\x0a}\x0avec2\x20getAARoughnessFactors(vec3\x20normalVector)\x20{\x0a#ifdef\x20SPECULARAA\x0avec3\x20nDfdx=dFdx(normalVector.xyz);\x0avec3\x20nDfdy=dFdy(normalVector.xyz);\x0afloat\x20slopeSquare=max(dot(nDfdx,nDfdx),dot(nDfdy,nDfdy));\x0afloat\x20geometricRoughnessFactor=pow(saturate(slopeSquare),0.333);\x0afloat\x20geometricAlphaGFactor=sqrt(slopeSquare);\x0ageometricAlphaGFactor*=0.75;\x0areturn\x20vec2(geometricRoughnessFactor,geometricAlphaGFactor);\x0a#else\x0areturn\x20vec2(0.);\x0a#endif\x0a}\x0a#ifdef\x20ANISOTROPIC\x0avec2\x20getAnisotropicRoughness(float\x20alphaG,float\x20anisotropy)\x20{\x0afloat\x20alphaT=max(alphaG*(1.0+anisotropy),MINIMUMVARIANCE);\x0afloat\x20alphaB=max(alphaG*(1.0-anisotropy),MINIMUMVARIANCE);\x0areturn\x20vec2(alphaT,alphaB);\x0a}\x0avec3\x20getAnisotropicBentNormals(const\x20vec3\x20T,const\x20vec3\x20B,const\x20vec3\x20N,const\x20vec3\x20V,float\x20anisotropy)\x20{\x0avec3\x20anisotropicFrameDirection=anisotropy>=0.0\x20?\x20B\x20:\x20T;\x0avec3\x20anisotropicFrameTangent=cross(normalize(anisotropicFrameDirection),V);\x0avec3\x20anisotropicFrameNormal=cross(anisotropicFrameTangent,anisotropicFrameDirection);\x0avec3\x20anisotropicNormal=normalize(mix(N,anisotropicFrameNormal,abs(anisotropy)));\x0areturn\x20anisotropicNormal;\x0a}\x0a#endif\x0a#if\x20defined(CLEARCOAT)\x20||\x20defined(SS_REFRACTION)\x0avec3\x20cocaLambert(vec3\x20alpha,float\x20distance)\x20{\x0areturn\x20exp(-alpha*distance);\x0a}\x0avec3\x20cocaLambert(float\x20NdotVRefract,float\x20NdotLRefract,vec3\x20alpha,float\x20thickness)\x20{\x0areturn\x20cocaLambert(alpha,(thickness*((NdotLRefract+NdotVRefract)/(NdotLRefract*NdotVRefract))));\x0a}\x0avec3\x20computeColorAtDistanceInMedia(vec3\x20color,float\x20distance)\x20{\x0areturn\x20-log(color)/distance;\x0a}\x0avec3\x20computeClearCoatAbsorption(float\x20NdotVRefract,float\x20NdotLRefract,vec3\x20clearCoatColor,float\x20clearCoatThickness,float\x20clearCoatIntensity)\x20{\x0avec3\x20clearCoatAbsorption=mix(vec3(1.0),\x0acocaLambert(NdotVRefract,NdotLRefract,clearCoatColor,clearCoatThickness),\x0aclearCoatIntensity);\x0areturn\x20clearCoatAbsorption;\x0a}\x0a#endif\x0a#ifdef\x20MICROSURFACEAUTOMATIC\x0afloat\x20computeDefaultMicroSurface(float\x20microSurface,vec3\x20reflectivityColor)\x0a{\x0aconst\x20float\x20kReflectivityNoAlphaWorkflow_SmoothnessMax=0.95;\x0afloat\x20reflectivityLuminance=getLuminance(reflectivityColor);\x0afloat\x20reflectivityLuma=sqrt(reflectivityLuminance);\x0amicroSurface=reflectivityLuma*kReflectivityNoAlphaWorkflow_SmoothnessMax;\x0areturn\x20microSurface;\x0a}\x0a#endif\x0a','incrementReferences','_videoSampler','_samplerDeclaration','backgroundVertexDeclaration','canRead','screenSpaceCurvaturePixelShader','depthFunc','void\x20main(void)\x20{\x0d\x0a','endOcclusionQuery','_unTranslatedPointerX','_deserialize','ALPHA_MAXIMIZED','_glslang','ACTION_OnPickOutTrigger','#include<__decl__boundingBoxRendererFragment>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0agl_FragColor=color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','getDiffusionProfileParameters','_bonesComputationForcedToCPU','_attributeNextLocation','ExclusiveDoubleClickMode','dataStoreDataCurrentBufferBlockIndex','Texture;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#define\x20','albedoSampler','UNPACK_PREMULTIPLY_ALPHA_WEBGL','getTextureMatrix','length','FRAMEBUFFER','first','FromArray','string','currentViewProjection','position','clickInfo','RGBA8Uint','CreateNewFromPrimitive','skyPixelShader','groupIndex','processingContext','vClipPlane4','pointerDownPredicate','_currentBoundBuffer','MODE_TOPBOTTOM','struct\x20Mesh\x20{\x0aworld\x20:\x20mat4x4<f32>,\x0avisibility\x20:\x20f32,\x0a};\x0avar<uniform>\x20mesh\x20:\x20Mesh;\x0a#define\x20WORLD_UBO\x0a','#ifdef\x20WEBGL2\x0auniform\x20vec4\x20color;\x0auniform\x20mat4\x20world;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20MULTIVIEW\x0auniform\x20mat4\x20viewProjectionR;\x0a#endif\x0a#else\x0alayout(std140,column_major)\x20uniform;\x0auniform\x20BoundingBoxRenderer\x20{\x0avec4\x20color;\x0amat4\x20world;\x0amat4\x20viewProjection;\x0amat4\x20viewProjectionR;\x0a};\x0a#endif\x0a','videoWidth','deleteQuery','_postProcessRunningIndex',')\x0d\x0a','enablePhysics','compute','Float\x20textures\x20are\x20not\x20supported.\x20Cube\x20render\x20target\x20forced\x20to\x20TEXTURETYPE_UNESIGNED_BYTE\x20type','setMatrix3x3','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20screenSize;\x0auniform\x20vec2\x20direction;\x0auniform\x20float\x20blurWidth;\x0afloat\x20getLuminance(vec3\x20color)\x0a{\x0areturn\x20dot(color,vec3(0.2126,0.7152,0.0722));\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0afloat\x20weights[7];\x0aweights[0]=0.05;\x0aweights[1]=0.1;\x0aweights[2]=0.2;\x0aweights[3]=0.3;\x0aweights[4]=0.2;\x0aweights[5]=0.1;\x0aweights[6]=0.05;\x0avec2\x20texelSize=vec2(1.0/screenSize.x,1.0/screenSize.y);\x0avec2\x20texelStep=texelSize*direction*blurWidth;\x0avec2\x20start=vUV-3.0*texelStep;\x0avec4\x20baseColor=vec4(0.,0.,0.,0.);\x0avec2\x20texelOffset=vec2(0.,0.);\x0afor\x20(int\x20i=0;\x20i<7;\x20i++)\x0a{\x0avec4\x20texel=texture2D(textureSampler,start+texelOffset);\x0abaseColor.a+=texel.a*weights[i];\x0afloat\x20luminance=getLuminance(baseColor.rgb);\x0afloat\x20luminanceTexel=getLuminance(texel.rgb);\x0afloat\x20choice=step(luminanceTexel,luminance);\x0abaseColor.rgb=choice*baseColor.rgb+(1.0-choice)*texel.rgb;\x0atexelOffset+=texelStep;\x0a}\x0agl_FragColor=baseColor;\x0a}','TransformCoordinatesFromFloatsToRef','#define\x20','R32Float','Unable\x20to\x20create\x20dynamic\x20uniform\x20buffer','_isSwiping','_beforeCompositionPostProcesses','framebufferTexture2D','decalMap','createRawTexture','BC4RUnorm','textureSampler','fresnelFunction','TEXTUREFORMAT_COMPRESSED_RGB_BPTC_SIGNED_FLOAT','_prepareVRComponent','ASTC8x8Unorm','canLoad','webGLVersion','defineProperty','read_write','#ifdef\x20PREPASS\x0a#extension\x20GL_EXT_draw_buffers\x20:\x20require\x0alayout(location=0)\x20out\x20highp\x20vec4\x20glFragData[{X}];highp\x20vec4\x20gl_FragColor;\x0a#ifdef\x20PREPASS_DEPTH\x0avarying\x20highp\x20vec3\x20vViewPos;\x0a#endif\x0a#ifdef\x20PREPASS_VELOCITY\x0avarying\x20highp\x20vec4\x20vCurrentPosition;varying\x20highp\x20vec4\x20vPreviousPosition;\x0a#endif\x0a#endif\x0a','layout(std140,column_major)\x20uniform;\x0auniform\x20Material\x20{\x0avec2\x20vAlbedoInfos;\x0avec4\x20vAmbientInfos;\x0avec2\x20vOpacityInfos;\x0avec2\x20vEmissiveInfos;\x0avec2\x20vLightmapInfos;\x0avec3\x20vReflectivityInfos;\x0avec2\x20vMicroSurfaceSamplerInfos;\x0avec2\x20vReflectionInfos;\x0avec2\x20vReflectionFilteringInfo;\x0avec3\x20vReflectionPosition;\x0avec3\x20vReflectionSize;\x0avec3\x20vBumpInfos;\x0amat4\x20albedoMatrix;\x0amat4\x20ambientMatrix;\x0amat4\x20opacityMatrix;\x0amat4\x20emissiveMatrix;\x0amat4\x20lightmapMatrix;\x0amat4\x20reflectivityMatrix;\x0amat4\x20microSurfaceSamplerMatrix;\x0amat4\x20bumpMatrix;\x0avec2\x20vTangentSpaceParams;\x0amat4\x20reflectionMatrix;\x0avec3\x20vReflectionColor;\x0avec4\x20vAlbedoColor;\x0avec4\x20vLightingIntensity;\x0avec3\x20vReflectionMicrosurfaceInfos;\x0afloat\x20pointSize;\x0avec4\x20vReflectivityColor;\x0avec3\x20vEmissiveColor;\x0avec3\x20vAmbientColor;\x0avec2\x20vDebugMode;\x0avec4\x20vMetallicReflectanceFactors;\x0avec2\x20vMetallicReflectanceInfos;\x0amat4\x20metallicReflectanceMatrix;\x0avec2\x20vReflectanceInfos;\x0amat4\x20reflectanceMatrix;\x0avec3\x20vSphericalL00;\x0avec3\x20vSphericalL1_1;\x0avec3\x20vSphericalL10;\x0avec3\x20vSphericalL11;\x0avec3\x20vSphericalL2_2;\x0avec3\x20vSphericalL2_1;\x0avec3\x20vSphericalL20;\x0avec3\x20vSphericalL21;\x0avec3\x20vSphericalL22;\x0avec3\x20vSphericalX;\x0avec3\x20vSphericalY;\x0avec3\x20vSphericalZ;\x0avec3\x20vSphericalXX_ZZ;\x0avec3\x20vSphericalYY_ZZ;\x0avec3\x20vSphericalZZ;\x0avec3\x20vSphericalXY;\x0avec3\x20vSphericalYZ;\x0avec3\x20vSphericalZX;\x0a#define\x20ADDITIONAL_UBO_DECLARATION\x0a};\x0a#include<sceneUboDeclaration>\x0a#include<meshUboDeclaration>\x0a','uOffset','setDepthWriteEnabled','_addNewAttachObserver','markAllAsDirty','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#include<imageProcessingDeclaration>\x0a#include<helperFunctions>\x0a#include<imageProcessingFunctions>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec4\x20result=texture2D(textureSampler,vUV);\x0a#ifdef\x20IMAGEPROCESSING\x0a#ifndef\x20FROMLINEARSPACE\x0aresult.rgb=toLinearSpace(result.rgb);\x0a#endif\x0aresult=applyImageProcessing(result);\x0a#else\x0a#ifdef\x20FROMLINEARSPACE\x0aresult=applyImageProcessing(result);\x0a#endif\x0a#endif\x0agl_FragColor=result;\x0a}','onPointerUp','gl_Position.z\x20=\x20(gl_Position.z\x20+\x20gl_Position.w)\x20/\x202.0;\x0a','_resetVertexBufferBinding','Initialize','getBindGroupLayout','varyingDeclaration','internal\x20copy\x20texture\x20with\x20invertY','_textures','varyingVertexKeywordName','_SceneComponentInitialization','TEXTURE_2D_ARRAY','_sampleBurleyDiffusionProfile','dispose','attribute\x20vec3\x20position;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<clipPlaneVertexDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20viewProjection;\x0auniform\x20vec2\x20depthValues;\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(NEED_UV)\x0avarying\x20vec2\x20vUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#endif\x0a#ifdef\x20STORE_CAMERASPACE_Z\x0auniform\x20mat4\x20view;\x0avarying\x20vec4\x20vViewPos;\x0a#endif\x0avarying\x20float\x20vDepthMetric;\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0a#include<clipPlaneVertex>\x0agl_Position=viewProjection*worldPos;\x0a#ifdef\x20STORE_CAMERASPACE_Z\x0avViewPos=view*worldPos;\x0a#else\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0avDepthMetric=((-gl_Position.z+depthValues.x)/(depthValues.y));\x0a#else\x0avDepthMetric=((gl_Position.z+depthValues.x)/(depthValues.y));\x0a#endif\x0a#endif\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(BASIC_RENDER)\x0a#ifdef\x20UV1\x0avUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20UV2\x0avUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a}\x0a','slice','gpuUpdateParticlesVertexShader','updateUniformBuffer','_startingPointerPosition','queue','RGBA32Float','setUIntArray','spriteMapVertexShader','_renderForCamera','vrdisplaypointerunrestricted','height','thinInstancePartialBufferUpdate','needPOTTextures','_files','_getInternalFormat','bindTexture','_pendingDebugCommands','TEXTURE_LINEAR_LINEAR_MIPLINEAR','hasObservers','updateDirectly','getVaryingNextLocation','thinInstanceSetMatrixAt','decalFragmentDeclaration','RGBA','sharedData','setMatrix','#if\x20defined(DIFFUSE_ISLINEAR)\x20||\x20defined(EMISSIVE_ISLINEAR)\x0a#include<helperFunctions>\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vUVDiffuse;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#ifdef\x20OPACITY\x0avarying\x20vec2\x20vUVOpacity;\x0auniform\x20sampler2D\x20opacitySampler;\x0auniform\x20float\x20opacityIntensity;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0avarying\x20vec2\x20vUVEmissive;\x0auniform\x20sampler2D\x20emissiveSampler;\x0a#endif\x0a#ifdef\x20VERTEXALPHA\x0avarying\x20vec4\x20vColor;\x0a#endif\x0auniform\x20vec4\x20glowColor;\x0a#include<clipPlaneFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#include<clipPlaneFragment>\x0avec4\x20finalColor=glowColor;\x0a#ifdef\x20DIFFUSE\x0avec4\x20albedoTexture=texture2D(diffuseSampler,vUVDiffuse);\x0a#ifdef\x20DIFFUSE_ISLINEAR\x0aalbedoTexture=toGammaSpace(albedoTexture);\x0a#endif\x0a#ifdef\x20GLOW\x0afinalColor.a*=albedoTexture.a;\x0a#endif\x0a#ifdef\x20HIGHLIGHT\x0afinalColor.a=albedoTexture.a;\x0a#endif\x0a#endif\x0a#ifdef\x20OPACITY\x0avec4\x20opacityMap=texture2D(opacitySampler,vUVOpacity);\x0a#ifdef\x20OPACITYRGB\x0afinalColor.a*=getLuminance(opacityMap.rgb);\x0a#else\x0afinalColor.a*=opacityMap.a;\x0a#endif\x0afinalColor.a*=opacityIntensity;\x0a#endif\x0a#ifdef\x20VERTEXALPHA\x0afinalColor.a*=vColor.a;\x0a#endif\x0a#ifdef\x20ALPHATEST\x0aif\x20(finalColor.a<ALPHATESTVALUE)\x0adiscard;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0avec4\x20emissive=texture2D(emissiveSampler,vUVEmissive);\x0a#ifdef\x20EMISSIVE_ISLINEAR\x0aemissive=toGammaSpace(emissive);\x0a#endif\x0agl_FragColor=emissive*finalColor;\x0a#else\x0agl_FragColor=finalColor;\x0a#endif\x0a#ifdef\x20HIGHLIGHT\x0agl_FragColor.a=glowColor.a;\x0a#endif\x0a}','framebufferTextureMultisampleMultiviewOVR','_startingPointerTime','varying\x20vec2\x20sampleCoord{X};','currentRTisSceneRT','TextureBinding','BGRA8UnormSRGB','#define\x20CYLINDEREMITTER\x0a#define\x20DIRECTEDCYLINDEREMITTER','array','_projectOnTrianglesToRef','viewportSize','needsPreviousWorldMatrices','count','imageProcessingPixelShader','updateFloat3','updateMatrix','BACKSIDE','\x20=\x20normalize(vec3(','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','indexOfRefraction','getRenderingCanvas','copyTextureToBuffer','TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM','lavaVertexShader','join','_depthStencilBuffer','#include\x20<','process','spriteMapPixelShader','_blendEquationParameters','TEXTUREFORMAT_RGBA_INTEGER','matricesIndicesExtra','meshInstancesCount','constants','setDepthBias','\x20ANIMATESHEET','left','Eval','ASTC10x8Unorm','TEXTUREFORMAT_RED','prePassRenderer','Occlusion','_blurTextureType','addEventListener','isCompiled','_keyTemp','TEXTUREFORMAT_DEPTH32_FLOAT','_definePlanarName','areAllComputeEffectsReady','.texture\x20=\x20new\x20BABYLON.CubeTexture(\x22','_setCursorAndPointerOverMesh','TEXTURETYPE_UNSIGNED_INTEGER','view','_alphaMode','rtt','_outputs','createCanvas','MaterialStencilState','wmips','varying\x20vec3\x20vPositionW;\x0a#if\x20DEBUGMODE>0\x0avarying\x20vec4\x20vClipSpacePosition;\x0a#endif\x0a#include<mainUVVaryingDeclaration>[1..7]\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#if\x20defined(USESPHERICALFROMREFLECTIONMAP)\x20&&\x20defined(USESPHERICALINVERTEX)\x0avarying\x20vec3\x20vEnvironmentIrradiance;\x0a#endif\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a','uniforms','backgroundUboDeclaration','_halfDome','fluidRenderingParticleDiffuseVertexShader','.texture.coordinatesMode\x20=\x20','POINTERDOWN','PreProcess','#define\x20MULTIVIEW','Instantiate','_currentRenderPass','_reflectionSizeName','setDepthTestEnabled','multiview','emitter','forEach','pbrBlockFinalLitComponents','_meshPickProceed','(-internals.yFactor_)*dpdy','textureDome','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#if\x20defined(INITIAL)\x0auniform\x20sampler2D\x20sourceTexture;\x0auniform\x20vec2\x20texSize;\x0avoid\x20main(void)\x0a{\x0aivec2\x20coord=ivec2(vUV*(texSize-1.0));\x0afloat\x20f1=texelFetch(sourceTexture,coord,0).r;\x0afloat\x20f2=texelFetch(sourceTexture,coord+ivec2(1,0),0).r;\x0afloat\x20f3=texelFetch(sourceTexture,coord+ivec2(1,1),0).r;\x0afloat\x20f4=texelFetch(sourceTexture,coord+ivec2(0,1),0).r;\x0afloat\x20minz=min(min(min(f1,f2),f3),f4);\x0a#ifdef\x20DEPTH_REDUX\x0afloat\x20maxz=max(max(max(sign(1.0-f1)*f1,sign(1.0-f2)*f2),sign(1.0-f3)*f3),sign(1.0-f4)*f4);\x0a#else\x0afloat\x20maxz=max(max(max(f1,f2),f3),f4);\x0a#endif\x0aglFragColor=vec4(minz,maxz,0.,0.);\x0a}\x0a#elif\x20defined(MAIN)\x0auniform\x20vec2\x20texSize;\x0avoid\x20main(void)\x0a{\x0aivec2\x20coord=ivec2(vUV*(texSize-1.0));\x0avec2\x20f1=texelFetch(textureSampler,coord,0).rg;\x0avec2\x20f2=texelFetch(textureSampler,coord+ivec2(1,0),0).rg;\x0avec2\x20f3=texelFetch(textureSampler,coord+ivec2(1,1),0).rg;\x0avec2\x20f4=texelFetch(textureSampler,coord+ivec2(0,1),0).rg;\x0afloat\x20minz=min(min(min(f1.x,f2.x),f3.x),f4.x);\x0afloat\x20maxz=max(max(max(f1.y,f2.y),f3.y),f4.y);\x0aglFragColor=vec4(minz,maxz,0.,0.);\x0a}\x0a#elif\x20defined(ONEBEFORELAST)\x0auniform\x20ivec2\x20texSize;\x0avoid\x20main(void)\x0a{\x0aivec2\x20coord=ivec2(vUV*vec2(texSize-1));\x0avec2\x20f1=texelFetch(textureSampler,coord\x20%\x20texSize,0).rg;\x0avec2\x20f2=texelFetch(textureSampler,(coord+ivec2(1,0))\x20%\x20texSize,0).rg;\x0avec2\x20f3=texelFetch(textureSampler,(coord+ivec2(1,1))\x20%\x20texSize,0).rg;\x0avec2\x20f4=texelFetch(textureSampler,(coord+ivec2(0,1))\x20%\x20texSize,0).rg;\x0afloat\x20minz=min(f1.x,f2.x);\x0afloat\x20maxz=max(f1.y,f2.y);\x0aglFragColor=vec4(minz,maxz,0.,0.);\x0a}\x0a#elif\x20defined(LAST)\x0avoid\x20main(void)\x0a{\x0aglFragColor=vec4(0.);\x0aif\x20(true)\x20{\x20\x0adiscard;\x0a}\x0a}\x0a#endif\x0a','binding','uniform\x20mat4\x20viewProjection;\x0auniform\x20mat4\x20view;\x0a#ifdef\x20DIFFUSE\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20AMBIENT\x0auniform\x20mat4\x20ambientMatrix;\x0auniform\x20vec2\x20vAmbientInfos;\x0a#endif\x0a#ifdef\x20OPACITY\x0auniform\x20mat4\x20opacityMatrix;\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0auniform\x20vec2\x20vEmissiveInfos;\x0auniform\x20mat4\x20emissiveMatrix;\x0a#endif\x0a#ifdef\x20LIGHTMAP\x0auniform\x20vec2\x20vLightmapInfos;\x0auniform\x20mat4\x20lightmapMatrix;\x0a#endif\x0a#if\x20defined(SPECULAR)\x20&&\x20defined(SPECULARTERM)\x0auniform\x20vec2\x20vSpecularInfos;\x0auniform\x20mat4\x20specularMatrix;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20vec3\x20vBumpInfos;\x0auniform\x20mat4\x20bumpMatrix;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20mat4\x20reflectionMatrix;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0a#ifdef\x20DETAIL\x0auniform\x20vec4\x20vDetailInfos;\x0auniform\x20mat4\x20detailMatrix;\x0a#endif\x0a#include<decalVertexDeclaration>\x0a#define\x20ADDITIONAL_VERTEX_DECLARATION\x0a','#if\x20defined(_DEFINENAME_)\x20&&\x20_DEFINENAME_DIRECTUV==0\x0aif\x20(v_INFONAME_==0.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uvUpdated,1.0,0.0));\x0a}\x0a#ifdef\x20UV2\x0aelse\x20if\x20(v_INFONAME_==1.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x0a#ifdef\x20UV3\x0aelse\x20if\x20(v_INFONAME_==2.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv3,1.0,0.0));\x0a}\x0a#endif\x0a#ifdef\x20UV4\x0aelse\x20if\x20(v_INFONAME_==3.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv4,1.0,0.0));\x0a}\x0a#endif\x0a#ifdef\x20UV5\x0aelse\x20if\x20(v_INFONAME_==4.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv5,1.0,0.0));\x0a}\x0a#endif\x0a#ifdef\x20UV6\x0aelse\x20if\x20(v_INFONAME_==5.)\x0a{\x0av_VARYINGNAME_UV=vec2(_MATRIXNAME_Matrix*vec4(uv6,1.0,0.0));\x0a}\x0a#endif\x0a#endif\x0a','GL_ALPHA_FUNCTION_SRC_ALPHA','MODE_MONOSCOPIC','vertex','dataStoreObject','onLoadErrorObservable','_getHalfFloatAsFloatRGBAArrayBuffer','oculusMultiview','.xyz,\x200.0)));\x0d\x0a','BUFFER_CREATIONFLAG_STORAGE','vOffset','SRC_ALPHA','_isStencilMaskDirty','compilationString','_MoveCursor','_missingVaryings','setVector4','createCubeTextureBase','_previousButtonPressed','currentLine','name','_isZOffsetDirty','setScissorRect','readFromStorageBuffer:\x20Unsupported\x20method\x20in\x20this\x20engine!','ONE_MINUS_SRC_ALPHA','createBuffer','_SamplerTypeByWebGLSamplerType','_renderTargetEncoder','copyToArray','cellVertexShader','createJoint','ONE','_initTexture','TransformNormalToRef','pbrBlockReflection','POLYGON_OFFSET_FILL','depth','#define\x20PREMULTIPLYALPHA\x0d\x0a','pushDebugGroup','setAlphaEquationParameters','renderWidthHeight','hasTags','bundles','pbrBlockNormalGeometric','unBindFramebuffer','sceneVertexDeclaration','setDepthCompare','ASTC6x6UnormSRGB','_getComputeShaderCode','_bindTextureDirectly','depthTextureFormat','enabled','_depthTest','_alphaEquation','CreateNewFromScene','byteLength','cullFace','blendColor','HemisphericParticleEmitter','\x20:\x20','TEXTURE_2D','GetIndividualParser','_irradianceTexture','#ifdef\x20CLIPPLANE\x0avarying\x20float\x20fClipDistance;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0avarying\x20float\x20fClipDistance2;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0avarying\x20float\x20fClipDistance3;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0avarying\x20float\x20fClipDistance4;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0avarying\x20float\x20fClipDistance5;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0avarying\x20float\x20fClipDistance6;\x0a#endif\x0a','directRender','AddIndividualParser','#include<shadowMapFragmentExtraDeclaration>\x0a#ifdef\x20ALPHATEXTURE\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#include<clipPlaneFragment>\x0a#ifdef\x20ALPHATEXTURE\x0afloat\x20alphaFromAlphaTexture=texture2D(diffuseSampler,vUV).a;\x0a#ifdef\x20ALPHATESTVALUE\x0aif\x20(alphaFromAlphaTexture<ALPHATESTVALUE)\x0adiscard;\x0a#endif\x0a#endif\x0a#if\x20SM_SOFTTRANSPARENTSHADOW==1\x0a#ifdef\x20ALPHATEXTURE\x0aif\x20((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM*alphaFromAlphaTexture)\x20discard;\x0a#else\x0aif\x20((bayerDither8(floor(mod(gl_FragCoord.xy,8.0))))/64.0>=softTransparentShadowSM)\x20discard;\x0a#endif\x0a#endif\x0a#include<shadowMapFragment>\x0a}','Depth16Unorm','const\x20float\x20PI=3.1415926535897932384626433832795;\x0aconst\x20float\x20HALF_MIN=5.96046448e-08;\x20\x0aconst\x20float\x20LinearEncodePowerApprox=2.2;\x0aconst\x20float\x20GammaEncodePowerApprox=1.0/LinearEncodePowerApprox;\x0aconst\x20vec3\x20LuminanceEncodeApprox=vec3(0.2126,0.7152,0.0722);\x0aconst\x20float\x20Epsilon=0.0000001;\x0a#define\x20saturate(x)\x20clamp(x,0.0,1.0)\x0a#define\x20absEps(x)\x20abs(x)+Epsilon\x0a#define\x20maxEps(x)\x20max(x,Epsilon)\x0a#define\x20saturateEps(x)\x20clamp(x,Epsilon,1.0)\x0amat3\x20transposeMat3(mat3\x20inMatrix)\x20{\x0avec3\x20i0=inMatrix[0];\x0avec3\x20i1=inMatrix[1];\x0avec3\x20i2=inMatrix[2];\x0amat3\x20outMatrix=mat3(\x0avec3(i0.x,i1.x,i2.x),\x0avec3(i0.y,i1.y,i2.y),\x0avec3(i0.z,i1.z,i2.z)\x0a);\x0areturn\x20outMatrix;\x0a}\x0amat3\x20inverseMat3(mat3\x20inMatrix)\x20{\x0afloat\x20a00=inMatrix[0][0],a01=inMatrix[0][1],a02=inMatrix[0][2];\x0afloat\x20a10=inMatrix[1][0],a11=inMatrix[1][1],a12=inMatrix[1][2];\x0afloat\x20a20=inMatrix[2][0],a21=inMatrix[2][1],a22=inMatrix[2][2];\x0afloat\x20b01=a22*a11-a12*a21;\x0afloat\x20b11=-a22*a10+a12*a20;\x0afloat\x20b21=a21*a10-a11*a20;\x0afloat\x20det=a00*b01+a01*b11+a02*b21;\x0areturn\x20mat3(b01,(-a22*a01+a02*a21),(a12*a01-a02*a11),\x0ab11,(a22*a00-a02*a20),(-a12*a00+a02*a10),\x0ab21,(-a21*a00+a01*a20),(a11*a00-a01*a10))/det;\x0a}\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0avec3\x20toLinearSpaceExact(vec3\x20color)\x0a{\x0avec3\x20nearZeroSection=0.0773993808*color;\x0avec3\x20remainingSection=pow(0.947867299*(color+vec3(0.055)),vec3(2.4));\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0areturn\x20mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.04045)));\x0a#else\x0areturn\x0avec3(\x0acolor.r<=0.04045\x20?\x20nearZeroSection.r\x20:\x20remainingSection.r,\x0acolor.g<=0.04045\x20?\x20nearZeroSection.g\x20:\x20remainingSection.g,\x0acolor.b<=0.04045\x20?\x20nearZeroSection.b\x20:\x20remainingSection.b);\x0a#endif\x0a}\x0avec3\x20toGammaSpaceExact(vec3\x20color)\x0a{\x0avec3\x20nearZeroSection=12.92*color;\x0avec3\x20remainingSection=1.055*pow(color,vec3(0.41666))-vec3(0.055);\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0areturn\x20mix(remainingSection,nearZeroSection,lessThanEqual(color,vec3(0.0031308)));\x0a#else\x0areturn\x0avec3(\x0acolor.r<=0.0031308\x20?\x20nearZeroSection.r\x20:\x20remainingSection.r,\x0acolor.g<=0.0031308\x20?\x20nearZeroSection.g\x20:\x20remainingSection.g,\x0acolor.b<=0.0031308\x20?\x20nearZeroSection.b\x20:\x20remainingSection.b);\x0a#endif\x0a}\x0a#endif\x0afloat\x20toLinearSpace(float\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0afloat\x20nearZeroSection=0.0773993808*color;\x0afloat\x20remainingSection=pow(0.947867299*(color+0.055),2.4);\x0areturn\x20color<=0.04045\x20?\x20nearZeroSection\x20:\x20remainingSection;\x0a#else\x0areturn\x20pow(color,LinearEncodePowerApprox);\x0a#endif\x0a}\x0avec3\x20toLinearSpace(vec3\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0areturn\x20toLinearSpaceExact(color);\x0a#else\x0areturn\x20pow(color,vec3(LinearEncodePowerApprox));\x0a#endif\x0a}\x0avec4\x20toLinearSpace(vec4\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0areturn\x20vec4(toLinearSpaceExact(color.rgb),color.a);\x0a#else\x0areturn\x20vec4(pow(color.rgb,vec3(LinearEncodePowerApprox)),color.a);\x0a#endif\x0a}\x0afloat\x20toGammaSpace(float\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0afloat\x20nearZeroSection=12.92*color;\x0afloat\x20remainingSection=1.055*pow(color,0.41666)-0.055;\x0areturn\x20color<=0.0031308\x20?\x20nearZeroSection\x20:\x20remainingSection;\x0a#else\x0areturn\x20pow(color,GammaEncodePowerApprox);\x0a#endif\x0a}\x0avec3\x20toGammaSpace(vec3\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0areturn\x20toGammaSpaceExact(color);\x0a#else\x0areturn\x20pow(color,vec3(GammaEncodePowerApprox));\x0a#endif\x0a}\x0avec4\x20toGammaSpace(vec4\x20color)\x0a{\x0a#if\x20USE_EXACT_SRGB_CONVERSIONS\x0areturn\x20vec4(toGammaSpaceExact(color.rgb),color.a);\x0a#else\x0areturn\x20vec4(pow(color.rgb,vec3(GammaEncodePowerApprox)),color.a);\x0a#endif\x0a}\x0afloat\x20square(float\x20value)\x0a{\x0areturn\x20value*value;\x0a}\x0avec3\x20square(vec3\x20value)\x0a{\x0areturn\x20value*value;\x0a}\x0afloat\x20pow5(float\x20value)\x20{\x0afloat\x20sq=value*value;\x0areturn\x20sq*sq*value;\x0a}\x0afloat\x20getLuminance(vec3\x20color)\x0a{\x0areturn\x20clamp(dot(color,LuminanceEncodeApprox),0.,1.);\x0a}\x0afloat\x20getRand(vec2\x20seed)\x20{\x0areturn\x20fract(sin(dot(seed.xy\x20,vec2(12.9898,78.233)))*43758.5453);\x0a}\x0afloat\x20dither(vec2\x20seed,float\x20varianceAmount)\x20{\x0afloat\x20rand=getRand(seed);\x0afloat\x20normVariance=varianceAmount/255.0;\x0afloat\x20dither=mix(-normVariance,normVariance,rand);\x0areturn\x20dither;\x0a}\x0aconst\x20float\x20rgbdMaxRange=255.0;\x0avec4\x20toRGBD(vec3\x20color)\x20{\x0afloat\x20maxRGB=maxEps(max(color.r,max(color.g,color.b)));\x0afloat\x20D\x20=max(rgbdMaxRange/maxRGB,1.);\x0aD\x20=clamp(floor(D)/255.0,0.,1.);\x0avec3\x20rgb=color.rgb*D;\x0argb=toGammaSpace(rgb);\x0areturn\x20vec4(clamp(rgb,0.,1.),D);\x20\x0a}\x0avec3\x20fromRGBD(vec4\x20rgbd)\x20{\x0argbd.rgb=toLinearSpace(rgbd.rgb);\x0areturn\x20rgbd.rgb/rgbd.a;\x0a}\x0avec3\x20parallaxCorrectNormal(\x20vec3\x20vertexPos,vec3\x20origVec,vec3\x20cubeSize,vec3\x20cubePos\x20)\x20{\x0avec3\x20invOrigVec=vec3(1.0,1.0,1.0)/origVec;\x0avec3\x20halfSize=cubeSize*0.5;\x0avec3\x20intersecAtMaxPlane=(cubePos+halfSize-vertexPos)*invOrigVec;\x0avec3\x20intersecAtMinPlane=(cubePos-halfSize-vertexPos)*invOrigVec;\x0avec3\x20largestIntersec=max(intersecAtMaxPlane,intersecAtMinPlane);\x0afloat\x20distance=min(min(largestIntersec.x,largestIntersec.y),largestIntersec.z);\x0avec3\x20intersectPositionWS=vertexPos+origVec*distance;\x0areturn\x20intersectPositionWS-cubePos;\x0a}\x0a','_ssFilterRadii','exitPresent','setTextureSampler:\x20This\x20engine\x20does\x20not\x20support\x20separate\x20texture\x20sampler\x20objects!','getClassName','onPreKeyboardObservable','bufferSubData','_resetPostProcessChain','#if\x20defined(ALPHATEST)\x20||\x20defined(NEED_UV)\x0avarying\x20vec2\x20vUV;\x0a#endif\x0a#if\x20defined(ALPHATEST)\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#if\x20defined(ALPHATEST)\x0avec4\x20diffuseColor=texture2D(diffuseSampler,vUV);\x0aif\x20(diffuseColor.a<0.4)\x0adiscard;\x0a#endif\x0agl_FragColor=vec4(0.0,0.0,0.0,1.0);\x0a}\x0a','_lodGenerationScale','detachCamerasFromRenderPipeline','\x0a};\x0avar<private>\x20vertexInputs\x20:\x20VertexInputs;\x0a','_bundleList','mipLevelCount','pbrBlockSheen','updateUInt4','#ifdef\x20MORPHTARGETS\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x0avar\x20vertexID\x20:\x20f32;\x0a#endif\x0a#endif\x0a','_buildBlock',',\x20binding\x20=\x20','autoClear','prePassVertexDeclaration','TEXTUREFORMAT_STENCIL8','_setInternalTexture','vectors','blurFilterSize','attribute\x20vec3\x20position;\x0aattribute\x20vec4\x20color;\x0aattribute\x20float\x20angle;\x0aattribute\x20vec2\x20size;\x0a#ifdef\x20ANIMATESHEET\x0aattribute\x20float\x20cellIndex;\x0a#endif\x0a#ifndef\x20BILLBOARD\x0aattribute\x20vec3\x20direction;\x0a#endif\x0a#ifdef\x20BILLBOARDSTRETCHED\x0aattribute\x20vec3\x20direction;\x0a#endif\x0a#ifdef\x20RAMPGRADIENT\x0aattribute\x20vec4\x20remapData;\x0a#endif\x0aattribute\x20vec2\x20offset;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec2\x20translationPivot;\x0a#ifdef\x20ANIMATESHEET\x0auniform\x20vec3\x20particlesInfos;\x20\x0a#endif\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec4\x20vColor;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20RAMPGRADIENT\x0avarying\x20vec4\x20remapRanges;\x0a#endif\x0a#if\x20defined(BILLBOARD)\x20&&\x20!defined(BILLBOARDY)\x20&&\x20!defined(BILLBOARDSTRETCHED)\x0auniform\x20mat4\x20invView;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<logDepthDeclaration>\x0a#ifdef\x20BILLBOARD\x0auniform\x20vec3\x20eyePosition;\x0a#endif\x0avec3\x20rotate(vec3\x20yaxis,vec3\x20rotatedCorner)\x20{\x0avec3\x20xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));\x0avec3\x20zaxis=normalize(cross(yaxis,xaxis));\x0avec3\x20row0=vec3(xaxis.x,xaxis.y,xaxis.z);\x0avec3\x20row1=vec3(yaxis.x,yaxis.y,yaxis.z);\x0avec3\x20row2=vec3(zaxis.x,zaxis.y,zaxis.z);\x0amat3\x20rotMatrix=\x20mat3(row0,row1,row2);\x0avec3\x20alignedCorner=rotMatrix*rotatedCorner;\x0areturn\x20position+alignedCorner;\x0a}\x0a#ifdef\x20BILLBOARDSTRETCHED\x0avec3\x20rotateAlign(vec3\x20toCamera,vec3\x20rotatedCorner)\x20{\x0avec3\x20normalizedToCamera=normalize(toCamera);\x0avec3\x20normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));\x0avec3\x20row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);\x0avec3\x20row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\x0a#ifdef\x20BILLBOARDSTRETCHED_LOCAL\x0avec3\x20row1=direction;\x0a#else\x0avec3\x20crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));\x0avec3\x20row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\x0a#endif\x0amat3\x20rotMatrix=\x20mat3(row0,row1,row2);\x0avec3\x20alignedCorner=rotMatrix*rotatedCorner;\x0areturn\x20position+alignedCorner;\x0a}\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec2\x20cornerPos;\x0acornerPos=(vec2(offset.x-0.5,offset.y\x20-0.5)-translationPivot)*size+translationPivot;\x0a#ifdef\x20BILLBOARD\x0avec3\x20rotatedCorner;\x0a#ifdef\x20BILLBOARDY\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.y=0.;\x0avec3\x20yaxis=position-eyePosition;\x0ayaxis.y=0.;\x0avPositionW=rotate(normalize(yaxis),rotatedCorner);\x0avec3\x20viewPos=(view*vec4(vPositionW,1.0)).xyz;\x0a#elif\x20defined(BILLBOARDSTRETCHED)\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.z=0.;\x0avec3\x20toCamera=position-eyePosition;\x0avPositionW=rotateAlign(toCamera,rotatedCorner);\x0avec3\x20viewPos=(view*vec4(vPositionW,1.0)).xyz;\x0a#else\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.z=0.;\x0avec3\x20viewPos=(view*vec4(position,1.0)).xyz+rotatedCorner;\x0avPositionW=(invView*vec4(viewPos,1)).xyz;\x0a#endif\x0a#ifdef\x20RAMPGRADIENT\x0aremapRanges=remapData;\x0a#endif\x0agl_Position=projection*vec4(viewPos,1.0);\x0a#else\x0avec3\x20rotatedCorner;\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.y=0.;\x0avec3\x20yaxis=normalize(direction);\x0avPositionW=rotate(yaxis,rotatedCorner);\x0agl_Position=projection*view*vec4(vPositionW,1.0);\x0a#endif\x0avColor=color;\x0a#ifdef\x20ANIMATESHEET\x0afloat\x20rowOffset=floor(cellIndex*particlesInfos.z);\x0afloat\x20columnOffset=cellIndex-rowOffset/particlesInfos.z;\x0avec2\x20uvScale=particlesInfos.xy;\x0avec2\x20uvOffset=vec2(offset.x\x20,1.0-offset.y);\x0avUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\x0a#else\x0avUV=offset;\x0a#endif\x0a#if\x20defined(CLIPPLANE)\x20||\x20defined(CLIPPLANE2)\x20||\x20defined(CLIPPLANE3)\x20||\x20defined(CLIPPLANE4)\x20||\x20defined(CLIPPLANE5)\x20||\x20defined(CLIPPLANE6)\x0avec4\x20worldPos=vec4(vPositionW,1.0);\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<logDepthVertex>\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','supportUniformBuffers','setVerticesBuffer','pbrIBLFunctions','\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x200)\x20uniform\x20Uniforms\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20uniform\x20vec4\x20color;\x0a\x20\x20\x20\x20};\x0a\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20vec4\x20outColor;\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20=\x20color;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','updateDynamicIndexBuffer','\x20=\x20computeFixedEquirectangularCoords(','setAlphaBlendFunctionParameters','RGBA8Unorm','#ifdef\x20LIGHT{X}\x0auniform\x20vec4\x20vLightData{X};\x0auniform\x20vec4\x20vLightDiffuse{X};\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vLightSpecular{X};\x0a#else\x0avec4\x20vLightSpecular{X}=vec4(0.);\x0a#endif\x0a#ifdef\x20SHADOW{X}\x0a#ifdef\x20SHADOWCSM{X}\x0auniform\x20mat4\x20lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20cascadeBlendFactor{X};\x0avarying\x20vec4\x20vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20float\x20vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromCamera{X};\x0a#if\x20defined(SHADOWPCSS{X})\x0auniform\x20highp\x20sampler2DArrayShadow\x20shadowSampler{X};\x0auniform\x20highp\x20sampler2DArray\x20depthSampler{X};\x0auniform\x20vec2\x20lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20penumbraDarkness{X};\x0a#elif\x20defined(SHADOWPCF{X})\x0auniform\x20highp\x20sampler2DArrayShadow\x20shadowSampler{X};\x0a#else\x0auniform\x20highp\x20sampler2DArray\x20shadowSampler{X};\x0a#endif\x0a#ifdef\x20SHADOWCSMDEBUG{X}\x0aconst\x20vec3\x20vCascadeColorsMultiplier{X}[8]=vec3[8]\x0a(\x0avec3\x20(\x201.5,0.0,0.0\x20),\x0avec3\x20(\x200.0,1.5,0.0\x20),\x0avec3\x20(\x200.0,0.0,5.5\x20),\x0avec3\x20(\x201.5,0.0,5.5\x20),\x0avec3\x20(\x201.5,1.5,0.0\x20),\x0avec3\x20(\x201.0,1.0,1.0\x20),\x0avec3\x20(\x200.0,1.0,5.5\x20),\x0avec3\x20(\x200.5,3.5,0.75\x20)\x0a);\x0avec3\x20shadowDebug{X};\x0a#endif\x0a#ifdef\x20SHADOWCSMUSESHADOWMAXZ{X}\x0aint\x20index{X}=-1;\x0a#else\x0aint\x20index{X}=SHADOWCSMNUM_CASCADES{X}-1;\x0a#endif\x0afloat\x20diff{X}=0.;\x0a#elif\x20defined(SHADOWCUBE{X})\x0auniform\x20samplerCube\x20shadowSampler{X};\x0a#else\x0avarying\x20vec4\x20vPositionFromLight{X};\x0avarying\x20float\x20vDepthMetric{X};\x0a#if\x20defined(SHADOWPCSS{X})\x0auniform\x20highp\x20sampler2DShadow\x20shadowSampler{X};\x0auniform\x20highp\x20sampler2D\x20depthSampler{X};\x0a#elif\x20defined(SHADOWPCF{X})\x0auniform\x20highp\x20sampler2DShadow\x20shadowSampler{X};\x0a#else\x0auniform\x20sampler2D\x20shadowSampler{X};\x0a#endif\x0auniform\x20mat4\x20lightMatrix{X};\x0a#endif\x0auniform\x20vec4\x20shadowsInfo{X};\x0auniform\x20vec2\x20depthValues{X};\x0a#endif\x0a#ifdef\x20SPOTLIGHT{X}\x0auniform\x20vec4\x20vLightDirection{X};\x0auniform\x20vec4\x20vLightFalloff{X};\x0a#elif\x20defined(POINTLIGHT{X})\x0auniform\x20vec4\x20vLightFalloff{X};\x0a#elif\x20defined(HEMILIGHT{X})\x0auniform\x20vec3\x20vLightGround{X};\x0a#endif\x0a#ifdef\x20PROJECTEDLIGHTTEXTURE{X}\x0auniform\x20mat4\x20textureProjectionMatrix{X};\x0auniform\x20sampler2D\x20projectionLightSampler{X};\x0a#endif\x0a#endif\x0a','/*\x20disable_uniformity_analysis\x20*/\x0a#define\x20IOR\x201.333\x0a#define\x20ETA\x201.0/IOR\x0a#define\x20F0\x200.02\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20depthSampler;\x0a#ifdef\x20FLUIDRENDERING_DIFFUSETEXTURE\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#else\x0auniform\x20vec3\x20diffuseColor;\x0a#endif\x0a#ifdef\x20FLUIDRENDERING_FIXED_THICKNESS\x0auniform\x20float\x20thickness;\x0auniform\x20sampler2D\x20bgDepthSampler;\x0a#else\x0auniform\x20float\x20minimumThickness;\x0auniform\x20sampler2D\x20thicknessSampler;\x0a#endif\x0a#ifdef\x20FLUIDRENDERING_ENVIRONMENT\x0auniform\x20samplerCube\x20reflectionSampler;\x0a#endif\x0a#if\x20defined(FLUIDRENDERING_DEBUG)\x20&&\x20defined(FLUIDRENDERING_DEBUG_TEXTURE)\x0auniform\x20sampler2D\x20debugSampler;\x0a#endif\x0auniform\x20mat4\x20viewMatrix;\x0auniform\x20mat4\x20projectionMatrix;\x0auniform\x20mat4\x20invProjectionMatrix;\x0auniform\x20vec2\x20texelSize;\x0auniform\x20vec3\x20dirLight;\x0auniform\x20float\x20cameraFar;\x0auniform\x20float\x20density;\x0auniform\x20float\x20refractionStrength;\x0auniform\x20float\x20fresnelClamp;\x0auniform\x20float\x20specularPower;\x0avarying\x20vec2\x20vUV;\x0avec3\x20computeViewPosFromUVDepth(vec2\x20texCoord,float\x20depth)\x20{\x0avec4\x20ndc;\x0andc.xy=texCoord*2.0-1.0;\x0a#ifdef\x20FLUIDRENDERING_RHS\x0andc.z=-projectionMatrix[2].z+projectionMatrix[3].z/depth;\x0a#else\x0andc.z=projectionMatrix[2].z+projectionMatrix[3].z/depth;\x0a#endif\x0andc.w=1.0;\x0avec4\x20eyePos=invProjectionMatrix*ndc;\x0aeyePos.xyz/=eyePos.w;\x0areturn\x20eyePos.xyz;\x0a}\x0avec3\x20getViewPosFromTexCoord(vec2\x20texCoord)\x20{\x0afloat\x20depth=textureLod(depthSampler,texCoord,0.).x;\x0areturn\x20computeViewPosFromUVDepth(texCoord,depth);\x0a}\x0avoid\x20main(void)\x20{\x0avec2\x20texCoord=vUV;\x0a#if\x20defined(FLUIDRENDERING_DEBUG)\x20&&\x20defined(FLUIDRENDERING_DEBUG_TEXTURE)\x0avec4\x20color=texture2D(debugSampler,texCoord);\x0a#ifdef\x20FLUIDRENDERING_DEBUG_DEPTH\x0aglFragColor=vec4(color.rgb/vec3(2.0),1.);\x0aif\x20(color.r>0.999\x20&&\x20color.g>0.999)\x20{\x0aglFragColor=texture2D(textureSampler,texCoord);\x0a}\x0a#else\x0aglFragColor=vec4(color.rgb,1.);\x0aif\x20(color.r<0.001\x20&&\x20color.g<0.001\x20&&\x20color.b<0.001)\x20{\x0aglFragColor=texture2D(textureSampler,texCoord);\x0a}\x0a#endif\x0areturn;\x0a#endif\x0avec2\x20depthVel=textureLod(depthSampler,texCoord,0.).rg;\x0afloat\x20depth=depthVel.r;\x0a#ifndef\x20FLUIDRENDERING_FIXED_THICKNESS\x0afloat\x20thickness=texture2D(thicknessSampler,texCoord).x;\x0a#else\x0afloat\x20bgDepth=texture2D(bgDepthSampler,texCoord).x;\x0afloat\x20depthNonLinear=projectionMatrix[2].z+projectionMatrix[3].z/depth;\x0adepthNonLinear=depthNonLinear*0.5+0.5;\x0a#endif\x0avec4\x20backColor=texture2D(textureSampler,texCoord);\x0a#ifndef\x20FLUIDRENDERING_FIXED_THICKNESS\x0aif\x20(depth>=cameraFar\x20||\x20depth<=0.\x20||\x20thickness<=minimumThickness)\x20{\x0a#else\x0aif\x20(depth>=cameraFar\x20||\x20depth<=0.\x20||\x20bgDepth<=depthNonLinear)\x20{\x0a#endif\x0aglFragColor=backColor;\x0areturn;\x0a}\x0avec3\x20viewPos=computeViewPosFromUVDepth(texCoord,depth);\x0avec3\x20ddx=getViewPosFromTexCoord(texCoord+vec2(texelSize.x,0.))-viewPos;\x0avec3\x20ddy=getViewPosFromTexCoord(texCoord+vec2(0.,texelSize.y))-viewPos;\x0avec3\x20ddx2=viewPos-getViewPosFromTexCoord(texCoord+vec2(-texelSize.x,0.));\x0aif\x20(abs(ddx.z)>abs(ddx2.z))\x20{\x0addx=ddx2;\x0a}\x0avec3\x20ddy2=viewPos-getViewPosFromTexCoord(texCoord+vec2(0.,-texelSize.y));\x0aif\x20(abs(ddy.z)>abs(ddy2.z))\x20{\x0addy=ddy2;\x0a}\x0avec3\x20normal=normalize(cross(ddy,ddx));\x0a#ifdef\x20FLUIDRENDERING_RHS\x0anormal=-normal;\x0a#endif\x0a#ifndef\x20WEBGPU\x0aif(isnan(normal.x)\x20||\x20isnan(normal.y)\x20||\x20isnan(normal.z)\x20||\x20isinf(normal.x)\x20||\x20isinf(normal.y)\x20||\x20isinf(normal.z))\x20{\x0anormal=vec3(0.,0.,-1.);\x0a}\x0a#endif\x0a#if\x20defined(FLUIDRENDERING_DEBUG)\x20&&\x20defined(FLUIDRENDERING_DEBUG_SHOWNORMAL)\x0aglFragColor=vec4(normal*0.5+0.5,1.0);\x0areturn;\x0a#endif\x0avec3\x20rayDir=normalize(viewPos);\x20\x0a#ifdef\x20FLUIDRENDERING_DIFFUSETEXTURE\x0avec3\x20diffuseColor=textureLod(diffuseSampler,texCoord,0.0).rgb;\x0a#endif\x0avec3\x20lightDir=normalize(vec3(viewMatrix*vec4(-dirLight,0.)));\x0avec3\x20H\x20=normalize(lightDir-rayDir);\x0afloat\x20specular=pow(max(0.0,dot(H,normal)),specularPower);\x0a#ifdef\x20FLUIDRENDERING_DEBUG_DIFFUSERENDERING\x0afloat\x20diffuse\x20=max(0.0,dot(lightDir,normal))*1.0;\x0aglFragColor=vec4(vec3(0.1)\x20/*ambient*/+vec3(0.42,0.50,1.00)*diffuse+vec3(0,0,0.2)+specular,1.);\x0areturn;\x0a#endif\x0avec3\x20refractionDir=refract(rayDir,normal,ETA);\x0avec4\x20transmitted=textureLod(textureSampler,vec2(texCoord+refractionDir.xy*thickness*refractionStrength),0.0);\x0avec3\x20transmittance=exp(-density*thickness*(1.0-diffuseColor));\x20\x0avec3\x20refractionColor=transmitted.rgb*transmittance;\x0a#ifdef\x20FLUIDRENDERING_ENVIRONMENT\x0avec3\x20reflectionDir=reflect(rayDir,normal);\x0avec3\x20reflectionColor=(textureCube(reflectionSampler,reflectionDir).rgb);\x0afloat\x20fresnel=clamp(F0+(1.0-F0)*pow(1.0-dot(normal,-rayDir),5.0),0.,fresnelClamp);\x0avec3\x20finalColor=mix(refractionColor,reflectionColor,fresnel)+specular;\x0a#else\x0avec3\x20finalColor=refractionColor+specular;\x0a#endif\x0a#ifdef\x20FLUIDRENDERING_VELOCITY\x0afloat\x20velocity=depthVel.g;\x0afinalColor=mix(finalColor,vec3(1.0),smoothstep(0.3,1.0,velocity/6.0));\x0a#endif\x0aglFragColor=vec4(finalColor,transmitted.a);\x0a}\x0a','xrNativeFeatureName','enable','_xrSessionManager','\x0a//','normalVertexShader','loadCubeData','samplerFragmentAlternateDeclaration','#define\x20HEMISPHERICEMITTER','_isStencilTestDirty','logDepthFragment','_transformTextureUrl','_measureDurationState','_renderTargetWrapperCache','_features','#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#define\x20SQRT2\x201.41421356\x0a#define\x20PI\x203.14159\x0aprecision\x20highp\x20float;\x0auniform\x20float\x20visibility;\x0auniform\x20vec3\x20mainColor;\x0auniform\x20vec3\x20lineColor;\x0auniform\x20vec4\x20gridControl;\x0auniform\x20vec3\x20gridOffset;\x0avarying\x20vec3\x20vPosition;\x0avarying\x20vec3\x20vNormal;\x0a#include<fogFragmentDeclaration>\x0a#ifdef\x20OPACITY\x0avarying\x20vec2\x20vOpacityUV;\x0auniform\x20sampler2D\x20opacitySampler;\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0afloat\x20getDynamicVisibility(float\x20position)\x20{\x0afloat\x20majorGridFrequency=gridControl.y;\x0aif\x20(floor(position+0.5)==floor(position/majorGridFrequency+0.5)*majorGridFrequency)\x0a{\x0areturn\x201.0;\x0a}\x20\x0areturn\x20gridControl.z;\x0a}\x0afloat\x20getAnisotropicAttenuation(float\x20differentialLength)\x20{\x0aconst\x20float\x20maxNumberOfLines=10.0;\x0areturn\x20clamp(1.0/(differentialLength+1.0)-1.0/maxNumberOfLines,0.0,1.0);\x0a}\x0afloat\x20isPointOnLine(float\x20position,float\x20differentialLength)\x20{\x0afloat\x20fractionPartOfPosition=position-floor(position+0.5);\x20\x0afractionPartOfPosition/=differentialLength;\x20\x0afractionPartOfPosition=clamp(fractionPartOfPosition,-1.,1.);\x0afloat\x20result=0.5+0.5*cos(fractionPartOfPosition*PI);\x20\x0areturn\x20result;\x20\x0a}\x0afloat\x20contributionOnAxis(float\x20position)\x20{\x0afloat\x20differentialLength=length(vec2(dFdx(position),dFdy(position)));\x0adifferentialLength*=SQRT2;\x20\x0afloat\x20result=isPointOnLine(position,differentialLength);\x0afloat\x20dynamicVisibility=getDynamicVisibility(position);\x0aresult*=dynamicVisibility;\x0afloat\x20anisotropicAttenuation=getAnisotropicAttenuation(differentialLength);\x0aresult*=anisotropicAttenuation;\x0areturn\x20result;\x0a}\x0afloat\x20normalImpactOnAxis(float\x20x)\x20{\x0afloat\x20normalImpact=clamp(1.0-3.0*abs(x*x*x),0.0,1.0);\x0areturn\x20normalImpact;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0afloat\x20gridRatio=gridControl.x;\x0avec3\x20gridPos=(vPosition+gridOffset.xyz)/gridRatio;\x0afloat\x20x=contributionOnAxis(gridPos.x);\x0afloat\x20y=contributionOnAxis(gridPos.y);\x0afloat\x20z=contributionOnAxis(gridPos.z);\x0avec3\x20normal=normalize(vNormal);\x0ax*=normalImpactOnAxis(normal.x);\x0ay*=normalImpactOnAxis(normal.y);\x0az*=normalImpactOnAxis(normal.z);\x0a#ifdef\x20MAX_LINE\x20\x0afloat\x20grid=clamp(max(max(x,y),z),0.,1.);\x0a#else\x0afloat\x20grid=clamp(x+y+z,0.,1.);\x0a#endif\x0avec3\x20color=mix(mainColor,lineColor,grid);\x0a#ifdef\x20FOG\x0a#include<fogFragment>\x0a#endif\x0afloat\x20opacity=1.0;\x0a#ifdef\x20TRANSPARENT\x0aopacity=clamp(grid,0.08,gridControl.w*grid);\x0a#endif\x20\x0a#ifdef\x20OPACITY\x0aopacity*=texture2D(opacitySampler,vOpacityUV).a;\x0a#endif\x20\x0agl_FragColor=vec4(color.rgb,opacity*visibility);\x0a#ifdef\x20TRANSPARENT\x0a#ifdef\x20PREMULTIPLYALPHA\x0agl_FragColor.rgb*=opacity;\x0a#endif\x0a#else\x20\x0a#endif\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','struct\x20albedoOpacityOutParams\x0a{\x0avec3\x20surfaceAlbedo;\x0afloat\x20alpha;\x0a};\x0a#define\x20pbr_inline\x0avoid\x20albedoOpacityBlock(\x0ain\x20vec4\x20vAlbedoColor,\x0a#ifdef\x20ALBEDO\x0ain\x20vec4\x20albedoTexture,\x0ain\x20vec2\x20albedoInfos,\x0a#endif\x0a#ifdef\x20OPACITY\x0ain\x20vec4\x20opacityMap,\x0ain\x20vec2\x20vOpacityInfos,\x0a#endif\x0a#ifdef\x20DETAIL\x0ain\x20vec4\x20detailColor,\x0ain\x20vec4\x20vDetailInfos,\x0a#endif\x0a#ifdef\x20DECAL\x0ain\x20vec4\x20decalColor,\x0ain\x20vec4\x20vDecalInfos,\x0a#endif\x0aout\x20albedoOpacityOutParams\x20outParams\x0a)\x0a{\x0avec3\x20surfaceAlbedo=vAlbedoColor.rgb;\x0afloat\x20alpha=vAlbedoColor.a;\x0a#ifdef\x20ALBEDO\x0a#if\x20defined(ALPHAFROMALBEDO)\x20||\x20defined(ALPHATEST)\x0aalpha*=albedoTexture.a;\x0a#endif\x0a#ifdef\x20GAMMAALBEDO\x0asurfaceAlbedo*=toLinearSpace(albedoTexture.rgb);\x0a#else\x0asurfaceAlbedo*=albedoTexture.rgb;\x0a#endif\x0asurfaceAlbedo*=albedoInfos.y;\x0a#endif\x0a#include<decalFragment>\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0asurfaceAlbedo*=vColor.rgb;\x0a#endif\x0a#ifdef\x20DETAIL\x0afloat\x20detailAlbedo=2.0*mix(0.5,detailColor.r,vDetailInfos.y);\x0asurfaceAlbedo.rgb=surfaceAlbedo.rgb*detailAlbedo*detailAlbedo;\x20\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_ALBEDO\x0a#ifdef\x20OPACITY\x0a#ifdef\x20OPACITYRGB\x0aalpha=getLuminance(opacityMap.rgb);\x0a#else\x0aalpha*=opacityMap.a;\x0a#endif\x0aalpha*=vOpacityInfos.y;\x0a#endif\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#if\x20!defined(SS_LINKREFRACTIONTOTRANSPARENCY)\x20&&\x20!defined(ALPHAFRESNEL)\x0a#ifdef\x20ALPHATEST\x0aif\x20(alpha<ALPHATESTVALUE)\x0adiscard;\x0a#ifndef\x20ALPHABLEND\x0aalpha=1.0;\x0a#endif\x0a#endif\x0a#endif\x0aoutParams.surfaceAlbedo=surfaceAlbedo;\x0aoutParams.alpha=alpha;\x0a}\x0a','DST_COLOR','glowMapMergeVertexShader','#ifdef\x20LIGHT{X}\x0a#if\x20defined(SHADOWONLY)\x20||\x20defined(LIGHTMAP)\x20&&\x20defined(LIGHTMAPEXCLUDED{X})\x20&&\x20defined(LIGHTMAPNOSPECULAR{X})\x0a#else\x0a#ifdef\x20PBR\x0a#ifdef\x20SPOTLIGHT{X}\x0apreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\x0a#elif\x20defined(POINTLIGHT{X})\x0apreInfo=computePointAndSpotPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\x0a#elif\x20defined(HEMILIGHT{X})\x0apreInfo=computeHemisphericPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\x0a#elif\x20defined(DIRLIGHT{X})\x0apreInfo=computeDirectionalPreLightingInfo(light{X}.vLightData,viewDirectionW,normalW);\x0a#endif\x0apreInfo.NdotV=NdotV;\x0a#ifdef\x20SPOTLIGHT{X}\x0a#ifdef\x20LIGHT_FALLOFF_GLTF{X}\x0apreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\x0apreInfo.attenuation*=computeDirectionalLightFalloff_GLTF(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\x0a#elif\x20defined(LIGHT_FALLOFF_PHYSICAL{X})\x0apreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\x0apreInfo.attenuation*=computeDirectionalLightFalloff_Physical(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w);\x0a#elif\x20defined(LIGHT_FALLOFF_STANDARD{X})\x0apreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\x0apreInfo.attenuation*=computeDirectionalLightFalloff_Standard(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w);\x0a#else\x0apreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\x0apreInfo.attenuation*=computeDirectionalLightFalloff(light{X}.vLightDirection.xyz,preInfo.L,light{X}.vLightDirection.w,light{X}.vLightData.w,light{X}.vLightFalloff.z,light{X}.vLightFalloff.w);\x0a#endif\x0a#elif\x20defined(POINTLIGHT{X})\x0a#ifdef\x20LIGHT_FALLOFF_GLTF{X}\x0apreInfo.attenuation=computeDistanceLightFalloff_GLTF(preInfo.lightDistanceSquared,light{X}.vLightFalloff.y);\x0a#elif\x20defined(LIGHT_FALLOFF_PHYSICAL{X})\x0apreInfo.attenuation=computeDistanceLightFalloff_Physical(preInfo.lightDistanceSquared);\x0a#elif\x20defined(LIGHT_FALLOFF_STANDARD{X})\x0apreInfo.attenuation=computeDistanceLightFalloff_Standard(preInfo.lightOffset,light{X}.vLightFalloff.x);\x0a#else\x0apreInfo.attenuation=computeDistanceLightFalloff(preInfo.lightOffset,preInfo.lightDistanceSquared,light{X}.vLightFalloff.x,light{X}.vLightFalloff.y);\x0a#endif\x0a#else\x0apreInfo.attenuation=1.0;\x0a#endif\x0a#ifdef\x20HEMILIGHT{X}\x0apreInfo.roughness=roughness;\x0a#else\x0apreInfo.roughness=adjustRoughnessFromLightProperties(roughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0apreInfo.iridescenceIntensity=iridescenceIntensity;\x0a#endif\x0a#ifdef\x20HEMILIGHT{X}\x0ainfo.diffuse=computeHemisphericDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb,light{X}.vLightGround);\x0a#elif\x20defined(SS_TRANSLUCENCY)\x0ainfo.diffuse=computeDiffuseAndTransmittedLighting(preInfo,light{X}.vLightDiffuse.rgb,subSurfaceOut.transmittance);\x0a#else\x0ainfo.diffuse=computeDiffuseLighting(preInfo,light{X}.vLightDiffuse.rgb);\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0a#ifdef\x20ANISOTROPIC\x0ainfo.specular=computeAnisotropicSpecularLighting(preInfo,viewDirectionW,normalW,anisotropicOut.anisotropicTangent,anisotropicOut.anisotropicBitangent,anisotropicOut.anisotropy,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\x0a#else\x0ainfo.specular=computeSpecularLighting(preInfo,normalW,clearcoatOut.specularEnvironmentR0,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0apreInfo.roughness=sheenOut.sheenIntensity;\x0a#else\x0a#ifdef\x20HEMILIGHT{X}\x0apreInfo.roughness=sheenOut.sheenRoughness;\x0a#else\x0apreInfo.roughness=adjustRoughnessFromLightProperties(sheenOut.sheenRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\x0a#endif\x0a#endif\x0ainfo.sheen=computeSheenLighting(preInfo,normalW,sheenOut.sheenColor,specularEnvironmentR90,AARoughnessFactors.x,light{X}.vLightDiffuse.rgb);\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0a#ifdef\x20HEMILIGHT{X}\x0apreInfo.roughness=clearcoatOut.clearCoatRoughness;\x0a#else\x0apreInfo.roughness=adjustRoughnessFromLightProperties(clearcoatOut.clearCoatRoughness,light{X}.vLightSpecular.a,preInfo.lightDistance);\x0a#endif\x0ainfo.clearCoat=computeClearCoatLighting(preInfo,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatAARoughnessFactors.x,clearcoatOut.clearCoatIntensity,light{X}.vLightDiffuse.rgb);\x0a#ifdef\x20CLEARCOAT_TINT\x0aabsorption=computeClearCoatLightingAbsorption(clearcoatOut.clearCoatNdotVRefract,preInfo.L,clearcoatOut.clearCoatNormalW,clearcoatOut.clearCoatColor,clearcoatOut.clearCoatThickness,clearcoatOut.clearCoatIntensity);\x0ainfo.diffuse*=absorption;\x0a#ifdef\x20SPECULARTERM\x0ainfo.specular*=absorption;\x0a#endif\x0a#endif\x0ainfo.diffuse*=info.clearCoat.w;\x0a#ifdef\x20SPECULARTERM\x0ainfo.specular*=info.clearCoat.w;\x0a#endif\x0a#ifdef\x20SHEEN\x0ainfo.sheen*=info.clearCoat.w;\x0a#endif\x0a#endif\x0a#else\x0a#ifdef\x20SPOTLIGHT{X}\x0ainfo=computeSpotLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDirection,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness);\x0a#elif\x20defined(HEMILIGHT{X})\x0ainfo=computeHemisphericLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightGround,glossiness);\x0a#elif\x20defined(POINTLIGHT{X})\x20||\x20defined(DIRLIGHT{X})\x0ainfo=computeLighting(viewDirectionW,normalW,light{X}.vLightData,light{X}.vLightDiffuse.rgb,light{X}.vLightSpecular.rgb,light{X}.vLightDiffuse.a,glossiness);\x0a#endif\x0a#endif\x0a#ifdef\x20PROJECTEDLIGHTTEXTURE{X}\x0ainfo.diffuse*=computeProjectionTextureDiffuseLighting(projectionLightSampler{X},textureProjectionMatrix{X});\x0a#endif\x0a#endif\x0a#ifdef\x20SHADOW{X}\x0a#ifdef\x20SHADOWCSM{X}\x0afor\x20(int\x20i=0;\x20i<SHADOWCSMNUM_CASCADES{X};\x20i++)\x20\x0a{\x0a#ifdef\x20SHADOWCSM_RIGHTHANDED{X}\x0adiff{X}=viewFrustumZ{X}[i]+vPositionFromCamera{X}.z;\x0a#else\x0adiff{X}=viewFrustumZ{X}[i]-vPositionFromCamera{X}.z;\x0a#endif\x0aif\x20(diff{X}>=0.)\x20{\x0aindex{X}=i;\x0abreak;\x0a}\x0a}\x0a#ifdef\x20SHADOWCSMUSESHADOWMAXZ{X}\x0aif\x20(index{X}>=0)\x0a#endif\x0a{\x0a#if\x20defined(SHADOWPCF{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0ashadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0ashadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#else\x0ashadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWPCSS{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0ashadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0ashadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#else\x0ashadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#endif\x0a#else\x0ashadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#ifdef\x20SHADOWCSMDEBUG{X}\x0ashadowDebug{X}=vec3(shadow)*vCascadeColorsMultiplier{X}[index{X}];\x0a#endif\x0a#ifndef\x20SHADOWCSMNOBLEND{X}\x0afloat\x20frustumLength=frustumLengths{X}[index{X}];\x0afloat\x20diffRatio=clamp(diff{X}/frustumLength,0.,1.)*cascadeBlendFactor{X};\x0aif\x20(index{X}<(SHADOWCSMNUM_CASCADES{X}-1)\x20&&\x20diffRatio<1.)\x0a{\x0aindex{X}+=1;\x0afloat\x20nextShadow=0.;\x0a#if\x20defined(SHADOWPCF{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0anextShadow=computeShadowWithCSMPCF1(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0anextShadow=computeShadowWithCSMPCF3(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#else\x0anextShadow=computeShadowWithCSMPCF5(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWPCSS{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0anextShadow=computeShadowWithCSMPCSS16(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0anextShadow=computeShadowWithCSMPCSS32(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#else\x0anextShadow=computeShadowWithCSMPCSS64(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w,lightSizeUVCorrection{X}[index{X}],depthCorrection{X}[index{X}],penumbraDarkness{X});\x0a#endif\x0a#else\x0anextShadow=computeShadowCSM(float(index{X}),vPositionFromLight{X}[index{X}],vDepthMetric{X}[index{X}],shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0ashadow=mix(nextShadow,shadow,diffRatio);\x0a#ifdef\x20SHADOWCSMDEBUG{X}\x0ashadowDebug{X}=mix(vec3(nextShadow)*vCascadeColorsMultiplier{X}[index{X}],shadowDebug{X},diffRatio);\x0a#endif\x0a}\x0a#endif\x0a}\x0a#elif\x20defined(SHADOWCLOSEESM{X})\x0a#if\x20defined(SHADOWCUBE{X})\x0ashadow=computeShadowWithCloseESMCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\x0a#else\x0ashadow=computeShadowWithCloseESM(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWESM{X})\x0a#if\x20defined(SHADOWCUBE{X})\x0ashadow=computeShadowWithESMCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.depthValues);\x0a#else\x0ashadow=computeShadowWithESM(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.z,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWPOISSON{X})\x0a#if\x20defined(SHADOWCUBE{X})\x0ashadow=computeShadowWithPoissonSamplingCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.depthValues);\x0a#else\x0ashadow=computeShadowWithPoissonSampling(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWPCF{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0ashadow=computeShadowWithPCF1(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0ashadow=computeShadowWithPCF3(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#else\x0ashadow=computeShadowWithPCF5(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.yz,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#elif\x20defined(SHADOWPCSS{X})\x0a#if\x20defined(SHADOWLOWQUALITY{X})\x0ashadow=computeShadowWithPCSS16(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#elif\x20defined(SHADOWMEDIUMQUALITY{X})\x0ashadow=computeShadowWithPCSS32(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#else\x0ashadow=computeShadowWithPCSS64(vPositionFromLight{X},vDepthMetric{X},depthSampler{X},shadowSampler{X},light{X}.shadowsInfo.y,light{X}.shadowsInfo.z,light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#else\x0a#if\x20defined(SHADOWCUBE{X})\x0ashadow=computeShadowCube(light{X}.vLightData.xyz,shadowSampler{X},light{X}.shadowsInfo.x,light{X}.depthValues);\x0a#else\x0ashadow=computeShadow(vPositionFromLight{X},vDepthMetric{X},shadowSampler{X},light{X}.shadowsInfo.x,light{X}.shadowsInfo.w);\x0a#endif\x0a#endif\x0a#ifdef\x20SHADOWONLY\x0a#ifndef\x20SHADOWINUSE\x0a#define\x20SHADOWINUSE\x0a#endif\x0aglobalShadow+=shadow;\x0ashadowLightCount+=1.0;\x0a#endif\x0a#else\x0ashadow=1.;\x0a#endif\x0a#ifndef\x20SHADOWONLY\x0a#ifdef\x20CUSTOMUSERLIGHTING\x0adiffuseBase+=computeCustomDiffuseLighting(info,diffuseBase,shadow);\x0a#ifdef\x20SPECULARTERM\x0aspecularBase+=computeCustomSpecularLighting(info,specularBase,shadow);\x0a#endif\x0a#elif\x20defined(LIGHTMAP)\x20&&\x20defined(LIGHTMAPEXCLUDED{X})\x0adiffuseBase+=lightmapColor.rgb*shadow;\x0a#ifdef\x20SPECULARTERM\x0a#ifndef\x20LIGHTMAPNOSPECULAR{X}\x0aspecularBase+=info.specular*shadow*lightmapColor.rgb;\x0a#endif\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0a#ifndef\x20LIGHTMAPNOSPECULAR{X}\x0aclearCoatBase+=info.clearCoat.rgb*shadow*lightmapColor.rgb;\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN\x0a#ifndef\x20LIGHTMAPNOSPECULAR{X}\x0asheenBase+=info.sheen.rgb*shadow;\x0a#endif\x0a#endif\x0a#else\x0a#ifdef\x20SHADOWCSMDEBUG{X}\x0adiffuseBase+=info.diffuse*shadowDebug{X};\x0a#else\x20\x0adiffuseBase+=info.diffuse*shadow;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0aspecularBase+=info.specular*shadow;\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0aclearCoatBase+=info.clearCoat.rgb*shadow;\x0a#endif\x0a#ifdef\x20SHEEN\x0asheenBase+=info.sheen.rgb*shadow;\x0a#endif\x0a#endif\x0a#endif\x0a#endif\x0a','KEEP','samplers','passPixelShader','filterRadii','GetDepthFormatOnly','storageTexture','precision\x20highp\x20float;attribute\x20vec3\x20position;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0auniform\x20float\x20time;uniform\x20float\x20speed;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDistortionCoords1;varying\x20vec2\x20vDistortionCoords2;varying\x20vec2\x20vDistortionCoords3;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);\x0a#ifdef\x20DIFFUSE\x0avDiffuseUV=uv;vDiffuseUV.y-=0.2;\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avec3\x20layerSpeed=vec3(-0.2,-0.52,-0.1)*speed;vDistortionCoords1.x=uv.x;vDistortionCoords1.y=uv.y+layerSpeed.x*time/1000.0;vDistortionCoords2.x=uv.x;vDistortionCoords2.y=uv.y+layerSpeed.y*time/1000.0;vDistortionCoords3.x=uv.x;vDistortionCoords3.y=uv.y+layerSpeed.z*time/1000.0;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','vFogColor','etc2','_currentFramebuffer','_compiledShaders','ASTC10x5UnormSRGB','add','noColorAttachment',',\x20null,\x20undefined,\x20undefined,\x20undefined,\x20','from','TEXTURE_CUBE_MAP','uniform\x20float\x20conversion;\x0auniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0a#include<helperFunctions>\x0avoid\x20main(void)\x20\x0a{\x0avec4\x20color=texture2D(textureSampler,vUV);\x0a#ifdef\x20DEPTH_TEXTURE\x0agl_FragDepth=color.r;\x0a#else\x0aif\x20(conversion==1.)\x20{\x0acolor=toLinearSpace(color);\x0a}\x20else\x20if\x20(conversion==2.)\x20{\x0acolor=toGammaSpace(color);\x0a}\x0agl_FragColor=color;\x0a#endif\x0a}\x0a','_setRayOnPointerInfo','byteOffset','markAsTexturesDirty','rebuild','setInt4','Depth24UnormStencil8','defines','skipOnKeyboardObservable','setTextureSampler','_reflectionColorName','precision\x20highp\x20float;attribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vTextureUV;uniform\x20mat4\x20textureMatrix;uniform\x20vec2\x20vTextureInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vTextureInfos.x==0.)\x0a{vTextureUV=vec2(textureMatrix*vec4(uv,1.0,0.0));}\x0aelse\x0a{vTextureUV=vec2(textureMatrix*vec4(uv2,1.0,0.0));}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','output','shaderLanguage','setFloatArray3','CLIPPLANE6','Depth24Plus','Vector3','1627356xLfcys','startFrame','DisableFor','vEyePosition','processCodeAfterIncludes','.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0d\x0a','REFLECTIONMAP_OPPOSITEZ','depthAttachmentViewDescriptor','createCommandEncoder','_previousStartingPointerTime','hashCode','_isStencilOpDirty','indexInGroupEntries','TEXTURE','next','GetNumChannelsFromWebGPUTextureFormat','angle','_dumpPropertiesCode','setStorageBuffer:\x20Unsupported\x20method\x20in\x20this\x20engine!','createTexture','ALPHA_REVERSEONEMINUS','types','useRightHandedSystem','lavaPixelShader','_TextureTypeByWebGLSamplerType',')\x20@binding(','_blurTextureSizeX','attributeKeywordName','ignore','generateStencil','blendMode','varying\x20','setRawData','bindAttachments','shadowMapVertexMetric','TEXTUREFORMAT_LUMINANCE_ALPHA','setCullEnabled','blurNumIterations','_textureMode','sampler3D','projectedParticleConstant','is3D','_registeredActions','heartbeat','framebufferRenderbuffer','Ubo','TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV\x20format\x20not\x20supported\x20in\x20WebGPU','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','target','_IsGPUBuffer','_copyInvertYRenderPassDescr','_defines','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20float\x20motionStrength;\x0auniform\x20float\x20motionScale;\x0auniform\x20vec2\x20screenSize;\x0a#ifdef\x20OBJECT_BASED\x0auniform\x20sampler2D\x20velocitySampler;\x0a#else\x0auniform\x20sampler2D\x20depthSampler;\x0auniform\x20mat4\x20inverseViewProjection;\x0auniform\x20mat4\x20prevViewProjection;\x0auniform\x20mat4\x20projection;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#ifdef\x20GEOMETRY_SUPPORTED\x0a#ifdef\x20OBJECT_BASED\x0avec2\x20texelSize=1.0/screenSize;\x0avec4\x20velocityColor=texture2D(velocitySampler,vUV);\x0avelocityColor.rg=velocityColor.rg*2.0-vec2(1.0);\x0avec2\x20velocity=vec2(pow(velocityColor.r,3.0),pow(velocityColor.g,3.0))*velocityColor.a;\x0avelocity*=motionScale*motionStrength;\x0afloat\x20speed=length(velocity/texelSize);\x0aint\x20samplesCount=int(clamp(speed,1.0,SAMPLES));\x0avelocity=normalize(velocity)*texelSize;\x0afloat\x20hlim=float(-samplesCount)*0.5+0.5;\x0avec4\x20result=texture2D(textureSampler,vUV);\x0afor\x20(int\x20i=1;\x20i<int(SAMPLES);\x20++i)\x0a{\x0aif\x20(i>=samplesCount)\x0abreak;\x0avec2\x20offset=vUV+velocity*(hlim+float(i));\x0a#if\x20defined(WEBGPU)\x0aresult+=texture2DLodEXT(textureSampler,offset,0.0);\x0a#else\x0aresult+=texture2D(textureSampler,offset);\x0a#endif\x0a}\x0agl_FragColor=result/float(samplesCount);\x0agl_FragColor.a=1.0;\x0a#else\x0avec2\x20texelSize=1.0/screenSize;\x0afloat\x20depth=texture2D(depthSampler,vUV).r;\x0adepth=projection[2].z+projection[3].z/depth;\x20\x0avec4\x20cpos=vec4(vUV*2.0-1.0,depth,1.0);\x0acpos=inverseViewProjection*cpos;\x0acpos/=cpos.w;\x0avec4\x20ppos=prevViewProjection*cpos;\x0appos/=ppos.w;\x0appos.xy=ppos.xy*0.5+0.5;\x0avec2\x20velocity=(ppos.xy-vUV)*motionScale*motionStrength;\x0afloat\x20speed=length(velocity/texelSize);\x0aint\x20nSamples=int(clamp(speed,1.0,SAMPLES));\x0avec4\x20result=texture2D(textureSampler,vUV);\x0afor\x20(int\x20i=1;\x20i<int(SAMPLES);\x20++i)\x20{\x0aif\x20(i>=nSamples)\x0abreak;\x0avec2\x20offset1=vUV+velocity*(float(i)/float(nSamples-1)-0.5);\x0a#if\x20defined(WEBGPU)\x0aresult+=texture2DLodEXT(textureSampler,offset1,0.0);\x0a#else\x0aresult+=texture2D(textureSampler,offset1);\x0a#endif\x0a}\x0agl_FragColor=result/float(nSamples);\x0a#endif\x0a#else\x0agl_FragColor=texture2D(textureSampler,vUV);\x0a#endif\x0a}\x0a','_rttRenderPassWrapper','coordinatesMode','_videoTextureSupported','boxMax','_rigCameras','_thinInstanceCreateMatrixBuffer','availableVaryings','_bundleCache','setArray2','underlyingResource','_getWebGLTextureType','BGRA8Unorm','iridescence','_leftOverUniformsByName','TEXTUREFORMAT_RG_INTEGER','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20mat4\x20kernelMatrix;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20baseColor=texture2D(textureSampler,vUV).rgb;\x0avec3\x20updatedColor=(kernelMatrix*vec4(baseColor,1.0)).rgb;\x0agl_FragColor=vec4(updatedColor,1.0);\x0a}','#if\x20NUM_BONE_INFLUENCERS>0\x0aattribute\x20vec4\x20matricesIndices;\x0aattribute\x20vec4\x20matricesWeights;\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0aattribute\x20vec4\x20matricesIndicesExtra;\x0aattribute\x20vec4\x20matricesWeightsExtra;\x0a#endif\x0a#ifndef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a#ifdef\x20BONETEXTURE\x0auniform\x20sampler2D\x20boneSampler;\x0auniform\x20float\x20boneTextureWidth;\x0a#else\x0auniform\x20mat4\x20mBones[BonesPerMesh];\x0a#ifdef\x20BONES_VELOCITY_ENABLED\x0auniform\x20mat4\x20mPreviousBones[BonesPerMesh];\x0a#endif\x0a#endif\x0a#ifdef\x20BONETEXTURE\x0a#define\x20inline\x0amat4\x20readMatrixFromRawSampler(sampler2D\x20smp,float\x20index)\x0a{\x0afloat\x20offset=index\x20*4.0;\x0afloat\x20dx=1.0/boneTextureWidth;\x0avec4\x20m0=texture2D(smp,vec2(dx*(offset+0.5),0.));\x0avec4\x20m1=texture2D(smp,vec2(dx*(offset+1.5),0.));\x0avec4\x20m2=texture2D(smp,vec2(dx*(offset+2.5),0.));\x0avec4\x20m3=texture2D(smp,vec2(dx*(offset+3.5),0.));\x0areturn\x20mat4(m0,m1,m2,m3);\x0a}\x0a#endif\x0a#endif\x0a#endif\x0a','mrtFragmentDeclaration','logDepthDeclaration','computeSource','visibleModelBox','systemValue','_caps','RG11B10UFloat','vec','colorAttachment','bilinearFiltering','vFogInfos','autoBindSampler','#ifdef\x20INSTANCES\x0amat4\x20finalWorld=mat4(world0,world1,world2,world3);\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0amat4\x20finalPreviousWorld=mat4(previousWorld0,previousWorld1,previousWorld2,previousWorld3);\x0a#endif\x0a#ifdef\x20THIN_INSTANCES\x0afinalWorld=world*finalWorld;\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0afinalPreviousWorld=previousWorld*finalPreviousWorld;\x0a#endif\x0a#endif\x0a#else\x0amat4\x20finalWorld=world;\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0amat4\x20finalPreviousWorld=previousWorld;\x0a#endif\x0a#endif\x0a','dispatchWorkgroups','crossEyeMode','textureAdditionalUsages','RG8Sint','_defineLocalCubicName','TransformNormalFromFloatsToRef','onPointerDown','TEXTURE_PLANAR_MODE','_capacity','updateMatrices','disableDepthWrite','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20float\x20_ExposureAdjustment;\x0a#if\x20defined(HABLE_TONEMAPPING)\x0aconst\x20float\x20A=0.15;\x0aconst\x20float\x20B=0.50;\x0aconst\x20float\x20C=0.10;\x0aconst\x20float\x20D=0.20;\x0aconst\x20float\x20E=0.02;\x0aconst\x20float\x20F=0.30;\x0aconst\x20float\x20W=11.2;\x0a#endif\x0afloat\x20Luminance(vec3\x20c)\x0a{\x0areturn\x20dot(c,vec3(0.22,0.707,0.071));\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0avec3\x20colour=texture2D(textureSampler,vUV).rgb;\x0a#if\x20defined(REINHARD_TONEMAPPING)\x0afloat\x20lum=Luminance(colour.rgb);\x20\x0afloat\x20lumTm=lum*_ExposureAdjustment;\x0afloat\x20scale=lumTm/(1.0+lumTm);\x20\x0acolour*=scale/lum;\x0a#elif\x20defined(HABLE_TONEMAPPING)\x0acolour*=_ExposureAdjustment;\x0aconst\x20float\x20ExposureBias=2.0;\x0avec3\x20x=ExposureBias*colour;\x0avec3\x20curr=((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F;\x0ax=vec3(W,W,W);\x0avec3\x20whiteScale=1.0/(((x*(A*x+C*B)+D*E)/(x*(A*x+B)+D*F))-E/F);\x0acolour=curr*whiteScale;\x0a#elif\x20defined(OPTIMIZED_HEJIDAWSON_TONEMAPPING)\x0acolour*=_ExposureAdjustment;\x0avec3\x20X=max(vec3(0.0,0.0,0.0),colour-0.004);\x0avec3\x20retColor=(X*(6.2*X+0.5))/(X*(6.2*X+1.7)+0.06);\x0acolour=retColor*retColor;\x0a#elif\x20defined(PHOTOGRAPHIC_TONEMAPPING)\x0acolour=\x20vec3(1.0,1.0,1.0)-exp2(-_ExposureAdjustment*colour);\x0a#endif\x0agl_FragColor=vec4(colour.rgb,1.0);\x0a}','\x0a\x20\x20\x20\x20const\x20vec2\x20pos[4]\x20=\x20vec2[4](vec2(-1.0f,\x201.0f),\x20vec2(1.0f,\x201.0f),\x20vec2(-1.0f,\x20-1.0f),\x20vec2(1.0f,\x20-1.0f));\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20vec4(pos[gl_VertexIndex],\x200.0,\x201.0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','externalTexture','IRIDESCENCE_THICKNESS_TEXTURE','Serialize','removePipeline','outlinePixelShader','getViewMatrix','StorageBinding','_bindTextureRenderTarget','_worldPositionNameInFragmentOnlyMode','ssaoCombinePixelShader','_RemoveTagFrom','defaultUboDeclaration','_lines','enableVR','bindableBlocks','isReady','_prepareComputePipelineContext','previous','#if\x20defined(IMAGEPROCESSINGPOSTPROCESS)\x20||\x20defined(SS_SCATTERING)\x0a#if\x20!defined(SKIPFINALCOLORCLAMP)\x0afinalColor.rgb=clamp(finalColor.rgb,0.,30.0);\x0a#endif\x0a#else\x0afinalColor=applyImageProcessing(finalColor);\x0a#endif\x0afinalColor.a*=visibility;\x0a#ifdef\x20PREMULTIPLYALPHA\x0afinalColor.rgb*=finalColor.a;\x0a#endif\x0a','INTENSITYMODE_LUMINANCE','uniformBufferProcessor','_vertexIsGLES3','TEXTURE_CUBE_MAP_POSITIVE_X','cellPixelShader','TEXTURE_CREATIONFLAG_STORAGE','Raw2DArray','),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20NdotV,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20specularEnvironmentR0,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20CLEARCOAT\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20NdotVUnclamped,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20iridescenceOut\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20float\x20iridescenceIntensity\x20=\x20iridescenceOut.iridescenceIntensity;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20specularEnvironmentR0\x20=\x20iridescenceOut.specularEnvironmentR0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0d\x0a','textureFloat','__framebufferDepthStencil','_activeCamera','imageProcessingPostProcess','worldPos','createQuery','//Entry\x20point\x0d\x0a','onPointerPick','s3tc','terrainVertexShader','FluidRenderingRTT-','diffusionS','_decalMap','value','_codeVariableName','TempTextureForCopyWithInvertY','_doubleClickOccured','updateFloat2','glowMapMergePixelShader','arrayBufferBlockCount','shadowMapFragment','directionW','insert','ray','volumetricLightScatteringPassPixelShader','GL_ALPHA_FUNCTION_ONE_MINUS_DST_ALPHA','ProjectOnTriangleToRef','addMSAARenderBuffer','ONE_MINUS_DST_ALPHA','multiview\x20rtt','halfDome','clipPlaneVertexDeclaration','createBindGroup','Cube','type','ACTION_OnDoublePickTrigger','beginOcclusionQuery','out','gl_Position.y\x20*=\x20yFactor_;\x0a','volumetricLightScatteringPixelShader','handleVertexSide','updateVideoTexture','AddTagsTo','!false','3287196hqKdPj','getDeterministicFrameTime','Unable\x20to\x20create\x20multi\x20sampled\x20framebuffer','_emit2DArraySampler','_vertexBuffers','create','TEXTUREFORMAT_LUMINANCE_ALPHA\x20format\x20not\x20supported\x20in\x20WebGPU','[$1].el','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20DIFFUSE\x0abaseColor=texture2D(diffuseSampler,vDiffuseUV);\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0afloat\x20glossiness=0.;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x20\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\x0avec4\x20color=vec4(finalDiffuse,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','HingeJoint','ACTION_OnRightPickTrigger','requestPresent','REFLECTIONMAP_SKYBOX','RGBA32Uint','proceduralVertexShader','setFloat','womips','\x5cs*\x5c[(.*)\x5c]','onLoadObservable','targetTypes','depthVertexShader','previousMatrixData','_uniforms','storage','setVector3','enableEffectInPipeline','vec2\x20uvOffset=vec2(0.0,0.0);\x0a#if\x20defined(BUMP)\x20||\x20defined(PARALLAX)\x20||\x20defined(DETAIL)\x0a#ifdef\x20NORMALXYSCALE\x0afloat\x20normalScale=1.0;\x0a#elif\x20defined(BUMP)\x0afloat\x20normalScale=vBumpInfos.y;\x0a#else\x0afloat\x20normalScale=1.0;\x0a#endif\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0amat3\x20TBN=vTBN;\x0a#elif\x20defined(BUMP)\x0avec2\x20TBNUV=gl_FrontFacing\x20?\x20vBumpUV\x20:\x20-vBumpUV;\x0amat3\x20TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vTangentSpaceParams);\x0a#else\x0avec2\x20TBNUV=gl_FrontFacing\x20?\x20vDetailUV\x20:\x20-vDetailUV;\x0amat3\x20TBN=cotangent_frame(normalW*normalScale,vPositionW,TBNUV,vec2(1.,1.));\x0a#endif\x0a#elif\x20defined(ANISOTROPIC)\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0amat3\x20TBN=vTBN;\x0a#else\x0avec2\x20TBNUV=gl_FrontFacing\x20?\x20vMainUV1\x20:\x20-vMainUV1;\x0amat3\x20TBN=cotangent_frame(normalW,vPositionW,TBNUV,vec2(1.,1.));\x0a#endif\x0a#endif\x0a#ifdef\x20PARALLAX\x0amat3\x20invTBN=transposeMat3(TBN);\x0a#ifdef\x20PARALLAXOCCLUSION\x0auvOffset=parallaxOcclusion(invTBN*-viewDirectionW,invTBN*normalW,vBumpUV,vBumpInfos.z);\x0a#else\x0auvOffset=parallaxOffset(invTBN*viewDirectionW,vBumpInfos.z);\x0a#endif\x0a#endif\x0a#ifdef\x20DETAIL\x0avec4\x20detailColor=texture2D(detailSampler,vDetailUV+uvOffset);\x0avec2\x20detailNormalRG=detailColor.wy*2.0-1.0;\x0afloat\x20detailNormalB=sqrt(1.-saturate(dot(detailNormalRG,detailNormalRG)));\x0avec3\x20detailNormal=vec3(detailNormalRG,detailNormalB);\x0a#endif\x0a#ifdef\x20BUMP\x0a#ifdef\x20OBJECTSPACE_NORMALMAP\x0a#define\x20CUSTOM_FRAGMENT_BUMP_FRAGMENT\x0anormalW=normalize(texture2D(bumpSampler,vBumpUV).xyz\x20*2.0-1.0);\x0anormalW=normalize(mat3(normalMatrix)*normalW);\x0a#elif\x20!defined(DETAIL)\x0anormalW=perturbNormal(TBN,texture2D(bumpSampler,vBumpUV+uvOffset).xyz,vBumpInfos.y);\x0a#else\x0avec3\x20bumpNormal=texture2D(bumpSampler,vBumpUV+uvOffset).xyz*2.0-1.0;\x0a#if\x20DETAIL_NORMALBLENDMETHOD==0\x20\x0adetailNormal.xy*=vDetailInfos.z;\x0avec3\x20blendedNormal=normalize(vec3(bumpNormal.xy+detailNormal.xy,bumpNormal.z*detailNormal.z));\x0a#elif\x20DETAIL_NORMALBLENDMETHOD==1\x20\x0adetailNormal.xy*=vDetailInfos.z;\x0abumpNormal+=vec3(0.0,0.0,1.0);\x0adetailNormal*=vec3(-1.0,-1.0,1.0);\x0avec3\x20blendedNormal=bumpNormal*dot(bumpNormal,detailNormal)/bumpNormal.z-detailNormal;\x0a#endif\x0anormalW=perturbNormalBase(TBN,blendedNormal,vBumpInfos.y);\x0a#endif\x0a#elif\x20defined(DETAIL)\x0adetailNormal.xy*=vDetailInfos.z;\x0anormalW=perturbNormalBase(TBN,detailNormal,vDetailInfos.z);\x0a#endif\x0a','copyTextureToTexture','_DefaultIndexOfRefraction','BC5RGSnorm','vAng','ALPHA_DISABLE','_arePrePassDirty','premultipliedAlpha','instancesVertex','vertexBuffers','___###','vec3\x20computeFixedEquirectangularCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20direction)\x0a{\x0afloat\x20lon=atan(direction.z,direction.x);\x0afloat\x20lat=acos(direction.y);\x0avec2\x20sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\x0afloat\x20s=sphereCoords.x*0.5+0.5;\x0afloat\x20t=sphereCoords.y;\x0areturn\x20vec3(s,t,0);\x20\x0a}\x0avec3\x20computeMirroredFixedEquirectangularCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20direction)\x0a{\x0afloat\x20lon=atan(direction.z,direction.x);\x0afloat\x20lat=acos(direction.y);\x0avec2\x20sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\x0afloat\x20s=sphereCoords.x*0.5+0.5;\x0afloat\x20t=sphereCoords.y;\x0areturn\x20vec3(1.0-s,t,0);\x20\x0a}\x0avec3\x20computeEquirectangularCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20eyePosition,mat4\x20reflectionMatrix)\x0a{\x0avec3\x20cameraToVertex=normalize(worldPos.xyz-eyePosition);\x0avec3\x20r=normalize(reflect(cameraToVertex,worldNormal));\x0ar=vec3(reflectionMatrix*vec4(r,0));\x0afloat\x20lon=atan(r.z,r.x);\x0afloat\x20lat=acos(r.y);\x0avec2\x20sphereCoords=vec2(lon,lat)*RECIPROCAL_PI2*2.0;\x0afloat\x20s=sphereCoords.x*0.5+0.5;\x0afloat\x20t=sphereCoords.y;\x0areturn\x20vec3(s,t,0);\x0a}\x0avec3\x20computeSphericalCoords(vec4\x20worldPos,vec3\x20worldNormal,mat4\x20view,mat4\x20reflectionMatrix)\x0a{\x0avec3\x20viewDir=normalize(vec3(view*worldPos));\x0avec3\x20viewNormal=normalize(vec3(view*vec4(worldNormal,0.0)));\x0avec3\x20r=reflect(viewDir,viewNormal);\x0ar=vec3(reflectionMatrix*vec4(r,0));\x0ar.z=r.z-1.0;\x0afloat\x20m=2.0*length(r);\x0areturn\x20vec3(r.x/m+0.5,1.0-r.y/m-0.5,0);\x0a}\x0avec3\x20computePlanarCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20eyePosition,mat4\x20reflectionMatrix)\x0a{\x0avec3\x20viewDir=worldPos.xyz-eyePosition;\x0avec3\x20coords=normalize(reflect(viewDir,worldNormal));\x0areturn\x20vec3(reflectionMatrix*vec4(coords,1));\x0a}\x0avec3\x20computeCubicCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20eyePosition,mat4\x20reflectionMatrix)\x0a{\x0avec3\x20viewDir=normalize(worldPos.xyz-eyePosition);\x0avec3\x20coords=reflect(viewDir,worldNormal);\x0acoords=vec3(reflectionMatrix*vec4(coords,0));\x0a#ifdef\x20INVERTCUBICMAP\x0acoords.y*=-1.0;\x0a#endif\x0areturn\x20coords;\x0a}\x0avec3\x20computeCubicLocalCoords(vec4\x20worldPos,vec3\x20worldNormal,vec3\x20eyePosition,mat4\x20reflectionMatrix,vec3\x20reflectionSize,vec3\x20reflectionPosition)\x0a{\x0avec3\x20viewDir=normalize(worldPos.xyz-eyePosition);\x0avec3\x20coords=reflect(viewDir,worldNormal);\x0acoords=parallaxCorrectNormal(worldPos.xyz,coords,reflectionSize,reflectionPosition);\x0acoords=vec3(reflectionMatrix*vec4(coords,0));\x0a#ifdef\x20INVERTCUBICMAP\x0acoords.y*=-1.0;\x0a#endif\x0areturn\x20coords;\x0a}\x0avec3\x20computeProjectionCoords(vec4\x20worldPos,mat4\x20view,mat4\x20reflectionMatrix)\x0a{\x0areturn\x20vec3(reflectionMatrix*(view*worldPos));\x0a}\x0avec3\x20computeSkyBoxCoords(vec3\x20positionW,mat4\x20reflectionMatrix)\x0a{\x0areturn\x20vec3(reflectionMatrix*vec4(positionW,1.));\x0a}\x0a#ifdef\x20REFLECTION\x0avec3\x20computeReflectionCoords(vec4\x20worldPos,vec3\x20worldNormal)\x0a{\x0a#ifdef\x20REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED\x0avec3\x20direction=normalize(vDirectionW);\x0areturn\x20computeMirroredFixedEquirectangularCoords(worldPos,worldNormal,direction);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_EQUIRECTANGULAR_FIXED\x0avec3\x20direction=normalize(vDirectionW);\x0areturn\x20computeFixedEquirectangularCoords(worldPos,worldNormal,direction);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_EQUIRECTANGULAR\x0areturn\x20computeEquirectangularCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_SPHERICAL\x0areturn\x20computeSphericalCoords(worldPos,worldNormal,view,reflectionMatrix);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_PLANAR\x0areturn\x20computePlanarCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_CUBIC\x0a#ifdef\x20USE_LOCAL_REFLECTIONMAP_CUBIC\x0areturn\x20computeCubicLocalCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix,vReflectionSize,vReflectionPosition);\x0a#else\x0areturn\x20computeCubicCoords(worldPos,worldNormal,vEyePosition.xyz,reflectionMatrix);\x0a#endif\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0areturn\x20computeProjectionCoords(worldPos,view,reflectionMatrix);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0areturn\x20computeSkyBoxCoords(vPositionUVW,reflectionMatrix);\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_EXPLICIT\x0areturn\x20vec3(0,0,0);\x0a#endif\x0a}\x0a#endif\x0a','onInputChangedObservable','TEXTURE_PROJECTION_MODE','compileGLSL','precision\x20highp\x20float;\x0avarying\x20vec2\x20vDecalTC;\x0auniform\x20sampler2D\x20textureSampler;\x0avoid\x20main(void)\x20{\x0aif\x20(vDecalTC.x<0.\x20||\x20vDecalTC.x>1.\x20||\x20vDecalTC.y<0.\x20||\x20vDecalTC.y>1.)\x20{\x0adiscard;\x0a}\x0agl_FragColor=texture2D(textureSampler,vDecalTC);\x0a}\x0a','_useVAO','\x20=\x20textureCubeLodEXT(','Raw','emitErrors','ACTION_OnLongPressTrigger','RG8Unorm','BABYLON.ReflectionTextureBaseBlock','depthThreshold','_cascadeLoadFiles','_textureBlurred','_cubeSamplerName','toLowerCase','setStencilPassOp','imageProcessingDeclaration','fogVertex','Store','resource','_mipmapGenRenderPassDescr','TEXTURE_LINEAR_LINEAR_MIPNEAREST','CLIPPLANE3','doNotSyncBoundingInfo','_getFreeVariableName','_verifyPointerLock','setAlphaEquation','fluidRenderingStandardBlurPixelShader','ALPHA_SUBTRACT','_inputs','setUInt4','_webgpuProcessingContext','#define\x20CLIPPLANE4','Parse','POINTERTAP','_mipmapGenBindGroup','ASTC4x4UnormSRGB','DYNAMIC_DRAW','fogColor','detach','_webGLTexture','runCoroutineAsync','FLOAT_32_UNSIGNED_INT_24_8_REV','Warn','_IsHardwareTexture','handleFragmentSideInits','Depth32Float','lightUboDeclaration','BilateralBlurY','glFragCoord_','HasTriggers','InvertY','bumpFragmentFunctions','uniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0auniform\x20float\x20shadowLevel;\x0a#ifdef\x20DIFFUSE\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20vec2\x20vReflectionInfos;\x0auniform\x20mat4\x20reflectionMatrix;\x0auniform\x20vec3\x20vReflectionMicrosurfaceInfos;\x0auniform\x20float\x20fFovMultiplier;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0a','_outputPostProcess','renderPageFocus','setUIntArray2','\x20/=\x20','_unTranslatedPointerY','supportsUniformBuffers','Int','FALLOFF_DEFAULT','#ifdef\x20LIGHT{X}\x0auniform\x20vec4\x20vLightData{X};\x0auniform\x20vec4\x20vLightDiffuse{X};\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vLightSpecular{X};\x0a#else\x0avec4\x20vLightSpecular{X}=vec4(0.);\x0a#endif\x0a#ifdef\x20SHADOW{X}\x0a#ifdef\x20SHADOWCSM{X}\x0auniform\x20mat4\x20lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20float\x20vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromCamera{X};\x0a#elif\x20defined(SHADOWCUBE{X})\x0a#else\x0avarying\x20vec4\x20vPositionFromLight{X};\x0avarying\x20float\x20vDepthMetric{X};\x0auniform\x20mat4\x20lightMatrix{X};\x0a#endif\x0auniform\x20vec4\x20shadowsInfo{X};\x0auniform\x20vec2\x20depthValues{X};\x0a#endif\x0a#ifdef\x20SPOTLIGHT{X}\x0auniform\x20vec4\x20vLightDirection{X};\x0auniform\x20vec4\x20vLightFalloff{X};\x0a#elif\x20defined(POINTLIGHT{X})\x0auniform\x20vec4\x20vLightFalloff{X};\x0a#elif\x20defined(HEMILIGHT{X})\x0auniform\x20vec3\x20vLightGround{X};\x0a#endif\x0a#endif\x0a','_buffer','disableVertexArrayObjects','TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4','_bundleListRenderTarget','allowEmptyVertexProgram','void\x20main(','_unpackFlipY','#ifdef\x20DOF\x0afactor=sampleCoC(sampleCoord{X});\x20\x0acomputedWeight=KERNEL_WEIGHT{X}*factor;\x0asumOfWeights+=computedWeight;\x0a#else\x0acomputedWeight=KERNEL_WEIGHT{X};\x0a#endif\x0a#ifdef\x20PACKEDFLOAT\x0ablend+=unpack(texture2D(textureSampler,sampleCoord{X}))*computedWeight;\x0a#else\x0ablend+=texture2D(textureSampler,sampleCoord{X})*computedWeight;\x0a#endif\x0a','radius','getAndRemove','ZERO','isFragment','_areAttributesDirty','visibility','_createRenderBuffer','_emit2DSampler','some','_videoPipelines','#ifdef\x20MORPHTARGETS\x0a#ifndef\x20MORPHTARGETS_TEXTURE\x0aattribute\x20position{X}\x20:\x20vec3<f32>;\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0aattribute\x20normal{X}\x20:\x20vec3<f32>;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0aattribute\x20tangent{X}\x20:\x20vec3<f32>;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0aattribute\x20uv_{X}\x20:\x20vec2<f32>;\x0a#endif\x0a#endif\x0a#endif\x0a','_depthRTWrapper','anisotropicFilteringLevel','Comparison','shadowMapFragmentSoftTransparentShadow','#ifdef\x20INSTANCES\x0aattribute\x20world0\x20:\x20vec4<f32>;\x0aattribute\x20world1\x20:\x20vec4<f32>;\x0aattribute\x20world2\x20:\x20vec4<f32>;\x0aattribute\x20world3\x20:\x20vec4<f32>;\x0a#ifdef\x20INSTANCESCOLOR\x0aattribute\x20instanceColor\x20:\x20vec4<f32>;\x0a#endif\x0a#if\x20defined(THIN_INSTANCES)\x20&&\x20!defined(WORLD_UBO)\x0auniform\x20world\x20:\x20mat4x4<f32>;\x0a#endif\x0a#if\x20defined(VELOCITY)\x20||\x20defined(PREPASS_VELOCITY)\x0aattribute\x20previousWorld0\x20:\x20vec4<f32>;\x0aattribute\x20previousWorld1\x20:\x20vec4<f32>;\x0aattribute\x20previousWorld2\x20:\x20vec4<f32>;\x0aattribute\x20previousWorld3\x20:\x20vec4<f32>;\x0a#ifdef\x20THIN_INSTANCES\x0auniform\x20previousWorld\x20:\x20mat4x4<f32>;\x0a#endif\x0a#endif\x0a#else\x0a#if\x20!defined(WORLD_UBO)\x0auniform\x20world\x20:\x20mat4x4<f32>;\x0a#endif\x0a#if\x20defined(VELOCITY)\x20||\x20defined(PREPASS_VELOCITY)\x0auniform\x20previousWorld\x20:\x20mat4x4<f32>;\x0a#endif\x0a#endif\x0a','ui8d','_areFresnelDirty','isQueryResultAvailable','_opStencilFail','layout(std140,column_major)\x20uniform;\x0auniform\x20Material\x0a{\x0avec4\x20diffuseLeftColor;\x0avec4\x20diffuseRightColor;\x0avec4\x20opacityParts;\x0avec4\x20reflectionLeftColor;\x0avec4\x20reflectionRightColor;\x0avec4\x20refractionLeftColor;\x0avec4\x20refractionRightColor;\x0avec4\x20emissiveLeftColor;\x0avec4\x20emissiveRightColor;\x0avec2\x20vDiffuseInfos;\x0avec2\x20vAmbientInfos;\x0avec2\x20vOpacityInfos;\x0avec2\x20vReflectionInfos;\x0avec3\x20vReflectionPosition;\x0avec3\x20vReflectionSize;\x0avec2\x20vEmissiveInfos;\x0avec2\x20vLightmapInfos;\x0avec2\x20vSpecularInfos;\x0avec3\x20vBumpInfos;\x0amat4\x20diffuseMatrix;\x0amat4\x20ambientMatrix;\x0amat4\x20opacityMatrix;\x0amat4\x20reflectionMatrix;\x0amat4\x20emissiveMatrix;\x0amat4\x20lightmapMatrix;\x0amat4\x20specularMatrix;\x0amat4\x20bumpMatrix;\x0avec2\x20vTangentSpaceParams;\x0afloat\x20pointSize;\x0afloat\x20alphaCutOff;\x0amat4\x20refractionMatrix;\x0avec4\x20vRefractionInfos;\x0avec3\x20vRefractionPosition;\x0avec3\x20vRefractionSize;\x0avec4\x20vSpecularColor;\x0avec3\x20vEmissiveColor;\x0avec4\x20vDiffuseColor;\x0avec3\x20vAmbientColor;\x0a#define\x20ADDITIONAL_UBO_DECLARATION\x0a};\x0a#include<sceneUboDeclaration>\x0a#include<meshUboDeclaration>\x0a','struct\x20FragmentOutputs\x20{\x0a\x20\x20@location(0)\x20color\x20:\x20vec4<f32>,\x0a','insertDebugMarker','_canUseMultipleBuffers','setExternalTexture:\x20This\x20engine\x20does\x20not\x20support\x20external\x20textures!','deleteFramebuffer','\x0a\x20\x20\x20\x20struct\x20VertexOutput\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20@builtin(position)\x20Position\x20:\x20vec4<f32>,\x0a\x20\x20\x20\x20\x20\x20\x20\x20@location(0)\x20fragUV\x20:\x20vec2<f32>\x0a\x20\x20\x20\x20}\x0a\x20\x20\x0a\x20\x20\x20\x20@vertex\x0a\x20\x20\x20\x20fn\x20main(\x0a\x20\x20\x20\x20\x20\x20\x20\x20@builtin(vertex_index)\x20VertexIndex\x20:\x20u32\x0a\x20\x20\x20\x20)\x20->\x20VertexOutput\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20pos\x20=\x20array<vec2<f32>,\x204>(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(-1.0,\x20\x201.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(\x201.0,\x20\x201.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(-1.0,\x20-1.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(\x201.0,\x20-1.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20tex\x20=\x20array<vec2<f32>,\x204>(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(0.0,\x200.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(1.0,\x200.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(0.0,\x201.0),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec2(1.0,\x201.0)\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20var\x20output:\x20VertexOutput;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20output.Position\x20=\x20vec4<f32>(pos[VertexIndex],\x200.0,\x201.0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20output.fragUV\x20=\x20tex[VertexIndex];\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20output;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','TEXTURE_3D','_blendFunctionParameters','_depthTextureFormat','36xnBerT','dataType','Failed\x20to\x20load\x20','_uploadEncoder','uniform','surface','addTags','prePassDeclaration','CubeRaw','_depthFunc','TEXTURETYPE_FLOAT','setBool','_normals','TEXTURE_MAX_LEVEL','sampler','texture3D','clipPlane2','BrowserForward','_animate','_addCameraPointerObserver','InvertYPremultiplyAlpha','encode','BYTES_PER_ELEMENT','#include<helperFunctions>\x0a#include<importanceSampling>\x0a#include<pbrBRDFFunctions>\x0a#include<hdrFilteringFunctions>\x0auniform\x20float\x20alphaG;\x0auniform\x20samplerCube\x20inputTexture;\x0auniform\x20vec2\x20vFilteringInfo;\x0auniform\x20float\x20hdrScale;\x0avarying\x20vec3\x20direction;\x0avoid\x20main()\x20{\x0avec3\x20color=radiance(alphaG,inputTexture,direction,vFilteringInfo);\x0agl_FragColor=vec4(color*hdrScale,1.0);\x0a}','bindUniformBufferBase','texturesRequired','run','_fragmentIsGLES3','uScale','ASTC8x6UnormSRGB','\x20{\x0a\x20\x20\x20\x20','_prepareFrame','GL_ALPHA_FUNCTION_ONE_MINUS_SRC_COLOR','getVRDevice','.z\x20*=\x20-1.0;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0d\x0a','colorAttachmentGPUTextures','map','AddUniforms','_renderEncoder','beginComputePass','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(internals.yFactor_\x20==\x201.)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20fragmentInputs.position.y\x20=\x20internals.textureOutputHeight_\x20-\x20fragmentInputs.position.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20','_GetBlockInformationFromFormat','processor','_getComponent','#if\x20defined(REFLECTION)\x20||\x20defined(SS_REFRACTION)\x0afloat\x20getLodFromAlphaG(float\x20cubeMapDimensionPixels,float\x20microsurfaceAverageSlope)\x20{\x0afloat\x20microsurfaceAverageSlopeTexels=cubeMapDimensionPixels*microsurfaceAverageSlope;\x0afloat\x20lod=log2(microsurfaceAverageSlopeTexels);\x0areturn\x20lod;\x0a}\x0afloat\x20getLinearLodFromRoughness(float\x20cubeMapDimensionPixels,float\x20roughness)\x20{\x0afloat\x20lod=log2(cubeMapDimensionPixels)*roughness;\x0areturn\x20lod;\x0a}\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(RADIANCEOCCLUSION)\x0afloat\x20environmentRadianceOcclusion(float\x20ambientOcclusion,float\x20NdotVUnclamped)\x20{\x0afloat\x20temp=NdotVUnclamped+ambientOcclusion;\x0areturn\x20saturate(square(temp)-1.0+ambientOcclusion);\x0a}\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(HORIZONOCCLUSION)\x0afloat\x20environmentHorizonOcclusion(vec3\x20view,vec3\x20normal,vec3\x20geometricNormal)\x20{\x0avec3\x20reflection=reflect(view,normal);\x0afloat\x20temp=saturate(1.0+1.1*dot(reflection,geometricNormal));\x0areturn\x20square(temp);\x0a}\x0a#endif\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20||\x20defined(SS_LODINREFRACTIONALPHA)\x0a#define\x20UNPACK_LOD(x)\x20(1.0-x)*255.0\x0afloat\x20getLodFromAlphaG(float\x20cubeMapDimensionPixels,float\x20alphaG,float\x20NdotV)\x20{\x0afloat\x20microsurfaceAverageSlope=alphaG;\x0amicrosurfaceAverageSlope*=sqrt(abs(NdotV));\x0areturn\x20getLodFromAlphaG(cubeMapDimensionPixels,microsurfaceAverageSlope);\x0a}\x0a#endif\x0a','_varyingTransfer','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20','bonesVertex','precision\x20highp\x20float;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0auniform\x20vec3\x20cameraPosition;\x0auniform\x20vec3\x20cameraOffset;\x0auniform\x20vec3\x20up;\x0auniform\x20float\x20luminance;\x0auniform\x20float\x20turbidity;\x0auniform\x20float\x20rayleigh;\x0auniform\x20float\x20mieCoefficient;\x0auniform\x20float\x20mieDirectionalG;\x0auniform\x20vec3\x20sunPosition;\x0a#include<fogFragmentDeclaration>\x0aconst\x20float\x20e=2.71828182845904523536028747135266249775724709369995957;\x0aconst\x20float\x20pi=3.141592653589793238462643383279502884197169;\x0aconst\x20float\x20n=1.0003;\x0aconst\x20float\x20N=2.545E25;\x0aconst\x20float\x20pn=0.035;\x0aconst\x20vec3\x20lambda=vec3(680E-9,550E-9,450E-9);\x0aconst\x20vec3\x20K=vec3(0.686,0.678,0.666);\x0aconst\x20float\x20v=4.0;\x0aconst\x20float\x20rayleighZenithLength=8.4E3;\x0aconst\x20float\x20mieZenithLength=1.25E3;\x0aconst\x20float\x20EE=1000.0;\x0aconst\x20float\x20sunAngularDiameterCos=0.999956676946448443553574619906976478926848692873900859324;\x0aconst\x20float\x20cutoffAngle=pi/1.95;\x0aconst\x20float\x20steepness=1.5;\x0avec3\x20totalRayleigh(vec3\x20lambda)\x0a{\x0areturn\x20(8.0*pow(pi,3.0)*pow(pow(n,2.0)-1.0,2.0)*(6.0+3.0*pn))/(3.0*N*pow(lambda,vec3(4.0))*(6.0-7.0*pn));\x0a}\x0avec3\x20simplifiedRayleigh()\x0a{\x0areturn\x200.0005/vec3(94,40,18);\x0a}\x0afloat\x20rayleighPhase(float\x20cosTheta)\x0a{\x20\x0areturn\x20(3.0/(16.0*pi))*(1.0+pow(cosTheta,2.0));\x0a}\x0avec3\x20totalMie(vec3\x20lambda,vec3\x20K,float\x20T)\x0a{\x0afloat\x20c=(0.2*T\x20)*10E-18;\x0areturn\x200.434*c*pi*pow((2.0*pi)/lambda,vec3(v-2.0))*K;\x0a}\x0afloat\x20hgPhase(float\x20cosTheta,float\x20g)\x0a{\x0areturn\x20(1.0/(4.0*pi))*((1.0-pow(g,2.0))/pow(1.0-2.0*g*cosTheta+pow(g,2.0),1.5));\x0a}\x0afloat\x20sunIntensity(float\x20zenithAngleCos)\x0a{\x0areturn\x20EE*max(0.0,1.0-exp((-(cutoffAngle-acos(zenithAngleCos))/steepness)));\x0a}\x0afloat\x20A=0.15;\x0afloat\x20B=0.50;\x0afloat\x20C=0.10;\x0afloat\x20D=0.20;\x0afloat\x20EEE=0.02;\x0afloat\x20F=0.30;\x0afloat\x20W=1000.0;\x0avec3\x20Uncharted2Tonemap(vec3\x20x)\x0a{\x0areturn\x20((x*(A*x+C*B)+D*EEE)/(x*(A*x+B)+D*F))-EEE/F;\x0a}\x0a#if\x20DITHER\x0a#include<helperFunctions>\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0a/**\x0a*--------------------------------------------------------------------------------------------------\x0a*\x20Sky\x20Color\x0a*--------------------------------------------------------------------------------------------------\x0a*/\x0afloat\x20sunfade=1.0-clamp(1.0-exp((sunPosition.y/450000.0)),0.0,1.0);\x0afloat\x20rayleighCoefficient=rayleigh-(1.0*(1.0-sunfade));\x0avec3\x20sunDirection=normalize(sunPosition);\x0afloat\x20sunE=sunIntensity(dot(sunDirection,up));\x0avec3\x20betaR=simplifiedRayleigh()*rayleighCoefficient;\x0avec3\x20betaM=totalMie(lambda,K,turbidity)*mieCoefficient;\x0afloat\x20zenithAngle=acos(max(0.0,dot(up,normalize(vPositionW-cameraPosition+cameraOffset))));\x0afloat\x20sR=rayleighZenithLength/(cos(zenithAngle)+0.15*pow(93.885-((zenithAngle*180.0)/pi),-1.253));\x0afloat\x20sM=mieZenithLength/(cos(zenithAngle)+0.15*pow(93.885-((zenithAngle*180.0)/pi),-1.253));\x0avec3\x20Fex=exp(-(betaR*sR+betaM*sM));\x0afloat\x20cosTheta=dot(normalize(vPositionW-cameraPosition),sunDirection);\x0afloat\x20rPhase=rayleighPhase(cosTheta*0.5+0.5);\x0avec3\x20betaRTheta=betaR*rPhase;\x0afloat\x20mPhase=hgPhase(cosTheta,mieDirectionalG);\x0avec3\x20betaMTheta=betaM*mPhase;\x0avec3\x20Lin=pow(sunE*((betaRTheta+betaMTheta)/(betaR+betaM))*(1.0-Fex),vec3(1.5));\x0aLin*=mix(vec3(1.0),pow(sunE*((betaRTheta+betaMTheta)/(betaR+betaM))*Fex,vec3(1.0/2.0)),clamp(pow(1.0-dot(up,sunDirection),5.0),0.0,1.0));\x0avec3\x20direction=normalize(vPositionW-cameraPosition);\x0afloat\x20theta=acos(direction.y);\x0afloat\x20phi=atan(direction.z,direction.x);\x0avec2\x20uv=vec2(phi,theta)/vec2(2.0*pi,pi)+vec2(0.5,0.0);\x0avec3\x20L0=vec3(0.1)*Fex;\x0afloat\x20sundisk=smoothstep(sunAngularDiameterCos,sunAngularDiameterCos+0.00002,cosTheta);\x0aL0+=(sunE*19000.0*Fex)*sundisk;\x0avec3\x20whiteScale=1.0/Uncharted2Tonemap(vec3(W));\x0avec3\x20texColor=(Lin+L0);\x0atexColor*=0.04\x20;\x0atexColor+=vec3(0.0,0.001,0.0025)*0.3;\x0afloat\x20g_fMaxLuminance=1.0;\x0afloat\x20fLumScaled=0.1/luminance;\x20\x0afloat\x20fLumCompressed=(fLumScaled*(1.0+(fLumScaled/(g_fMaxLuminance*g_fMaxLuminance))))/(1.0+fLumScaled);\x20\x0afloat\x20ExposureBias=fLumCompressed;\x0avec3\x20curr=Uncharted2Tonemap((log2(2.0/pow(luminance,4.0)))*texColor);\x0avec3\x20retColor=curr*whiteScale;\x0a/**\x0a*--------------------------------------------------------------------------------------------------\x0a*\x20Sky\x20Color\x0a*--------------------------------------------------------------------------------------------------\x0a*/\x0afloat\x20alpha=1.0;\x0a#ifdef\x20VERTEXCOLOR\x0aretColor.rgb*=vColor.rgb;\x0a#endif\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#if\x20DITHER\x0aretColor.rgb+=dither(gl_FragCoord.xy,0.5);\x0a#endif\x0avec4\x20color=clamp(vec4(retColor.rgb,alpha),0.0,1.0);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','substring','_depthStencilTextureWithStencil','testValue','subtractToRef','precision\x20highp\x20float;\x0auniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0a#ifdef\x20SSAO\x0afloat\x20scales[16]=float[16](\x0a0.1,\x0a0.11406250000000001,\x0a0.131640625,\x0a0.15625,\x0a0.187890625,\x0a0.2265625,\x0a0.272265625,\x0a0.325,\x0a0.384765625,\x0a0.4515625,\x0a0.525390625,\x0a0.60625,\x0a0.694140625,\x0a0.7890625,\x0a0.891015625,\x0a1.0\x0a);\x0auniform\x20float\x20near;\x0auniform\x20float\x20radius;\x0auniform\x20sampler2D\x20depthSampler;\x0auniform\x20sampler2D\x20randomSampler;\x0auniform\x20sampler2D\x20normalSampler;\x0auniform\x20float\x20randTextureTiles;\x0auniform\x20float\x20samplesFactor;\x0auniform\x20vec3\x20sampleSphere[SAMPLES];\x0auniform\x20float\x20totalStrength;\x0auniform\x20float\x20base;\x0auniform\x20float\x20xViewport;\x0auniform\x20float\x20yViewport;\x0auniform\x20mat3\x20depthProjection;\x0auniform\x20float\x20maxZ;\x0auniform\x20float\x20minZAspect;\x0auniform\x20vec2\x20texelSize;\x0auniform\x20mat4\x20projection;\x0avoid\x20main()\x0a{\x0avec3\x20random=textureLod(randomSampler,vUV*randTextureTiles,0.0).rgb;\x0afloat\x20depth=textureLod(depthSampler,vUV,0.0).r;\x0afloat\x20depthSign=depth/abs(depth);\x0adepth=depth*depthSign;\x0avec3\x20normal=textureLod(normalSampler,vUV,0.0).rgb;\x0afloat\x20occlusion=0.0;\x0afloat\x20correctedRadius=min(radius,minZAspect*depth/near);\x0avec3\x20vViewRay=vec3((vUV.x*2.0-1.0)*xViewport,(vUV.y*2.0-1.0)*yViewport,depthSign);\x0avec3\x20vDepthFactor=depthProjection*vec3(1.0,1.0,depth);\x0avec3\x20origin=vViewRay*vDepthFactor;\x0avec3\x20rvec=random*2.0-1.0;\x0arvec.z=0.0;\x0afloat\x20dotProduct=dot(rvec,normal);\x0arvec=1.0-abs(dotProduct)>1e-2\x20?\x20rvec\x20:\x20vec3(-rvec.y,0.0,rvec.x);\x0avec3\x20tangent=normalize(rvec-normal*dot(rvec,normal));\x0avec3\x20bitangent=cross(normal,tangent);\x0amat3\x20tbn=mat3(tangent,bitangent,normal);\x0afloat\x20difference;\x0afor\x20(int\x20i=0;\x20i<SAMPLES;\x20++i)\x20{\x0avec3\x20samplePosition=scales[(i+int(random.x*16.0))\x20%\x2016]*tbn*sampleSphere[(i+int(random.y*16.0))\x20%\x2016];\x0asamplePosition=samplePosition*correctedRadius+origin;\x0avec4\x20offset=vec4(samplePosition,1.0);\x0aoffset=projection*offset;\x0aoffset.xyz/=offset.w;\x0aoffset.xy=offset.xy*0.5+0.5;\x0aif\x20(offset.x<0.0\x20||\x20offset.y<0.0\x20||\x20offset.x>1.0\x20||\x20offset.y>1.0)\x20{\x0acontinue;\x0a}\x0afloat\x20sampleDepth=abs(textureLod(depthSampler,offset.xy,0.0).r);\x0adifference=depthSign*samplePosition.z-sampleDepth;\x0afloat\x20rangeCheck=1.0-smoothstep(correctedRadius*0.5,correctedRadius,difference);\x0aocclusion+=step(EPSILON,difference)*rangeCheck;\x0a}\x0aocclusion=occlusion*(1.0-smoothstep(maxZ*0.75,maxZ,depth));\x0afloat\x20ao=1.0-totalStrength*occlusion*samplesFactor;\x0afloat\x20result=clamp(ao+base,0.0,1.0);\x0agl_FragColor=vec4(vec3(result),1.0);\x0a}\x0a#endif\x0a#ifdef\x20BLUR\x0auniform\x20float\x20outSize;\x0auniform\x20float\x20soften;\x0auniform\x20float\x20tolerance;\x0auniform\x20int\x20samples;\x0a#ifndef\x20BLUR_BYPASS\x0auniform\x20sampler2D\x20depthSampler;\x0a#ifdef\x20BLUR_LEGACY\x0a#define\x20inline\x0afloat\x20blur13Bilateral(sampler2D\x20image,vec2\x20uv,vec2\x20step)\x20{\x0afloat\x20result=0.0;\x0avec2\x20off1=vec2(1.411764705882353)*step;\x0avec2\x20off2=vec2(3.2941176470588234)*step;\x0avec2\x20off3=vec2(5.176470588235294)*step;\x0afloat\x20compareDepth=abs(textureLod(depthSampler,uv,0.0).r);\x0afloat\x20sampleDepth;\x0afloat\x20weight;\x0afloat\x20weightSum=30.0;\x0aresult+=textureLod(image,uv,0.0).r*30.0;\x0asampleDepth=abs(textureLod(depthSampler,uv+off1,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=\x20weight;\x0aresult+=textureLod(image,uv+off1,0.0).r*weight;\x0asampleDepth=abs(textureLod(depthSampler,uv-off1,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=\x20weight;\x0aresult+=textureLod(image,uv-off1,0.0).r*weight;\x0asampleDepth=abs(textureLod(depthSampler,uv+off2,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=weight;\x0aresult+=textureLod(image,uv+off2,0.0).r*weight;\x0asampleDepth=abs(textureLod(depthSampler,uv-off2,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=weight;\x0aresult+=textureLod(image,uv-off2,0.0).r*weight;\x0asampleDepth=abs(textureLod(depthSampler,uv+off3,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=weight;\x0aresult+=textureLod(image,uv+off3,0.0).r*weight;\x0asampleDepth=abs(textureLod(depthSampler,uv-off3,0.0).r);\x0aweight=clamp(1.0/(\x200.003+abs(compareDepth-sampleDepth)),0.0,30.0);\x0aweightSum+=weight;\x0aresult+=textureLod(image,uv-off3,0.0).r*weight;\x0areturn\x20result/weightSum;\x0a}\x0a#endif\x0a#endif\x0avoid\x20main()\x0a{\x0afloat\x20result=0.0;\x0a#ifdef\x20BLUR_BYPASS\x0aresult=textureLod(textureSampler,vUV,0.0).r;\x0a#else\x0a#ifdef\x20BLUR_H\x0avec2\x20step=vec2(1.0/outSize,0.0);\x0a#else\x0avec2\x20step=vec2(0.0,1.0/outSize);\x0a#endif\x0a#ifdef\x20BLUR_LEGACY\x0aresult=blur13Bilateral(textureSampler,vUV,step);\x0a#else\x0afloat\x20compareDepth=abs(textureLod(depthSampler,vUV,0.0).r);\x0afloat\x20weightSum=0.0;\x0afor\x20(int\x20i=-samples;\x20i<samples;\x20i+=2)\x0a{\x0avec2\x20samplePos=vUV+step*(float(i)+0.5);\x0afloat\x20sampleDepth=abs(textureLod(depthSampler,samplePos,0.0).r);\x0afloat\x20falloff=smoothstep(0.0,\x0afloat(samples),\x0afloat(samples)-abs(float(i))*soften);\x0afloat\x20minDivider=tolerance*0.5+0.003;\x0afloat\x20weight=falloff/(\x20minDivider+abs(compareDepth-sampleDepth));\x0aresult+=textureLod(textureSampler,samplePos,0.0).r*weight;\x0aweightSum+=weight;\x0a}\x0aresult/=weightSum;\x0a#endif\x0a#endif\x0agl_FragColor.rgb=vec3(result);\x0agl_FragColor.a=1.0;\x0a}\x0a#endif\x0a','Filtering','opacityFresnel','_emitVaryingFromString','pickWorldNormal','_valueCache','subSurfaceConfiguration','lastIndexOf','_numExternalTextures','processTrigger','floor','_onXRFrame','_measureDuration','depthValue','TEXTURETYPE_INT','_userThinInstanceBuffersStorage','useCache','_coroutineSchedulerDispose','isSupported','executeBundles','layerPixelShader','textureProcessor','_multiviewSceneUbo','onEndFrameObservable','MultiRenderTarget','_defineSkyboxName','_bufferManager','inverts','reflectionUVW','removeUniforms','matricesWeightsExtra','Color4','defaultFragmentDeclaration','LIGHTTYPEID_SPOTLIGHT','attributeProcessor','filterSize','NONE','_blendConstants','#ifndef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a#if\x20NUM_BONE_INFLUENCERS>0\x0amat4\x20influence;\x0a#ifdef\x20BONETEXTURE\x0ainfluence=readMatrixFromRawSampler(boneSampler,matricesIndices[0])*matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[1])*matricesWeights[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[2])*matricesWeights[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndices[3])*matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[0])*matricesWeightsExtra[0];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[1])*matricesWeightsExtra[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[2])*matricesWeightsExtra[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0ainfluence+=readMatrixFromRawSampler(boneSampler,matricesIndicesExtra[3])*matricesWeightsExtra[3];\x0a#endif\x0a#else\x0ainfluence=mBones[int(matricesIndices[0])]*matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0ainfluence+=mBones[int(matricesIndices[1])]*matricesWeights[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0ainfluence+=mBones[int(matricesIndices[2])]*matricesWeights[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0ainfluence+=mBones[int(matricesIndices[3])]*matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0ainfluence+=mBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0ainfluence+=mBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0ainfluence+=mBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0ainfluence+=mBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\x0a#endif\x0a#endif\x0afinalWorld=finalWorld*influence;\x0a#endif\x0a#endif\x0a','generateCubeMipmaps','BrowserBack','removeTags','ConvertCubeMapTextureToSphericalPolynomial','TEXTURETYPE_FLOAT_32_UNSIGNED_INT_24_8_REV','onDeviceConnectedObservable','isFixedFoveationSupported','enableBlur','boundingBoxRendererVertexShader','_TextureLoaders','#ifdef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a{\x0a#ifdef\x20INSTANCES\x0alet\x20VATStartFrame:\x20f32=vertexInputs.bakedVertexAnimationSettingsInstanced.x;\x0alet\x20VATEndFrame:\x20f32=vertexInputs.bakedVertexAnimationSettingsInstanced.y;\x0alet\x20VATOffsetFrame:\x20f32=vertexInputs.bakedVertexAnimationSettingsInstanced.z;\x0alet\x20VATSpeed:\x20f32=vertexInputs.bakedVertexAnimationSettingsInstanced.w;\x0a#else\x0alet\x20VATStartFrame:\x20f32=uniforms.bakedVertexAnimationSettings.x;\x0alet\x20VATEndFrame:\x20f32=uniforms.bakedVertexAnimationSettings.y;\x0alet\x20VATOffsetFrame:\x20f32=uniforms.bakedVertexAnimationSettings.z;\x0alet\x20VATSpeed:\x20f32=uniforms.bakedVertexAnimationSettings.w;\x0a#endif\x0alet\x20totalFrames:\x20f32=VATEndFrame-VATStartFrame+1.0;\x0alet\x20time:\x20f32=uniforms.bakedVertexAnimationTime*VATSpeed/totalFrames;\x0alet\x20frameCorrection:\x20f32=select(1.0,0.0,time<1.0);\x0alet\x20numOfFrames:\x20f32=totalFrames-frameCorrection;\x0avar\x20VATFrameNum:\x20f32=fract(time)*numOfFrames;\x0aVATFrameNum=(VATFrameNum+VATOffsetFrame)\x20%\x20numOfFrames;\x0aVATFrameNum=floor(VATFrameNum);\x0aVATFrameNum=VATFrameNum+VATStartFrame+frameCorrection;\x0avar\x20VATInfluence\x20:\x20mat4x4<f32>;\x0aVATInfluence=readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[0],VATFrameNum)*vertexInputs.matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[1],VATFrameNum)*vertexInputs.matricesWeights[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[2],VATFrameNum)*vertexInputs.matricesWeights[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndices[3],VATFrameNum)*vertexInputs.matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[0],VATFrameNum)*vertexInputs.matricesWeightsExtra[0];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[1],VATFrameNum)*vertexInputs.matricesWeightsExtra[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[2],VATFrameNum)*vertexInputs.matricesWeightsExtra[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0aVATInfluence=VATInfluence+readMatrixFromRawSamplerVAT(bakedVertexAnimationTexture,vertexInputs.matricesIndicesExtra[3],VATFrameNum)*vertexInputs.matricesWeightsExtra[3];\x0a#endif\x0afinalWorld=finalWorld*VATInfluence;\x0a}\x0a#endif\x0a','precision\x20highp\x20float;\x0auniform\x20sampler2D\x20uBackColor;\x0avoid\x20main()\x20{\x0aglFragColor=texelFetch(uBackColor,ivec2(gl_FragCoord.xy),0);\x0aif\x20(glFragColor.a==0.0)\x20{\x20\x0adiscard;\x0a}\x0a}','_currentRank','thinInstanceRefreshBoundingInfo','lineIndex','_createDepthStencilCubeTexture','_rt','_mrtAttachments','clear','DEPTH24_STENCIL8','__decl__','_setReady','highlightsPixelShader','GL_ALPHA_EQUATION_ADD','lensFlareVertexShader','previousBones','normalPixelShader','_frameLastBuffer','depthTextureExtension','ETC2RGBA8Unorm','tonemapPixelShader','unTranslatedPointer','setUInt2','stereoscopicInterlacePixelShader','serialize','GetWebGPUTextureFormat','float','substr','setWriteMask','setStencilWriteMask','isPhysicsEnabled','Read','_func','texture',')\x20uniform\x20','updateDirectColor4','BLEND','setStorageBuffer','#define\x20CONEEMITTER','catch','updateVector3','TEXTUREFORMAT_RGB','AddParser','stencilOp','sprites','simulatePointerUp','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vDiffuseInfos.x==0.)\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\x0a}\x0aelse\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','POINTERPICK','#include<sceneVertexDeclaration>\x0a#include<meshVertexDeclaration>\x0a','createExternalTexture',')\x20in\x20','_bindTexture','vec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=normalize(cross(dFdx(vPositionW),dFdy(vPositionW)))*vEyePosition.w;\x0a#endif\x0avec3\x20geometricNormalW=normalW;\x0a#if\x20defined(TWOSIDEDLIGHTING)\x20&&\x20defined(NORMAL)\x0ageometricNormalW=gl_FrontFacing\x20?\x20geometricNormalW\x20:\x20-geometricNormalW;\x0a#endif\x0a','getTransformMatrix','test','Iridescence\x20intensity','_ubCopyWithOfst','uniform\x20sampler2D\x20','thinInstanceBufferUpdated','lightsFragmentFunctions','RGB\x20format\x20not\x20supported\x20in\x20WebGPU','_generateStencilBuffer','frameMaxRenderMemoryLength',')\x20var<uniform>\x20uniforms\x20:\x20','componentCount','CLIPPLANE2','getSampler','setInt3','_compiledComputeEffects','samplerShadow','Invalid\x20multiview\x20frame\x20buffer','_getTexture','_perfCollector','depthTest','_coroutineScheduler','maxZ','inputBlocks','getTimeStep','opStencilDepthPass','Vector2','cameraId','_applyTextureArrayProcessing','invertYPreMultiplyAlpha','geometryVertexShader','_ProcessPrecision','_camera','highRefreshRate','HALF_FLOAT','keydown','createRawCubeTexture','_oldSize','fixedFoveation','isExist','setUIntArray4','texture2D','PREPASS_VELOCITY_TEXTURE_TYPE','_rtBlur','#ifdef\x20','fragmentCompilationError','_yOffset','getRenderWidth','_varyingNamesWGSL','strides','forceBindGroupCreation','drawImage','PositionKind','uniform\x20bool\x20alphaTest;\x0avarying\x20vec4\x20vColor;\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0a#ifdef\x20PIXEL_PERFECT\x0avec2\x20uvPixelPerfect(vec2\x20uv)\x20{\x0avec2\x20res=vec2(textureSize(diffuseSampler,0));\x0auv=uv*res;\x0avec2\x20seam=floor(uv+0.5);\x0auv=seam+clamp((uv-seam)/fwidth(uv),-0.5,0.5);\x0areturn\x20uv/res;\x0a}\x0a#endif\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#ifdef\x20PIXEL_PERFECT\x0avec2\x20uv=uvPixelPerfect(vUV);\x0a#else\x0avec2\x20uv=vUV;\x0a#endif\x0avec4\x20color=texture2D(diffuseSampler,uv);\x0afloat\x20fAlphaTest=float(alphaTest);\x0aif\x20(fAlphaTest\x20!=\x200.)\x0a{\x0aif\x20(color.a<0.95)\x0adiscard;\x0a}\x0acolor*=vColor;\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','cursor','_queryBuffer','ACTION_OnPickDownTrigger','setIntArray3','uniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0a#ifdef\x20SSAO\x0auniform\x20sampler2D\x20randomSampler;\x0auniform\x20float\x20randTextureTiles;\x0auniform\x20float\x20samplesFactor;\x0auniform\x20vec3\x20sampleSphere[SAMPLES];\x0auniform\x20float\x20totalStrength;\x0auniform\x20float\x20radius;\x0auniform\x20float\x20area;\x0auniform\x20float\x20fallOff;\x0auniform\x20float\x20base;\x0avec3\x20normalFromDepth(float\x20depth,vec2\x20coords)\x0a{\x0avec2\x20offset1=vec2(0.0,radius);\x0avec2\x20offset2=vec2(radius,0.0);\x0afloat\x20depth1=texture2D(textureSampler,coords+offset1).r;\x0afloat\x20depth2=texture2D(textureSampler,coords+offset2).r;\x0avec3\x20p1=vec3(offset1,depth1-depth);\x0avec3\x20p2=vec3(offset2,depth2-depth);\x0avec3\x20normal=cross(p1,p2);\x0anormal.z=-normal.z;\x0areturn\x20normalize(normal);\x0a}\x0avoid\x20main()\x0a{\x0avec3\x20random=normalize(texture2D(randomSampler,vUV*randTextureTiles).rgb);\x0afloat\x20depth=texture2D(textureSampler,vUV).r;\x0avec3\x20position=vec3(vUV,depth);\x0avec3\x20normal=normalFromDepth(depth,vUV);\x0afloat\x20radiusDepth=radius/depth;\x0afloat\x20occlusion=0.0;\x0avec3\x20ray;\x0avec3\x20hemiRay;\x0afloat\x20occlusionDepth;\x0afloat\x20difference;\x0afor\x20(int\x20i=0;\x20i<SAMPLES;\x20i++)\x0a{\x0aray=radiusDepth*reflect(sampleSphere[i],random);\x0ahemiRay=position+sign(dot(ray,normal))*ray;\x0aocclusionDepth=texture2D(textureSampler,clamp(hemiRay.xy,vec2(0.001,0.001),vec2(0.999,0.999))).r;\x0adifference=depth-occlusionDepth;\x0aocclusion+=step(fallOff,difference)*(1.0-smoothstep(fallOff,area,difference));\x0a}\x0afloat\x20ao=1.0-totalStrength*occlusion*samplesFactor;\x0afloat\x20result=clamp(ao+base,0.0,1.0);\x0agl_FragColor.r=result;\x0agl_FragColor.g=result;\x0agl_FragColor.b=result;\x0agl_FragColor.a=1.0;\x0a}\x0a#endif\x0a','BC2RGBAUnorm','_enabled','#ifdef\x20MORPHTARGETS\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x20\x0avertexID=f32(vertexInputs.vertexIndex)*uniforms.morphTargetTextureInfo.x;\x0apositionUpdated=positionUpdated+(readVector3FromRawSampler({X},vertexID)-vertexInputs.position)*uniforms.morphTargetInfluences[{X}];\x0avertexID=vertexID+1.0;\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0anormalUpdated=normalUpdated+(readVector3FromRawSampler({X},vertexID)\x20-vertexInputs.normal)*uniforms.morphTargetInfluences[{X}];\x0avertexID=vertexID+1.0;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0auvUpdated=uvUpdated+(readVector3FromRawSampler({X},vertexID).xy-vertexInputs.uv)*uniforms.morphTargetInfluences[{X}];\x0avertexID=vertexID+1.0;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0atangentUpdated.xyz=tangentUpdated.xyz+(readVector3FromRawSampler({X},vertexID)\x20-vertexInputs.tangent.xyz)*uniforms.morphTargetInfluences[{X}];\x0a#endif\x0a#else\x0apositionUpdated=positionUpdated+(position{X}-vertexInputs.position)*uniforms.morphTargetInfluences[{X}];\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0anormalUpdated+=(normal{X}-vertexInputs.normal)*uniforms.morphTargetInfluences[{X}];\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0atangentUpdated.xyz=tangentUpdated.xyz+(tangent{X}-vertexInputs.tangent.xyz)*uniforms.morphTargetInfluences[{X}];\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0auvUpdated=uvUpdated+(uv_{X}-vertexInputs.uv)*uniforms.morphTargetInfluences[{X}];\x0a#endif\x0a#endif\x0a#endif\x0a','_checkPrePointerObservable','createVertexBuffer','backgroundVertexShader','setAsAttribute','pointerX','screenSpaceReflections2','_totalPointersPressed','verticesStart','##INJECTCODE##','FALLOFF_PHYSICAL','uniform\x20float\x20brightness;\x0auniform\x20float\x20persistence;\x0auniform\x20float\x20timeScale;\x0avarying\x20vec2\x20vUV;\x0avec2\x20hash22(vec2\x20p)\x0a{\x0ap=p*mat2(127.1,311.7,269.5,183.3);\x0ap=-1.0+2.0*fract(sin(p)*43758.5453123);\x0areturn\x20sin(p*6.283+timeScale);\x0a}\x0afloat\x20interpolationNoise(vec2\x20p)\x0a{\x0avec2\x20pi=floor(p);\x0avec2\x20pf=p-pi;\x0avec2\x20w=pf*pf*(3.-2.*pf);\x0afloat\x20f00=dot(hash22(pi+vec2(.0,.0)),pf-vec2(.0,.0));\x0afloat\x20f01=dot(hash22(pi+vec2(.0,1.)),pf-vec2(.0,1.));\x0afloat\x20f10=dot(hash22(pi+vec2(1.0,0.)),pf-vec2(1.0,0.));\x0afloat\x20f11=dot(hash22(pi+vec2(1.0,1.)),pf-vec2(1.0,1.));\x0afloat\x20xm1=mix(f00,f10,w.x);\x0afloat\x20xm2=mix(f01,f11,w.x);\x0afloat\x20ym=mix(xm1,xm2,w.y);\x20\x0areturn\x20ym;\x0a}\x0afloat\x20perlinNoise2D(float\x20x,float\x20y)\x0a{\x0afloat\x20sum=0.0;\x0afloat\x20frequency=0.0;\x0afloat\x20amplitude=0.0;\x0afor(int\x20i=0;\x20i<OCTAVES;\x20i++)\x0a{\x0afrequency=pow(2.0,float(i));\x0aamplitude=pow(persistence,float(i));\x0asum=sum+interpolationNoise(vec2(x*frequency,y*frequency))*amplitude;\x0a}\x0areturn\x20sum;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0afloat\x20x=abs(vUV.x);\x0afloat\x20y=abs(vUV.y);\x0afloat\x20noise=brightness+(1.0-brightness)*perlinNoise2D(x,y);\x0agl_FragColor=vec4(noise,noise,noise,1.0);\x0a}\x0a','#ifdef\x20LIGHTMAP\x0avec4\x20lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);\x0a#ifdef\x20RGBDLIGHTMAP\x0alightmapColor.rgb=fromRGBD(lightmapColor);\x0a#endif\x0a#ifdef\x20GAMMALIGHTMAP\x0alightmapColor.rgb=toLinearSpace(lightmapColor.rgb);\x0a#endif\x0alightmapColor.rgb*=vLightmapInfos.y;\x0a#endif\x0a','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','framebufferTextureMultiviewOVR','BuildArray','\x20=\x20computeMirroredFixedEquirectangularCoords(','ACTION_OnPickTrigger','REFLECTIONMAP_PLANAR','getPluginVersion','_drawWrapperDepth','DeepCopy','_framebuffer','layer','_direction','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20bloomBlur;\x0avarying\x20vec2\x20vUV;\x0auniform\x20float\x20bloomWeight;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0agl_FragColor=texture2D(textureSampler,vUV);\x0avec3\x20blurred=texture2D(bloomBlur,vUV).rgb;\x0agl_FragColor.rgb=gl_FragColor.rgb+(blurred.rgb*bloomWeight);\x20\x0a}\x0a','TEXTURE_SKYBOX_MODE','IsImageBitmapArray','getViewCount','#ifdef\x20ORDER_INDEPENDENT_TRANSPARENCY\x0afloat\x20fragDepth=gl_FragCoord.z;\x20\x0a#ifdef\x20ORDER_INDEPENDENT_TRANSPARENCY_16BITS\x0auint\x20halfFloat=packHalf2x16(vec2(fragDepth));\x0avec2\x20full=unpackHalf2x16(halfFloat);\x0afragDepth=full.x;\x0a#endif\x0aivec2\x20fragCoord=ivec2(gl_FragCoord.xy);\x0avec2\x20lastDepth=texelFetch(oitDepthSampler,fragCoord,0).rg;\x0avec4\x20lastFrontColor=texelFetch(oitFrontColorSampler,fragCoord,0);\x0adepth.rg=vec2(-MAX_DEPTH);\x0afrontColor=lastFrontColor;\x0abackColor=vec4(0.0);\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0afloat\x20furthestDepth=-lastDepth.x;\x0afloat\x20nearestDepth=lastDepth.y;\x0a#else\x0afloat\x20nearestDepth=-lastDepth.x;\x0afloat\x20furthestDepth=lastDepth.y;\x0a#endif\x0afloat\x20alphaMultiplier=1.0-lastFrontColor.a;\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0aif\x20(fragDepth>nearestDepth\x20||\x20fragDepth<furthestDepth)\x20{\x0a#else\x0aif\x20(fragDepth<nearestDepth\x20||\x20fragDepth>furthestDepth)\x20{\x0a#endif\x0areturn;\x0a}\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0aif\x20(fragDepth<nearestDepth\x20&&\x20fragDepth>furthestDepth)\x20{\x0a#else\x0aif\x20(fragDepth>nearestDepth\x20&&\x20fragDepth<furthestDepth)\x20{\x0a#endif\x0adepth.rg=vec2(-fragDepth,fragDepth);\x0areturn;\x0a}\x0a#endif\x0a','_debugInsertMarker','focus','__framebuffer','//\x20Internals\x20UBO','_isCullFaceDirty','_buildIndexBuffer','_lastBuffer','_isBlendConstantsDirty','lookForClosingBracketForUniformBuffer','unmap','ALPHA_EQUATION_SUBSTRACT','importanceSampling','\x20=\x20computeCubicLocalCoords(','#include<__decl__defaultVertex>\x0a#define\x20CUSTOM_VERTEX_BEGIN\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20TANGENT\x0aattribute\x20vec4\x20tangent;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#include<uvAttributeDeclaration>[2..7]\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<helperFunctions>\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0a#include<prePassVertexDeclaration>\x0a#include<mainUVVaryingDeclaration>[1..7]\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap)\x0a#if\x20defined(SPECULARTERM)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular)\x0a#endif\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump)\x0a#include<samplerVertexDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal)\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<bumpVertexDeclaration>\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#include<logDepthDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec3\x20positionUpdated=position;\x0a#ifdef\x20NORMAL\x0avec3\x20normalUpdated=normal;\x0a#endif\x0a#ifdef\x20TANGENT\x0avec4\x20tangentUpdated=tangent;\x0a#endif\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avPositionUVW=positionUpdated;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_UPDATE_POSITION\x0a#define\x20CUSTOM_VERTEX_UPDATE_NORMAL\x0a#include<instancesVertex>\x0a#if\x20defined(PREPASS)\x20&&\x20defined(PREPASS_VELOCITY)\x20&&\x20!defined(BONES_VELOCITY_ENABLED)\x0avCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\x0a#endif\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0a#ifdef\x20NORMAL\x0amat3\x20normalWorld=mat3(finalWorld);\x0a#if\x20defined(INSTANCES)\x20&&\x20defined(THIN_INSTANCES)\x0avNormalW=normalUpdated/vec3(dot(normalWorld[0],normalWorld[0]),dot(normalWorld[1],normalWorld[1]),dot(normalWorld[2],normalWorld[2]));\x0avNormalW=normalize(normalWorld*vNormalW);\x0a#else\x0a#ifdef\x20NONUNIFORMSCALING\x0anormalWorld=transposeMat3(inverseMat3(normalWorld));\x0a#endif\x0avNormalW=normalize(normalWorld*normalUpdated);\x0a#endif\x0a#endif\x0a#define\x20CUSTOM_VERTEX_UPDATE_WORLDPOS\x0a#ifdef\x20MULTIVIEW\x0aif\x20(gl_ViewID_OVR==0u)\x20{\x0agl_Position=viewProjection*worldPos;\x0a}\x20else\x20{\x0agl_Position=viewProjectionR*worldPos;\x0a}\x0a#else\x0agl_Position=viewProjection*worldPos;\x0a#endif\x0avPositionW=vec3(worldPos);\x0a#include<prePassVertex>\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avDirectionW=normalize(vec3(finalWorld*vec4(positionUpdated,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uvUpdated=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20MAINUV1\x0avMainUV1=uvUpdated;\x0a#endif\x0a#include<uvVariableDeclaration>[2..7]\x0a#include<samplerVertexImplementation>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_MATRIXNAME_,diffuse,_INFONAME_,DiffuseInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_MATRIXNAME_,detail,_INFONAME_,DetailInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_MATRIXNAME_,ambient,_INFONAME_,AmbientInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_MATRIXNAME_,opacity,_INFONAME_,OpacityInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_MATRIXNAME_,emissive,_INFONAME_,EmissiveInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_MATRIXNAME_,lightmap,_INFONAME_,LightmapInfos.x)\x0a#if\x20defined(SPECULARTERM)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_MATRIXNAME_,specular,_INFONAME_,SpecularInfos.x)\x0a#endif\x0a#include<samplerVertexImplementation>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_MATRIXNAME_,bump,_INFONAME_,BumpInfos.x)\x0a#include<samplerVertexImplementation>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_MATRIXNAME_,decal,_INFONAME_,DecalInfos.x)\x0a#include<bumpVertex>\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#include<pointCloudVertex>\x0a#include<logDepthVertex>\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','offsetY','_halfDomeMask','glowMapGenerationVertexShader','R8Unorm','_preCreateBindGroupEntries','#ifdef\x20FOG\x0a#define\x20FOGMODE_NONE\x200.\x0a#define\x20FOGMODE_EXP\x201.\x0a#define\x20FOGMODE_EXP2\x202.\x0a#define\x20FOGMODE_LINEAR\x203.\x0a#define\x20E\x202.71828\x0auniform\x20vec4\x20vFogInfos;\x0auniform\x20vec3\x20vFogColor;\x0avarying\x20vec3\x20vFogDistance;\x0afloat\x20CalcFogFactor()\x0a{\x0afloat\x20fogCoeff=1.0;\x0afloat\x20fogStart=vFogInfos.y;\x0afloat\x20fogEnd=vFogInfos.z;\x0afloat\x20fogDensity=vFogInfos.w;\x0afloat\x20fogDistance=length(vFogDistance);\x0aif\x20(FOGMODE_LINEAR==vFogInfos.x)\x0a{\x0afogCoeff=(fogEnd-fogDistance)/(fogEnd-fogStart);\x0a}\x0aelse\x20if\x20(FOGMODE_EXP==vFogInfos.x)\x0a{\x0afogCoeff=1.0/pow(E,fogDistance*fogDensity);\x0a}\x0aelse\x20if\x20(FOGMODE_EXP2==vFogInfos.x)\x0a{\x0afogCoeff=1.0/pow(E,fogDistance*fogDistance*fogDensity*fogDensity);\x0a}\x0areturn\x20clamp(fogCoeff,0.0,1.0);\x0a}\x0a#endif\x0a','leftOver-','TEXTURETYPE_UNSIGNED_SHORT_5_6_5','TEXTURE_MAG_FILTER','sunDirectionalLight','#include<helperFunctions>\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20float\x20threshold;\x0auniform\x20float\x20exposure;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0agl_FragColor=texture2D(textureSampler,vUV);\x0afloat\x20luma=dot(LuminanceEncodeApprox,gl_FragColor.rgb*exposure);\x0agl_FragColor.rgb=step(threshold,luma)*gl_FragColor.rgb;\x0a}','#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0auniform\x20vec4\x20color;\x0a#ifdef\x20ALPHATEST\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<logDepthDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0a#ifdef\x20ALPHATEST\x0aif\x20(texture2D(diffuseSampler,vUV).a<0.4)\x0adiscard;\x0a#endif\x0a#include<logDepthFragment>\x0agl_FragColor=color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','CopySrc','textureCubeArray','setTextures','convolutionPixelShader','loop','_maxLodLevel','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20refractionSampler;\x0auniform\x20vec3\x20baseColor;\x0auniform\x20float\x20depth;\x0auniform\x20float\x20colorLevel;\x0avoid\x20main()\x20{\x0afloat\x20ref=1.0-texture2D(refractionSampler,vUV).r;\x0avec2\x20uv=vUV-vec2(0.5);\x0avec2\x20offset=uv*depth*ref;\x0avec3\x20sourceColor=texture2D(textureSampler,vUV-offset).rgb;\x0agl_FragColor=vec4(sourceColor+sourceColor*ref*colorLevel,1.0);\x0a}','ASTC4x4Unorm','unBindMultiColorAttachmentFramebuffer','_ssDiffusionD','_positionUVWName','ACTION_OnPointerOverTrigger','_getVertexShaderCode','IRIDESCENCE','fxaaPixelShader','_deferredReleaseBuffers','.xyz,\x20','vec3\x20','updateUInt2','uniform\x20sampler2D\x20textureSampler;\x20\x0auniform\x20sampler2D\x20colorTable;\x20\x0avarying\x20vec2\x20vUV;\x0aconst\x20float\x20SLICE_COUNT=16.0;\x20\x0avec4\x20sampleAs3DTexture(sampler2D\x20textureSampler,vec3\x20uv,float\x20width)\x20{\x0afloat\x20sliceSize=1.0/width;\x20\x0afloat\x20slicePixelSize=sliceSize/width;\x20\x0afloat\x20sliceInnerSize=slicePixelSize*(width-1.0);\x20\x0afloat\x20zSlice0=min(floor(uv.z*width),width-1.0);\x0afloat\x20zSlice1=min(zSlice0+1.0,width-1.0);\x0afloat\x20xOffset=slicePixelSize*0.5+uv.x*sliceInnerSize;\x0afloat\x20s0=xOffset+(zSlice0*sliceSize);\x0afloat\x20s1=xOffset+(zSlice1*sliceSize);\x0avec4\x20slice0Color=texture2D(textureSampler,vec2(s0,uv.y));\x0avec4\x20slice1Color=texture2D(textureSampler,vec2(s1,uv.y));\x0afloat\x20zOffset=mod(uv.z*width,1.0);\x0avec4\x20result=mix(slice0Color,slice1Color,zOffset);\x0areturn\x20result;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec4\x20screen_color=texture2D(textureSampler,vUV);\x0agl_FragColor=sampleAs3DTexture(colorTable,screen_color.rgb,SLICE_COUNT);\x0a}','waterPixelShader','depthBoxBlurPixelShader','setFloat2','TEXTURETYPE_UNSIGNED_INT_24_8','isArray','#ifdef\x20MORPHTARGETS\x0auniform\x20morphTargetInfluences\x20:\x20array<f32,NUM_MORPH_INFLUENCERS>;\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x20\x0auniform\x20morphTargetTextureIndices\x20:\x20array<f32,NUM_MORPH_INFLUENCERS>;\x0auniform\x20morphTargetTextureInfo\x20:\x20vec3<f32>;\x0avar\x20morphTargets\x20:\x20texture_2d_array<f32>;\x0avar\x20morphTargetsSampler\x20:\x20sampler;\x0afn\x20readVector3FromRawSampler(targetIndex\x20:\x20i32,vertexIndex\x20:\x20f32)->vec3<f32>\x0a{\x20\x0alet\x20y=floor(vertexIndex/uniforms.morphTargetTextureInfo.y);\x0alet\x20x=vertexIndex-y*uniforms.morphTargetTextureInfo.y;\x0alet\x20textureUV=vec2<f32>((x+0.5)/uniforms.morphTargetTextureInfo.y,(y+0.5)/uniforms.morphTargetTextureInfo.z);\x0areturn\x20textureSampleLevel(morphTargets,morphTargetsSampler,textureUV,i32(uniforms.morphTargetTextureIndices[targetIndex]),0.0).xyz;\x0a}\x0a#endif\x0a#endif\x0a','setLayerAndFaceIndex','.xy;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20','#if\x20SM_NORMALBIAS==1\x0a#if\x20SM_DIRECTIONINLIGHTDATA==1\x0avec3\x20worldLightDirSM=normalize(-lightDataSM.xyz);\x0a#else\x0avec3\x20directionToLightSM=lightDataSM.xyz-worldPos.xyz;\x0avec3\x20worldLightDirSM=normalize(directionToLightSM);\x0a#endif\x0afloat\x20ndlSM=dot(vNormalW,worldLightDirSM);\x0afloat\x20sinNLSM=sqrt(1.0-ndlSM*ndlSM);\x0afloat\x20normalBiasSM=biasAndScaleSM.y*sinNLSM;\x0aworldPos.xyz-=vNormalW*normalBiasSM;\x0a#endif\x0a','getMeshUnderPointerByPointerId','get','#define\x20SPHEREEMITTER','TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV','_disposePhysicsObserver','hit','activeCamera','particleSize','_frontFace','finish','DEPTH_COMPONENT16','_pickMove','textureBlur','TEXTURETYPE_BYTE','_sphericalPolynomialPromise','TEXTUREFORMAT_LUMINANCE','_getBuffer','attributeNamesFromEffect','data:','_uniformDeclaration','_getVideoPipeline','_isDepthTestDirty','lineProcessor','_device','_bindGroupEntries','AddModel','vec4\x20','ALPHA_PREMULTIPLIED_PORTERDUFF','VertexAndFragment','distance','_setTarget','float\x20distanceSquared(vec2\x20a,vec2\x20b)\x20{\x20a-=b;\x20return\x20dot(a,a);\x20}\x0a/**\x0aparam\x20csOrigin\x20Camera-space\x20ray\x20origin,which\x20must\x20be\x20\x0awithin\x20the\x20view\x20volume\x20and\x20must\x20have\x20z>0.01\x20and\x20project\x20within\x20the\x20valid\x20screen\x20rectangle\x0aparam\x20csDirection\x20Unit\x20length\x20camera-space\x20ray\x20direction\x0aparam\x20projectToPixelMatrix\x20A\x20projection\x20matrix\x20that\x20maps\x20to\x20**pixel**\x20coordinates\x20\x0a(**not**\x20[-1,+1]\x20normalized\x20device\x20coordinates).\x0aparam\x20csZBuffer\x20The\x20camera-space\x20Z\x20buffer\x0aparam\x20csZBufferSize\x20Dimensions\x20of\x20csZBuffer\x0aparam\x20csZThickness\x20Camera\x20space\x20csZThickness\x20to\x20ascribe\x20to\x20each\x20pixel\x20in\x20the\x20depth\x20buffer\x0aparam\x20nearPlaneZ\x20Positive\x20number.\x20Doesn\x27t\x20have\x20to\x20be\x20THE\x20actual\x20near\x20plane,just\x20a\x20reasonable\x20value\x0afor\x20clipping\x20rays\x20headed\x20towards\x20the\x20camera\x0aparam\x20stride\x20Step\x20in\x20horizontal\x20or\x20vertical\x20pixels\x20between\x20samples.\x20This\x20is\x20a\x20float\x0abecause\x20integer\x20math\x20is\x20slow\x20on\x20GPUs,but\x20should\x20be\x20set\x20to\x20an\x20integer>=1\x0aparam\x20jitterFraction\x20Number\x20between\x200\x20and\x201\x20for\x20how\x20far\x20to\x20bump\x20the\x20ray\x20in\x20stride\x20units\x0ato\x20conceal\x20banding\x20artifacts,plus\x20the\x20stride\x20ray\x20offset.\x0aparam\x20maxSteps\x20Maximum\x20number\x20of\x20iterations.\x20Higher\x20gives\x20better\x20images\x20but\x20may\x20be\x20slow\x0aparam\x20maxRayTraceDistance\x20Maximum\x20camera-space\x20distance\x20to\x20trace\x20before\x20returning\x20a\x20miss\x0aparam\x20selfCollisionNumSkip\x20Number\x20of\x20steps\x20to\x20skip\x20at\x20start\x20when\x20raytracing\x20to\x20avoid\x20self\x20collisions.\x0a1\x20is\x20a\x20reasonable\x20value,depending\x20on\x20the\x20scene\x20you\x20may\x20need\x20to\x20set\x20this\x20value\x20to\x202\x0aparam\x20hitPixel\x20Pixel\x20coordinates\x20of\x20the\x20first\x20intersection\x20with\x20the\x20scene\x0aparam\x20numIterations\x20number\x20of\x20iterations\x20performed\x0aparam\x20csHitPoint\x20Camera\x20space\x20location\x20of\x20the\x20ray\x20hit\x0a*/\x0a#define\x20inline\x0abool\x20traceScreenSpaceRay1(\x0avec3\x20csOrigin,\x0avec3\x20csDirection,\x0amat4\x20projectToPixelMatrix,\x0asampler2D\x20csZBuffer,\x0avec2\x20csZBufferSize,\x0a#ifdef\x20SSRAYTRACE_USE_BACK_DEPTHBUFFER\x0asampler2D\x20csZBackBuffer,\x0afloat\x20csZBackSizeFactor,\x0a#endif\x0afloat\x20csZThickness,\x0afloat\x20nearPlaneZ,\x0afloat\x20stride,\x0afloat\x20jitterFraction,\x0afloat\x20maxSteps,\x0afloat\x20maxRayTraceDistance,\x0afloat\x20selfCollisionNumSkip,\x0aout\x20vec2\x20startPixel,\x0aout\x20vec2\x20hitPixel,\x0aout\x20vec3\x20csHitPoint,\x0aout\x20float\x20numIterations\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0a,out\x20vec3\x20debugColor\x0a#endif\x0a)\x0a{\x0a#ifdef\x20SSRAYTRACE_RIGHT_HANDED_SCENE\x0afloat\x20rayLength=(csOrigin.z+csDirection.z*maxRayTraceDistance)>-nearPlaneZ\x20?\x20(-nearPlaneZ-csOrigin.z)/csDirection.z\x20:\x20maxRayTraceDistance;\x0a#else\x0afloat\x20rayLength=(csOrigin.z+csDirection.z*maxRayTraceDistance)<nearPlaneZ\x20?\x20(nearPlaneZ-csOrigin.z)/csDirection.z\x20:\x20maxRayTraceDistance;\x0a#endif\x0avec3\x20csEndPoint=csOrigin+csDirection*rayLength;\x0ahitPixel=vec2(-1.0,-1.0);\x0avec4\x20H0=projectToPixelMatrix*vec4(csOrigin,1.0);\x0avec4\x20H1=projectToPixelMatrix*vec4(csEndPoint,1.0);\x0afloat\x20k0=1.0/H0.w;\x0afloat\x20k1=1.0/H1.w;\x0avec3\x20Q0=csOrigin*k0;\x0avec3\x20Q1=csEndPoint*k1;\x0avec2\x20P0=H0.xy*k0;\x0avec2\x20P1=H1.xy*k1;\x0a#ifdef\x20SSRAYTRACE_CLIP_TO_FRUSTUM\x0afloat\x20xMax=csZBufferSize.x-0.5,xMin=0.5,yMax=csZBufferSize.y-0.5,yMin=0.5;\x0afloat\x20alpha=0.0;\x0aif\x20((P1.y>yMax)\x20||\x20(P1.y<yMin))\x20{\x0aalpha=(P1.y-((P1.y>yMax)\x20?\x20yMax\x20:\x20yMin))/(P1.y-P0.y);\x0a}\x0aif\x20((P1.x>xMax)\x20||\x20(P1.x<xMin))\x20{\x0aalpha=max(alpha,(P1.x-((P1.x>xMax)\x20?\x20xMax\x20:\x20xMin))/(P1.x-P0.x));\x0a}\x0aP1=mix(P1,P0,alpha);\x20k1=mix(k1,k0,alpha);\x20Q1=mix(Q1,Q0,alpha);\x0a#endif\x0aP1+=vec2((distanceSquared(P0,P1)<0.0001)\x20?\x200.01\x20:\x200.0);\x0avec2\x20delta=P1-P0;\x0abool\x20permute=false;\x0aif\x20(abs(delta.x)<abs(delta.y))\x20{\x20\x0apermute=true;\x0adelta=delta.yx;\x0aP0=P0.yx;\x0aP1=P1.yx;\x20\x0a}\x0afloat\x20stepDirection=sign(delta.x);\x0afloat\x20invdx=stepDirection/delta.x;\x0avec2\x20dP=vec2(stepDirection,delta.y*invdx);\x0avec3\x20dQ=(Q1-Q0)*invdx;\x0afloat\x20dk=(k1-k0)*invdx;\x0afloat\x20zMin=min(csEndPoint.z,csOrigin.z);\x0afloat\x20zMax=max(csEndPoint.z,csOrigin.z);\x0adP*=stride;\x20dQ*=stride;\x20dk*=stride;\x0aP0+=dP*jitterFraction;\x20Q0+=dQ*jitterFraction;\x20k0+=dk*jitterFraction;\x0avec4\x20pqk=vec4(P0,Q0.z,k0);\x0avec4\x20dPQK=vec4(dP,dQ.z,dk);\x0astartPixel=permute\x20?\x20P0.yx\x20:\x20P0.xy;\x0afloat\x20prevZMaxEstimate=csOrigin.z;\x0afloat\x20rayZMin=prevZMaxEstimate,rayZMax=prevZMaxEstimate;\x0afloat\x20sceneZMax=rayZMax+1e4;\x0afloat\x20end=P1.x*stepDirection;\x0abool\x20hit=false;\x0afloat\x20stepCount;\x0afor\x20(stepCount=0.0;\x0astepCount<=selfCollisionNumSkip\x20||\x0a(pqk.x*stepDirection)<=end\x20&&\x0astepCount<maxSteps\x20&&\x0a!hit\x20&&\x0asceneZMax\x20!=\x200.0;\x20\x0apqk+=dPQK,++stepCount)\x0a{\x0ahitPixel=permute\x20?\x20pqk.yx\x20:\x20pqk.xy;\x0arayZMin=prevZMaxEstimate;\x0arayZMax=(dPQK.z*0.5+pqk.z)/(dPQK.w*0.5+pqk.w);\x0arayZMax=clamp(rayZMax,zMin,zMax);\x0aprevZMaxEstimate=rayZMax;\x0aif\x20(rayZMin>rayZMax)\x20{\x20\x0afloat\x20t=rayZMin;\x20rayZMin=rayZMax;\x20rayZMax=t;\x0a}\x0asceneZMax=texelFetch(csZBuffer,ivec2(hitPixel),0).r;\x0a#ifdef\x20SSRAYTRACE_RIGHT_HANDED_SCENE\x0a#ifdef\x20SSRAYTRACE_USE_BACK_DEPTHBUFFER\x0afloat\x20sceneBackZ=texelFetch(csZBackBuffer,ivec2(hitPixel/csZBackSizeFactor),0).r;\x0ahit=(rayZMax>=sceneBackZ-csZThickness)\x20&&\x20(rayZMin<=sceneZMax);\x0a#else\x0ahit=(rayZMax>=sceneZMax-csZThickness)\x20&&\x20(rayZMin<=sceneZMax);\x0a#endif\x0a#else\x0a#ifdef\x20SSRAYTRACE_USE_BACK_DEPTHBUFFER\x0afloat\x20sceneBackZ=texelFetch(csZBackBuffer,ivec2(hitPixel/csZBackSizeFactor),0).r;\x0ahit=(rayZMin<=sceneBackZ+csZThickness)\x20&&\x20(rayZMax>=sceneZMax)\x20&&\x20(sceneZMax\x20!=\x200.0);\x0a#else\x0ahit=(rayZMin<=sceneZMax+csZThickness)\x20&&\x20(rayZMax>=sceneZMax);\x0a#endif\x0a#endif\x0a}\x0apqk-=dPQK;\x0astepCount-=1.0;\x0a#ifdef\x20SSRAYTRACE_ENABLE_REFINEMENT\x0aif\x20(stride>1.0\x20&&\x20hit)\x20{\x0apqk-=dPQK;\x0astepCount-=1.0;\x0afloat\x20invStride=1.0/stride;\x0adPQK*=invStride;\x0afloat\x20refinementStepCount=0.0;\x0aprevZMaxEstimate=pqk.z/pqk.w;\x0arayZMax=prevZMaxEstimate;\x0asceneZMax=rayZMax+1e7;\x0afor\x20(;\x0arefinementStepCount<=1.0\x20||\x0a(refinementStepCount<=stride*1.4)\x20&&\x0a(rayZMax<sceneZMax)\x20&&\x20(sceneZMax\x20!=\x200.0);\x0apqk+=dPQK,refinementStepCount+=1.0)\x0a{\x0arayZMin=prevZMaxEstimate;\x0arayZMax=(dPQK.z*0.5+pqk.z)/(dPQK.w*0.5+pqk.w);\x0arayZMax=clamp(rayZMax,zMin,zMax);\x0aprevZMaxEstimate=rayZMax;\x0arayZMax=max(rayZMax,rayZMin);\x0ahitPixel=permute\x20?\x20pqk.yx\x20:\x20pqk.xy;\x0asceneZMax=texelFetch(csZBuffer,ivec2(hitPixel),0).r;\x0a}\x0apqk-=dPQK;\x0arefinementStepCount-=1.0;\x0astepCount+=refinementStepCount/stride;\x0a}\x0a#endif\x0aQ0.xy+=dQ.xy*stepCount;\x0aQ0.z=pqk.z;\x0acsHitPoint=Q0/pqk.w;\x0anumIterations=stepCount+1.0;\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0aif\x20(((pqk.x+dPQK.x)*stepDirection)>end)\x20{\x0adebugColor=vec3(0,0,1);\x0a}\x20else\x20if\x20((stepCount+1.0)>=maxSteps)\x20{\x0adebugColor=vec3(1,0,0);\x0a}\x20else\x20if\x20(sceneZMax==0.0)\x20{\x0adebugColor=vec3(1,1,0);\x0a}\x20else\x20{\x0adebugColor=vec3(0,stepCount/maxSteps,0);\x0a}\x0a#endif\x0areturn\x20hit;\x0a}\x0a','uv4','previousViewProjection','_commandEncoderForCreation','setAsSystemValue','texture2DArray','Unsupported\x20Physics\x20plugin\x20version.','IdentityReadOnly','_copyInvertYBindGroupWithOfst','funcRef','CopyDst','evt','finalize','pointerMovePredicate','TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1','{W:\x20','previousWorld','readValue','struct\x20subSurfaceOutParams\x0a{\x0avec3\x20specularEnvironmentReflectance;\x0a#ifdef\x20SS_REFRACTION\x0avec3\x20finalRefraction;\x0avec3\x20surfaceAlbedo;\x0a#ifdef\x20SS_LINKREFRACTIONTOTRANSPARENCY\x0afloat\x20alpha;\x0a#endif\x0a#ifdef\x20REFLECTION\x0afloat\x20refractionFactorForIrradiance;\x0a#endif\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0avec3\x20transmittance;\x0afloat\x20translucencyIntensity;\x0a#ifdef\x20REFLECTION\x0avec3\x20refractionIrradiance;\x0a#endif\x0a#endif\x0a#if\x20DEBUGMODE>0\x0avec4\x20thicknessMap;\x0avec4\x20environmentRefraction;\x0avec3\x20refractionTransmittance;\x0a#endif\x0a};\x0a#ifdef\x20SUBSURFACE\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20subSurfaceBlock(\x0ain\x20vec3\x20vSubSurfaceIntensity,\x0ain\x20vec2\x20vThicknessParam,\x0ain\x20vec4\x20vTintColor,\x0ain\x20vec3\x20normalW,\x0ain\x20vec3\x20specularEnvironmentReflectance,\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0ain\x20vec4\x20thicknessMap,\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0ain\x20vec4\x20refractionIntensityMap,\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0ain\x20vec4\x20translucencyIntensityMap,\x0a#endif\x0a#ifdef\x20REFLECTION\x0a#ifdef\x20SS_TRANSLUCENCY\x0ain\x20mat4\x20reflectionMatrix,\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#if\x20!defined(NORMAL)\x20||\x20!defined(USESPHERICALINVERTEX)\x0ain\x20vec3\x20irradianceVector_,\x0a#endif\x0a#if\x20defined(REALTIME_FILTERING)\x0ain\x20samplerCube\x20reflectionSampler,\x0ain\x20vec2\x20vReflectionFilteringInfo,\x0a#endif\x0a#endif\x0a#ifdef\x20USEIRRADIANCEMAP\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20irradianceSampler,\x0a#else\x0ain\x20sampler2D\x20irradianceSampler,\x0a#endif\x0a#endif\x0a#endif\x0a#endif\x0a#if\x20defined(SS_REFRACTION)\x20||\x20defined(SS_TRANSLUCENCY)\x0ain\x20vec3\x20surfaceAlbedo,\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0ain\x20vec3\x20vPositionW,\x0ain\x20vec3\x20viewDirectionW,\x0ain\x20mat4\x20view,\x0ain\x20vec4\x20vRefractionInfos,\x0ain\x20mat4\x20refractionMatrix,\x0ain\x20vec4\x20vRefractionMicrosurfaceInfos,\x0ain\x20vec4\x20vLightingIntensity,\x0a#ifdef\x20SS_LINKREFRACTIONTOTRANSPARENCY\x0ain\x20float\x20alpha,\x0a#endif\x0a#ifdef\x20SS_LODINREFRACTIONALPHA\x0ain\x20float\x20NdotVUnclamped,\x0a#endif\x0a#ifdef\x20SS_LINEARSPECULARREFRACTION\x0ain\x20float\x20roughness,\x0a#endif\x0ain\x20float\x20alphaG,\x0a#ifdef\x20SS_REFRACTIONMAP_3D\x0ain\x20samplerCube\x20refractionSampler,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0ain\x20samplerCube\x20refractionSamplerLow,\x0ain\x20samplerCube\x20refractionSamplerHigh,\x0a#endif\x0a#else\x0ain\x20sampler2D\x20refractionSampler,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0ain\x20sampler2D\x20refractionSamplerLow,\x0ain\x20sampler2D\x20refractionSamplerHigh,\x0a#endif\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0ain\x20anisotropicOutParams\x20anisotropicOut,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0ain\x20vec2\x20vRefractionFilteringInfo,\x0a#endif\x0a#ifdef\x20SS_USE_LOCAL_REFRACTIONMAP_CUBIC\x0ain\x20vec3\x20refractionPosition,\x0ain\x20vec3\x20refractionSize,\x0a#endif\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0ain\x20vec3\x20vDiffusionDistance,\x0a#endif\x0aout\x20subSurfaceOutParams\x20outParams\x0a)\x0a{\x0aoutParams.specularEnvironmentReflectance=specularEnvironmentReflectance;\x0a#ifdef\x20SS_REFRACTION\x0afloat\x20refractionIntensity=vSubSurfaceIntensity.x;\x0a#ifdef\x20SS_LINKREFRACTIONTOTRANSPARENCY\x0arefractionIntensity*=(1.0-alpha);\x0aoutParams.alpha=1.0;\x0a#endif\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0afloat\x20translucencyIntensity=vSubSurfaceIntensity.y;\x0a#endif\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0a#if\x20defined(SS_USE_GLTF_TEXTURES)\x0afloat\x20thickness=thicknessMap.g*vThicknessParam.y+vThicknessParam.x;\x0a#else\x0afloat\x20thickness=thicknessMap.r*vThicknessParam.y+vThicknessParam.x;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0aoutParams.thicknessMap=thicknessMap;\x0a#endif\x0a#ifdef\x20SS_MASK_FROM_THICKNESS_TEXTURE\x0a#if\x20defined(SS_REFRACTION)\x20&&\x20defined(SS_REFRACTION_USE_INTENSITY_FROM_TEXTURE)\x0a#if\x20defined(SS_USE_GLTF_TEXTURES)\x0arefractionIntensity*=thicknessMap.r;\x0a#else\x0arefractionIntensity*=thicknessMap.g;\x0a#endif\x0a#endif\x0a#if\x20defined(SS_TRANSLUCENCY)\x20&&\x20defined(SS_TRANSLUCENCY_USE_INTENSITY_FROM_TEXTURE)\x0atranslucencyIntensity*=thicknessMap.b;\x0a#endif\x0a#endif\x0a#else\x0afloat\x20thickness=vThicknessParam.y;\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0a#ifdef\x20SS_USE_GLTF_TEXTURES\x0arefractionIntensity*=refractionIntensityMap.r;\x0a#else\x0arefractionIntensity*=refractionIntensityMap.g;\x0a#endif\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0atranslucencyIntensity*=translucencyIntensityMap.b;\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCY\x0athickness=maxEps(thickness);\x0avec3\x20transmittance=transmittanceBRDF_Burley(vTintColor.rgb,vDiffusionDistance,thickness);\x0atransmittance*=translucencyIntensity;\x0aoutParams.transmittance=transmittance;\x0aoutParams.translucencyIntensity=translucencyIntensity;\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0avec4\x20environmentRefraction=vec4(0.,0.,0.,0.);\x0a#ifdef\x20ANISOTROPIC\x0avec3\x20refractionVector=refract(-viewDirectionW,anisotropicOut.anisotropicNormal,vRefractionInfos.y);\x0a#else\x0avec3\x20refractionVector=refract(-viewDirectionW,normalW,vRefractionInfos.y);\x0a#endif\x0a#ifdef\x20SS_REFRACTIONMAP_OPPOSITEZ\x0arefractionVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20SS_REFRACTIONMAP_3D\x0a#ifdef\x20SS_USE_LOCAL_REFRACTIONMAP_CUBIC\x0arefractionVector=parallaxCorrectNormal(vPositionW,refractionVector,refractionSize,refractionPosition);\x0a#endif\x0arefractionVector.y=refractionVector.y*vRefractionInfos.w;\x0avec3\x20refractionCoords=refractionVector;\x0arefractionCoords=vec3(refractionMatrix*vec4(refractionCoords,0));\x0a#else\x0a#ifdef\x20SS_USE_THICKNESS_AS_DEPTH\x0avec3\x20vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*thickness,1.0)));\x0a#else\x0avec3\x20vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));\x0a#endif\x0avec2\x20refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;\x0arefractionCoords.y=1.0-refractionCoords.y;\x0a#endif\x0a#ifdef\x20SS_HAS_THICKNESS\x0afloat\x20ior=vRefractionInfos.y;\x0a#else\x0afloat\x20ior=vRefractionMicrosurfaceInfos.w;\x0a#endif\x0a#ifdef\x20SS_LODINREFRACTIONALPHA\x0afloat\x20refractionAlphaG=alphaG;\x0arefractionAlphaG=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));\x0afloat\x20refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,refractionAlphaG,NdotVUnclamped);\x0a#elif\x20defined(SS_LINEARSPECULARREFRACTION)\x0afloat\x20refractionRoughness=alphaG;\x0arefractionRoughness=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));\x0afloat\x20refractionLOD=getLinearLodFromRoughness(vRefractionMicrosurfaceInfos.x,refractionRoughness);\x0a#else\x0afloat\x20refractionAlphaG=alphaG;\x0arefractionAlphaG=mix(alphaG,0.0,clamp(ior*3.0-2.0,0.0,1.0));\x0afloat\x20refractionLOD=getLodFromAlphaG(vRefractionMicrosurfaceInfos.x,refractionAlphaG);\x0a#endif\x0a#ifdef\x20LODBASEDMICROSFURACE\x0arefractionLOD=refractionLOD*vRefractionMicrosurfaceInfos.y+vRefractionMicrosurfaceInfos.z;\x0a#ifdef\x20SS_LODINREFRACTIONALPHA\x0afloat\x20automaticRefractionLOD=UNPACK_LOD(sampleRefraction(refractionSampler,refractionCoords).a);\x0afloat\x20requestedRefractionLOD=max(automaticRefractionLOD,refractionLOD);\x0a#else\x0afloat\x20requestedRefractionLOD=refractionLOD;\x0a#endif\x0a#if\x20defined(REALTIME_FILTERING)\x20&&\x20defined(SS_REFRACTIONMAP_3D)\x0aenvironmentRefraction=vec4(radiance(alphaG,refractionSampler,refractionCoords,vRefractionFilteringInfo),1.0);\x0a#else\x0aenvironmentRefraction=sampleRefractionLod(refractionSampler,refractionCoords,requestedRefractionLOD);\x0a#endif\x0a#else\x0afloat\x20lodRefractionNormalized=saturate(refractionLOD/log2(vRefractionMicrosurfaceInfos.x));\x0afloat\x20lodRefractionNormalizedDoubled=lodRefractionNormalized*2.0;\x0avec4\x20environmentRefractionMid=sampleRefraction(refractionSampler,refractionCoords);\x0aif\x20(lodRefractionNormalizedDoubled<1.0){\x0aenvironmentRefraction=mix(\x0asampleRefraction(refractionSamplerHigh,refractionCoords),\x0aenvironmentRefractionMid,\x0alodRefractionNormalizedDoubled\x0a);\x0a}\x20else\x20{\x0aenvironmentRefraction=mix(\x0aenvironmentRefractionMid,\x0asampleRefraction(refractionSamplerLow,refractionCoords),\x0alodRefractionNormalizedDoubled-1.0\x0a);\x0a}\x0a#endif\x0a#ifdef\x20SS_RGBDREFRACTION\x0aenvironmentRefraction.rgb=fromRGBD(environmentRefraction);\x0a#endif\x0a#ifdef\x20SS_GAMMAREFRACTION\x0aenvironmentRefraction.rgb=toLinearSpace(environmentRefraction.rgb);\x0a#endif\x0aenvironmentRefraction.rgb*=vRefractionInfos.x;\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0avec3\x20refractionTransmittance=vec3(refractionIntensity);\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0avec3\x20volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);\x0arefractionTransmittance*=cocaLambert(volumeAlbedo,thickness);\x0a#elif\x20defined(SS_LINKREFRACTIONTOTRANSPARENCY)\x0afloat\x20maxChannel=max(max(surfaceAlbedo.r,surfaceAlbedo.g),surfaceAlbedo.b);\x0avec3\x20volumeAlbedo=saturate(maxChannel*surfaceAlbedo);\x0aenvironmentRefraction.rgb*=volumeAlbedo;\x0a#else\x0avec3\x20volumeAlbedo=computeColorAtDistanceInMedia(vTintColor.rgb,vTintColor.w);\x0arefractionTransmittance*=cocaLambert(volumeAlbedo,vThicknessParam.y);\x0a#endif\x0a#ifdef\x20SS_ALBEDOFORREFRACTIONTINT\x0aenvironmentRefraction.rgb*=surfaceAlbedo.rgb;\x0a#endif\x0aoutParams.surfaceAlbedo=surfaceAlbedo*(1.-refractionIntensity);\x0a#ifdef\x20REFLECTION\x0aoutParams.refractionFactorForIrradiance=(1.-refractionIntensity);\x0a#endif\x0a#ifdef\x20UNUSED_MULTIPLEBOUNCES\x0avec3\x20bounceSpecularEnvironmentReflectance=(2.0*specularEnvironmentReflectance)/(1.0+specularEnvironmentReflectance);\x0aoutParams.specularEnvironmentReflectance=mix(bounceSpecularEnvironmentReflectance,specularEnvironmentReflectance,refractionIntensity);\x0a#endif\x0arefractionTransmittance*=1.0-outParams.specularEnvironmentReflectance;\x0a#if\x20DEBUGMODE>0\x0aoutParams.refractionTransmittance=refractionTransmittance;\x0a#endif\x0aoutParams.finalRefraction=environmentRefraction.rgb*refractionTransmittance*vLightingIntensity.z;\x0a#if\x20DEBUGMODE>0\x0aoutParams.environmentRefraction=environmentRefraction;\x0a#endif\x0a#endif\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(SS_TRANSLUCENCY)\x0a#if\x20defined(NORMAL)\x20&&\x20defined(USESPHERICALINVERTEX)\x20||\x20!defined(USESPHERICALFROMREFLECTIONMAP)\x0avec3\x20irradianceVector=vec3(reflectionMatrix*vec4(normalW,0)).xyz;\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0airradianceVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20INVERTCUBICMAP\x0airradianceVector.y*=-1.0;\x0a#endif\x0a#else\x0avec3\x20irradianceVector=irradianceVector_;\x0a#endif\x0a#if\x20defined(USESPHERICALFROMREFLECTIONMAP)\x0a#if\x20defined(REALTIME_FILTERING)\x0avec3\x20refractionIrradiance=irradiance(reflectionSampler,-irradianceVector,vReflectionFilteringInfo);\x0a#else\x0avec3\x20refractionIrradiance=computeEnvironmentIrradiance(-irradianceVector);\x0a#endif\x0a#elif\x20defined(USEIRRADIANCEMAP)\x0a#ifdef\x20REFLECTIONMAP_3D\x0avec3\x20irradianceCoords=irradianceVector;\x0a#else\x0avec2\x20irradianceCoords=irradianceVector.xy;\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0airradianceCoords/=irradianceVector.z;\x0a#endif\x0airradianceCoords.y=1.0-irradianceCoords.y;\x0a#endif\x0avec4\x20refractionIrradiance=sampleReflection(irradianceSampler,-irradianceCoords);\x0a#ifdef\x20RGBDREFLECTION\x0arefractionIrradiance.rgb=fromRGBD(refractionIrradiance);\x0a#endif\x0a#ifdef\x20GAMMAREFLECTION\x0arefractionIrradiance.rgb=toLinearSpace(refractionIrradiance.rgb);\x0a#endif\x0a#else\x0avec4\x20refractionIrradiance=vec4(0.);\x0a#endif\x0arefractionIrradiance.rgb*=transmittance;\x0a#ifdef\x20SS_ALBEDOFORTRANSLUCENCYTINT\x0arefractionIrradiance.rgb*=surfaceAlbedo.rgb;\x0a#endif\x0aoutParams.refractionIrradiance=refractionIrradiance.rgb;\x0a#endif\x0a}\x0a#endif\x0a','_processPointerUp','ALPHA_ONEONE_ONEONE','Declaration','_isStencilFuncDirty','fragment','_modeSaved','_internalTexturesCache','fn\x20main','Depth\x20texture\x20is\x20not\x20supported\x20by\x20your\x20browser\x20or\x20hardware.','scale','clipPlane','updateFloat','GLSL','_listLength','_pipelines','#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0a#define\x20TEXTUREFUNC(s,c,lod)\x20texture2DLodEXT(s,c,lod)\x0a#else\x0a#define\x20TEXTUREFUNC(s,c,bias)\x20texture2D(s,c,bias)\x0a#endif\x0auniform\x20sampler2D\x20textureSampler;\x0avarying\x20vec2\x20vUV;\x0auniform\x20vec2\x20texelOffsetScale;\x0aconst\x20float\x20weights[8]=float[8]\x20(0.071303,0.131514,0.189879,0.321392,0.452906,\x200.584419,0.715932,0.847445);\x0avoid\x20processSample(vec2\x20uv,float\x20i,vec2\x20stepSize,inout\x20vec4\x20accumulator,inout\x20float\x20denominator)\x0a{\x0avec2\x20offsetUV=stepSize*i+uv;\x0afloat\x20coefficient=weights[int(2.0-abs(i))];\x0aaccumulator+=TEXTUREFUNC(textureSampler,offsetUV,0.0)*coefficient;\x0adenominator+=coefficient;\x0a}\x0avoid\x20main()\x0a{\x0avec4\x20colorFull=TEXTUREFUNC(textureSampler,vUV,0.0);\x0aif\x20(dot(colorFull,vec4(1.0))==0.0)\x20{\x0agl_FragColor=colorFull;\x0areturn;\x0a}\x0afloat\x20blurRadius=colorFull.a*255.0;\x20\x0avec2\x20stepSize=texelOffsetScale.xy*blurRadius;\x0avec4\x20accumulator=TEXTUREFUNC(textureSampler,vUV,0.0)*0.214607;\x0afloat\x20denominator=0.214607;\x0aprocessSample(vUV,1.0,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*0.2,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*0.4,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*0.6,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*0.8,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*1.2,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*1.4,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*1.6,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*1.8,stepSize,accumulator,denominator);\x0aprocessSample(vUV,1.0*2.0,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*0.2,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*0.4,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*0.6,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*0.8,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*1.2,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*1.4,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*1.6,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*1.8,stepSize,accumulator,denominator);\x0aprocessSample(vUV,-1.0*2.0,stepSize,accumulator,denominator);\x0agl_FragColor=vec4(accumulator.rgb/denominator,colorFull.a);\x0a}\x0a','IncludesShadersStore','_generateMipmaps','resolve','R8Sint','createMipMaps','_reflectionMatrixName','TriangleStrip','StorageBuffer','#endif\x0d\x0a','observers','#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#ifdef\x20SPHERICAL_HARMONICS\x0avec3\x20computeEnvironmentIrradiance(vec3\x20normal)\x20{\x0areturn\x20vSphericalL00\x0a+\x20vSphericalL1_1*(normal.y)\x0a+\x20vSphericalL10*(normal.z)\x0a+\x20vSphericalL11*(normal.x)\x0a+\x20vSphericalL2_2*(normal.y*normal.x)\x0a+\x20vSphericalL2_1*(normal.y*normal.z)\x0a+\x20vSphericalL20*((3.0*normal.z*normal.z)-1.0)\x0a+\x20vSphericalL21*(normal.z*normal.x)\x0a+\x20vSphericalL22*(normal.x*normal.x-(normal.y*normal.y));\x0a}\x0a#else\x0avec3\x20computeEnvironmentIrradiance(vec3\x20normal)\x20{\x0afloat\x20Nx=normal.x;\x0afloat\x20Ny=normal.y;\x0afloat\x20Nz=normal.z;\x0avec3\x20C1=vSphericalZZ.rgb;\x0avec3\x20Cx=vSphericalX.rgb;\x0avec3\x20Cy=vSphericalY.rgb;\x0avec3\x20Cz=vSphericalZ.rgb;\x0avec3\x20Cxx_zz=vSphericalXX_ZZ.rgb;\x0avec3\x20Cyy_zz=vSphericalYY_ZZ.rgb;\x0avec3\x20Cxy=vSphericalXY.rgb;\x0avec3\x20Cyz=vSphericalYZ.rgb;\x0avec3\x20Czx=vSphericalZX.rgb;\x0avec3\x20a1=Cyy_zz*Ny+Cy;\x0avec3\x20a2=Cyz*Nz+a1;\x0avec3\x20b1=Czx*Nz+Cx;\x0avec3\x20b2=Cxy*Ny+b1;\x0avec3\x20b3=Cxx_zz*Nx+b2;\x0avec3\x20t1=Cz\x20*Nz+C1;\x0avec3\x20t2=a2\x20*Ny+t1;\x0avec3\x20t3=b3\x20*Nx+t2;\x0areturn\x20t3;\x0a}\x0a#endif\x0a#endif\x0a','restoreSingleAttachmentForRenderTarget','INTENSITYMODE_AUTOMATIC','onBeforePhysicsObservable','done','_alphaBlend','_key','kernelBlurFragment','playAnimation','availableBuffers','setMatrices','TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC','shadowMapPixelShader','clipPlane3','availableAttributes','_registerTempVariable','apply','IsExternalTexture','TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3','sampler2D','DEPTH_STENCIL','bindBufferBase','SubSurfaceSceneComponent','filterPixelShader','COLOR_ATTACHMENT','ONE_MINUS_DST_COLOR','_onPointerMove','lightFragment','_ExtractOperation','projectionMatrix','fluidRenderingParticleThicknessVertexShader','format','ALWAYS','textures','webVR\x20submitFrame\x20has\x20had\x20an\x20unexpected\x20failure:\x20','activeTexture','ASTC5x4UnormSRGB','defineNames','_HandleParenthesisContent','_pixelPerfect','\x20not\x20found,\x20you\x20may\x20have\x20missed\x20an\x20import.','_zOffsetUnits','updateInt3','R32Sint','_isDepthFuncDirty','PointParticleEmitter',');\x0d\x0a','textureCount','textureFormatInUse','vTBN','fovMultiplier','_invalidateMesh','CULL_FACE','maximizeInPlace','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0auniform\x20mat4\x20world;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0agl_Position=viewProjection*world*vec4(position,1.0);\x0avec4\x20worldPos=world*vec4(position,1.0);\x0avPositionW=vec3(worldPos);\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#ifdef\x20VERTEXCOLOR\x0avColor=color;\x0a#endif\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','ACTION_OnKeyDownTrigger','deleteCompoundImpostor','_funcMask','#if\x20SM_NORMALBIAS==1\x0auniform\x20vec3\x20lightDataSM;\x0a#endif\x0auniform\x20vec3\x20biasAndScaleSM;\x0auniform\x20vec2\x20depthValuesSM;\x0avarying\x20float\x20vDepthMetricSM;\x0a#if\x20SM_USEDISTANCE==1\x0avarying\x20vec3\x20vPositionWSM;\x0a#endif\x0a#if\x20defined(SM_DEPTHCLAMP)\x20&&\x20SM_DEPTHCLAMP==1\x0avarying\x20float\x20zSM;\x0a#endif\x0a','REFLECTIONMAP_EQUIRECTANGULAR','samplerCube','materialCount','depthMask','addCPUSkinningFallback','bumpFragmentMainFunctions','webpackChunkBim','struct\x20','\x20:\x20array<','RGBA8Snorm','clipPlaneVertexDeclaration2','Matrix','setInt2','ssFilterRadii','_clearReverseDepthValue','screenSpaceReflectionPixelShader','Unable\x20to\x20create\x20uniform\x20buffer','setAlphaBlendEnabled','clearAllDiffusionProfiles','_handlesSpectorRebuildCallback','//#define\x20','_defineProjectionName','uniform\x20sampler2DArray\x20','texImage2D','dataStoreDataByteOffset','copyExternalImageToTexture','push','_internalTextureDirty','precision\x20highp\x20float;\x0a#include<__decl__backgroundVertex>\x0a#include<helperFunctions>\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20MAINUV1\x0avarying\x20vec2\x20vMainUV1;\x0a#endif\x0a#ifdef\x20MAINUV2\x0avarying\x20vec2\x20vMainUV2;\x0a#endif\x0a#if\x20defined(DIFFUSE)\x20&&\x20DIFFUSEDIRECTUV==0\x0avarying\x20vec2\x20vDiffuseUV;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightVxFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avPositionUVW=position;\x0a#endif\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0a#ifdef\x20MULTIVIEW\x0aif\x20(gl_ViewID_OVR==0u)\x20{\x0agl_Position=viewProjection*finalWorld*vec4(position,1.0);\x0a}\x20else\x20{\x0agl_Position=viewProjectionR*finalWorld*vec4(position,1.0);\x0a}\x0a#else\x0agl_Position=viewProjection*finalWorld*vec4(position,1.0);\x0a#endif\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0amat3\x20normalWorld=mat3(finalWorld);\x0a#ifdef\x20NONUNIFORMSCALING\x0anormalWorld=transposeMat3(inverseMat3(normalWorld));\x0a#endif\x0avNormalW=normalize(normalWorld*normal);\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avDirectionW=normalize(vec3(finalWorld*vec4(position,0.0)));\x0a#ifdef\x20EQUIRECTANGULAR_RELFECTION_FOV\x0amat3\x20screenToWorld=inverseMat3(mat3(finalWorld*viewProjection));\x0avec3\x20segment=mix(vDirectionW,screenToWorld*vec3(0.0,0.0,1.0),abs(fFovMultiplier-1.0));\x0aif\x20(fFovMultiplier<=1.0)\x20{\x0avDirectionW=normalize(segment);\x0a}\x20else\x20{\x0avDirectionW=normalize(vDirectionW+(vDirectionW-segment));\x0a}\x0a#endif\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20MAINUV1\x0avMainUV1=uv;\x0a#endif\x0a#ifdef\x20MAINUV2\x0avMainUV2=uv2;\x0a#endif\x0a#if\x20defined(DIFFUSE)\x20&&\x20DIFFUSEDIRECTUV==0\x0aif\x20(vDiffuseInfos.x==0.)\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\x0a}\x0aelse\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#ifdef\x20VERTEXCOLOR\x0avColor=color;\x0a#endif\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','_useSRGBBuffer','fluidRenderingParticleDiffusePixelShader','float\x20computeDistanceLightFalloff_Standard(vec3\x20lightOffset,float\x20range)\x0a{\x0areturn\x20max(0.,1.0-length(lightOffset)/range);\x0a}\x0afloat\x20computeDistanceLightFalloff_Physical(float\x20lightDistanceSquared)\x0a{\x0areturn\x201.0/maxEps(lightDistanceSquared);\x0a}\x0afloat\x20computeDistanceLightFalloff_GLTF(float\x20lightDistanceSquared,float\x20inverseSquaredRange)\x0a{\x0afloat\x20lightDistanceFalloff=1.0/maxEps(lightDistanceSquared);\x0afloat\x20factor=lightDistanceSquared*inverseSquaredRange;\x0afloat\x20attenuation=saturate(1.0-factor*factor);\x0aattenuation*=attenuation;\x0alightDistanceFalloff*=attenuation;\x0areturn\x20lightDistanceFalloff;\x0a}\x0afloat\x20computeDistanceLightFalloff(vec3\x20lightOffset,float\x20lightDistanceSquared,float\x20range,float\x20inverseSquaredRange)\x0a{\x0a#ifdef\x20USEPHYSICALLIGHTFALLOFF\x0areturn\x20computeDistanceLightFalloff_Physical(lightDistanceSquared);\x0a#elif\x20defined(USEGLTFLIGHTFALLOFF)\x0areturn\x20computeDistanceLightFalloff_GLTF(lightDistanceSquared,inverseSquaredRange);\x0a#else\x0areturn\x20computeDistanceLightFalloff_Standard(lightOffset,range);\x0a#endif\x0a}\x0afloat\x20computeDirectionalLightFalloff_Standard(vec3\x20lightDirection,vec3\x20directionToLightCenterW,float\x20cosHalfAngle,float\x20exponent)\x0a{\x0afloat\x20falloff=0.0;\x0afloat\x20cosAngle=maxEps(dot(-lightDirection,directionToLightCenterW));\x0aif\x20(cosAngle>=cosHalfAngle)\x0a{\x0afalloff=max(0.,pow(cosAngle,exponent));\x0a}\x0areturn\x20falloff;\x0a}\x0afloat\x20computeDirectionalLightFalloff_Physical(vec3\x20lightDirection,vec3\x20directionToLightCenterW,float\x20cosHalfAngle)\x0a{\x0aconst\x20float\x20kMinusLog2ConeAngleIntensityRatio=6.64385618977;\x20\x0afloat\x20concentrationKappa=kMinusLog2ConeAngleIntensityRatio/(1.0-cosHalfAngle);\x0avec4\x20lightDirectionSpreadSG=vec4(-lightDirection*concentrationKappa,-concentrationKappa);\x0afloat\x20falloff=exp2(dot(vec4(directionToLightCenterW,1.0),lightDirectionSpreadSG));\x0areturn\x20falloff;\x0a}\x0afloat\x20computeDirectionalLightFalloff_GLTF(vec3\x20lightDirection,vec3\x20directionToLightCenterW,float\x20lightAngleScale,float\x20lightAngleOffset)\x0a{\x0afloat\x20cd=dot(-lightDirection,directionToLightCenterW);\x0afloat\x20falloff=saturate(cd*lightAngleScale+lightAngleOffset);\x0afalloff*=falloff;\x0areturn\x20falloff;\x0a}\x0afloat\x20computeDirectionalLightFalloff(vec3\x20lightDirection,vec3\x20directionToLightCenterW,float\x20cosHalfAngle,float\x20exponent,float\x20lightAngleScale,float\x20lightAngleOffset)\x0a{\x0a#ifdef\x20USEPHYSICALLIGHTFALLOFF\x0areturn\x20computeDirectionalLightFalloff_Physical(lightDirection,directionToLightCenterW,cosHalfAngle);\x0a#elif\x20defined(USEGLTFLIGHTFALLOFF)\x0areturn\x20computeDirectionalLightFalloff_GLTF(lightDirection,directionToLightCenterW,lightAngleScale,lightAngleOffset);\x0a#else\x0areturn\x20computeDirectionalLightFalloff_Standard(lightDirection,directionToLightCenterW,cosHalfAngle,exponent);\x0a#endif\x0a}','_getGLType','ASTC6x5Unorm','ssDiffusionS','_readTexturePixels','cancelAllCoroutines','generateOnlyFragmentCode','_lastUpdateFrameId','vec3','_allocateNewIndices','maxMSAASamples','color','_ProcessShaderConversion','funcMask','replaceStrings','bind','beginRenderPass','orderedAttributes','_name','addFallback','Too\x20many\x20textures\x20or\x20UBOs\x20have\x20been\x20declared\x20and\x20it\x20is\x20not\x20supported\x20in\x20WebGPU.','getTranslation','LIGHTMAP_DEFAULT','gpuFrameTimeCounter','uniform\x20','drawContext','subSurfaceScattering','motionBlur','references','_data','createCubeTexture','baseWidth','RightClick','\x0a\x20\x20\x20\x20#extension\x20GL_EXT_samplerless_texture_functions\x20:\x20enable\x0a\x0a\x20\x20\x20\x20const\x20vec2\x20pos[4]\x20=\x20vec2[4](vec2(-1.0f,\x201.0f),\x20vec2(1.0f,\x201.0f),\x20vec2(-1.0f,\x20-1.0f),\x20vec2(1.0f,\x20-1.0f));\x0a\x20\x20\x20\x20const\x20vec2\x20tex[4]\x20=\x20vec2[4](vec2(0.0f,\x200.0f),\x20vec2(1.0f,\x200.0f),\x20vec2(0.0f,\x201.0f),\x20vec2(1.0f,\x201.0f));\x0a\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x200)\x20uniform\x20texture2D\x20img;\x0a\x0a\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20flat\x20ivec2\x20vTextureSize;\x0a\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vTextureSize\x20=\x20textureSize(img,\x200);\x0a\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20vec4(pos[gl_VertexIndex],\x200.0,\x201.0);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','CopyVideoToTexture_','ASTC10x8UnormSRGB','INTENSITYMODE_LUMINOUSPOWER','_count','pbrBlockLightmapInit','\x20@align(16)\x20','TEXTUREFORMAT_RGBA','firePixelShader','reConstruct','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20int\x20filterSize;\x0auniform\x20vec2\x20blurDir;\x0avarying\x20vec2\x20vUV;\x0avoid\x20main(void)\x20{\x0avec4\x20s=textureLod(textureSampler,vUV,0.);\x0aif\x20(s.r==0.)\x20{\x0aglFragColor=vec4(0.,0.,0.,1.);\x0areturn;\x0a}\x0afloat\x20sigma=float(filterSize)/3.0;\x0afloat\x20twoSigma2=2.0*sigma*sigma;\x0avec4\x20sum=vec4(0.);\x0afloat\x20wsum=0.;\x0afor\x20(int\x20x=-filterSize;\x20x<=filterSize;\x20++x)\x20{\x0avec2\x20coords=vec2(x);\x0avec4\x20sampl=textureLod(textureSampler,vUV+coords*blurDir,0.);\x0afloat\x20w=exp(-coords.x*coords.x/twoSigma2);\x0asum+=sampl*w;\x0awsum+=w;\x0a}\x0asum/=wsum;\x0aglFragColor=vec4(sum.rgb,1.);\x0a}\x0a','DEPTH_COMPONENT32F','MATERIAL_TriangleFillMode','setPointerOverMesh','uv2','shadowEnabled','astc','R8Uint','updateRenderTargetTextureSampleCount','_attachments','#define\x20POINTEMITTER','simplePixelShader','particlesPixelShader','ssDiffusionProfileColors','FIXED_EQUIRECTANGULAR_MIRRORED_MODE','precision\x20highp\x20float;attribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vTextureUV;uniform\x20mat4\x20textureMatrix;uniform\x20vec2\x20vTextureInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);gl_Position=viewProjection*worldPos;vPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vTextureInfos.x==0.)\x0a{vTextureUV=vec2(textureMatrix*vec4(uv,1.0,0.0));}\x0aelse\x0a{vTextureUV=vec2(textureMatrix*vec4(uv2,1.0,0.0));}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','not','prePassComposition','setDepthWrite','TEXTUREFORMAT_RED_INTEGER','_ApplyPreProcessing','texStorage3D','createImageBitmap','applyBlurPostProcesses','_options','READ_FRAMEBUFFER','ownerBlock','bindGroupLayouts','direction2','skipOnPointerObservable','_varyingsWGSL','cameraPosition','CompareLightsPriority','#define\x20CLIPPLANE6','_setDefaultValue','baseDepth','.xyz;\x0d\x0a','bool\x20testLightingForSSS(float\x20diffusionProfile)\x0a{\x0areturn\x20diffusionProfile<1.;\x0a}','autoResetAlpha','Load','_blurPostProcesses','close','\x20=\x20','autoPlay','GL_ALPHA_FUNCTION_DST_COLOR','createRawTexture2DArray','toGlobalToRef','_occlusionQuery','max','_gl','boxMin','radiusRange','EACRG11Unorm','depthOrArrayLayers','_AddTagTo','_WEBGL','currentOffsetStartTemp','addOnce','#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a','bumpVertexDeclaration','setArray','pollInput','createMSAATexture','updateTexture','isRightCamera','_isDisabled','FluidRenderingDepthTextureCopyRTT','Size','setFloatArray','subMeshId','addPipeline','deleteTexture','CONSTANT_ALPHA','skipPointerUpPicking','RG32Sint','BC3RGBAUnormSRGB','\x5cs*\x5c[(.+)?\x5c]','2DSampler','gpuRenderParticlesVertexShader','ssDiffusionD','copyFrom','setSize','uniform\x20sampler2D\x20textureSampler;\x20\x0auniform\x20sampler2D\x20mainSampler;\x0auniform\x20sampler2D\x20reflectivitySampler;\x0auniform\x20float\x20strength;\x0auniform\x20float\x20reflectionSpecularFalloffExponent;\x0auniform\x20float\x20reflectivityThreshold;\x0avarying\x20vec2\x20vUV;\x0a#include<helperFunctions>\x0avoid\x20main()\x0a{\x0a#ifdef\x20SSRAYTRACE_DEBUG\x0agl_FragColor=texture2D(textureSampler,vUV);\x0a#else\x0avec3\x20SSR=texture2D(textureSampler,vUV).rgb;\x0avec4\x20color=texture2D(mainSampler,vUV);\x0avec4\x20reflectivity=texture2D(reflectivitySampler,vUV);\x0aif\x20(max(reflectivity.r,max(reflectivity.g,reflectivity.b))<=reflectivityThreshold)\x20{\x0agl_FragColor=color;\x0areturn;\x0a}\x0a#ifdef\x20SSR_INPUT_IS_GAMMA_SPACE\x0acolor=toLinearSpace(color);\x0a#endif\x0avec3\x20reflectionMultiplier=clamp(pow(reflectivity.rgb*strength,vec3(reflectionSpecularFalloffExponent)),0.0,1.0);\x0avec3\x20colorMultiplier=1.0-reflectionMultiplier;\x0avec3\x20finalColor=(color.rgb*colorMultiplier)+(SSR*reflectionMultiplier);\x0a#ifdef\x20SSR_OUTPUT_IS_GAMMA_SPACE\x0afinalColor=toGammaSpace(finalColor);\x0a#endif\x0agl_FragColor=vec4(finalColor,color.a);\x0a#endif\x0a}\x0a','bakedVertexAnimationDeclaration','gl_VertexIndex','createRenderTargetTextureProvider','_angle','TEXTURE_NEAREST_SAMPLINGMODE','matrixBuffer','stencilFunc','_growArray','Depth\x20cube\x20texture\x20is\x20not\x20supported\x20by\x20WebGL\x201.','_pointerY','attribute\x20vec3\x20position;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<clipPlaneVertexDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20viewProjection;\x0avarying\x20vec4\x20vPosition;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vUVDiffuse;\x0auniform\x20mat4\x20diffuseMatrix;\x0a#endif\x0a#ifdef\x20OPACITY\x0avarying\x20vec2\x20vUVOpacity;\x0auniform\x20mat4\x20opacityMatrix;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0avarying\x20vec2\x20vUVEmissive;\x0auniform\x20mat4\x20emissiveMatrix;\x0a#endif\x0a#ifdef\x20VERTEXALPHA\x0aattribute\x20vec4\x20color;\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0a#ifdef\x20CUBEMAP\x0avPosition=worldPos;\x0agl_Position=viewProjection*finalWorld*vec4(position,1.0);\x0a#else\x0avPosition=viewProjection*worldPos;\x0agl_Position=vPosition;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0a#ifdef\x20DIFFUSEUV1\x0avUVDiffuse=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20DIFFUSEUV2\x0avUVDiffuse=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#ifdef\x20OPACITY\x0a#ifdef\x20OPACITYUV1\x0avUVOpacity=vec2(opacityMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20OPACITYUV2\x0avUVOpacity=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#ifdef\x20EMISSIVE\x0a#ifdef\x20EMISSIVEUV1\x0avUVEmissive=vec2(emissiveMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20EMISSIVEUV2\x0avUVEmissive=vec2(emissiveMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#ifdef\x20VERTEXALPHA\x0avColor=color;\x0a#endif\x0a#include<clipPlaneVertex>\x0a}','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20','restoreSingleAttachment','play','RG32Float','_IsInternalTexture','getInput','UNIFORM_BUFFER','\x20{\x0a','IsCompressedFormat','_loadFile','postfixToInfix','indexStart','destroyDeferredTextures','setStencilReadMask','disable','setUInt','_emitCodeFromInclude','RGBA8UnormSRGB','additionalDefineValue','harmonicsFunctions','_projectionMatrix','disablePhysicsEngine','createDynamicTexture','samplerVertexImplementation','additionalDefineKey','sourceEvent','renderTargets','modelIndexOffsetStart','DontInvertY','geometryVertexDeclaration','instancedArrays','setFrontFace','inputTexture','terrainPixelShader','XRWebGLLayer','_webgpuTexture','computeToken','\x22\x20is\x20not\x20declared\x20in\x20the\x20vertex\x20shader!\x20This\x20declaration\x20will\x20be\x20ignored.','_directionWName',']\x0d\x0a','pixelPerfect','draw','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20LensCenter;\x0auniform\x20vec2\x20Scale;\x0auniform\x20vec2\x20ScaleIn;\x0auniform\x20vec4\x20HmdWarpParam;\x0avec2\x20HmdWarp(vec2\x20in01)\x20{\x0avec2\x20theta=(in01-LensCenter)*ScaleIn;\x20\x0afloat\x20rSq=theta.x*theta.x+theta.y*theta.y;\x0avec2\x20rvector=theta*(HmdWarpParam.x+HmdWarpParam.y*rSq+HmdWarpParam.z*rSq*rSq+HmdWarpParam.w*rSq*rSq*rSq);\x0areturn\x20LensCenter+Scale*rvector;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec2\x20tc=HmdWarp(vUV);\x0aif\x20(tc.x\x20<0.0\x20||\x20tc.x>1.0\x20||\x20tc.y<0.0\x20||\x20tc.y>1.0)\x0agl_FragColor=vec4(0.0,0.0,0.0,0.0);\x0aelse{\x0agl_FragColor=texture2D(textureSampler,tc);\x0a}\x0a}','_readTexturePixelsSync','fluidRenderingBilateralBlurPixelShader','ColorInstanceKind','resetStencilState','uniformBlockBinding','framebufferTextureLayer','LEQUAL','setStencilCompare','imageProcessingCompatibility','_delayedClicks','viewProjectionR','renderHeight','#if\x20!defined(UV{X})\x20&&\x20defined(MAINUV{X})\x0avec2\x20uv{X}=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20MAINUV{X}\x0avMainUV{X}=uv{X};\x0a#endif\x0a','attachControl','_emitExtension','pbrBlockReflectivity','\x20=\x20texture2D(','generateMipmaps','fogVertexDeclaration','stencilMask','SphereParticleEmitter','#define\x20rcp(x)\x201./x\x0a#define\x20GOLDEN_RATIO\x201.618033988749895\x0a#define\x20TWO_PI\x206.2831855\x0avec2\x20Golden2dSeq(int\x20i,float\x20n)\x0a{\x0areturn\x20vec2(float(i)/n+(0.5/n),fract(float(i)*rcp(GOLDEN_RATIO)));\x0a}\x0avec2\x20SampleDiskGolden(int\x20i,int\x20sampleCount)\x0a{\x0avec2\x20f=Golden2dSeq(i,float(sampleCount));\x0areturn\x20vec2(sqrt(f.x),TWO_PI*f.y);\x0a}','_onKeyDown','action','ASTC8x8UnormSRGB','pbrBlockFinalUnlitComponents','compilationError','_update','_getDepthThreshold','\x0d\x0a}','_countIncrement','pbrBlockReflectance0','_reportDrawCall','notConnectedNonOptionalInputs','updateMatrix3x3','setAlphaMode','object','IgnoreTexturesAtLoadTime','Dynamic','_comparisonFunction','PREPASS_NORMAL_TEXTURE_TYPE','_isDepthMaskDirty','unBindMesh','ILog2','CLIPPLANE','refractionPixelShader','_clearDepthValue','disableEffectInPipeline','directionRandomizer','onLoadedObservable','BC5RGUnorm','View','E3d','setUniqueId','Texture\x20loader\x20does\x20not\x20support\x20cascades.','cancelAnimationFrame','Multiview\x20is\x20not\x20supported','fov','noPrecision','_debugPopGroup','_finishBundle','Fragment','USE_LOCAL_REFLECTIONMAP_CUBIC','_currentRenderTextureInd','mPreviousBones','varyings','default','TEXTURE_CUBIC_MODE','createPostProcess','>,\x0a','Depth','finalizeShaders','631658PgYYGV','startPositionFunction','MouseWheelX','number','#ifdef\x20CLIPPLANE\x0afClipDistance=dot(worldPos,vClipPlane);\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0afClipDistance2=dot(worldPos,vClipPlane2);\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0afClipDistance3=dot(worldPos,vClipPlane3);\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0afClipDistance4=dot(worldPos,vClipPlane4);\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0afClipDistance5=dot(worldPos,vClipPlane5);\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0afClipDistance6=dot(worldPos,vClipPlane6);\x0a#endif\x0a','ONE_MINUS_CONSTANT_ALPHA','ASTC10x10UnormSRGB','\x22,\x20null);\x0d\x0a','matrixBufferSize','texelSize','13699600zCFFqP','hasTexture','RGB10A2Unorm','_collectBindingNames','layerCounts','markAllMaterialsAsDirty','gridPixelShader','createQuerySet','Half\x20float\x20texture\x20filtering\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20and\x20sampling\x20mode\x20are\x20forced\x20to\x20false\x20and\x20TEXTURE_NEAREST_SAMPLINGMODE,\x20respectively.','statusText','preventDefaultOnPointerDown','resetTextureCache','_findStartingGroupBinding','hasSpecificTrigger','uvAttributeDeclaration','uniform\x20mat4\x20world;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20MULTIVIEW\x0auniform\x20mat4\x20viewProjectionR;\x0a#endif\x0a','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vDiffuseInfos.x==0.)\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\x0a}\x0aelse\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','matrix','vClipPlane',')\x20||\x20defined(','removeVaryings','modelList','oitFinalPixelShader','markAsFresnelDirty','_deleteComputePipelineContext','attribute\x20vec3\x20position;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20viewProjection;\x0auniform\x20vec2\x20depthValues;\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(NEED_UV)\x0avarying\x20vec2\x20vUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0a#if\x20(defined(ALPHATEST)\x20||\x20defined(NEED_UV))\x20&&\x20defined(UV1)\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0agl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(BASIC_RENDER)\x0a#ifdef\x20UV1\x0avUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20UV2\x0avUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a}\x0a','_copyTextureToTexture','_onPointerDown','_bindGroups','R16Float','_attachCameras','__VERSION__','_doubleClick','#if\x20defined(BUMP)\x20||\x20defined(PARALLAX)\x20||\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(ANISOTROPIC)\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x20\x0avarying\x20mat3\x20vTBN;\x0a#endif\x0a#endif\x0a','#ifdef\x20TEXTURELODSUPPORT\x0a#extension\x20GL_EXT_shader_texture_lod\x20:\x20enable\x0a#endif\x0aprecision\x20highp\x20float;\x0a#include<__decl__backgroundFragment>\x0a#include<helperFunctions>\x0a#define\x20RECIPROCAL_PI2\x200.15915494\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20MAINUV1\x0avarying\x20vec2\x20vMainUV1;\x0a#endif\x20\x0a#ifdef\x20MAINUV2\x20\x0avarying\x20vec2\x20vMainUV2;\x20\x0a#endif\x20\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0a#if\x20DIFFUSEDIRECTUV==1\x0a#define\x20vDiffuseUV\x20vMainUV1\x0a#elif\x20DIFFUSEDIRECTUV==2\x0a#define\x20vDiffuseUV\x20vMainUV2\x0a#else\x0avarying\x20vec2\x20vDiffuseUV;\x0a#endif\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#ifdef\x20REFLECTION\x0a#ifdef\x20REFLECTIONMAP_3D\x0a#define\x20sampleReflection(s,c)\x20textureCube(s,c)\x0auniform\x20samplerCube\x20reflectionSampler;\x0a#ifdef\x20TEXTURELODSUPPORT\x0a#define\x20sampleReflectionLod(s,c,l)\x20textureCubeLodEXT(s,c,l)\x0a#else\x0auniform\x20samplerCube\x20reflectionSamplerLow;\x0auniform\x20samplerCube\x20reflectionSamplerHigh;\x0a#endif\x0a#else\x0a#define\x20sampleReflection(s,c)\x20texture2D(s,c)\x0auniform\x20sampler2D\x20reflectionSampler;\x0a#ifdef\x20TEXTURELODSUPPORT\x0a#define\x20sampleReflectionLod(s,c,l)\x20texture2DLodEXT(s,c,l)\x0a#else\x0auniform\x20samplerCube\x20reflectionSamplerLow;\x0auniform\x20samplerCube\x20reflectionSamplerHigh;\x0a#endif\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_SKYBOX\x0avarying\x20vec3\x20vPositionUVW;\x0a#else\x0a#if\x20defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED)\x20||\x20defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\x0avarying\x20vec3\x20vDirectionW;\x0a#endif\x0a#endif\x0a#include<reflectionFunction>\x0a#endif\x0a#ifndef\x20FROMLINEARSPACE\x0a#define\x20FROMLINEARSPACE;\x0a#endif\x0a#ifndef\x20SHADOWONLY\x0a#define\x20SHADOWONLY;\x0a#endif\x0a#include<imageProcessingDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<imageProcessingFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#ifdef\x20REFLECTIONFRESNEL\x0a#define\x20FRESNEL_MAXIMUM_ON_ROUGH\x200.25\x0avec3\x20fresnelSchlickEnvironmentGGX(float\x20VdotN,vec3\x20reflectance0,vec3\x20reflectance90,float\x20smoothness)\x0a{\x0afloat\x20weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\x0areturn\x20reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\x0a}\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(0.0,1.0,0.0);\x0a#endif\x0afloat\x20shadow=1.;\x0afloat\x20globalShadow=0.;\x0afloat\x20shadowLightCount=0.;\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20SHADOWINUSE\x0aglobalShadow/=shadowLightCount;\x0a#else\x0aglobalShadow=1.0;\x0a#endif\x0a#ifndef\x20BACKMAT_SHADOWONLY\x0avec4\x20reflectionColor=vec4(1.,1.,1.,1.);\x0a#ifdef\x20REFLECTION\x0avec3\x20reflectionVector=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\x0a#ifdef\x20REFLECTIONMAP_OPPOSITEZ\x0areflectionVector.z*=-1.0;\x0a#endif\x0a#ifdef\x20REFLECTIONMAP_3D\x0avec3\x20reflectionCoords=reflectionVector;\x0a#else\x0avec2\x20reflectionCoords=reflectionVector.xy;\x0a#ifdef\x20REFLECTIONMAP_PROJECTION\x0areflectionCoords/=reflectionVector.z;\x0a#endif\x0areflectionCoords.y=1.0-reflectionCoords.y;\x0a#endif\x0a#ifdef\x20REFLECTIONBLUR\x0afloat\x20reflectionLOD=vReflectionInfos.y;\x0a#ifdef\x20TEXTURELODSUPPORT\x0areflectionLOD=reflectionLOD*log2(vReflectionMicrosurfaceInfos.x)*vReflectionMicrosurfaceInfos.y+vReflectionMicrosurfaceInfos.z;\x0areflectionColor=sampleReflectionLod(reflectionSampler,reflectionCoords,reflectionLOD);\x0a#else\x0afloat\x20lodReflectionNormalized=saturate(reflectionLOD);\x0afloat\x20lodReflectionNormalizedDoubled=lodReflectionNormalized*2.0;\x0avec4\x20reflectionSpecularMid=sampleReflection(reflectionSampler,reflectionCoords);\x0aif(lodReflectionNormalizedDoubled<1.0){\x0areflectionColor=mix(\x0asampleReflection(reflectionSamplerHigh,reflectionCoords),\x0areflectionSpecularMid,\x0alodReflectionNormalizedDoubled\x0a);\x0a}\x20else\x20{\x0areflectionColor=mix(\x0areflectionSpecularMid,\x0asampleReflection(reflectionSamplerLow,reflectionCoords),\x0alodReflectionNormalizedDoubled-1.0\x0a);\x0a}\x0a#endif\x0a#else\x0avec4\x20reflectionSample=sampleReflection(reflectionSampler,reflectionCoords);\x0areflectionColor=reflectionSample;\x0a#endif\x0a#ifdef\x20RGBDREFLECTION\x0areflectionColor.rgb=fromRGBD(reflectionColor);\x0a#endif\x0a#ifdef\x20GAMMAREFLECTION\x0areflectionColor.rgb=toLinearSpace(reflectionColor.rgb);\x0a#endif\x0a#ifdef\x20REFLECTIONBGR\x0areflectionColor.rgb=reflectionColor.bgr;\x0a#endif\x0areflectionColor.rgb*=vReflectionInfos.x;\x0a#endif\x0avec3\x20diffuseColor=vec3(1.,1.,1.);\x0afloat\x20finalAlpha=alpha;\x0a#ifdef\x20DIFFUSE\x0avec4\x20diffuseMap=texture2D(diffuseSampler,vDiffuseUV);\x0a#ifdef\x20GAMMADIFFUSE\x0adiffuseMap.rgb=toLinearSpace(diffuseMap.rgb);\x0a#endif\x0adiffuseMap.rgb*=vDiffuseInfos.y;\x0a#ifdef\x20DIFFUSEHASALPHA\x0afinalAlpha*=diffuseMap.a;\x0a#endif\x0adiffuseColor=diffuseMap.rgb;\x0a#endif\x0a#ifdef\x20REFLECTIONFRESNEL\x0avec3\x20colorBase=diffuseColor;\x0a#else\x0avec3\x20colorBase=reflectionColor.rgb*diffuseColor;\x0a#endif\x0acolorBase=max(colorBase,0.0);\x0a#ifdef\x20USERGBCOLOR\x0avec3\x20finalColor=colorBase;\x0a#else\x0a#ifdef\x20USEHIGHLIGHTANDSHADOWCOLORS\x0avec3\x20mainColor=mix(vPrimaryColorShadow.rgb,vPrimaryColor.rgb,colorBase);\x0a#else\x0avec3\x20mainColor=vPrimaryColor.rgb;\x0a#endif\x0avec3\x20finalColor=colorBase*mainColor;\x0a#endif\x0a#ifdef\x20REFLECTIONFRESNEL\x0avec3\x20reflectionAmount=vReflectionControl.xxx;\x0avec3\x20reflectionReflectance0=vReflectionControl.yyy;\x0avec3\x20reflectionReflectance90=vReflectionControl.zzz;\x0afloat\x20VdotN=dot(normalize(vEyePosition.xyz),normalW);\x0avec3\x20planarReflectionFresnel=fresnelSchlickEnvironmentGGX(saturate(VdotN),reflectionReflectance0,reflectionReflectance90,1.0);\x0areflectionAmount*=planarReflectionFresnel;\x0a#ifdef\x20REFLECTIONFALLOFF\x0afloat\x20reflectionDistanceFalloff=1.0-saturate(length(vPositionW.xyz-vBackgroundCenter)*vReflectionControl.w);\x0areflectionDistanceFalloff*=reflectionDistanceFalloff;\x0areflectionAmount*=reflectionDistanceFalloff;\x0a#endif\x0afinalColor=mix(finalColor,reflectionColor.rgb,saturate(reflectionAmount));\x0a#endif\x0a#ifdef\x20OPACITYFRESNEL\x0afloat\x20viewAngleToFloor=dot(normalW,normalize(vEyePosition.xyz-vBackgroundCenter));\x0aconst\x20float\x20startAngle=0.1;\x0afloat\x20fadeFactor=saturate(viewAngleToFloor/startAngle);\x0afinalAlpha*=fadeFactor*fadeFactor;\x0a#endif\x0a#ifdef\x20SHADOWINUSE\x0afinalColor=mix(finalColor*shadowLevel,finalColor,globalShadow);\x0a#endif\x0avec4\x20color=vec4(finalColor,finalAlpha);\x0a#else\x0avec4\x20color=vec4(vPrimaryColor.rgb,(1.0-clamp(globalShadow,0.,1.))*alpha);\x0a#endif\x0a#include<fogFragment>\x0a#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0a#if\x20!defined(SKIPFINALCOLORCLAMP)\x0acolor.rgb=clamp(color.rgb,0.,30.0);\x0a#endif\x0a#else\x0acolor=applyImageProcessing(color);\x0a#endif\x0a#ifdef\x20PREMULTIPLYALPHA\x0acolor.rgb*=color.a;\x0a#endif\x0a#ifdef\x20NOISE\x0acolor.rgb+=dither(vPositionW.xy,0.5);\x0acolor=max(color,0.0);\x0a#endif\x0agl_FragColor=color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','};\x0avar<private>\x20fragmentOutputs\x20:\x20FragmentOutputs;\x0a','#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec4\x20vColor;\x0auniform\x20vec4\x20textureMask;\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<imageProcessingDeclaration>\x0a#include<logDepthDeclaration>\x0a#include<helperFunctions>\x0a#include<imageProcessingFunctions>\x0a#ifdef\x20RAMPGRADIENT\x0avarying\x20vec4\x20remapRanges;\x0auniform\x20sampler2D\x20rampSampler;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec4\x20textureColor=texture2D(diffuseSampler,vUV);\x0avec4\x20baseColor=(textureColor*textureMask+(vec4(1.,1.,1.,1.)-textureMask))*vColor;\x0a#ifdef\x20RAMPGRADIENT\x0afloat\x20alpha=baseColor.a;\x0afloat\x20remappedColorIndex=clamp((alpha-remapRanges.x)/remapRanges.y,0.0,1.0);\x0avec4\x20rampColor=texture2D(rampSampler,vec2(1.0-remappedColorIndex,0.));\x0abaseColor.rgb*=rampColor.rgb;\x0afloat\x20finalAlpha=baseColor.a;\x0abaseColor.a=clamp((alpha*rampColor.a-remapRanges.z)/remapRanges.w,0.0,1.0);\x0a#endif\x0a#ifdef\x20BLENDMULTIPLYMODE\x0afloat\x20sourceAlpha=vColor.a*textureColor.a;\x0abaseColor.rgb=baseColor.rgb*sourceAlpha+vec3(1.0)*(1.0-sourceAlpha);\x0a#endif\x0a#include<logDepthFragment>\x0a#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0abaseColor.rgb=toLinearSpace(baseColor.rgb);\x0a#else\x0a#ifdef\x20IMAGEPROCESSING\x0abaseColor.rgb=toLinearSpace(baseColor.rgb);\x0abaseColor=applyImageProcessing(baseColor);\x0a#endif\x0a#endif\x0agl_FragColor=baseColor;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','ALPHA_COMBINE','set','_areLightsDirty','ReciprocalPI','_crossEye','updateEffect','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20screenSize;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec4\x20colorDepth=vec4(0.0);\x0afor\x20(int\x20x=-OFFSET;\x20x<=OFFSET;\x20x++)\x0afor\x20(int\x20y=-OFFSET;\x20y<=OFFSET;\x20y++)\x0acolorDepth+=texture2D(textureSampler,vUV+vec2(x,y)/screenSize);\x0agl_FragColor=(colorDepth/float((OFFSET*2+1)*(OFFSET*2+1)));\x0a}','createFramebuffer','getBox','viewport','_timestampQuery','blurDepthScale','ALPHA_PREMULTIPLIED','function','setExternalTexture','occlusionQuerySet','_toIndex','defined(','_height','###___ANCHOR','helperFunctions','getDescendants','_bufferView','_getArraySize','TEXTUREFORMAT_RG','getMappedRange','onVRRequestPresentStart','TEXTURETYPE_HALF_FLOAT','_multiviewTexture','backgroundFragmentDeclaration','startDirectionFunction','connectTo','pvrtc','top',',\x20uniqueId=','_compression','samples','_gpuFrameTimeCounter','#ifdef','_useDirectMapping','_cacheSampler','update','boundingBoxSize','setAlphaConstants','_defineOppositeZ','isTextureArray','simulatePointerDown','_frameHandler','texture(','WGSL','initialize','uniformBufferRegexp','Can\x27t\x20get\x20the\x20texture\x20dimension\x20corresponding\x20to\x20the\x20texture\x20function\x20\x22','colorFormats','fillMode','REPLACE','rotate','glowMapGenerationPixelShader','TEXTURE_MIN_FILTER','renderPassDescriptor','setPipeline','_material','};\x0a','parseGLES3','constantlyUpdateMeshUnderPointer','getContext','#ifdef\x20PREPASS\x0a#ifdef\x20PREPASS_DEPTH\x0avarying\x20vec3\x20vViewPos;\x0a#endif\x0a#ifdef\x20PREPASS_VELOCITY\x0auniform\x20mat4\x20previousViewProjection;\x0avarying\x20vec4\x20vCurrentPosition;\x0avarying\x20vec4\x20vPreviousPosition;\x0a#endif\x0a#endif\x0a','ETC2RGB8A1Unorm','#ifdef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0auniform\x20bakedVertexAnimationTime:\x20f32;\x0auniform\x20bakedVertexAnimationTextureSizeInverted:\x20vec2<f32>;\x0auniform\x20bakedVertexAnimationSettings:\x20vec4<f32>;\x0avar\x20bakedVertexAnimationTexture\x20:\x20texture_2d<f32>;\x0a#ifdef\x20INSTANCES\x0aattribute\x20bakedVertexAnimationSettingsInstanced\x20:\x20vec4<f32>;\x0a#endif\x0afn\x20readMatrixFromRawSamplerVAT(smp\x20:\x20texture_2d<f32>,index\x20:\x20f32,frame\x20:\x20f32)->mat4x4<f32>\x0a{\x0alet\x20offset=i32(index)*4;\x0alet\x20frameUV=i32(frame);\x0alet\x20m0=textureLoad(smp,vec2<i32>(offset+0,frameUV),0);\x0alet\x20m1=textureLoad(smp,vec2<i32>(offset+1,frameUV),0);\x0alet\x20m2=textureLoad(smp,vec2<i32>(offset+2,frameUV),0);\x0alet\x20m3=textureLoad(smp,vec2<i32>(offset+3,frameUV),0);\x0areturn\x20mat4x4<f32>(m0,m1,m2,m3);\x0a}\x0a#endif\x0a','fileName','TEXTURETYPE_UNSIGNED_INT_10F_11F_11F_REV','#else','reflectionTexture','lensFlarePixelShader','createPickingRay','_onBeforeCameraRenderObserver','sizes','\x20=\x20computeProjectionCoords(','_uniformBufferLayoutBuilt','canBeginQuery','blurDir','asArray','_currentDrawContext','isPresenting','getHardwareScalingLevel','copyFromFloats','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSEX\x0avarying\x20vec2\x20vTextureUVX;\x0a#endif\x0a#ifdef\x20DIFFUSEY\x0avarying\x20vec2\x20vTextureUVY;\x0a#endif\x0a#ifdef\x20DIFFUSEZ\x0avarying\x20vec2\x20vTextureUVZ;\x0a#endif\x0auniform\x20float\x20tileSize;\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20mat3\x20tangentSpace;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20DIFFUSEX\x0avTextureUVX=worldPos.zy/tileSize;\x0a#endif\x0a#ifdef\x20DIFFUSEY\x0avTextureUVY=worldPos.xz/tileSize;\x0a#endif\x0a#ifdef\x20DIFFUSEZ\x0avTextureUVZ=worldPos.xy/tileSize;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20xtan=vec3(0,0,1);\x0avec3\x20xbin=vec3(0,1,0);\x0avec3\x20ytan=vec3(1,0,0);\x0avec3\x20ybin=vec3(0,0,1);\x0avec3\x20ztan=vec3(1,0,0);\x0avec3\x20zbin=vec3(0,1,0);\x0avec3\x20normalizedNormal=normalize(normal);\x0anormalizedNormal*=normalizedNormal;\x0avec3\x20worldBinormal=normalize(xbin*normalizedNormal.x+ybin*normalizedNormal.y+zbin*normalizedNormal.z);\x0avec3\x20worldTangent=normalize(xtan*normalizedNormal.x+ytan*normalizedNormal.y+ztan*normalizedNormal.z);\x0aworldTangent=(world*vec4(worldTangent,0.0)).xyz;\x0aworldBinormal=(world*vec4(worldBinormal,0.0)).xyz;\x0avec3\x20worldNormal=(world*vec4(normalize(normal),0.0)).xyz;\x0atangentSpace[0]=worldTangent;\x0atangentSpace[1]=worldBinormal;\x0atangentSpace[2]=worldNormal;\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','hasSpecificMask','_onVrDisplayPresentChange','isDisposed','createRawCubeTextureFromUrl','PREPASS_IRRADIANCE_TEXTURE_TYPE','_alreadyAttachedTo','useDirectMapping','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20BUMP\x0avarying\x20vec2\x20vNormalUV;\x0a#ifdef\x20BUMPSUPERIMPOSE\x0avarying\x20vec2\x20vNormalUV2;\x0a#endif\x0auniform\x20mat4\x20normalMatrix;\x0auniform\x20vec2\x20vNormalInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<logDepthDeclaration>\x0auniform\x20mat4\x20worldReflectionViewProjection;\x0auniform\x20vec2\x20windDirection;\x0auniform\x20float\x20waveLength;\x0auniform\x20float\x20time;\x0auniform\x20float\x20windForce;\x0auniform\x20float\x20waveHeight;\x0auniform\x20float\x20waveSpeed;\x0auniform\x20float\x20waveCount;\x0avarying\x20vec3\x20vPosition;\x0avarying\x20vec3\x20vRefractionMapTexCoord;\x0avarying\x20vec3\x20vReflectionMapTexCoord;\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20BUMP\x0aif\x20(vNormalInfos.x==0.)\x0a{\x0avNormalUV=vec2(normalMatrix*vec4((uv*1.0)/waveLength+time*windForce*windDirection,1.0,0.0));\x0a#ifdef\x20BUMPSUPERIMPOSE\x0avNormalUV2=vec2(normalMatrix*vec4((uv*0.721)/waveLength+time*1.2*windForce*windDirection,1.0,0.0));\x0a#endif\x0a}\x0aelse\x0a{\x0avNormalUV=vec2(normalMatrix*vec4((uv2*1.0)/waveLength+time*windForce*windDirection\x20,1.0,0.0));\x0a#ifdef\x20BUMPSUPERIMPOSE\x0avNormalUV2=vec2(normalMatrix*vec4((uv2*0.721)/waveLength+time*1.2*windForce*windDirection\x20,1.0,0.0));\x0a#endif\x0a}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0afloat\x20finalWaveCount=1.0/(waveCount*0.5);\x0avec3\x20p=position;\x0afloat\x20newY=(sin(((p.x/finalWaveCount)+time*waveSpeed))*waveHeight*windDirection.x*5.0)\x0a+\x20(cos(((p.z/finalWaveCount)+\x20time*waveSpeed))*waveHeight*windDirection.y*5.0);\x0ap.y+=abs(newY);\x0agl_Position=viewProjection*finalWorld*vec4(p,1.0);\x0a#ifdef\x20REFLECTION\x0aworldPos=viewProjection*finalWorld*vec4(p,1.0);\x0avPosition=position;\x0avRefractionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\x0avRefractionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\x0avRefractionMapTexCoord.z=worldPos.w;\x0aworldPos=worldReflectionViewProjection*vec4(position,1.0);\x0avReflectionMapTexCoord.x=0.5*(worldPos.w+worldPos.x);\x0avReflectionMapTexCoord.y=0.5*(worldPos.w+worldPos.y);\x0avReflectionMapTexCoord.z=worldPos.w;\x0a#endif\x0a#include<logDepthVertex>\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','ALPHA_EQUATION_REVERSE_SUBTRACT','createMaterialContext','externalTextureSamplerBinding','setStencilReference','_fromIndex','_currentLayer','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20leftSampler;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec4\x20leftFrag=texture2D(leftSampler,vUV);\x0aleftFrag=vec4(1.0,leftFrag.g,leftFrag.b,1.0);\x0avec4\x20rightFrag=texture2D(textureSampler,vUV);\x0arightFrag=vec4(rightFrag.r,1.0,1.0,1.0);\x0agl_FragColor=vec4(rightFrag.rgb*leftFrag.rgb,1.0);\x0a}','Float\x20texture\x20filtering\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20and\x20sampling\x20mode\x20are\x20forced\x20to\x20false\x20and\x20TEXTURE_NEAREST_SAMPLINGMODE,\x20respectively.','_getRGBAMultiSampleBufferFormat','_setColorFormat','createMultipleRenderTarget','HasStencilAspect','_defineEquirectangularFixedName','_onGenerateOnlyFragmentCodeChanged','_changeTextureMode','No\x20\x22main\x22\x20function\x20found\x20in\x20shader\x20code!\x20Processing\x20aborted.','freeBindingIndex','_rebuild','indexOf','kernelBlurVertexShader','_processStridedUniformArrays','_Counter','faceIndex','normalize','boundingBoxRendererUboDeclaration','RGBA16Uint','_view','_cache','define','removeAttributes','CubeArray','prototype','vertexCompilationError','capacity','{X}','numDrawCalls','fillUniformsAttributesAndSamplerNames','DepthStencil','maxFilterSize','CreateNewFromSprite','setDepthStencilFormat','isEqual','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0aattribute\x20vec3\x20normal;\x0aattribute\x20vec2\x20uv;\x0auniform\x20mat4\x20projMatrix;\x0avarying\x20vec2\x20vDecalTC;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<instancesDeclaration>\x0avoid\x20main(void)\x20{\x0avec3\x20positionUpdated=position;\x0avec3\x20normalUpdated=normal;\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(positionUpdated,1.0);\x0amat3\x20normWorldSM=mat3(finalWorld);\x0avec3\x20vNormalW;\x0a#if\x20defined(INSTANCES)\x20&&\x20defined(THIN_INSTANCES)\x0avNormalW=normalUpdated/vec3(dot(normWorldSM[0],normWorldSM[0]),dot(normWorldSM[1],normWorldSM[1]),dot(normWorldSM[2],normWorldSM[2]));\x0avNormalW=normalize(normWorldSM*vNormalW);\x0a#else\x0a#ifdef\x20NONUNIFORMSCALING\x0anormWorldSM=transposeMat3(inverseMat3(normWorldSM));\x0a#endif\x0avNormalW=normalize(normWorldSM*normalUpdated);\x0a#endif\x0avec3\x20normalView=normalize((projMatrix*vec4(vNormalW,0.0)).xyz);\x0avec3\x20decalTC=(projMatrix*worldPos).xyz;\x0avDecalTC=decalTC.xy;\x0agl_Position=vec4(uv*2.0-1.0,normalView.z>0.0\x20?\x202.\x20:\x20decalTC.z,1.0);\x0a}\x0a','_fixReusablePostProcess','getScene','uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20MULTIVIEW\x0auniform\x20mat4\x20viewProjectionR;\x0a#endif\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec4\x20vEyePosition;\x0a',');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20','setDirectColor4','#if\x20defined(BUMP)\x20||\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(ANISOTROPIC)\x20||\x20defined(DETAIL)\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x20\x0avarying\x20mat3\x20vTBN;\x0a#endif\x0a#ifdef\x20OBJECTSPACE_NORMALMAP\x0auniform\x20mat4\x20normalMatrix;\x0a#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x0amat4\x20toNormalMatrix(mat4\x20wMatrix)\x0a{\x0amat4\x20ret=inverse(wMatrix);\x0aret=transpose(ret);\x0aret[0][3]=0.;\x0aret[1][3]=0.;\x0aret[2][3]=0.;\x0aret[3]=vec4(0.,0.,0.,1.);\x0areturn\x20ret;\x0a}\x0a#else\x0amat4\x20toNormalMatrix(mat4\x20m)\x0a{\x0afloat\x0aa00=m[0][0],a01=m[0][1],a02=m[0][2],a03=m[0][3],\x0aa10=m[1][0],a11=m[1][1],a12=m[1][2],a13=m[1][3],\x0aa20=m[2][0],a21=m[2][1],a22=m[2][2],a23=m[2][3],\x0aa30=m[3][0],a31=m[3][1],a32=m[3][2],a33=m[3][3],\x0ab00=a00*a11-a01*a10,\x0ab01=a00*a12-a02*a10,\x0ab02=a00*a13-a03*a10,\x0ab03=a01*a12-a02*a11,\x0ab04=a01*a13-a03*a11,\x0ab05=a02*a13-a03*a12,\x0ab06=a20*a31-a21*a30,\x0ab07=a20*a32-a22*a30,\x0ab08=a20*a33-a23*a30,\x0ab09=a21*a32-a22*a31,\x0ab10=a21*a33-a23*a31,\x0ab11=a22*a33-a23*a32,\x0adet=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;\x0amat4\x20mi=mat4(\x0aa11*b11-a12*b10+a13*b09,\x0aa02*b10-a01*b11-a03*b09,\x0aa31*b05-a32*b04+a33*b03,\x0aa22*b04-a21*b05-a23*b03,\x0aa12*b08-a10*b11-a13*b07,\x0aa00*b11-a02*b08+a03*b07,\x0aa32*b02-a30*b05-a33*b01,\x0aa20*b05-a22*b02+a23*b01,\x0aa10*b10-a11*b08+a13*b06,\x0aa01*b08-a00*b10-a03*b06,\x0aa30*b04-a31*b02+a33*b00,\x0aa21*b02-a20*b04-a23*b00,\x0aa11*b07-a10*b09-a12*b06,\x0aa00*b09-a01*b07+a02*b06,\x0aa31*b01-a30*b03-a32*b00,\x0aa20*b03-a21*b01+a22*b00)/det;\x0areturn\x20mat4(mi[0][0],mi[1][0],mi[2][0],mi[3][0],\x0ami[0][1],mi[1][1],mi[2][1],mi[3][1],\x0ami[0][2],mi[1][2],mi[2][2],mi[3][2],\x0ami[0][3],mi[1][3],mi[2][3],mi[3][3]);\x0a}\x0a#endif\x0a#endif\x0avec3\x20perturbNormalBase(mat3\x20cotangentFrame,vec3\x20normal,float\x20scale)\x0a{\x0a#ifdef\x20NORMALXYSCALE\x0anormal=normalize(normal*vec3(scale,scale,1.0));\x0a#endif\x0areturn\x20normalize(cotangentFrame*normal);\x0a}\x0avec3\x20perturbNormal(mat3\x20cotangentFrame,vec3\x20textureSample,float\x20scale)\x0a{\x0areturn\x20perturbNormalBase(cotangentFrame,textureSample*2.0-1.0,scale);\x0a}\x0amat3\x20cotangent_frame(vec3\x20normal,vec3\x20p,vec2\x20uv,vec2\x20tangentSpaceParams)\x0a{\x0avec3\x20dp1=dFdx(p);\x0avec3\x20dp2=dFdy(p);\x0avec2\x20duv1=dFdx(uv);\x0avec2\x20duv2=dFdy(uv);\x0avec3\x20dp2perp=cross(dp2,normal);\x0avec3\x20dp1perp=cross(normal,dp1);\x0avec3\x20tangent=dp2perp*duv1.x+dp1perp*duv2.x;\x0avec3\x20bitangent=dp2perp*duv1.y+dp1perp*duv2.y;\x0atangent*=tangentSpaceParams.x;\x0abitangent*=tangentSpaceParams.y;\x0afloat\x20det=max(dot(tangent,tangent),dot(bitangent,bitangent));\x0afloat\x20invmax=det==0.0\x20?\x200.0\x20:\x20inversesqrt(det);\x0areturn\x20mat3(tangent*invmax,bitangent*invmax,normal);\x0a}\x0a#endif\x0a','TEXTUREFORMAT_BGRA','onSizeChangedObservable','setEffect','cameraToUseForPointers','pop','_internalCount','Uniform','POINTERMOVE','setState','_processPointerDown','_processCustomBuffers','_deviceSourceManager','atan2','_updateMultiviewUbo','getPointerOverMesh','_attributeDeclaration','\x20=\x20computeEquirectangularCoords(','bakedVertexAnimation','\x0a\x20\x20\x20\x20#extension\x20GL_EXT_samplerless_texture_functions\x20:\x20enable\x0a\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x200)\x20uniform\x20texture2D\x20img;\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x201)\x20uniform\x20Params\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20ofstX;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20ofstY;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20width;\x0a\x20\x20\x20\x20\x20\x20\x20\x20float\x20height;\x0a\x20\x20\x20\x20};\x0a\x0a\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20layout(location\x20=\x200)\x20in\x20flat\x20ivec2\x20vTextureSize;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20vec4\x20outColor;\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(gl_FragCoord.x\x20<\x20ofstX\x20||\x20gl_FragCoord.x\x20>=\x20ofstX\x20+\x20width)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20if\x20(gl_FragCoord.y\x20<\x20ofstY\x20||\x20gl_FragCoord.y\x20>=\x20ofstY\x20+\x20height)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20discard;\x0a\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20#ifdef\x20INVERTY\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20texelFetch(img,\x20ivec2(gl_FragCoord.x,\x20ofstY\x20+\x20height\x20-\x20(gl_FragCoord.y\x20-\x20ofstY)),\x200);\x0a\x20\x20\x20\x20#else\x0a\x20\x20\x20\x20\x20\x20\x20\x20vec4\x20color\x20=\x20texelFetch(img,\x20ivec2(gl_FragCoord.xy),\x200);\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20#ifdef\x20PREMULTIPLYALPHA\x0a\x20\x20\x20\x20\x20\x20\x20\x20color.rgb\x20*=\x20color.a;\x0a\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20=\x20color;\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','attribute','RGBA16Sint','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vSpecularColor;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vTextureUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20vTextureInfos;\x0auniform\x20sampler2D\x20diffuse1Sampler;\x0auniform\x20sampler2D\x20diffuse2Sampler;\x0auniform\x20sampler2D\x20diffuse3Sampler;\x0auniform\x20vec2\x20diffuse1Infos;\x0auniform\x20vec2\x20diffuse2Infos;\x0auniform\x20vec2\x20diffuse3Infos;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20sampler2D\x20bump1Sampler;\x0auniform\x20sampler2D\x20bump2Sampler;\x0auniform\x20sampler2D\x20bump3Sampler;\x0a#endif\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#ifdef\x20BUMP\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0amat3\x20cotangent_frame(vec3\x20normal,vec3\x20p,vec2\x20uv)\x0a{\x0avec3\x20dp1=dFdx(p);\x0avec3\x20dp2=dFdy(p);\x0avec2\x20duv1=dFdx(uv);\x0avec2\x20duv2=dFdy(uv);\x0avec3\x20dp2perp=cross(dp2,normal);\x0avec3\x20dp1perp=cross(normal,dp1);\x0avec3\x20tangent=dp2perp*duv1.x+dp1perp*duv2.x;\x0avec3\x20binormal=dp2perp*duv1.y+dp1perp*duv2.y;\x0afloat\x20invmax=inversesqrt(max(dot(tangent,tangent),dot(binormal,binormal)));\x0areturn\x20mat3(tangent*invmax,binormal*invmax,normal);\x0a}\x0avec3\x20perturbNormal(vec3\x20viewDir,vec3\x20mixColor)\x0a{\x0avec3\x20bump1Color=texture2D(bump1Sampler,vTextureUV*diffuse1Infos).xyz;\x0avec3\x20bump2Color=texture2D(bump2Sampler,vTextureUV*diffuse2Infos).xyz;\x0avec3\x20bump3Color=texture2D(bump3Sampler,vTextureUV*diffuse3Infos).xyz;\x0abump1Color.rgb*=mixColor.r;\x0abump2Color.rgb=mix(bump1Color.rgb,bump2Color.rgb,mixColor.g);\x0avec3\x20map=mix(bump2Color.rgb,bump3Color.rgb,mixColor.b);\x0amap=map*255./127.-128./127.;\x0amat3\x20TBN=cotangent_frame(vNormalW*vTextureInfos.y,-viewDir,vTextureUV);\x0areturn\x20normalize(TBN*map);\x0a}\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0abaseColor=texture2D(textureSampler,vTextureUV);\x0a#if\x20defined(BUMP)\x20&&\x20defined(DIFFUSE)\x0anormalW=perturbNormal(viewDirectionW,baseColor.rgb);\x0a#endif\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vTextureInfos.y;\x0avec4\x20diffuse1Color=texture2D(diffuse1Sampler,vTextureUV*diffuse1Infos);\x0avec4\x20diffuse2Color=texture2D(diffuse2Sampler,vTextureUV*diffuse2Infos);\x0avec4\x20diffuse3Color=texture2D(diffuse3Sampler,vTextureUV*diffuse3Infos);\x0adiffuse1Color.rgb*=baseColor.r;\x0adiffuse2Color.rgb=mix(diffuse1Color.rgb,diffuse2Color.rgb,baseColor.g);\x0abaseColor.rgb=mix(diffuse2Color.rgb,diffuse3Color.rgb,baseColor.b);\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor*baseColor.rgb,0.0,1.0);\x0avec4\x20color=vec4(finalDiffuse+finalSpecular,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','RenderAttachment','#ifdef\x20LOGARITHMICDEPTH\x0auniform\x20float\x20logarithmicDepthConstant;\x0avarying\x20float\x20vFragmentDepth;\x0a#endif\x0a','forceSphericalPolynomialsRecompute','_generateLeftOverUBOCode','ETC2RGB8Unorm','Uint','_createMultiviewUbo','precision\x20highp\x20float;uniform\x20vec4\x20vEyePosition;varying\x20vec3\x20vPositionW;\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;uniform\x20sampler2D\x20diffuseSampler;uniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0auniform\x20sampler2D\x20distortionSampler;uniform\x20sampler2D\x20opacitySampler;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDistortionCoords1;varying\x20vec2\x20vDistortionCoords2;varying\x20vec2\x20vDistortionCoords3;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0avec4\x20bx2(vec4\x20x)\x0a{return\x20vec4(2.0)*x-vec4(1.0);}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4\x20baseColor=vec4(1.,1.,1.,1.);float\x20alpha=1.0;\x0a#ifdef\x20DIFFUSE\x0aconst\x20float\x20distortionAmount0\x20=0.092;const\x20float\x20distortionAmount1\x20=0.092;const\x20float\x20distortionAmount2\x20=0.092;vec2\x20heightAttenuation=vec2(0.3,0.39);vec4\x20noise0=texture2D(distortionSampler,vDistortionCoords1);vec4\x20noise1=texture2D(distortionSampler,vDistortionCoords2);vec4\x20noise2=texture2D(distortionSampler,vDistortionCoords3);vec4\x20noiseSum=bx2(noise0)*distortionAmount0+bx2(noise1)*distortionAmount1+bx2(noise2)*distortionAmount2;vec4\x20perturbedBaseCoords=vec4(vDiffuseUV,0.0,1.0)+noiseSum*(vDiffuseUV.y*heightAttenuation.x+heightAttenuation.y);vec4\x20opacityColor=texture2D(opacitySampler,perturbedBaseCoords.xy);\x0a#ifdef\x20ALPHATEST\x0aif\x20(opacityColor.r<0.1)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor=texture2D(diffuseSampler,perturbedBaseCoords.xy)*2.0;baseColor*=opacityColor;baseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0avec3\x20diffuseBase=vec3(1.0,1.0,1.0);\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec4\x20color=vec4(baseColor.rgb,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','ETC2RGB8A1UnormSRGB','REFLECTIONMAP_SPHERICAL','Thin\x20Instances\x20are\x20not\x20supported\x20on\x20this\x20device\x20as\x20Instanced\x20Array\x20extension\x20not\x20supported','detachControl','dbgShowShaderCode','(-yFactor_)*dFdy','ssao2PixelShader','subSurfaceScatteringFunctions','_pointerX','_varyingNextLocation','_getActionManagerForTrigger','world','singleClick','textureCube','DRAW_FRAMEBUFFER','bindMultiviewFramebuffer','ConeParticleEmitter','_cachedWrapV','vec4','_animationStarted','pbrFragmentExtraDeclaration','getBindGroups',']\x20is\x20not\x20connected\x20and\x20is\x20not\x20optional.\x0d\x0a','bumpFragment','readFromStorageBuffer','CLAMP_TO_EDGE','_texture','fromIndex','\x0a\x20\x20\x20\x20@group(0)\x20@binding(0)\x20var\x20videoSampler:\x20sampler;\x0a\x20\x20\x20\x20@group(0)\x20@binding(1)\x20var\x20videoTexture:\x20texture_external;\x0a\x0a\x20\x20\x20\x20@fragment\x0a\x20\x20\x20\x20fn\x20main(\x0a\x20\x20\x20\x20\x20\x20\x20\x20@location(0)\x20fragUV:\x20vec2<f32>\x0a\x20\x20\x20\x20)\x20->\x20@location(0)\x20vec4<f32>\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20return\x20textureSampleBaseClampToEdge(videoTexture,\x20videoSampler,\x20fragUV);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20','_getRGBABufferInternalSizedFormat','addBundle','addDiffusionProfile','isTrue','getPhysicsImpostor','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20passSampler;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0agl_FragColor=texture2D(passSampler,vUV);\x0a}','clipPlaneFragmentDeclaration','keys','record','#version\x20300\x20es\x0avoid\x20main()\x20{\x0adiscard;\x0a}\x0a','TEXTUREFORMAT_DEPTH16','updateRawCubeTexture','_renderTarget','TEXTURE_WRAP_T','useEquirectangularFOV','availableSamplers','#else\x0d\x0a','_bindUnboundFramebuffer','setFloat3','gridVertexShader','#ifdef\x20_DEFINENAME_\x0a#if\x20_DEFINENAME_DIRECTUV==1\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV1\x0a#elif\x20_DEFINENAME_DIRECTUV==2\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV2\x0a#elif\x20_DEFINENAME_DIRECTUV==3\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV3\x0a#elif\x20_DEFINENAME_DIRECTUV==4\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV4\x0a#elif\x20_DEFINENAME_DIRECTUV==5\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV5\x0a#elif\x20_DEFINENAME_DIRECTUV==6\x0a#define\x20v_VARYINGNAME_UV\x20vMainUV6\x0a#else\x0avarying\x20vec2\x20v_VARYINGNAME_UV;\x0a#endif\x0auniform\x20sampler2D\x20_SAMPLERNAME_Sampler;\x0a#endif\x0a','releaseMSAARenderBuffers','//Samplers\x0d\x0a','RGB','bindGroupLayoutEntryInfo','ADVANCED','_cloneRenderTargetWrapper','textureNames','program','_initClickEvent','Iridescence\x20ior','GetData','fogFragmentDeclaration','gpuUpdateParticlesPixelShader','blocksWithDefines','IsImageBitmap','positionUVW','#ifdef\x20CLIPPLANE\x0avarying\x20fClipDistance:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0avarying\x20fClipDistance2:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0avarying\x20fClipDistance3:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0avarying\x20fClipDistance4:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0avarying\x20fClipDistance5:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0avarying\x20fClipDistance6:\x20f32;\x0a#endif\x0a','LINEAR_MIPMAP_LINEAR','setIntArray','updateCubeTextures','Clone','_maxRank','hdrFilteringVertexShader','POINTERDOUBLETAP','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0agl_FragColor=texture2D(textureSampler,vUV);\x0a}','previousMatrixBuffer','boundingVectors','setIntArray4','_colorTextureArray','getPipelineContext','E1d','struct\x20FragmentInputs\x20{\x0a\x20\x20@builtin(position)\x20position\x20:\x20vec4<f32>,\x0a\x20\x20@builtin(front_facing)\x20frontFacing\x20:\x20bool,\x0a','ColorKind','PREPASS_ALBEDO_SQRT_TEXTURE_TYPE','_mesh','setUIntArray3','layers','onApplyObservable','needsImageProcessing','readBuffer','PREPASS_REFLECTIVITY_TEXTURE_TYPE','_indexBuffer','msaaTexture','shadowMapVertexDeclaration','kernelBlurFragment2','_createHardwareRenderTargetWrapper','_currentMaterialContext','ASTC5x5UnormSRGB','REFLECTIONMAP_3D','SubSurfaceScatteringPostProcess','_mode','TEXTURE_BILINEAR_SAMPLINGMODE','#if\x20defined(BUMP)\x20||\x20defined(PARALLAX)\x20||\x20defined(CLEARCOAT_BUMP)\x20||\x20defined(ANISOTROPIC)\x0a#if\x20defined(TANGENT)\x20&&\x20defined(NORMAL)\x0avec3\x20tbnNormal=normalize(normalUpdated);\x0avec3\x20tbnTangent=normalize(tangentUpdated.xyz);\x0avec3\x20tbnBitangent=cross(tbnNormal,tbnTangent)*tangentUpdated.w;\x0avTBN=mat3(finalWorld)*mat3(tbnTangent,tbnBitangent,tbnNormal);\x0a#endif\x0a#endif\x0a','_play','_extension','ASTC12x10UnormSRGB','attribute\x20vec3\x20position;\x0aattribute\x20vec2\x20offset;\x0aattribute\x20vec4\x20color;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec2\x20size;\x0avarying\x20vec2\x20uv;\x0avarying\x20vec3\x20diffuseColor;\x0avoid\x20main(void)\x20{\x0avec3\x20cornerPos;\x0acornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;\x0acornerPos.z=0.0;\x0avec3\x20viewPos=(view*vec4(position,1.0)).xyz+cornerPos;\x0agl_Position=projection*vec4(viewPos,1.0);\x0auv=offset;\x0adiffuseColor=color.rgb;\x0a}\x0a','cellInfo','uniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20highlightsSampler;\x0auniform\x20sampler2D\x20depthSampler;\x0auniform\x20sampler2D\x20grainSampler;\x0auniform\x20float\x20grain_amount;\x0auniform\x20bool\x20blur_noise;\x0auniform\x20float\x20screen_width;\x0auniform\x20float\x20screen_height;\x0auniform\x20float\x20distortion;\x0auniform\x20bool\x20dof_enabled;\x0auniform\x20float\x20screen_distance;\x20\x0auniform\x20float\x20aperture;\x0auniform\x20float\x20darken;\x0auniform\x20float\x20edge_blur;\x0auniform\x20bool\x20highlights;\x0auniform\x20float\x20near;\x0auniform\x20float\x20far;\x0avarying\x20vec2\x20vUV;\x0a#define\x20PI\x203.14159265\x0a#define\x20TWOPI\x206.28318530\x0a#define\x20inverse_focal_length\x200.1\x20\x0avec2\x20centered_screen_pos;\x0avec2\x20distorted_coords;\x0afloat\x20radius2;\x0afloat\x20radius;\x0avec2\x20rand(vec2\x20co)\x0a{\x0afloat\x20noise1=(fract(sin(dot(co,vec2(12.9898,78.233)))*43758.5453));\x0afloat\x20noise2=(fract(sin(dot(co,vec2(12.9898,78.233)*2.0))*43758.5453));\x0areturn\x20clamp(vec2(noise1,noise2),0.0,1.0);\x0a}\x0avec2\x20getDistortedCoords(vec2\x20coords)\x20{\x0aif\x20(distortion==0.0)\x20{\x20return\x20coords;\x20}\x0avec2\x20direction=1.0*normalize(centered_screen_pos);\x0avec2\x20dist_coords=vec2(0.5,0.5);\x0adist_coords.x=0.5+direction.x*radius2*1.0;\x0adist_coords.y=0.5+direction.y*radius2*1.0;\x0afloat\x20dist_amount=clamp(distortion*0.23,0.0,1.0);\x0adist_coords=mix(coords,dist_coords,dist_amount);\x0areturn\x20dist_coords;\x0a}\x0afloat\x20sampleScreen(inout\x20vec4\x20color,in\x20vec2\x20offset,in\x20float\x20weight)\x20{\x0avec2\x20coords=distorted_coords;\x0afloat\x20angle=rand(coords*100.0).x*TWOPI;\x0acoords+=vec2(offset.x*cos(angle)-offset.y*sin(angle),offset.x*sin(angle)+offset.y*cos(angle));\x0acolor+=texture2D(textureSampler,coords)*weight;\x0areturn\x20weight;\x0a}\x0afloat\x20getBlurLevel(float\x20size)\x20{\x0areturn\x20min(3.0,ceil(size/1.0));\x0a}\x0avec4\x20getBlurColor(float\x20size)\x20{\x0avec4\x20col=texture2D(textureSampler,distorted_coords);\x0afloat\x20blur_level=getBlurLevel(size);\x0afloat\x20w=(size/screen_width);\x0afloat\x20h=(size/screen_height);\x0afloat\x20total_weight=1.0;\x0avec2\x20sample_coords;\x0atotal_weight+=sampleScreen(col,vec2(-0.50*w,0.24*h),0.93);\x0atotal_weight+=sampleScreen(col,vec2(0.30*w,-0.75*h),0.90);\x0atotal_weight+=sampleScreen(col,vec2(0.36*w,0.96*h),0.87);\x0atotal_weight+=sampleScreen(col,vec2(-1.08*w,-0.55*h),0.85);\x0atotal_weight+=sampleScreen(col,vec2(1.33*w,-0.37*h),0.83);\x0atotal_weight+=sampleScreen(col,vec2(-0.82*w,1.31*h),0.80);\x0atotal_weight+=sampleScreen(col,vec2(-0.31*w,-1.67*h),0.78);\x0atotal_weight+=sampleScreen(col,vec2(1.47*w,1.11*h),0.76);\x0atotal_weight+=sampleScreen(col,vec2(-1.97*w,0.19*h),0.74);\x0atotal_weight+=sampleScreen(col,vec2(1.42*w,-1.57*h),0.72);\x0aif\x20(blur_level>1.0)\x20{\x0atotal_weight+=sampleScreen(col,vec2(0.01*w,2.25*h),0.70);\x0atotal_weight+=sampleScreen(col,vec2(-1.62*w,-1.74*h),0.67);\x0atotal_weight+=sampleScreen(col,vec2(2.49*w,0.20*h),0.65);\x0atotal_weight+=sampleScreen(col,vec2(-2.07*w,1.61*h),0.63);\x0atotal_weight+=sampleScreen(col,vec2(0.46*w,-2.70*h),0.61);\x0atotal_weight+=sampleScreen(col,vec2(1.55*w,2.40*h),0.59);\x0atotal_weight+=sampleScreen(col,vec2(-2.88*w,-0.75*h),0.56);\x0atotal_weight+=sampleScreen(col,vec2(2.73*w,-1.44*h),0.54);\x0atotal_weight+=sampleScreen(col,vec2(-1.08*w,3.02*h),0.52);\x0atotal_weight+=sampleScreen(col,vec2(-1.28*w,-3.05*h),0.49);\x0a}\x0aif\x20(blur_level>2.0)\x20{\x0atotal_weight+=sampleScreen(col,vec2(3.11*w,1.43*h),0.46);\x0atotal_weight+=sampleScreen(col,vec2(-3.36*w,1.08*h),0.44);\x0atotal_weight+=sampleScreen(col,vec2(1.80*w,-3.16*h),0.41);\x0atotal_weight+=sampleScreen(col,vec2(0.83*w,3.65*h),0.38);\x0atotal_weight+=sampleScreen(col,vec2(-3.16*w,-2.19*h),0.34);\x0atotal_weight+=sampleScreen(col,vec2(3.92*w,-0.53*h),0.31);\x0atotal_weight+=sampleScreen(col,vec2(-2.59*w,3.12*h),0.26);\x0atotal_weight+=sampleScreen(col,vec2(-0.20*w,-4.15*h),0.22);\x0atotal_weight+=sampleScreen(col,vec2(3.02*w,3.00*h),0.15);\x0a}\x0acol/=total_weight;\x20\x0aif\x20(darken>0.0)\x20{\x0acol.rgb*=clamp(0.3,1.0,1.05-size*0.5*darken);\x0a}\x0areturn\x20col;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0acentered_screen_pos=vec2(vUV.x-0.5,vUV.y-0.5);\x0aradius2=centered_screen_pos.x*centered_screen_pos.x+centered_screen_pos.y*centered_screen_pos.y;\x0aradius=sqrt(radius2);\x0adistorted_coords=getDistortedCoords(vUV);\x20\x0avec2\x20texels_coords=vec2(vUV.x*screen_width,vUV.y*screen_height);\x20\x0afloat\x20depth=texture2D(depthSampler,distorted_coords).r;\x20\x0afloat\x20distance=near+(far-near)*depth;\x20\x0avec4\x20color=texture2D(textureSampler,vUV);\x20\x0afloat\x20coc=abs(aperture*(screen_distance*(inverse_focal_length-1.0/distance)-1.0));\x0aif\x20(dof_enabled==false\x20||\x20coc<0.07)\x20{\x20coc=0.0;\x20}\x0afloat\x20edge_blur_amount=0.0;\x0aif\x20(edge_blur>0.0)\x20{\x0aedge_blur_amount=clamp((radius*2.0-1.0+0.15*edge_blur)*1.5,0.0,1.0)*1.3;\x0a}\x0afloat\x20blur_amount=max(edge_blur_amount,coc);\x0aif\x20(blur_amount==0.0)\x20{\x0agl_FragColor=texture2D(textureSampler,distorted_coords);\x0a}\x0aelse\x20{\x0agl_FragColor=getBlurColor(blur_amount*1.7);\x0aif\x20(highlights)\x20{\x0agl_FragColor.rgb+=clamp(coc,0.0,1.0)*texture2D(highlightsSampler,distorted_coords).rgb;\x0a}\x0aif\x20(blur_noise)\x20{\x0avec2\x20noise=rand(distorted_coords)*0.01*blur_amount;\x0avec2\x20blurred_coord=vec2(distorted_coords.x+noise.x,distorted_coords.y+noise.y);\x0agl_FragColor=0.04*texture2D(textureSampler,blurred_coord)+0.96*gl_FragColor;\x0a}\x0a}\x0aif\x20(grain_amount>0.0)\x20{\x0avec4\x20grain_color=texture2D(grainSampler,texels_coords*0.003);\x0agl_FragColor.rgb+=(-0.5+grain_color.rgb)*0.30*grain_amount;\x0a}\x0a}\x0a','\x20{\x0a\x20\x20yFactor_:\x20f32,\x0a\x20\x20textureOutputHeight_:\x20f32,\x0a};\x0avar<uniform>\x20internals\x20:\x20','RG32Uint','#ifdef\x20CLIPPLANE\x0ain\x20float\x20fClipDistance;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0ain\x20float\x20fClipDistance2;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0ain\x20float\x20fClipDistance3;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0ain\x20float\x20fClipDistance4;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0ain\x20float\x20fClipDistance5;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0ain\x20float\x20fClipDistance6;\x0a#endif\x0a','_BuildExpression','allowSingleMeshMaxTriangleFaceQuantity','TextureCube_','_uvs','timeoutId','GEQUAL','doubleClick','_thinInstanceInitializeUserStorage','NEVER','setHardwareScalingLevel','Render\x20to\x20half\x20float\x20textures\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20forced\x20to\x20false.','createIndexBuffer','#include<fibonacci>\x0a#include<helperFunctions>\x0a#include<subSurfaceScatteringFunctions>\x0a#include<diffusionProfile>\x0avarying\x20vec2\x20vUV;\x0auniform\x20vec2\x20texelSize;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20irradianceSampler;\x0auniform\x20sampler2D\x20depthSampler;\x0auniform\x20sampler2D\x20albedoSampler;\x0auniform\x20vec2\x20viewportSize;\x0auniform\x20float\x20metersPerUnit;\x0aconst\x20float\x20LOG2_E=1.4426950408889634;\x0aconst\x20float\x20SSS_PIXELS_PER_SAMPLE=4.;\x0aconst\x20int\x20_SssSampleBudget=40;\x0a#define\x20rcp(x)\x201./x\x0a#define\x20Sq(x)\x20x*x\x0a#define\x20SSS_BILATERAL_FILTER\x20true\x0avec3\x20EvalBurleyDiffusionProfile(float\x20r,vec3\x20S)\x0a{\x0avec3\x20exp_13=exp2(((LOG2_E*(-1.0/3.0))*r)*S);\x20\x0avec3\x20expSum=exp_13*(1.+exp_13*exp_13);\x20\x0areturn\x20(S*rcp(8.*PI))*expSum;\x20\x0a}\x0avec2\x20SampleBurleyDiffusionProfile(float\x20u,float\x20rcpS)\x0a{\x0au=1.-u;\x20\x0afloat\x20g=1.+(4.*u)*(2.*u+sqrt(1.+(4.*u)*u));\x0afloat\x20n=exp2(log2(g)*(-1.0/3.0));\x20\x0afloat\x20p=(g*n)*n;\x20\x0afloat\x20c=1.+p+n;\x20\x0afloat\x20d=(3./LOG2_E*2.)+(3./LOG2_E)*log2(u);\x20\x0afloat\x20x=(3./LOG2_E)*log2(c)-d;\x20\x0afloat\x20rcpExp=((c*c)*c)*rcp((4.*u)*((c*c)+(4.*u)*(4.*u)));\x0afloat\x20r=x*rcpS;\x0afloat\x20rcpPdf=(8.*PI*rcpS)*rcpExp;\x20\x0areturn\x20vec2(r,rcpPdf);\x0a}\x0avec3\x20ComputeBilateralWeight(float\x20xy2,float\x20z,float\x20mmPerUnit,vec3\x20S,float\x20rcpPdf)\x0a{\x0a#ifndef\x20SSS_BILATERAL_FILTER\x0az=0.;\x0a#endif\x0afloat\x20r=sqrt(xy2+(z*mmPerUnit)*(z*mmPerUnit));\x0afloat\x20area=rcpPdf;\x0a#if\x20SSS_CLAMP_ARTIFACT\x0areturn\x20clamp(EvalBurleyDiffusionProfile(r,S)*area,0.0,1.0);\x0a#else\x0areturn\x20EvalBurleyDiffusionProfile(r,S)*area;\x0a#endif\x0a}\x0avoid\x20EvaluateSample(int\x20i,int\x20n,vec3\x20S,float\x20d,vec3\x20centerPosVS,float\x20mmPerUnit,float\x20pixelsPerMm,\x0afloat\x20phase,inout\x20vec3\x20totalIrradiance,inout\x20vec3\x20totalWeight)\x0a{\x0afloat\x20scale\x20=rcp(float(n));\x0afloat\x20offset=rcp(float(n))*0.5;\x0afloat\x20sinPhase,cosPhase;\x0asinPhase=sin(phase);\x0acosPhase=cos(phase);\x0avec2\x20bdp=SampleBurleyDiffusionProfile(float(i)*scale+offset,d);\x0afloat\x20r=bdp.x;\x0afloat\x20rcpPdf=bdp.y;\x0afloat\x20phi=SampleDiskGolden(i,n).y;\x0afloat\x20sinPhi,cosPhi;\x0asinPhi=sin(phi);\x0acosPhi=cos(phi);\x0afloat\x20sinPsi=cosPhase*sinPhi+sinPhase*cosPhi;\x20\x0afloat\x20cosPsi=cosPhase*cosPhi-sinPhase*sinPhi;\x20\x0avec2\x20vec=r*vec2(cosPsi,sinPsi);\x0avec2\x20position;\x20\x0afloat\x20xy2;\x0aposition=vUV+round((pixelsPerMm*r)*vec2(cosPsi,sinPsi))*texelSize;\x0axy2\x20=r*r;\x0avec4\x20textureSample=texture2D(irradianceSampler,position);\x0afloat\x20viewZ=texture2D(depthSampler,position).r;\x0avec3\x20irradiance\x20=textureSample.rgb;\x0aif\x20(testLightingForSSS(textureSample.a))\x0a{\x0afloat\x20relZ=viewZ-centerPosVS.z;\x0avec3\x20weight=ComputeBilateralWeight(xy2,relZ,mmPerUnit,S,rcpPdf);\x0atotalIrradiance+=weight*irradiance;\x0atotalWeight\x20+=weight;\x0a}\x0aelse\x0a{\x0a}\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0avec4\x20irradianceAndDiffusionProfile\x20=texture2D(irradianceSampler,vUV);\x0avec3\x20centerIrradiance=irradianceAndDiffusionProfile.rgb;\x0aint\x20diffusionProfileIndex=int(round(irradianceAndDiffusionProfile.a*255.));\x0afloat\x20centerDepth\x20=0.;\x0avec4\x20inputColor=texture2D(textureSampler,vUV);\x0abool\x20passedStencilTest=testLightingForSSS(irradianceAndDiffusionProfile.a);\x0aif\x20(passedStencilTest)\x0a{\x0acenterDepth=texture2D(depthSampler,vUV).r;\x0a}\x0aif\x20(!passedStencilTest)\x20{\x20\x0agl_FragColor=inputColor;\x0areturn;\x0a}\x0afloat\x20distScale\x20=1.;\x0avec3\x20S\x20=diffusionS[diffusionProfileIndex];\x0afloat\x20d\x20=diffusionD[diffusionProfileIndex];\x0afloat\x20filterRadius=filterRadii[diffusionProfileIndex];\x0avec2\x20centerPosNDC=vUV;\x0avec2\x20cornerPosNDC=vUV+0.5*texelSize;\x0avec3\x20centerPosVS\x20=vec3(centerPosNDC*viewportSize,1.0)*centerDepth;\x20\x0avec3\x20cornerPosVS\x20=vec3(cornerPosNDC*viewportSize,1.0)*centerDepth;\x20\x0afloat\x20mmPerUnit\x20=1000.*(metersPerUnit*rcp(distScale));\x0afloat\x20unitsPerMm=rcp(mmPerUnit);\x0afloat\x20unitsPerPixel=2.*abs(cornerPosVS.x-centerPosVS.x);\x0afloat\x20pixelsPerMm\x20=rcp(unitsPerPixel)*unitsPerMm;\x0afloat\x20filterArea\x20=PI*Sq(filterRadius*pixelsPerMm);\x0aint\x20sampleCount\x20=int(filterArea*rcp(SSS_PIXELS_PER_SAMPLE));\x0aint\x20sampleBudget=_SssSampleBudget;\x0aint\x20texturingMode=0;\x0avec3\x20albedo\x20=texture2D(albedoSampler,vUV).rgb;\x0aif\x20(distScale==0.\x20||\x20sampleCount<1)\x0a{\x0a#ifdef\x20DEBUG_SSS_SAMPLES\x0avec3\x20green=vec3(0.,1.,0.);\x0agl_FragColor=vec4(green,1.0);\x0areturn;\x0a#endif\x0agl_FragColor=vec4(inputColor.rgb+albedo*centerIrradiance,1.0);\x0areturn;\x0a}\x0a#ifdef\x20DEBUG_SSS_SAMPLES\x0avec3\x20red\x20=vec3(1.,0.,0.);\x0avec3\x20blue=vec3(0.,0.,1.);\x0agl_FragColor=vec4(mix(blue,red,clamp(float(sampleCount)/float(sampleBudget),0.0,1.0)),1.0);\x0areturn;\x0a#endif\x0afloat\x20phase=0.;\x0aint\x20n=min(sampleCount,sampleBudget);\x0avec3\x20centerWeight\x20=vec3(0.);\x20\x0avec3\x20totalIrradiance=vec3(0.);\x0avec3\x20totalWeight\x20=vec3(0.);\x0afor\x20(int\x20i=0;\x20i<n;\x20i++)\x0a{\x0aEvaluateSample(i,n,S,d,centerPosVS,mmPerUnit,pixelsPerMm,\x0aphase,totalIrradiance,totalWeight);\x0a}\x0atotalWeight=max(totalWeight,HALF_MIN);\x0agl_FragColor=vec4(inputColor.rgb+albedo*max(totalIrradiance/totalWeight,vec3(0.0)),1.);\x0a}','setMatrix2x2','supportCascades','updateCount','setFloatArray4','isEnabled','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20','RGBA32Sint','Stencil8','\x20=\x20vec3(0,\x200,\x200);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0d\x0a','MAINUV1','readPixels','TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL','MSAA','_step','precision\x20highp\x20float;\x0avarying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20sampler2D\x20normalSampler;\x0auniform\x20float\x20curvature_ridge;\x0auniform\x20float\x20curvature_valley;\x0a#ifndef\x20CURVATURE_OFFSET\x0a#define\x20CURVATURE_OFFSET\x201\x0a#endif\x0afloat\x20curvature_soft_clamp(float\x20curvature,float\x20control)\x0a{\x0aif\x20(curvature<0.5/control)\x0areturn\x20curvature*(1.0-curvature*control);\x0areturn\x200.25/control;\x0a}\x0afloat\x20calculate_curvature(ivec2\x20texel,float\x20ridge,float\x20valley)\x0a{\x0avec2\x20normal_up\x20=texelFetch(normalSampler,texel+ivec2(0,\x20CURVATURE_OFFSET),0).rb;\x0avec2\x20normal_down\x20=texelFetch(normalSampler,texel+ivec2(0,-CURVATURE_OFFSET),0).rb;\x0avec2\x20normal_left\x20=texelFetch(normalSampler,texel+ivec2(-CURVATURE_OFFSET,0),0).rb;\x0avec2\x20normal_right=texelFetch(normalSampler,texel+ivec2(\x20CURVATURE_OFFSET,0),0).rb;\x0afloat\x20normal_diff=((normal_up.g-normal_down.g)+(normal_right.r-normal_left.r));\x0aif\x20(normal_diff<0.0)\x0areturn\x20-2.0*curvature_soft_clamp(-normal_diff,valley);\x0areturn\x202.0*curvature_soft_clamp(normal_diff,ridge);\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0aivec2\x20texel=ivec2(gl_FragCoord.xy);\x0avec4\x20baseColor=texture2D(textureSampler,vUV);\x0afloat\x20curvature=calculate_curvature(texel,curvature_ridge,curvature_valley);\x0abaseColor.rgb*=curvature+1.0;\x0agl_FragColor=baseColor;\x0a}','\x5c$&','_singleClick','_isBlendEquationParametersDirty','textureMode','onDisposeObservable','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20LIGHTING\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0]\x0a#include<__decl__lightFragment>[1]\x0a#include<__decl__lightFragment>[2]\x0a#include<__decl__lightFragment>[3]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20DIFFUSE\x0abaseColor=texture2D(diffuseSampler,vDiffuseUV);\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20NORMAL\x0abaseColor=mix(baseColor,vec4(vNormalW,1.0),0.5);\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20LIGHTING\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0afloat\x20glossiness=0.;\x0a#include<lightFragment>[0]\x0a#include<lightFragment>[1]\x0a#include<lightFragment>[2]\x0a#include<lightFragment>[3]\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\x0a#else\x0avec3\x20finalDiffuse=\x20baseColor.rgb;\x0a#endif\x0avec4\x20color=vec4(finalDiffuse,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','sampleCoord{X}=sampleCenter+delta*KERNEL_OFFSET{X};','MipMap','#extension\x20GL_EXT_draw_buffers\x20:\x20require\x0a#if\x20defined(BUMP)\x20||\x20!defined(NORMAL)\x0a#extension\x20GL_OES_standard_derivatives\x20:\x20enable\x0a#endif\x0aprecision\x20highp\x20float;\x0a#ifdef\x20BUMP\x0avarying\x20mat4\x20vWorldView;\x0avarying\x20vec3\x20vNormalW;\x0a#else\x0avarying\x20vec3\x20vNormalV;\x0a#endif\x0avarying\x20vec4\x20vViewPos;\x0a#if\x20defined(POSITION)\x20||\x20defined(BUMP)\x0avarying\x20vec3\x20vPositionW;\x0a#endif\x0a#ifdef\x20VELOCITY\x0avarying\x20vec4\x20vCurrentPosition;\x0avarying\x20vec4\x20vPreviousPosition;\x0a#endif\x0a#ifdef\x20NEED_UV\x0avarying\x20vec2\x20vUV;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20vec3\x20vBumpInfos;\x0auniform\x20vec2\x20vTangentSpaceParams;\x0a#endif\x0a#if\x20defined(REFLECTIVITY)\x0a#if\x20defined(ORMTEXTURE)\x20||\x20defined(SPECULARGLOSSINESSTEXTURE)\x20||\x20defined(REFLECTIVITYTEXTURE)\x0auniform\x20sampler2D\x20reflectivitySampler;\x0avarying\x20vec2\x20vReflectivityUV;\x0a#endif\x0a#ifdef\x20ALBEDOTEXTURE\x0avarying\x20vec2\x20vAlbedoUV;\x0auniform\x20sampler2D\x20albedoSampler;\x0a#endif\x0a#ifdef\x20REFLECTIVITYCOLOR\x0auniform\x20vec3\x20reflectivityColor;\x0a#endif\x0a#ifdef\x20ALBEDOCOLOR\x0auniform\x20vec3\x20albedoColor;\x0a#endif\x0a#ifdef\x20METALLIC\x0auniform\x20float\x20metallic;\x0a#endif\x0a#if\x20defined(ROUGHNESS)\x20||\x20defined(GLOSSINESS)\x0auniform\x20float\x20glossiness;\x0a#endif\x0a#endif\x0a#if\x20defined(ALPHATEST)\x20&&\x20defined(NEED_UV)\x0auniform\x20sampler2D\x20diffuseSampler;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<mrtFragmentDeclaration>[RENDER_TARGET_COUNT]\x0a#include<bumpFragmentMainFunctions>\x0a#include<bumpFragmentFunctions>\x0a#include<helperFunctions>\x0avoid\x20main()\x20{\x0a#include<clipPlaneFragment>\x0a#ifdef\x20ALPHATEST\x0aif\x20(texture2D(diffuseSampler,vUV).a<0.4)\x0adiscard;\x0a#endif\x0avec3\x20normalOutput;\x0a#ifdef\x20BUMP\x0avec3\x20normalW=normalize(vNormalW);\x0a#include<bumpFragment>\x0anormalOutput=normalize(vec3(vWorldView*vec4(normalW,0.0)));\x0a#else\x0anormalOutput=normalize(vNormalV);\x0a#endif\x0a#ifdef\x20PREPASS\x0a#ifdef\x20PREPASS_DEPTH\x0agl_FragData[DEPTH_INDEX]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);\x0a#endif\x0a#ifdef\x20PREPASS_NORMAL\x0agl_FragData[NORMAL_INDEX]=vec4(normalOutput,1.0);\x0a#endif\x0a#else\x0agl_FragData[0]=vec4(vViewPos.z/vViewPos.w,0.0,0.0,1.0);\x0agl_FragData[1]=vec4(normalOutput,1.0);\x0a#endif\x0a#ifdef\x20POSITION\x0agl_FragData[POSITION_INDEX]=vec4(vPositionW,1.0);\x0a#endif\x0a#ifdef\x20VELOCITY\x0avec2\x20a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;\x0avec2\x20b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;\x0avec2\x20velocity=abs(a-b);\x0avelocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0))*sign(a-b)*0.5+0.5;\x0agl_FragData[VELOCITY_INDEX]=vec4(velocity,0.0,1.0);\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x0avec4\x20reflectivity=vec4(0.0,0.0,0.0,1.0);\x0a#ifdef\x20METALLICWORKFLOW\x0afloat\x20metal=1.0;\x0afloat\x20roughness=1.0;\x0a#ifdef\x20ORMTEXTURE\x0ametal*=texture2D(reflectivitySampler,vReflectivityUV).b;\x0aroughness*=texture2D(reflectivitySampler,vReflectivityUV).g;\x0a#endif\x0a#ifdef\x20METALLIC\x0ametal*=metallic;\x0a#endif\x0a#ifdef\x20ROUGHNESS\x0aroughness*=(1.0-glossiness);\x20\x0a#endif\x0areflectivity.a-=roughness;\x0avec3\x20color=vec3(1.0);\x0a#ifdef\x20ALBEDOTEXTURE\x0acolor=texture2D(albedoSampler,vAlbedoUV).rgb;\x0a#ifdef\x20GAMMAALBEDO\x0acolor=toLinearSpace(color);\x0a#endif\x0a#endif\x0a#ifdef\x20ALBEDOCOLOR\x0acolor*=albedoColor.xyz;\x0a#endif\x0areflectivity.rgb=mix(vec3(0.04),color,metal);\x0a#else\x0a#if\x20defined(SPECULARGLOSSINESSTEXTURE)\x20||\x20defined(REFLECTIVITYTEXTURE)\x0areflectivity=texture2D(reflectivitySampler,vReflectivityUV);\x0a#ifdef\x20GAMMAREFLECTIVITYTEXTURE\x0areflectivity.rgb=toLinearSpace(reflectivity.rgb);\x0a#endif\x0a#else\x20\x0a#ifdef\x20REFLECTIVITYCOLOR\x0areflectivity.rgb=toLinearSpace(reflectivityColor.xyz);\x0areflectivity.a=1.0;\x0a#endif\x0a#endif\x0a#ifdef\x20GLOSSINESSS\x0areflectivity.a*=glossiness;\x20\x0a#endif\x0a#endif\x0agl_FragData[REFLECTIVITY_INDEX]=reflectivity;\x0a#endif\x0a}\x0a','status','#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0a#define\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#else\x0auniform\x20vec4\x20color;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0agl_FragColor=vColor;\x0a#else\x0agl_FragColor=color;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','maxCubemapTextureSize','renderPriority','ASTC10x5Unorm','uniformProcessor','_vrExclusivePointerMode','removeIfDef','computeDispatch:\x20The\x20texture\x20(name=','\x20=\x20computePlanarCoords(','pbrBlockIridescence','STENCIL_ATTACHMENT','_workingContext','_blurTextureFormat','halfDomeMode','compatibilityMode','doNotHandleCursors','notifyObservers','worldMatrices','#endif','TEXTURE_NEAREST_LINEAR','_createInternalTexture','_MoveCursorWithinIf','getUniqueId','MAINUV4','getFileName','GetTags','preProcessShaderCode','Texture','LeftClick','ASTC12x12Unorm','createDrawContext','renderTargetTexture','EACRG11Snorm','clipPlaneFragment','style','diffuseTexture','BuildTuple','useInstancing','writeBuffer','#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avColor=vec4(1.0);\x0a#ifdef\x20VERTEXCOLOR\x0a#ifdef\x20VERTEXALPHA\x0avColor*=color;\x0a#else\x0avColor.rgb*=color.rgb;\x0a#endif\x0a#endif\x0a#ifdef\x20INSTANCESCOLOR\x0avColor*=instanceColor;\x0a#endif\x0a#endif\x0a','TextureWithoutSampler','_releaseComputeEffect','bufferData','indexParameters','ALPHA_SRC_DSTONEMINUSSRCALPHA','_source','ACTION_OnPickUpTrigger','_hasSwiped','screenSpaceReflection2PixelShader','initWebVRAsync','prePassVertex','_pickedUpMesh','subMeshes','instancesCount','_prePassRenderTarget','getRenderPipeline','disableVR','textureRegexp','#if\x20defined(ENVIRONMENTBRDF)\x0a#ifdef\x20MS_BRDF_ENERGY_CONSERVATION\x0avec3\x20energyConservationFactor=getEnergyConservationFactor(clearcoatOut.specularEnvironmentR0,environmentBrdf);\x0a#endif\x0a#endif\x0a#ifndef\x20METALLICWORKFLOW\x0a#ifdef\x20SPECULAR_GLOSSINESS_ENERGY_CONSERVATION\x0asurfaceAlbedo.rgb=(1.-reflectance)*surfaceAlbedo.rgb;\x0a#endif\x0a#endif\x0a#if\x20defined(SHEEN)\x20&&\x20defined(SHEEN_ALBEDOSCALING)\x20&&\x20defined(ENVIRONMENTBRDF)\x0asurfaceAlbedo.rgb=sheenOut.sheenAlbedoScaling*surfaceAlbedo.rgb;\x0a#endif\x0a#ifdef\x20REFLECTION\x0avec3\x20finalIrradiance=reflectionOut.environmentIrradiance;\x0a#if\x20defined(CLEARCOAT)\x0afinalIrradiance*=clearcoatOut.conservationFactor;\x0a#if\x20defined(CLEARCOAT_TINT)\x0afinalIrradiance*=clearcoatOut.absorption;\x0a#endif\x0a#endif\x0a#if\x20defined(SS_REFRACTION)\x0afinalIrradiance*=subSurfaceOut.refractionFactorForIrradiance;\x0a#endif\x0a#if\x20defined(SS_TRANSLUCENCY)\x0afinalIrradiance*=(1.0-subSurfaceOut.translucencyIntensity);\x0afinalIrradiance+=subSurfaceOut.refractionIrradiance;\x0a#endif\x0afinalIrradiance*=surfaceAlbedo.rgb;\x0afinalIrradiance*=vLightingIntensity.z;\x0afinalIrradiance*=aoOut.ambientOcclusionColor;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase;\x0afinalSpecular=max(finalSpecular,0.0);\x0avec3\x20finalSpecularScaled=finalSpecular*vLightingIntensity.x*vLightingIntensity.w;\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0afinalSpecularScaled*=energyConservationFactor;\x0a#endif\x0a#if\x20defined(SHEEN)\x20&&\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(SHEEN_ALBEDOSCALING)\x0afinalSpecularScaled*=sheenOut.sheenAlbedoScaling;\x0a#endif\x0a#endif\x0a#ifdef\x20REFLECTION\x0avec3\x20finalRadiance=reflectionOut.environmentRadiance.rgb;\x0afinalRadiance*=subSurfaceOut.specularEnvironmentReflectance;\x0avec3\x20finalRadianceScaled=finalRadiance*vLightingIntensity.z;\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0afinalRadianceScaled*=energyConservationFactor;\x0a#endif\x0a#if\x20defined(SHEEN)\x20&&\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(SHEEN_ALBEDOSCALING)\x0afinalRadianceScaled*=sheenOut.sheenAlbedoScaling;\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN\x0avec3\x20finalSheen=sheenBase*sheenOut.sheenColor;\x0afinalSheen=max(finalSheen,0.0);\x0avec3\x20finalSheenScaled=finalSheen*vLightingIntensity.x*vLightingIntensity.w;\x0a#if\x20defined(CLEARCOAT)\x20&&\x20defined(REFLECTION)\x20&&\x20defined(ENVIRONMENTBRDF)\x0asheenOut.finalSheenRadianceScaled*=clearcoatOut.conservationFactor;\x0a#if\x20defined(CLEARCOAT_TINT)\x0asheenOut.finalSheenRadianceScaled*=clearcoatOut.absorption;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0avec3\x20finalClearCoat=clearCoatBase;\x0afinalClearCoat=max(finalClearCoat,0.0);\x0avec3\x20finalClearCoatScaled=finalClearCoat*vLightingIntensity.x*vLightingIntensity.w;\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(MS_BRDF_ENERGY_CONSERVATION)\x0afinalClearCoatScaled*=clearcoatOut.energyConservationFactorClearCoat;\x0a#endif\x0a#ifdef\x20SS_REFRACTION\x0asubSurfaceOut.finalRefraction*=clearcoatOut.conservationFactor;\x0a#ifdef\x20CLEARCOAT_TINT\x0asubSurfaceOut.finalRefraction*=clearcoatOut.absorption;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20ALPHABLEND\x0afloat\x20luminanceOverAlpha=0.0;\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(RADIANCEOVERALPHA)\x0aluminanceOverAlpha+=getLuminance(finalRadianceScaled);\x0a#if\x20defined(CLEARCOAT)\x0aluminanceOverAlpha+=getLuminance(clearcoatOut.finalClearCoatRadianceScaled);\x0a#endif\x0a#endif\x0a#if\x20defined(SPECULARTERM)\x20&&\x20defined(SPECULAROVERALPHA)\x0aluminanceOverAlpha+=getLuminance(finalSpecularScaled);\x0a#endif\x0a#if\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOATOVERALPHA)\x0aluminanceOverAlpha+=getLuminance(finalClearCoatScaled);\x0a#endif\x0a#if\x20defined(RADIANCEOVERALPHA)\x20||\x20defined(SPECULAROVERALPHA)\x20||\x20defined(CLEARCOATOVERALPHA)\x0aalpha=saturate(alpha+luminanceOverAlpha*luminanceOverAlpha);\x0a#endif\x0a#endif\x0a','setFloat4','_buildHeight','_hardwareTexture','RG8Snorm','shadowMapVertexExtraDeclaration','NAME_PHYSICSENGINE','worldUp','precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0aattribute\x20vec3\x20normal;\x0aattribute\x20vec2\x20uv;\x0avarying\x20vec3\x20vPosition;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec2\x20tUV;\x0avarying\x20vec2\x20stageUnits;\x0avarying\x20vec2\x20levelUnits;\x0avarying\x20vec2\x20tileID;\x0auniform\x20float\x20time;\x0auniform\x20mat4\x20worldViewProjection;\x0auniform\x20vec2\x20outputSize;\x0auniform\x20vec2\x20stageSize;\x0auniform\x20vec2\x20spriteMapSize;\x0auniform\x20float\x20stageScale;\x0avoid\x20main()\x20{\x0avec4\x20p=vec4(\x20position,1.\x20);\x0avPosition=p.xyz;\x0avUV=uv;\x0atUV=uv*stageSize;\x20\x0agl_Position=worldViewProjection*p;\x0a}','FromArrayToRef','initializeShaders','_radius','TEXTURE_WRAP_S','_thinInstanceUpdateBufferSize','markAsImageProcessingDirty','_onBaseAnimationEnd','releaseTexture','NEGATIVE_INFINITY','#ifdef\x20CLIPPLANE\x0avertexOutputs.fClipDistance=dot(worldPos,uniforms.vClipPlane);\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0avertexOutputs.fClipDistance2=dot(worldPos,uniforms.vClipPlane2);\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0avertexOutputs.fClipDistance3=dot(worldPos,uniforms.vClipPlane3);\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0avertexOutputs.fClipDistance4=dot(worldPos,uniforms.vClipPlane4);\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0avertexOutputs.fClipDistance5=dot(worldPos,uniforms.vClipPlane5);\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0avertexOutputs.fClipDistance6=dot(worldPos,uniforms.vClipPlane6);\x0a#endif\x0a','rgbdDecodePixelShader','readValues','_buildLeftOverUBO','samplerVertexDeclaration','#define\x20NUM_BONE_INFLUENCERS\x200','updateColor4','func','iridescenceOutParams\x20iridescenceOut;\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20IRIDESCENCE\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20iridescenceBlock(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec4(','updateInt4','onKeyboardObservable','ShadersInclude/','#ifdef\x20LOGARITHMICDEPTH\x0a#extension\x20GL_EXT_frag_depth\x20:\x20enable\x0a#endif\x0aprecision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vSpecularColor;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<imageProcessingDeclaration>\x0a#include<imageProcessingFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#ifdef\x20BUMP\x0avarying\x20vec2\x20vNormalUV;\x0a#ifdef\x20BUMPSUPERIMPOSE\x0avarying\x20vec2\x20vNormalUV2;\x0a#endif\x0auniform\x20sampler2D\x20normalSampler;\x0auniform\x20vec2\x20vNormalInfos;\x0a#endif\x0auniform\x20sampler2D\x20refractionSampler;\x0auniform\x20sampler2D\x20reflectionSampler;\x0aconst\x20float\x20LOG2=1.442695;\x0auniform\x20vec3\x20cameraPosition;\x0auniform\x20vec4\x20waterColor;\x0auniform\x20float\x20colorBlendFactor;\x0auniform\x20vec4\x20waterColor2;\x0auniform\x20float\x20colorBlendFactor2;\x0auniform\x20float\x20bumpHeight;\x0auniform\x20float\x20time;\x0avarying\x20vec3\x20vRefractionMapTexCoord;\x0avarying\x20vec3\x20vReflectionMapTexCoord;\x0avarying\x20vec3\x20vPosition;\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<logDepthDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20BUMP\x0a#ifdef\x20BUMPSUPERIMPOSE\x0abaseColor=0.6*texture2D(normalSampler,vNormalUV)+0.4*texture2D(normalSampler,vec2(vNormalUV2.x,vNormalUV2.y));\x0a#else\x0abaseColor=texture2D(normalSampler,vNormalUV);\x0a#endif\x0avec3\x20bumpColor=baseColor.rgb;\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0abaseColor.rgb*=vNormalInfos.y;\x0a#else\x0avec3\x20bumpColor=vec3(1.0);\x0a#endif\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec2\x20perturbation=bumpHeight*(baseColor.rg-0.5);\x0a#ifdef\x20BUMPAFFECTSREFLECTION\x0avec3\x20normalW=normalize(vNormalW+vec3(perturbation.x*8.0,0.0,perturbation.y*8.0));\x0aif\x20(normalW.y<0.0)\x20{\x0anormalW.y=-normalW.y;\x0a}\x0a#else\x0avec3\x20normalW=normalize(vNormalW);\x0a#endif\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0avec2\x20perturbation=bumpHeight*(vec2(1.0,1.0)-0.5);\x0a#endif\x0a#ifdef\x20FRESNELSEPARATE\x0a#ifdef\x20REFLECTION\x0avec2\x20projectedRefractionTexCoords=clamp(vRefractionMapTexCoord.xy/vRefractionMapTexCoord.z+perturbation*0.5,0.0,1.0);\x0avec4\x20refractiveColor=texture2D(refractionSampler,projectedRefractionTexCoords);\x0a#ifdef\x20IS_REFRACTION_LINEAR\x0arefractiveColor.rgb=toGammaSpace(refractiveColor.rgb);\x0a#endif\x0avec2\x20projectedReflectionTexCoords=clamp(vec2(\x0avReflectionMapTexCoord.x/vReflectionMapTexCoord.z+perturbation.x*0.3,\x0avReflectionMapTexCoord.y/vReflectionMapTexCoord.z+perturbation.y\x0a),0.0,1.0);\x0avec4\x20reflectiveColor=texture2D(reflectionSampler,projectedReflectionTexCoords);\x0a#ifdef\x20IS_REFLECTION_LINEAR\x0areflectiveColor.rgb=toGammaSpace(reflectiveColor.rgb);\x0a#endif\x0avec3\x20upVector=vec3(0.0,1.0,0.0);\x0afloat\x20fresnelTerm=clamp(abs(pow(dot(viewDirectionW,upVector),3.0)),0.05,0.65);\x0afloat\x20IfresnelTerm=1.0-fresnelTerm;\x0arefractiveColor=colorBlendFactor*waterColor+(1.0-colorBlendFactor)*refractiveColor;\x0areflectiveColor=IfresnelTerm*colorBlendFactor2*waterColor+(1.0-colorBlendFactor2*IfresnelTerm)*reflectiveColor;\x0avec4\x20combinedColor=refractiveColor*fresnelTerm+reflectiveColor*IfresnelTerm;\x0abaseColor=combinedColor;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0avec3\x20finalDiffuse=clamp(baseColor.rgb,0.0,1.0);\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0a#else\x20\x0a#ifdef\x20REFLECTION\x0avec2\x20projectedRefractionTexCoords=clamp(vRefractionMapTexCoord.xy/vRefractionMapTexCoord.z+perturbation,0.0,1.0);\x0avec4\x20refractiveColor=texture2D(refractionSampler,projectedRefractionTexCoords);\x0a#ifdef\x20IS_REFRACTION_LINEAR\x0arefractiveColor.rgb=toGammaSpace(refractiveColor.rgb);\x0a#endif\x0avec2\x20projectedReflectionTexCoords=clamp(vReflectionMapTexCoord.xy/vReflectionMapTexCoord.z+perturbation,0.0,1.0);\x0avec4\x20reflectiveColor=texture2D(reflectionSampler,projectedReflectionTexCoords);\x0a#ifdef\x20IS_REFLECTION_LINEAR\x0areflectiveColor.rgb=toGammaSpace(reflectiveColor.rgb);\x0a#endif\x0avec3\x20upVector=vec3(0.0,1.0,0.0);\x0afloat\x20fresnelTerm=max(dot(viewDirectionW,upVector),0.0);\x0avec4\x20combinedColor=refractiveColor*fresnelTerm+reflectiveColor*(1.0-fresnelTerm);\x0abaseColor=colorBlendFactor*waterColor+(1.0-colorBlendFactor)*combinedColor;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0avec3\x20finalDiffuse=clamp(baseColor.rgb,0.0,1.0);\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0a#endif\x0avec4\x20color=vec4(finalDiffuse+finalSpecular,alpha);\x0a#include<logDepthFragment>\x0a#include<fogFragment>\x0a#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0acolor.rgb=toLinearSpace(color.rgb);\x0a#elif\x20defined(IMAGEPROCESSING)\x0acolor.rgb=toLinearSpace(color.rgb);\x0acolor=applyImageProcessing(color);\x0a#endif\x0agl_FragColor=color;\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','_createComputePipelineStageDescriptor','decode','int','bufferNames','MATERIAL_LineLoopDrawMode','\x0a#define\x20ANIMATESHEET\x0a','isWebGPU','setTimeout','alphaBlend','50OxpVxB','inputIndex','TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1','ALPHA_INTERPOLATE','hasSwiped','resolution','addCount','_constantDeclaration','_isUnique','meshUVSpaceRendererPixelShader','fetchNewFrame','mixPixelShader','QueueNewFrame','pbrBlockAlbedoOpacity','leftOverUniforms','pointerup','hasPickTriggers','vReflectionPosition','setPhysicsLinkWith','availableTextures','TEXTURE_NEAREST_LINEAR_MIPNEAREST','getEyeParameters','MAINUV3','#if\x20','_previousPickResult','Finalize','RGBA16Float','_bufferViewArray','emitFromSpawnPointOnly','\x20*\x20vec4(','enableEffect','direction1','applyToShader','_list','EACR11Snorm','_currentItemIsBundle','_onPointerUp','setViewport','[0..','precision\x20highp\x20float;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<instancesDeclaration>\x0a#include<__decl__geometryVertex>\x0a#include<clipPlaneVertexDeclaration>\x0aattribute\x20vec3\x20position;\x0aattribute\x20vec3\x20normal;\x0a#ifdef\x20NEED_UV\x0avarying\x20vec2\x20vUV;\x0a#ifdef\x20ALPHATEST\x0auniform\x20mat4\x20diffuseMatrix;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20mat4\x20bumpMatrix;\x0avarying\x20vec2\x20vBumpUV;\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x0auniform\x20mat4\x20reflectivityMatrix;\x0auniform\x20mat4\x20albedoMatrix;\x0avarying\x20vec2\x20vReflectivityUV;\x0avarying\x20vec2\x20vAlbedoUV;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#endif\x0a#ifdef\x20BUMP\x0avarying\x20mat4\x20vWorldView;\x0a#endif\x0a#ifdef\x20BUMP\x0avarying\x20vec3\x20vNormalW;\x0a#else\x0avarying\x20vec3\x20vNormalV;\x0a#endif\x0avarying\x20vec4\x20vViewPos;\x0a#if\x20defined(POSITION)\x20||\x20defined(BUMP)\x0avarying\x20vec3\x20vPositionW;\x0a#endif\x0a#ifdef\x20VELOCITY\x0auniform\x20mat4\x20previousViewProjection;\x0avarying\x20vec4\x20vCurrentPosition;\x0avarying\x20vec4\x20vPreviousPosition;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0avec3\x20normalUpdated=normal;\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0a#include<instancesVertex>\x0a#if\x20defined(VELOCITY)\x20&&\x20!defined(BONES_VELOCITY_ENABLED)\x0avCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\x0a#endif\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=vec4(finalWorld*vec4(positionUpdated,1.0));\x0a#ifdef\x20BUMP\x0avWorldView=view*finalWorld;\x0avNormalW=normalUpdated;\x0a#else\x0avNormalV=normalize(vec3((view*finalWorld)*vec4(normalUpdated,0.0)));\x0a#endif\x0avViewPos=view*worldPos;\x0a#if\x20defined(VELOCITY)\x20&&\x20defined(BONES_VELOCITY_ENABLED)\x0avCurrentPosition=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0a#if\x20NUM_BONE_INFLUENCERS>0\x0amat4\x20previousInfluence;\x0apreviousInfluence=mPreviousBones[int(matricesIndices[0])]*matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[1])]*matricesWeights[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[2])]*matricesWeights[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0apreviousInfluence+=mPreviousBones[int(matricesIndices[3])]*matricesWeights[3];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[0])]*matricesWeightsExtra[0];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[1])]*matricesWeightsExtra[1];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[2])]*matricesWeightsExtra[2];\x0a#endif\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0apreviousInfluence+=mPreviousBones[int(matricesIndicesExtra[3])]*matricesWeightsExtra[3];\x0a#endif\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*previousInfluence*vec4(positionUpdated,1.0);\x0a#else\x0avPreviousPosition=previousViewProjection*finalPreviousWorld*vec4(positionUpdated,1.0);\x0a#endif\x0a#endif\x0a#if\x20defined(POSITION)\x20||\x20defined(BUMP)\x0avPositionW=worldPos.xyz/worldPos.w;\x0a#endif\x0agl_Position=viewProjection*finalWorld*vec4(positionUpdated,1.0);\x0a#include<clipPlaneVertex>\x0a#ifdef\x20NEED_UV\x0a#ifdef\x20UV1\x0a#if\x20defined(ALPHATEST)\x20&&\x20defined(ALPHATEST_UV1)\x0avUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#else\x0avUV=uv;\x0a#endif\x0a#ifdef\x20BUMP_UV1\x0avBumpUV=vec2(bumpMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20REFLECTIVITY_UV1\x0avReflectivityUV=vec2(reflectivityMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20ALBEDO_UV1\x0avAlbedoUV=vec2(albedoMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#endif\x0a#ifdef\x20UV2\x0a#if\x20defined(ALPHATEST)\x20&&\x20defined(ALPHATEST_UV2)\x0avUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#else\x0avUV=uv2;\x0a#endif\x0a#ifdef\x20BUMP_UV2\x0avBumpUV=vec2(bumpMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#ifdef\x20REFLECTIVITY_UV2\x0avReflectivityUV=vec2(reflectivityMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#ifdef\x20ALBEDO_UV2\x0avAlbedoUV=vec2(albedoMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#endif\x0a#include<bumpVertex>\x0a}\x0a','Sint','Unknown\x20format\x20','viewProjection','layout(location\x20=\x20','sphericalPolynomial','getNextFreeUBOBinding','uniform\x20float\x20depthValue;\x0aconst\x20vec2\x20pos[4]={\x0avec2(-1.0,1.0),\x0avec2(1.0,1.0),\x0avec2(-1.0,-1.0),\x0avec2(1.0,-1.0)\x0a};\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0agl_Position=vec4(pos[gl_VertexID],depthValue,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a','vertexArrayObject','setValue','#if\x20SM_USEDISTANCE==1\x0avPositionWSM=worldPos.xyz;\x0a#endif\x0a#if\x20SM_DEPTHTEXTURE==1\x0a#ifdef\x20IS_NDC_HALF_ZRANGE\x0a#define\x20BIASFACTOR\x200.5\x0a#else\x0a#define\x20BIASFACTOR\x201.0\x0a#endif\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0agl_Position.z-=biasAndScaleSM.x*gl_Position.w*BIASFACTOR;\x0a#else\x0agl_Position.z+=biasAndScaleSM.x*gl_Position.w*BIASFACTOR;\x0a#endif\x0a#endif\x0a#if\x20defined(SM_DEPTHCLAMP)\x20&&\x20SM_DEPTHCLAMP==1\x0azSM=gl_Position.z;\x0agl_Position.z=0.0;\x0a#elif\x20SM_USEDISTANCE==0\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0avDepthMetricSM=(-gl_Position.z+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#else\x0avDepthMetricSM=(gl_Position.z+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#endif\x0a#endif\x0a','Texture_','pbrBlockAnisotropic','_areMiscDirty','toString','cull','chromaticAberrationPixelShader','actionManager','_physicsEngine','Move','diffuseSampler','TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8','//\x20Internals\x20UBO\x0d\x0auniform\x20','DEPTH_ATTACHMENT','float\x20depthSM=vDepthMetricSM;\x0a#if\x20defined(SM_DEPTHCLAMP)\x20&&\x20SM_DEPTHCLAMP==1\x0a#if\x20SM_USEDISTANCE==1\x0adepthSM=(length(vPositionWSM-lightDataSM)+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#else\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0adepthSM=(-zSM+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#else\x0adepthSM=(zSM+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#endif\x0a#endif\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0agl_FragDepth=clamp(1.0-depthSM,0.0,1.0);\x0a#else\x0agl_FragDepth=clamp(depthSM,0.0,1.0);\x20\x0a#endif\x0a#elif\x20SM_USEDISTANCE==1\x0adepthSM=(length(vPositionWSM-lightDataSM)+depthValuesSM.x)/depthValuesSM.y+biasAndScaleSM.x;\x0a#endif\x0a#if\x20SM_ESM==1\x0adepthSM=clamp(exp(-min(87.,biasAndScaleSM.z*depthSM)),0.,1.);\x0a#endif\x0a#if\x20SM_FLOAT==1\x0agl_FragColor=vec4(depthSM,1.0,1.0,1.0);\x0a#else\x0agl_FragColor=pack(depthSM);\x0a#endif\x0areturn;','flushFramebuffer','PREPASS_DEPTH_TEXTURE_TYPE','updateRawTexture2DArray','getInputElement','create\x20mipmaps\x20for\x20face\x20#','Render\x20to\x20float\x20textures\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20forced\x20to\x20false.','GL_ALPHA_FUNCTION_CONSTANT_COLOR','defined($1)','clipPlaneFragmentDeclaration2','BABYLON.IridescenceBlock','ComputeNumMipmapLevels','_vertexBufferSize','_SamplerFunctionByWebGLSamplerType','_bindFrameBuffer','textureFloatLinearFiltering','uniform\x20float\x20particleAlpha;\x0avarying\x20vec2\x20uv;\x0avarying\x20vec3\x20diffuseColor;\x0avoid\x20main(void)\x20{\x0avec3\x20normal;\x0anormal.xy=uv*2.0-1.0;\x0afloat\x20r2=dot(normal.xy,normal.xy);\x0aif\x20(r2>1.0)\x20discard;\x0aglFragColor=vec4(diffuseColor,1.0);\x0a}\x0a','cloneTo','renderTarget','attribute\x20vec2\x20position;\x0auniform\x20vec2\x20scale;\x0auniform\x20vec2\x20offset;\x0auniform\x20mat4\x20textureMatrix;\x0avarying\x20vec2\x20vUV;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avec2\x20shiftedPosition=position*scale+offset;\x0avUV=vec2(textureMatrix*vec4(shiftedPosition*madd+madd,1.0,0.0));\x0agl_Position=vec4(shiftedPosition,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}','trim','log','_createDepthStencilTexture','TEXTURE_TRILINEAR_SAMPLINGMODE','_alreadyAttached','setStencilFailOp','_generatePickInfo','#ifdef\x20INSTANCES\x0aattribute\x20vec4\x20world0;\x0aattribute\x20vec4\x20world1;\x0aattribute\x20vec4\x20world2;\x0aattribute\x20vec4\x20world3;\x0a#ifdef\x20INSTANCESCOLOR\x0aattribute\x20vec4\x20instanceColor;\x0a#endif\x0a#if\x20defined(THIN_INSTANCES)\x20&&\x20!defined(WORLD_UBO)\x0auniform\x20mat4\x20world;\x0a#endif\x0a#if\x20defined(VELOCITY)\x20||\x20defined(PREPASS_VELOCITY)\x0aattribute\x20vec4\x20previousWorld0;\x0aattribute\x20vec4\x20previousWorld1;\x0aattribute\x20vec4\x20previousWorld2;\x0aattribute\x20vec4\x20previousWorld3;\x0a#ifdef\x20THIN_INSTANCES\x0auniform\x20mat4\x20previousWorld;\x0a#endif\x0a#endif\x0a#else\x0a#if\x20!defined(WORLD_UBO)\x0auniform\x20mat4\x20world;\x0a#endif\x0a#if\x20defined(VELOCITY)\x20||\x20defined(PREPASS_VELOCITY)\x0auniform\x20mat4\x20previousWorld;\x0a#endif\x0a#endif\x0a','renderPass','requestPointerLock','_rebuildComputeEffects','exitPointerLock','_copyInvertYBindGroup','vec4\x20pack(float\x20depth)\x0a{\x0aconst\x20vec4\x20bit_shift=vec4(255.0*255.0*255.0,255.0*255.0,255.0,1.0);\x0aconst\x20vec4\x20bit_mask=vec4(0.0,1.0/255.0,1.0/255.0,1.0/255.0);\x0avec4\x20res=fract(depth*bit_shift);\x0ares-=res.xxyz*bit_mask;\x0areturn\x20res;\x0a}\x0afloat\x20unpack(vec4\x20color)\x0a{\x0aconst\x20vec4\x20bit_shift=vec4(1.0/(255.0*255.0*255.0),1.0/(255.0*255.0),1.0/255.0,1.0);\x0areturn\x20dot(color,bit_shift);\x0a}','modelDataLength','void\x20DUMMYFUNC','creationFlags','Uint16','SphereDirectedParticleEmitter','TEXTURE_LINEAR_LINEAR','onPointerMove','uniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20ALBEDO\x0auniform\x20mat4\x20albedoMatrix;\x0auniform\x20vec2\x20vAlbedoInfos;\x0a#endif\x0a#ifdef\x20AMBIENT\x0auniform\x20mat4\x20ambientMatrix;\x0auniform\x20vec4\x20vAmbientInfos;\x0a#endif\x0a#ifdef\x20OPACITY\x0auniform\x20mat4\x20opacityMatrix;\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0auniform\x20vec2\x20vEmissiveInfos;\x0auniform\x20mat4\x20emissiveMatrix;\x0a#endif\x0a#ifdef\x20LIGHTMAP\x0auniform\x20vec2\x20vLightmapInfos;\x0auniform\x20mat4\x20lightmapMatrix;\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x20\x0auniform\x20vec3\x20vReflectivityInfos;\x0auniform\x20mat4\x20reflectivityMatrix;\x0a#endif\x0a#ifdef\x20METALLIC_REFLECTANCE\x0auniform\x20vec2\x20vMetallicReflectanceInfos;\x0auniform\x20mat4\x20metallicReflectanceMatrix;\x0a#endif\x0a#ifdef\x20REFLECTANCE\x0auniform\x20vec2\x20vReflectanceInfos;\x0auniform\x20mat4\x20reflectanceMatrix;\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0auniform\x20vec2\x20vMicroSurfaceSamplerInfos;\x0auniform\x20mat4\x20microSurfaceSamplerMatrix;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20vec3\x20vBumpInfos;\x0auniform\x20mat4\x20bumpMatrix;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20vec2\x20vReflectionInfos;\x0auniform\x20mat4\x20reflectionMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0a#if\x20defined(CLEARCOAT_TEXTURE)\x20||\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x0auniform\x20vec4\x20vClearCoatInfos;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0auniform\x20mat4\x20clearCoatMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TEXTURE_ROUGHNESS\x0auniform\x20mat4\x20clearCoatRoughnessMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_BUMP\x0auniform\x20vec2\x20vClearCoatBumpInfos;\x0auniform\x20mat4\x20clearCoatBumpMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT_TEXTURE\x0auniform\x20vec2\x20vClearCoatTintInfos;\x0auniform\x20mat4\x20clearCoatTintMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0a#if\x20defined(IRIDESCENCE_TEXTURE)\x20||\x20defined(IRIDESCENCE_THICKNESS_TEXTURE)\x0auniform\x20vec4\x20vIridescenceInfos;\x0a#endif\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0auniform\x20mat4\x20iridescenceMatrix;\x0a#endif\x0a#ifdef\x20IRIDESCENCE_THICKNESS_TEXTURE\x0auniform\x20mat4\x20iridescenceThicknessMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0auniform\x20vec2\x20vAnisotropyInfos;\x0auniform\x20mat4\x20anisotropyMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN\x0a#if\x20defined(SHEEN_TEXTURE)\x20||\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x0auniform\x20vec4\x20vSheenInfos;\x0a#endif\x0a#ifdef\x20SHEEN_TEXTURE\x0auniform\x20mat4\x20sheenMatrix;\x0a#endif\x0a#ifdef\x20SHEEN_TEXTURE_ROUGHNESS\x0auniform\x20mat4\x20sheenRoughnessMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20SUBSURFACE\x0a#ifdef\x20SS_REFRACTION\x0auniform\x20vec4\x20vRefractionInfos;\x0auniform\x20mat4\x20refractionMatrix;\x0a#endif\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0auniform\x20vec2\x20vThicknessInfos;\x0auniform\x20mat4\x20thicknessMatrix;\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0auniform\x20vec2\x20vRefractionIntensityInfos;\x0auniform\x20mat4\x20refractionIntensityMatrix;\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0auniform\x20vec2\x20vTranslucencyIntensityInfos;\x0auniform\x20mat4\x20translucencyIntensityMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20NORMAL\x0a#if\x20defined(USESPHERICALFROMREFLECTIONMAP)\x20&&\x20defined(USESPHERICALINVERTEX)\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#ifdef\x20SPHERICAL_HARMONICS\x0auniform\x20vec3\x20vSphericalL00;\x0auniform\x20vec3\x20vSphericalL1_1;\x0auniform\x20vec3\x20vSphericalL10;\x0auniform\x20vec3\x20vSphericalL11;\x0auniform\x20vec3\x20vSphericalL2_2;\x0auniform\x20vec3\x20vSphericalL2_1;\x0auniform\x20vec3\x20vSphericalL20;\x0auniform\x20vec3\x20vSphericalL21;\x0auniform\x20vec3\x20vSphericalL22;\x0a#else\x0auniform\x20vec3\x20vSphericalX;\x0auniform\x20vec3\x20vSphericalY;\x0auniform\x20vec3\x20vSphericalZ;\x0auniform\x20vec3\x20vSphericalXX_ZZ;\x0auniform\x20vec3\x20vSphericalYY_ZZ;\x0auniform\x20vec3\x20vSphericalZZ;\x0auniform\x20vec3\x20vSphericalXY;\x0auniform\x20vec3\x20vSphericalYZ;\x0auniform\x20vec3\x20vSphericalZX;\x0a#endif\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20DETAIL\x0auniform\x20vec4\x20vDetailInfos;\x0auniform\x20mat4\x20detailMatrix;\x0a#endif\x0a#include<decalVertexDeclaration>\x0a#define\x20ADDITIONAL_VERTEX_DECLARATION\x0a','getAttributes','_emitUniformFromString','_copyInvertYTempTexture','_effect','_stridedUniformArrays','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20sampler2D\x20diffuseSampler;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0avec3\x20computeCustomDiffuseLighting(lightingInfo\x20info,vec3\x20diffuseBase,float\x20shadow)\x0a{\x0adiffuseBase=info.diffuse*shadow;\x0a#ifdef\x20CELLBASIC\x0afloat\x20level=1.0;\x0aif\x20(info.ndl<0.5)\x0alevel=0.5;\x0adiffuseBase.rgb*vec3(level,level,level);\x0a#else\x0afloat\x20ToonThresholds[4];\x0aToonThresholds[0]=0.95;\x0aToonThresholds[1]=0.5;\x0aToonThresholds[2]=0.2;\x0aToonThresholds[3]=0.03;\x0afloat\x20ToonBrightnessLevels[5];\x0aToonBrightnessLevels[0]=1.0;\x0aToonBrightnessLevels[1]=0.8;\x0aToonBrightnessLevels[2]=0.6;\x0aToonBrightnessLevels[3]=0.35;\x0aToonBrightnessLevels[4]=0.2;\x0aif\x20(info.ndl>ToonThresholds[0])\x0a{\x0adiffuseBase.rgb*=ToonBrightnessLevels[0];\x0a}\x0aelse\x20if\x20(info.ndl>ToonThresholds[1])\x0a{\x0adiffuseBase.rgb*=ToonBrightnessLevels[1];\x0a}\x0aelse\x20if\x20(info.ndl>ToonThresholds[2])\x0a{\x0adiffuseBase.rgb*=ToonBrightnessLevels[2];\x0a}\x0aelse\x20if\x20(info.ndl>ToonThresholds[3])\x0a{\x0adiffuseBase.rgb*=ToonBrightnessLevels[3];\x0a}\x0aelse\x0a{\x0adiffuseBase.rgb*=ToonBrightnessLevels[4];\x0a}\x0a#endif\x0areturn\x20max(diffuseBase,vec3(0.2));\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20DIFFUSE\x0abaseColor=texture2D(diffuseSampler,vDiffuseUV);\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0alightingInfo\x20info;\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0afloat\x20shadow=1.;\x0afloat\x20glossiness=0.;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x20\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\x0avec4\x20color=vec4(finalDiffuse,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}','TEXTUREFORMAT_COMPRESSED_RGB8_ETC2','_GetTextureTypeFromFormat','layout(std140,column_major)\x20uniform;\x0auniform\x20Material\x0a{\x0auniform\x20vec4\x20vPrimaryColor;\x0auniform\x20vec4\x20vPrimaryColorShadow;\x0auniform\x20vec2\x20vDiffuseInfos;\x0auniform\x20vec2\x20vReflectionInfos;\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20mat4\x20reflectionMatrix;\x0auniform\x20vec3\x20vReflectionMicrosurfaceInfos;\x0auniform\x20float\x20fFovMultiplier;\x0auniform\x20float\x20pointSize;\x0auniform\x20float\x20shadowLevel;\x0auniform\x20float\x20alpha;\x0a#if\x20defined(REFLECTIONFRESNEL)\x20||\x20defined(OPACITYFRESNEL)\x0auniform\x20vec3\x20vBackgroundCenter;\x0a#endif\x0a#ifdef\x20REFLECTIONFRESNEL\x0auniform\x20vec4\x20vReflectionControl;\x0a#endif\x0a};\x0a#include<sceneUboDeclaration>\x0a','mesh','_defineSphericalName','Not\x20implemented','_delayQuerySetDispose','varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#include<helperFunctions>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0agl_FragColor=toRGBD(texture2D(textureSampler,vUV).rgb);\x0a}','#ifdef\x20MAINUV{X}\x0avarying\x20vec2\x20vMainUV{X};\x0a#endif\x0a','setColor4','bumpVertex','TransformNormal','transform','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vSpecularColor;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vTextureUV;\x0auniform\x20sampler2D\x20mixMap1Sampler;\x0auniform\x20vec2\x20vTextureInfos;\x0a#ifdef\x20MIXMAP2\x0auniform\x20sampler2D\x20mixMap2Sampler;\x0a#endif\x0auniform\x20sampler2D\x20diffuse1Sampler;\x0auniform\x20sampler2D\x20diffuse2Sampler;\x0auniform\x20sampler2D\x20diffuse3Sampler;\x0auniform\x20sampler2D\x20diffuse4Sampler;\x0auniform\x20vec2\x20diffuse1Infos;\x0auniform\x20vec2\x20diffuse2Infos;\x0auniform\x20vec2\x20diffuse3Infos;\x0auniform\x20vec2\x20diffuse4Infos;\x0a#ifdef\x20MIXMAP2\x0auniform\x20sampler2D\x20diffuse5Sampler;\x0auniform\x20sampler2D\x20diffuse6Sampler;\x0auniform\x20sampler2D\x20diffuse7Sampler;\x0auniform\x20sampler2D\x20diffuse8Sampler;\x0auniform\x20vec2\x20diffuse5Infos;\x0auniform\x20vec2\x20diffuse6Infos;\x0auniform\x20vec2\x20diffuse7Infos;\x0auniform\x20vec2\x20diffuse8Infos;\x0a#endif\x0a#endif\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20finalMixColor=vec4(1.,1.,1.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0a#ifdef\x20MIXMAP2\x0avec4\x20mixColor2=vec4(1.,1.,1.,1.);\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0avec4\x20mixColor=texture2D(mixMap1Sampler,vTextureUV);\x0a#include<depthPrePass>\x0amixColor.rgb*=vTextureInfos.y;\x0avec4\x20diffuse1Color=texture2D(diffuse1Sampler,vTextureUV*diffuse1Infos);\x0avec4\x20diffuse2Color=texture2D(diffuse2Sampler,vTextureUV*diffuse2Infos);\x0avec4\x20diffuse3Color=texture2D(diffuse3Sampler,vTextureUV*diffuse3Infos);\x0avec4\x20diffuse4Color=texture2D(diffuse4Sampler,vTextureUV*diffuse4Infos);\x0adiffuse1Color.rgb*=mixColor.r;\x0adiffuse2Color.rgb=mix(diffuse1Color.rgb,diffuse2Color.rgb,mixColor.g);\x0adiffuse3Color.rgb=mix(diffuse2Color.rgb,diffuse3Color.rgb,mixColor.b);\x0afinalMixColor.rgb=mix(diffuse3Color.rgb,diffuse4Color.rgb,1.0-mixColor.a);\x0a#ifdef\x20MIXMAP2\x0amixColor=texture2D(mixMap2Sampler,vTextureUV);\x0amixColor.rgb*=vTextureInfos.y;\x0avec4\x20diffuse5Color=texture2D(diffuse5Sampler,vTextureUV*diffuse5Infos);\x0avec4\x20diffuse6Color=texture2D(diffuse6Sampler,vTextureUV*diffuse6Infos);\x0avec4\x20diffuse7Color=texture2D(diffuse7Sampler,vTextureUV*diffuse7Infos);\x0avec4\x20diffuse8Color=texture2D(diffuse8Sampler,vTextureUV*diffuse8Infos);\x0adiffuse5Color.rgb=mix(finalMixColor.rgb,diffuse5Color.rgb,mixColor.r);\x0adiffuse6Color.rgb=mix(diffuse5Color.rgb,diffuse6Color.rgb,mixColor.g);\x0adiffuse7Color.rgb=mix(diffuse6Color.rgb,diffuse7Color.rgb,mixColor.b);\x0afinalMixColor.rgb=mix(diffuse7Color.rgb,diffuse8Color.rgb,1.0-mixColor.a);\x0a#endif\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0afinalMixColor.rgb*=vColor.rgb;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor*finalMixColor.rgb,0.0,1.0);\x0avec4\x20color=vec4(finalDiffuse+finalSpecular,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','RandomRange','ASTC10x6UnormSRGB','ceil','_depthStencilTextureArray','getHierarchyEmittedParticleSystems','addItem','morphTargetsVertexGlobalDeclaration','TEXTUREFORMAT_DEPTH24_STENCIL8','invertY','NAME_SUBSURFACE','programValidationError','_cachedWrapU','scene_multiview','_fillEffectInformation','precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20topColor;\x0auniform\x20vec4\x20bottomColor;\x0auniform\x20float\x20offset;\x0auniform\x20float\x20scale;\x0auniform\x20float\x20smoothness;\x0avarying\x20vec3\x20vPositionW;\x0avarying\x20vec3\x20vPosition;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0]\x0a#include<__decl__lightFragment>[1]\x0a#include<__decl__lightFragment>[2]\x0a#include<__decl__lightFragment>[3]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0afloat\x20h=vPosition.y*scale+offset;\x0afloat\x20mysmoothness=clamp(smoothness,0.01,max(smoothness,10.));\x0avec4\x20baseColor=mix(bottomColor,topColor,max(pow(max(h,0.0),mysmoothness),0.0));\x0avec3\x20diffuseColor=baseColor.rgb;\x0afloat\x20alpha=baseColor.a;\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0a#ifdef\x20VERTEXCOLOR\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20EMISSIVE\x0avec3\x20diffuseBase=baseColor.rgb;\x0a#else\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0a#endif\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0afloat\x20glossiness=0.;\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\x0avec4\x20color=vec4(finalDiffuse,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a','Depth32FloatStencil8','pick'];a6_0x5537=function(){return _0x4cfc63;};return a6_0x5537();}(function(_0x3ed88d,_0x2eaac8){var _0x3387ad=a6_0x2304,_0x844fc9=_0x3ed88d();while(!![]){try{var _0x55637f=parseInt(_0x3387ad(0xc54))/0x1*(parseInt(_0x3387ad(0x940))/0x2)+-parseInt(_0x3387ad(0x53d))/0x3+-parseInt(_0x3387ad(0x18b))/0x4*(-parseInt(_0x3387ad(0xb15))/0x5)+-parseInt(_0x3387ad(0x670))/0x6*(parseInt(_0x3387ad(0xcff))/0x7)+-parseInt(_0x3387ad(0x222))/0x8+parseInt(_0x3387ad(0x5e4))/0x9+parseInt(_0x3387ad(0x94a))/0xa;if(_0x55637f===_0x2eaac8)break;else _0x844fc9['push'](_0x844fc9['shift']());}catch(_0x44619b){_0x844fc9['push'](_0x844fc9['shift']());}}}(a6_0x5537,0xade97));(Object(self||this)[a6_0x1e64fa(0x82b)]=Object(self||this)[a6_0x1e64fa(0x82b)]||[])[a6_0x1e64fa(0x83f)]([[0x19c],{0x2b0:(_0x1d49cf,_0x35352e,_0xf8b67f)=>{var _0x580d89=a6_0x1e64fa;_0xf8b67f['d'](_0x35352e,{'V':()=>_0x128b6d});class _0x128b6d{constructor(_0x2ce749,_0x298c35,_0x4368f0,_0x59f6ae,_0x4a0b98,_0x14c712){var _0x11f780=a6_0x2304;this[_0x11f780(0xbd6)]=_0x2ce749,this[_0x11f780(0x74d)]=_0x298c35,this[_0x11f780(0x1c8)]=_0x4368f0,this[_0x11f780(0xce3)]=_0x59f6ae,this[_0x11f780(0x8e6)]=_0x4a0b98,this[_0x11f780(0xc71)]=_0x14c712;}static[_0x580d89(0xcdc)](_0x1132d9,_0x121c02,_0x33b31a){var _0x20a73d=_0x580d89,_0x4128d2=_0x1132d9[_0x20a73d(0x9fa)]();return new _0x128b6d(_0x1132d9,_0x4128d2[_0x20a73d(0x74d)],_0x4128d2[_0x20a73d(0x1c8)],_0x4128d2[_0x20a73d(0xce3)]||_0x1132d9,_0x121c02,_0x33b31a);}static[_0x580d89(0x9f5)](_0xfaa9c0,_0x241f6b,_0x9b2385,_0x4625fd){var _0x1ac54c=_0x580d89;return new _0x128b6d(_0xfaa9c0,_0x241f6b[_0x1ac54c(0x74d)],_0x241f6b[_0x1ac54c(0x1c8)],_0x241f6b[_0x1ac54c(0xce3)],_0x9b2385,_0x4625fd);}static[_0x580d89(0x4d5)](_0x204fc7,_0x23b0fc){var _0xea7e69=_0x580d89;return new _0x128b6d(null,_0x204fc7['pointerX'],_0x204fc7[_0xea7e69(0x1c8)],_0x204fc7['meshUnderPointer'],_0x23b0fc);}static[_0x580d89(0x3f8)](_0x2b0ea0,_0x4da910,_0x58a10a,_0x277cab){return new _0x128b6d(_0x2b0ea0,_0x4da910['x'],_0x4da910['y'],null,_0x58a10a,_0x277cab);}}},0x71:(_0x22e5e4,_0x308295,_0x5983d2)=>{var _0x2f719d=a6_0x1e64fa;_0x5983d2['d'](_0x308295,{'X':()=>_0x10b2cf});class _0x10b2cf{constructor(_0x12ea5b,_0x39b5b1,_0x2b1607){var _0x41f66b=a6_0x2304;this[_0x41f66b(0x4b3)]=_0x12ea5b,this['from']=_0x39b5b1,this['to']=_0x2b1607;}[_0x2f719d(0x12a)](){var _0x300ae7=_0x2f719d;return new _0x10b2cf(this[_0x300ae7(0x4b3)],this[_0x300ae7(0x529)],this['to']);}}},0xf2a6:(_0x5bf64f,_0x1ea6d7,_0x6b2d8f)=>{_0x6b2d8f['d'](_0x1ea6d7,{'c':()=>_0x1079e8});class _0x1079e8{constructor(_0x3c7d6d,_0x444560,_0x5d22f4){var _0x428642=a6_0x2304;this['bu']=_0x3c7d6d,this['bv']=_0x444560,this[_0x428642(0x7ba)]=_0x5d22f4,this[_0x428642(0x180)]=0x0,this[_0x428642(0x8b4)]=0x0;}}},0x13ea8:(_0x3d175a,_0x428d73,_0x3312c7)=>{var _0x557144=a6_0x1e64fa;_0x3312c7['d'](_0x428d73,{'p':()=>_0xb56b1f});var _0x85a880=_0x3312c7(0xf96c);class _0xb56b1f{constructor(_0x169f10,_0x2e2f05,_0x40eddc=0x0){var _0x382da4=a6_0x2304;this['deviceType']=_0x2e2f05,this[_0x382da4(0xbe5)]=_0x40eddc,this['onInputChangedObservable']=new _0x85a880['y$'](),this[_0x382da4(0xd0e)]=_0x169f10;}[_0x557144(0x8d2)](_0x4e0b1b){var _0x356c10=_0x557144;return this[_0x356c10(0xd0e)][_0x356c10(0x8ac)](this['deviceType'],this['deviceSlot'],_0x4e0b1b);}}},0x59fc:(_0x112c66,_0xfc7c2a,_0x4be021)=>{var _0x4fb3b9=a6_0x1e64fa,_0xc4ddb6=_0x4be021(0x202a),_0x2ad057=_0x4be021(0x77a5);_0xc4ddb6['B'][_0x4fb3b9(0x9ed)][_0x4fb3b9(0x99a)]=function(_0x3070c5,_0x36805e,_0x449de9,_0x1b8fc8){this['_alphaState']['setAlphaBlendConstants'](_0x3070c5,_0x36805e,_0x449de9,_0x1b8fc8);},_0xc4ddb6['B'][_0x4fb3b9(0x9ed)][_0x4fb3b9(0x91b)]=function(_0x1270b3,_0x38fafa=!0x1){var _0x4bb2db=_0x4fb3b9,_0xbc0997;if(this[_0x4bb2db(0x482)]===_0x1270b3)_0x38fafa||(_0xbc0997=_0x1270b3===_0x2ad057['g'][_0x4bb2db(0x603)],this[_0x4bb2db(0x24e)][_0x4bb2db(0x828)]!==_0xbc0997&&(this['depthCullingState'][_0x4bb2db(0x828)]=_0xbc0997));else{switch(_0x1270b3){case _0x2ad057['g'][_0x4bb2db(0x603)]:this[_0x4bb2db(0x224)][_0x4bb2db(0xb14)]=!0x1;break;case _0x2ad057['g'][_0x4bb2db(0x97b)]:this['_alphaState'][_0x4bb2db(0x503)](this['_gl']['ONE'],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4b7)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)]),this[_0x4bb2db(0x224)][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g'][_0x4bb2db(0x7b8)]:this[_0x4bb2db(0x224)][_0x4bb2db(0x503)](this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4b7)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4b7)]),this['_alphaState'][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g'][_0x4bb2db(0x96f)]:this[_0x4bb2db(0x224)][_0x4bb2db(0x503)](this[_0x4bb2db(0x8a0)]['SRC_ALPHA'],this[_0x4bb2db(0x8a0)]['ONE_MINUS_SRC_ALPHA'],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this[_0x4bb2db(0x8a0)]['ONE']),this['_alphaState']['alphaBlend']=!0x0;break;case _0x2ad057['g'][_0x4bb2db(0xbe0)]:this['_alphaState'][_0x4bb2db(0x503)](this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this[_0x4bb2db(0x8a0)]['ZERO'],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)]),this[_0x4bb2db(0x224)][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g'][_0x4bb2db(0x2d7)]:this[_0x4bb2db(0x224)][_0x4bb2db(0x503)](this[_0x4bb2db(0x8a0)]['SRC_ALPHA'],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this['_gl']['ZERO'],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)]),this[_0x4bb2db(0x224)][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g'][_0x4bb2db(0x627)]:this['_alphaState'][_0x4bb2db(0x503)](this[_0x4bb2db(0x8a0)][_0x4bb2db(0x654)],this['_gl']['ONE_MINUS_SRC_COLOR'],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this['_gl']['ONE']),this[_0x4bb2db(0x224)][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g']['ALPHA_MULTIPLY']:this[_0x4bb2db(0x224)]['setAlphaBlendFunctionParameters'](this['_gl'][_0x4bb2db(0x517)],this['_gl'][_0x4bb2db(0x654)],this[_0x4bb2db(0x8a0)]['ONE'],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)]),this[_0x4bb2db(0x224)]['alphaBlend']=!0x0;break;case _0x2ad057['g'][_0x4bb2db(0x3e2)]:this['_alphaState'][_0x4bb2db(0x503)](this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4aa)],this[_0x4bb2db(0x8a0)]['ONE_MINUS_SRC_COLOR'],this['_gl']['ONE'],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)]),this[_0x4bb2db(0x224)][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g'][_0x4bb2db(0xb18)]:this[_0x4bb2db(0x224)][_0x4bb2db(0x503)](this[_0x4bb2db(0x8a0)][_0x4bb2db(0xcaa)],this['_gl'][_0x4bb2db(0x2eb)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x8b7)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x945)]),this[_0x4bb2db(0x224)][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g']['ALPHA_SCREENMODE']:this[_0x4bb2db(0x224)][_0x4bb2db(0x503)](this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x3ad)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this['_gl']['ONE_MINUS_SRC_ALPHA']),this[_0x4bb2db(0x224)][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g'][_0x4bb2db(0x7d0)]:this[_0x4bb2db(0x224)][_0x4bb2db(0x503)](this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this['_gl'][_0x4bb2db(0x4be)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)]),this['_alphaState'][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g'][_0x4bb2db(0x27c)]:this[_0x4bb2db(0x224)][_0x4bb2db(0x503)](this['_gl'][_0x4bb2db(0xd09)],this['_gl']['ONE'],this[_0x4bb2db(0x8a0)]['ZERO'],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x654)]),this[_0x4bb2db(0x224)]['alphaBlend']=!0x0;break;case _0x2ad057['g'][_0x4bb2db(0x551)]:this['_alphaState']['setAlphaBlendFunctionParameters'](this[_0x4bb2db(0x8a0)][_0x4bb2db(0x802)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x3ad)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x5d4)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4b7)]),this['_alphaState'][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g']['ALPHA_SRC_DSTONEMINUSSRCALPHA']:this[_0x4bb2db(0x224)][_0x4bb2db(0x503)](this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this[_0x4bb2db(0x8a0)]['ONE_MINUS_SRC_ALPHA'],this[_0x4bb2db(0x8a0)]['ONE'],this['_gl']['ONE_MINUS_SRC_ALPHA']),this[_0x4bb2db(0x224)][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g']['ALPHA_ONEONE_ONEZERO']:this['_alphaState'][_0x4bb2db(0x503)](this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)],this['_gl'][_0x4bb2db(0x4be)],this['_gl'][_0x4bb2db(0x654)]),this[_0x4bb2db(0x224)][_0x4bb2db(0xb14)]=!0x0;break;case _0x2ad057['g'][_0x4bb2db(0xbdb)]:this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl'][_0x4bb2db(0x802)],this['_gl'][_0x4bb2db(0x3ad)],this[_0x4bb2db(0x8a0)]['ZERO'],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4be)]),this[_0x4bb2db(0x224)]['alphaBlend']=!0x0;break;case _0x2ad057['g']['ALPHA_LAYER_ACCUMULATE']:this['_alphaState']['setAlphaBlendFunctionParameters'](this['_gl'][_0x4bb2db(0x4aa)],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4b7)],this['_gl']['ONE'],this[_0x4bb2db(0x8a0)][_0x4bb2db(0x4b7)]),this[_0x4bb2db(0x224)]['alphaBlend']=!0x0;}_0x38fafa||(this[_0x4bb2db(0x24e)][_0x4bb2db(0x828)]=_0x1270b3===_0x2ad057['g'][_0x4bb2db(0x603)]),this[_0x4bb2db(0x482)]=_0x1270b3;}},_0xc4ddb6['B']['prototype']['getAlphaMode']=function(){var _0x1db1b8=_0x4fb3b9;return this[_0x1db1b8(0x482)];},_0xc4ddb6['B'][_0x4fb3b9(0x9ed)][_0x4fb3b9(0x625)]=function(_0x463fc8){var _0x55ca45=_0x4fb3b9;if(this[_0x55ca45(0x4d4)]!==_0x463fc8){switch(_0x463fc8){case _0x2ad057['g']['ALPHA_EQUATION_ADD']:this[_0x55ca45(0x224)][_0x55ca45(0x4c6)](_0x2ad057['g'][_0x55ca45(0x6e3)],_0x2ad057['g'][_0x55ca45(0x6e3)]);break;case _0x2ad057['g'][_0x55ca45(0x770)]:this[_0x55ca45(0x224)]['setAlphaEquationParameters'](_0x2ad057['g'][_0x55ca45(0x2cc)],_0x2ad057['g'][_0x55ca45(0x2cc)]);break;case _0x2ad057['g'][_0x55ca45(0x9ce)]:this[_0x55ca45(0x224)][_0x55ca45(0x4c6)](_0x2ad057['g']['GL_ALPHA_EQUATION_REVERSE_SUBTRACT'],_0x2ad057['g'][_0x55ca45(0xba7)]);break;case _0x2ad057['g']['ALPHA_EQUATION_MAX']:this['_alphaState'][_0x55ca45(0x4c6)](_0x2ad057['g']['GL_ALPHA_EQUATION_MAX'],_0x2ad057['g'][_0x55ca45(0x3aa)]);break;case _0x2ad057['g'][_0x55ca45(0x249)]:this[_0x55ca45(0x224)][_0x55ca45(0x4c6)](_0x2ad057['g'][_0x55ca45(0x1e1)],_0x2ad057['g'][_0x55ca45(0x1e1)]);break;case _0x2ad057['g']['ALPHA_EQUATION_DARKEN']:this[_0x55ca45(0x224)]['setAlphaEquationParameters'](_0x2ad057['g']['GL_ALPHA_EQUATION_MIN'],_0x2ad057['g'][_0x55ca45(0x6e3)]);}this[_0x55ca45(0x4d4)]=_0x463fc8;}},_0xc4ddb6['B']['prototype']['getAlphaEquation']=function(){var _0x164b38=_0x4fb3b9;return this[_0x164b38(0x4d4)];};},0x4dec:(_0x1b4466,_0x4c8796,_0xfbf00a)=>{var _0x31b393=a6_0x1e64fa,_0x1c2fa1=_0xfbf00a(0x202a),_0x529454=_0xfbf00a(0x25b1),_0x417ae8=_0xfbf00a(0x10ea4),_0x5289c4=_0xfbf00a(0x2560),_0x5c62c8=_0xfbf00a(0x9f19),_0x2fb562=_0xfbf00a(0x77a5);_0x1c2fa1['B'][_0x31b393(0x9ed)][_0x31b393(0x6db)]=function(_0x40a1c6,_0x2a97e9,_0x18b93c){var _0x53d43c=_0x31b393;const _0x5ebcf1=new _0x529454['l'](this,_0x529454['S'][_0x53d43c(0x9f3)]);if(_0x5ebcf1['isCube']=!0x0,0x1===this[_0x53d43c(0x41b)])return _0x417ae8['Y'][_0x53d43c(0x286)](_0x53d43c(0x8ca)),_0x5ebcf1;var _0x59718e=Object[_0x53d43c(0x1ce)]({'bilinearFiltering':!0x1,'comparisonFunction':0x0,'generateStencil':!0x1},_0x2a97e9);const _0x325d60=this[_0x53d43c(0x8a0)];this[_0x53d43c(0x4d0)](_0x325d60[_0x53d43c(0x52a)],_0x5ebcf1,!0x0),this[_0x53d43c(0xc17)](_0x5ebcf1,_0x40a1c6,_0x59718e['generateStencil'],_0x59718e['bilinearFiltering'],_0x59718e[_0x53d43c(0x186)]),_0x18b93c['_depthStencilTexture']=_0x5ebcf1,_0x18b93c['_depthStencilTextureWithStencil']=_0x59718e[_0x53d43c(0x55a)];for(let _0x19053f=0x0;_0x19053f<0x6;_0x19053f++)_0x59718e[_0x53d43c(0x55a)]?_0x325d60[_0x53d43c(0x83c)](_0x325d60[_0x53d43c(0x5b3)]+_0x19053f,0x0,_0x325d60[_0x53d43c(0x6df)],_0x40a1c6,_0x40a1c6,0x0,_0x325d60[_0x53d43c(0x7fd)],_0x325d60[_0x53d43c(0x2a3)],null):_0x325d60[_0x53d43c(0x83c)](_0x325d60[_0x53d43c(0x5b3)]+_0x19053f,0x0,_0x325d60['DEPTH_COMPONENT24'],_0x40a1c6,_0x40a1c6,0x0,_0x325d60[_0x53d43c(0x30d)],_0x325d60[_0x53d43c(0x2ab)],null);return this[_0x53d43c(0x4d0)](_0x325d60['TEXTURE_CUBE_MAP'],null),this[_0x53d43c(0x7d5)][_0x53d43c(0x83f)](_0x5ebcf1),_0x5ebcf1;},_0x1c2fa1['B'][_0x31b393(0x9ed)][_0x31b393(0x2cb)]=function(_0x313c23,_0x5c59ff,_0x554217,_0x3e1a06,_0x47a2b4=null){this['_loadFile'](_0x313c23,_0x2e01c3=>{var _0x892c2=a6_0x2304;_0x554217[_0x5c59ff]=_0x2e01c3,_0x554217[_0x892c2(0xa04)]++,0x6===_0x554217['_internalCount']&&_0x3e1a06(_0x554217);},void 0x0,void 0x0,!0x0,(_0x240978,_0x17e5fc)=>{var _0xb78730=a6_0x2304;_0x47a2b4&&_0x240978&&_0x47a2b4(_0x240978[_0xb78730(0xab2)]+'\x20'+_0x240978[_0xb78730(0x953)],_0x17e5fc);});},_0x1c2fa1['B']['prototype'][_0x31b393(0x616)]=function(_0x18a108,_0x5c3493,_0x2bac3b,_0x3340d7=null){var _0x301e86=_0x31b393;const _0x369072=[];for(let _0x256dcc=_0x369072[_0x301e86(0xa04)]=0x0;_0x256dcc<0x6;_0x256dcc++)this[_0x301e86(0x2cb)](_0x2bac3b[_0x256dcc],_0x256dcc,_0x369072,_0x5c3493,_0x3340d7);},_0x1c2fa1['B'][_0x31b393(0x9ed)][_0x31b393(0x25c)]=function(_0x1be74f,_0x12e437,_0x57576b,_0x1799d7,_0x4c89e1=null,_0x3cd7d0){var _0x21e33f=_0x31b393;const _0x1fb184=[];for(let _0x4a60a9=_0x1fb184[_0x21e33f(0xa04)]=0x0;_0x4a60a9<0x6;_0x4a60a9++)this[_0x21e33f(0xcab)](_0x1799d7[_0x4a60a9],_0x4a60a9,_0x1fb184,_0x1be74f,_0x12e437,_0x57576b,_0x4c89e1,_0x3cd7d0);},_0x1c2fa1['B'][_0x31b393(0x9ed)][_0x31b393(0xcab)]=function(_0x1855b4,_0x30c88a,_0x35a9ac,_0x1b4c0a,_0x52f10d,_0x5101af,_0xfe2190=null,_0xec3288){var _0x22f29e=_0x31b393;const _0x5a476e=(0x0,_0x5c62c8['f'])();(0x0,_0x5289c4['r6'])(_0x1855b4,_0xe4b6b=>{var _0x1517d2=a6_0x2304;_0x35a9ac[_0x30c88a]=_0xe4b6b,_0x35a9ac['_internalCount']++,_0x1b4c0a&&_0x1b4c0a[_0x1517d2(0x1ed)](_0x5a476e),0x6===_0x35a9ac[_0x1517d2(0xa04)]&&_0x5101af&&_0x5101af(_0x52f10d,_0x35a9ac);},(_0x38193c,_0xffa11b)=>{_0x1b4c0a&&_0x1b4c0a['removePendingData'](_0x5a476e),_0xfe2190&&_0xfe2190(_0x38193c,_0xffa11b);},_0x1b4c0a?_0x1b4c0a[_0x22f29e(0x1d3)]:null,_0xec3288),_0x1b4c0a&&_0x1b4c0a[_0x22f29e(0xc23)](_0x5a476e);},_0x1c2fa1['B'][_0x31b393(0x9ed)][_0x31b393(0x2c1)]=function(_0x252e97,_0x12306d,_0x50f6fd){var _0x39ba28=_0x31b393;const _0x247108=this['_gl'];_0x247108['texParameteri'](_0x247108[_0x39ba28(0x52a)],_0x247108[_0x39ba28(0x77c)],_0x247108[_0x39ba28(0x1fd)]),_0x247108[_0x39ba28(0xd25)](_0x247108[_0x39ba28(0x52a)],_0x247108['TEXTURE_MIN_FILTER'],_0x12306d?_0x247108[_0x39ba28(0xa60)]:_0x247108[_0x39ba28(0x1fd)]),_0x247108['texParameteri'](_0x247108[_0x39ba28(0x52a)],_0x247108[_0x39ba28(0xaf9)],_0x247108[_0x39ba28(0xa36)]),_0x247108[_0x39ba28(0xd25)](_0x247108[_0x39ba28(0x52a)],_0x247108[_0x39ba28(0xa47)],_0x247108[_0x39ba28(0xa36)]),_0x252e97[_0x39ba28(0xcfe)]=_0x12306d?_0x2fb562['g']['TEXTURE_TRILINEAR_SAMPLINGMODE']:_0x2fb562['g'][_0x39ba28(0xb7b)],_0x12306d&&this[_0x39ba28(0x33a)]()['textureMaxLevel']&&void 0x0!==_0x50f6fd&&0x0<_0x50f6fd&&(_0x247108[_0x39ba28(0xd25)](_0x247108[_0x39ba28(0x52a)],_0x247108[_0x39ba28(0x67d)],_0x50f6fd),_0x252e97[_0x39ba28(0x785)]=_0x50f6fd),this[_0x39ba28(0x4d0)](_0x247108[_0x39ba28(0x52a)],null);},_0x1c2fa1['B'][_0x31b393(0x9ed)][_0x31b393(0x4b0)]=function(_0x17e03f,_0x4273d8,_0x229f8b,_0x7e426d,_0x10e614=null,_0x5a8a54=null,_0x4f43cc,_0x3ead43=null,_0x3039bd=!0x1,_0x4a7659=0x0,_0x1c7ad4=0x0,_0x194342=null,_0x288f98=null,_0x13c014=null,_0x24e347=!0x1){var _0x7f86f9=_0x31b393;const _0x3c0b89=_0x194342||new _0x529454['l'](this,_0x529454['S']['Cube']),_0x49ef52=(_0x3c0b89[_0x7f86f9(0x144)]=!0x0,_0x3c0b89['url']=_0x17e03f,_0x3c0b89[_0x7f86f9(0x2c8)]=!_0x7e426d,_0x3c0b89[_0x7f86f9(0x4ec)]=_0x4a7659,_0x3c0b89['_lodGenerationOffset']=_0x1c7ad4,_0x3c0b89[_0x7f86f9(0x842)]=!!_0x24e347&&this[_0x7f86f9(0x588)][_0x7f86f9(0xc72)]&&(0x1<this[_0x7f86f9(0x41b)]||this[_0x7f86f9(0xb12)]||!!_0x7e426d),_0x3c0b89!==_0x194342&&(_0x3c0b89['label']=_0x17e03f[_0x7f86f9(0x6a1)](0x0,0x3c)),this[_0x7f86f9(0x37c)]||(_0x3c0b89[_0x7f86f9(0xa85)]=_0x3ead43,_0x3c0b89[_0x7f86f9(0x440)]=_0x229f8b),_0x17e03f),_0x789e3b=(_0x17e03f=this[_0x7f86f9(0x511)]&&!_0x194342?this[_0x7f86f9(0x511)](_0x17e03f):_0x17e03f)[_0x7f86f9(0x1f6)]('?')[0x0];var _0x194342=_0x789e3b[_0x7f86f9(0x6ac)]('.'),_0x547a15=_0x3ead43||(-0x1<_0x194342?_0x789e3b['substring'](_0x194342)[_0x7f86f9(0x619)]():'');let _0x2998a0=null;for(const _0x3aa033 of _0x1c2fa1['B'][_0x7f86f9(0x6d5)])if(_0x3aa033[_0x7f86f9(0x41a)](_0x547a15)){_0x2998a0=_0x3aa033;break;}_0x194342=(_0x5d8867,_0x573e32)=>{var _0x64064d=_0x7f86f9;_0x17e03f===_0x49ef52?_0x5a8a54&&_0x5d8867&&_0x5a8a54(_0x5d8867[_0x64064d(0xab2)]+'\x20'+_0x5d8867[_0x64064d(0x953)],_0x573e32):(_0x417ae8['Y'][_0x64064d(0x636)](_0x64064d(0x672)+_0x17e03f+',\x20falling\x20back\x20to\x20the\x20'+_0x49ef52),this[_0x64064d(0x4b0)](_0x49ef52,_0x4273d8,_0x229f8b,!!_0x7e426d,_0x10e614,_0x5a8a54,_0x4f43cc,_0x3ead43,_0x3039bd,_0x4a7659,_0x1c7ad4,_0x3c0b89,_0x288f98,_0x13c014,_0x24e347));};if(_0x2998a0){const _0x5be3e7=_0x57c0f8=>{var _0x28eb52=_0x7f86f9;_0x288f98&&_0x288f98(_0x3c0b89,_0x57c0f8),_0x2998a0[_0x28eb52(0x50c)](_0x57c0f8,_0x3c0b89,_0x3039bd,_0x10e614,_0x5a8a54);};_0x229f8b&&0x6===_0x229f8b[_0x7f86f9(0x3ef)]?_0x2998a0[_0x7f86f9(0xa9b)]?this[_0x7f86f9(0x616)](_0x4273d8,_0x1e210c=>_0x5be3e7(_0x1e210c[_0x7f86f9(0x694)](_0x686c36=>new Uint8Array(_0x686c36))),_0x229f8b,_0x5a8a54):_0x5a8a54?_0x5a8a54('Textures\x20type\x20does\x20not\x20support\x20cascades.'):_0x417ae8['Y'][_0x7f86f9(0x636)](_0x7f86f9(0x92e)):this['_loadFile'](_0x17e03f,_0x1fde6d=>_0x5be3e7(new Uint8Array(_0x1fde6d)),void 0x0,void 0x0,!0x0,_0x194342);}else{if(!_0x229f8b)throw new Error('Cannot\x20load\x20cubemap\x20because\x20files\x20were\x20not\x20defined');this[_0x7f86f9(0x25c)](_0x4273d8,_0x3c0b89,(_0x5904d5,_0x554a65)=>{_0x13c014&&_0x13c014(_0x5904d5,_0x554a65);},_0x229f8b,_0x5a8a54);}return this[_0x7f86f9(0x7d5)][_0x7f86f9(0x83f)](_0x3c0b89),_0x3c0b89;},_0x1c2fa1['B'][_0x31b393(0x9ed)]['createCubeTexture']=function(_0x497f95,_0x4e3782,_0x2add51,_0xfc1181,_0x1413b5=null,_0x446fe0=null,_0x2763ca,_0x44539b=null,_0x3cbbf8=!0x1,_0x35c8ac=0x0,_0xb55243=0x0,_0x4348b1=null,_0x4fd853,_0x36dbad=!0x1){var _0x3b6bf2=_0x31b393;const _0x30127f=this[_0x3b6bf2(0x8a0)];return this[_0x3b6bf2(0x4b0)](_0x497f95,_0x4e3782,_0x2add51,!!_0xfc1181,_0x1413b5,_0x446fe0,_0x2763ca,_0x44539b,_0x3cbbf8,_0x35c8ac,_0xb55243,_0x4348b1,_0x5ca530=>this[_0x3b6bf2(0x4d0)](_0x30127f[_0x3b6bf2(0x52a)],_0x5ca530,!0x0),(_0x12bef2,_0xf09d5f)=>{var _0x46bdcf=_0x3b6bf2,_0x304b77=this[_0x46bdcf(0x43f)]?_0x1c2fa1['B'][_0x46bdcf(0x2d8)](_0xf09d5f[0x0][_0x46bdcf(0xca4)],this[_0x46bdcf(0x588)][_0x46bdcf(0xab4)]):_0xf09d5f[0x0][_0x46bdcf(0xca4)],_0x47d5e5=_0x304b77,_0xc01546=[_0x30127f[_0x46bdcf(0x5b3)],_0x30127f['TEXTURE_CUBE_MAP_POSITIVE_Y'],_0x30127f[_0x46bdcf(0x2be)],_0x30127f[_0x46bdcf(0xd21)],_0x30127f['TEXTURE_CUBE_MAP_NEGATIVE_Y'],_0x30127f[_0x46bdcf(0x1d6)]],_0x45ade7=(this[_0x46bdcf(0x4d0)](_0x30127f[_0x46bdcf(0x52a)],_0x12bef2,!0x0),this[_0x46bdcf(0x650)](!0x1),_0x2763ca?this[_0x46bdcf(0x441)](_0x2763ca,_0x12bef2[_0x46bdcf(0x842)]):_0x12bef2[_0x46bdcf(0x842)]?_0x30127f['SRGB8_ALPHA8']:_0x30127f[_0x46bdcf(0x44a)]);let _0x108bcb=_0x2763ca?this[_0x46bdcf(0x441)](_0x2763ca):_0x30127f[_0x46bdcf(0x44a)];_0x12bef2[_0x46bdcf(0x842)]&&0x1===this[_0x46bdcf(0x41b)]&&(_0x108bcb=_0x45ade7);for(let _0x509021=0x0;_0x509021<_0xc01546['length'];_0x509021++)if(_0xf09d5f[_0x509021][_0x46bdcf(0xca4)]!==_0x304b77||_0xf09d5f[_0x509021]['height']!==_0x47d5e5){if(this[_0x46bdcf(0x323)](),!this[_0x46bdcf(0x134)]||!this[_0x46bdcf(0xabe)])return void _0x417ae8['Y'][_0x46bdcf(0x636)](_0x46bdcf(0xbfb));this[_0x46bdcf(0x134)][_0x46bdcf(0xca4)]=_0x304b77,this[_0x46bdcf(0x134)]['height']=_0x47d5e5,this[_0x46bdcf(0xabe)][_0x46bdcf(0x73e)](_0xf09d5f[_0x509021],0x0,0x0,_0xf09d5f[_0x509021][_0x46bdcf(0xca4)],_0xf09d5f[_0x509021]['height'],0x0,0x0,_0x304b77,_0x47d5e5),_0x30127f[_0x46bdcf(0x83c)](_0xc01546[_0x509021],0x0,_0x45ade7,_0x108bcb,_0x30127f[_0x46bdcf(0xcdb)],this[_0x46bdcf(0x134)]);}else _0x30127f[_0x46bdcf(0x83c)](_0xc01546[_0x509021],0x0,_0x45ade7,_0x108bcb,_0x30127f['UNSIGNED_BYTE'],_0xf09d5f[_0x509021]);_0xfc1181||_0x30127f['generateMipmap'](_0x30127f['TEXTURE_CUBE_MAP']),this['_setCubeMapTextureParams'](_0x12bef2,!_0xfc1181),_0x12bef2[_0x46bdcf(0xca4)]=_0x304b77,_0x12bef2[_0x46bdcf(0x43d)]=_0x47d5e5,_0x12bef2[_0x46bdcf(0x5ac)]=!0x0,_0x2763ca&&(_0x12bef2[_0x46bdcf(0x808)]=_0x2763ca),_0x12bef2[_0x46bdcf(0x929)][_0x46bdcf(0xac3)](_0x12bef2),_0x12bef2[_0x46bdcf(0x929)][_0x46bdcf(0x6de)](),_0x1413b5&&_0x1413b5();},!!_0x36dbad);};},0x1410a:(_0x4c9175,_0x1e2834,_0xd4de5)=>{var _0xdbbe28=a6_0x1e64fa;_0xd4de5=_0xd4de5(0x202a),(_0xd4de5['B'][_0xdbbe28(0x9ed)][_0xdbbe28(0x30b)]=function(_0x5c3799,_0x24c293){},_0xd4de5['B']['prototype'][_0xdbbe28(0x933)]=function(_0x3908e2){},_0xd4de5['B'][_0xdbbe28(0x9ed)][_0xdbbe28(0x766)]=function(_0x53ad61,_0xeaa1c7){},_0xd4de5['B'][_0xdbbe28(0x9ed)][_0xdbbe28(0xc76)]=function(){});},0x13479:(_0x6e05e3,_0x2ab7e8,_0x3a2ebd)=>{var _0x2f0ce2=a6_0x1e64fa;_0x3a2ebd=_0x3a2ebd(0x202a),(_0x3a2ebd['B']['prototype'][_0x2f0ce2(0x501)]=function(_0x549bb6,_0x5691aa,_0x143a0d=0x0){var _0x118fc5=_0x2f0ce2;this[_0x118fc5(0x3fe)][this[_0x118fc5(0x8a0)][_0x118fc5(0x220)]]=null,this[_0x118fc5(0x21d)](_0x549bb6),_0x549bb6=_0x5691aa instanceof Uint16Array||_0x5691aa instanceof Uint32Array?_0x5691aa:new(_0x549bb6[(_0x118fc5(0x293))]?Uint32Array:Uint16Array)(_0x5691aa),this[_0x118fc5(0x8a0)][_0x118fc5(0x4e9)](this[_0x118fc5(0x8a0)][_0x118fc5(0x220)],_0x143a0d,_0x549bb6),this[_0x118fc5(0xcb5)]();},_0x3a2ebd['B']['prototype'][_0x2f0ce2(0x1ee)]=function(_0x6bde31,_0x4d4475,_0x37778d,_0x1384e1){var _0x407906=_0x2f0ce2;this['bindArrayBuffer'](_0x6bde31),void 0x0===_0x37778d&&(_0x37778d=0x0),_0x6bde31=_0x4d4475['byteLength']||_0x4d4475['length'],(void 0x0===_0x1384e1||_0x6bde31<=_0x1384e1&&0x0===_0x37778d?_0x4d4475 instanceof Array?this[_0x407906(0x8a0)][_0x407906(0x4e9)](this[_0x407906(0x8a0)]['ARRAY_BUFFER'],_0x37778d,new Float32Array(_0x4d4475)):this[_0x407906(0x8a0)][_0x407906(0x4e9)](this[_0x407906(0x8a0)][_0x407906(0x142)],_0x37778d,_0x4d4475):_0x4d4475 instanceof Array?this['_gl'][_0x407906(0x4e9)](this[_0x407906(0x8a0)][_0x407906(0x142)],0x0,new Float32Array(_0x4d4475)['subarray'](_0x37778d,_0x37778d+_0x1384e1)):(_0x4d4475=_0x4d4475 instanceof ArrayBuffer?new Uint8Array(_0x4d4475,_0x37778d,_0x1384e1):new Uint8Array(_0x4d4475['buffer'],_0x4d4475[_0x407906(0x52d)]+_0x37778d,_0x1384e1),this[_0x407906(0x8a0)][_0x407906(0x4e9)](this['_gl'][_0x407906(0x142)],0x0,_0x4d4475)),this[_0x407906(0x427)]());});},0xecbf:(_0x3e973c,_0x13ba82,_0x27ea18)=>{var _0x32fbea=a6_0x1e64fa,_0x1f9a6c=_0x27ea18(0x202a),_0x31f296=_0x27ea18(0x25b1);_0x1f9a6c['B'][_0x32fbea(0x9ed)][_0x32fbea(0x8e3)]=function(_0x3656a3,_0xdc0e9c,_0x551f20,_0x23095c){var _0x48d689=_0x32fbea;const _0x41f32c=new _0x31f296['l'](this,_0x31f296['S'][_0x48d689(0x91e)]);return _0x41f32c[_0x48d689(0x863)]=_0x3656a3,_0x41f32c[_0x48d689(0x122)]=_0xdc0e9c,_0x551f20&&(_0x3656a3=this['needPOTTextures']?_0x1f9a6c['B'][_0x48d689(0x2d8)](_0x3656a3,this[_0x48d689(0x588)][_0x48d689(0x185)]):_0x3656a3,_0xdc0e9c=this[_0x48d689(0x43f)]?_0x1f9a6c['B'][_0x48d689(0x2d8)](_0xdc0e9c,this[_0x48d689(0x588)][_0x48d689(0x185)]):_0xdc0e9c),_0x41f32c[_0x48d689(0xca4)]=_0x3656a3,_0x41f32c[_0x48d689(0x43d)]=_0xdc0e9c,_0x41f32c[_0x48d689(0x5ac)]=!0x1,_0x41f32c['generateMipMaps']=_0x551f20,_0x41f32c[_0x48d689(0xcfe)]=_0x23095c,this[_0x48d689(0xc57)](_0x23095c,_0x41f32c),this[_0x48d689(0x7d5)][_0x48d689(0x83f)](_0x41f32c),_0x41f32c;},_0x1f9a6c['B'][_0x32fbea(0x9ed)][_0x32fbea(0x31d)]=function(_0x5d826d,_0x39b550,_0x1598e3,_0x303dc2=!0x1,_0x40df2e,_0x323888=!0x1,_0x5a870b){var _0x59d394=_0x32fbea;if(_0x5d826d){const _0x41b8db=this['_gl'];var _0xecc77d=_0x41b8db[_0x59d394(0x4db)],_0x323888=this[_0x59d394(0x4d0)](_0xecc77d,_0x5d826d,!0x0,_0x323888),_0x1598e3=(this[_0x59d394(0x650)](void 0x0===_0x1598e3?_0x5d826d[_0x59d394(0xb9a)]:_0x1598e3),_0x303dc2&&_0x41b8db[_0x59d394(0xc50)](_0x41b8db[_0x59d394(0x3ed)],0x1),this['_getWebGLTextureType'](_0x5d826d[_0x59d394(0x5da)])),_0x40df2e=this[_0x59d394(0x441)](_0x40df2e||_0x5d826d[_0x59d394(0x808)]),_0x53839c=this['_getRGBABufferInternalSizedFormat'](_0x5d826d[_0x59d394(0x5da)],_0x40df2e);_0x41b8db['texImage2D'](_0xecc77d,0x0,_0x53839c,_0x40df2e,_0x1598e3,_0x39b550),_0x5d826d['generateMipMaps']&&_0x41b8db[_0x59d394(0x20e)](_0xecc77d),_0x323888||this[_0x59d394(0x4d0)](_0xecc77d,null),_0x303dc2&&_0x41b8db['pixelStorei'](_0x41b8db[_0x59d394(0x3ed)],0x0),_0x5d826d['isReady']=!0x0;}};},0x64df:(_0x2ff0f6,_0x374b9e,_0xa4b5d5)=>{var _0x361086=a6_0x1e64fa;_0xa4b5d5=_0xa4b5d5(0x202a),(_0xa4b5d5['B'][_0x361086(0x9ed)][_0x361086(0x707)]=function(_0x5b54ac){return null;},_0xa4b5d5['B']['prototype'][_0x361086(0x97d)]=function(_0x3a3bcd,_0x521784){var _0x3191de=_0x361086;throw new Error(_0x3191de(0x66a));});},0x39f0:(_0x7614bf,_0x43d3eb,_0x1d4e5c)=>{var _0x3aaad1=a6_0x1e64fa,_0x34fd1c=_0x1d4e5c(0x25b1),_0x3b1048=_0x1d4e5c(0x10ea4),_0x37b36a=_0x1d4e5c(0x77a5),_0x1d4e5c=_0x1d4e5c(0x202a);_0x1d4e5c['B'][_0x3aaad1(0x9ed)][_0x3aaad1(0x8ce)]=function(){var _0x31f863=this['_gl'];this['bindAttachments']([_0x31f863['BACK']]);},_0x1d4e5c['B']['prototype'][_0x3aaad1(0x7ea)]=function(){var _0x56bd2c=_0x3aaad1,_0x5e9fa0=this[_0x56bd2c(0x8a0)];this[_0x56bd2c(0x55e)]([_0x5e9fa0['COLOR_ATTACHMENT0']]);},_0x1d4e5c['B'][_0x3aaad1(0x9ed)][_0x3aaad1(0x3d2)]=function(_0x8fde4c){var _0x45882b=_0x3aaad1,_0x58f854=this[_0x45882b(0x8a0)];const _0x206e1f=[];for(let _0x1b734d=0x0;_0x1b734d<_0x8fde4c[_0x45882b(0x3ef)];_0x1b734d++)_0x8fde4c[_0x1b734d]?_0x206e1f[_0x45882b(0x83f)](_0x58f854[_0x45882b(0x801)+_0x1b734d]):_0x206e1f[_0x45882b(0x83f)](_0x58f854[_0x45882b(0x6c9)]);return _0x206e1f;},_0x1d4e5c['B'][_0x3aaad1(0x9ed)][_0x3aaad1(0x55e)]=function(_0x15f27a){var _0x550d71=_0x3aaad1;const _0x15fd74=this['_gl'];_0x15fd74[_0x550d71(0x2b5)](_0x15f27a);},_0x1d4e5c['B'][_0x3aaad1(0x9ed)][_0x3aaad1(0x788)]=function(_0x191829,_0x1fe95b=!0x1,_0x470d08){var _0x4e3fb5=_0x3aaad1;this[_0x4e3fb5(0x2ce)]=null;const _0x192458=this['_gl'],_0x362a0b=_0x191829[_0x4e3fb5(0x878)];var _0x2ed778=_0x362a0b[_0x4e3fb5(0x3ef)];if(_0x191829[_0x4e3fb5(0x2f1)]){_0x192458[_0x4e3fb5(0xc47)](_0x192458[_0x4e3fb5(0x888)],_0x191829[_0x4e3fb5(0x2f1)]),_0x192458[_0x4e3fb5(0xc47)](_0x192458[_0x4e3fb5(0xa2b)],_0x191829[_0x4e3fb5(0x75e)]);for(let _0x314512=0x0;_0x314512<_0x2ed778;_0x314512++){var _0x1063c2=_0x191829[_0x4e3fb5(0x80a)][_0x314512];for(let _0x1a0361=0x0;_0x1a0361<_0x2ed778;_0x1a0361++)_0x362a0b[_0x1a0361]=_0x192458[_0x4e3fb5(0x6c9)];_0x362a0b[_0x314512]=_0x192458[0x1<this[_0x4e3fb5(0x41b)]?_0x4e3fb5(0x801)+_0x314512:_0x4e3fb5(0x801)+_0x314512+_0x4e3fb5(0x8a6)],_0x192458[_0x4e3fb5(0xa76)](_0x362a0b[_0x314512]),_0x192458[_0x4e3fb5(0x2b5)](_0x362a0b),_0x192458[_0x4e3fb5(0xc9c)](0x0,0x0,_0x1063c2[_0x4e3fb5(0xca4)],_0x1063c2['height'],0x0,0x0,_0x1063c2[_0x4e3fb5(0xca4)],_0x1063c2[_0x4e3fb5(0x43d)],_0x192458[_0x4e3fb5(0x141)],_0x192458[_0x4e3fb5(0x355)]);}for(let _0x2a2029=0x0;_0x2a2029<_0x2ed778;_0x2a2029++)_0x362a0b[_0x2a2029]=_0x192458[0x1<this[_0x4e3fb5(0x41b)]?_0x4e3fb5(0x801)+_0x2a2029:_0x4e3fb5(0x801)+_0x2a2029+'_WEBGL'];_0x192458['drawBuffers'](_0x362a0b);}for(let _0x4d682f=0x0;_0x4d682f<_0x2ed778;_0x4d682f++){var _0x50729e=_0x191829[_0x4e3fb5(0x80a)][_0x4d682f];null==_0x50729e||!_0x50729e[_0x4e3fb5(0x2c8)]||_0x1fe95b||_0x50729e[_0x4e3fb5(0x144)]||(this['_bindTextureDirectly'](_0x192458[_0x4e3fb5(0x4db)],_0x50729e,!0x0),_0x192458[_0x4e3fb5(0x20e)](_0x192458[_0x4e3fb5(0x4db)]),this[_0x4e3fb5(0x4d0)](_0x192458[_0x4e3fb5(0x4db)],null));}_0x470d08&&(_0x191829[_0x4e3fb5(0x2f1)]&&this[_0x4e3fb5(0xa4b)](_0x191829[_0x4e3fb5(0x75e)]),_0x470d08()),this[_0x4e3fb5(0xa4b)](null);},_0x1d4e5c['B']['prototype'][_0x3aaad1(0x9d8)]=function(_0x15bfb4,_0x50b385,_0x4a4bb0=!0x0){var _0x1403f8=_0x3aaad1;let _0x351035=!0x1,_0x4005b9=!0x0,_0x54cb11=!0x1,_0x33749c=!0x1,_0x330633=_0x37b36a['g'][_0x1403f8(0xa44)],_0x1d486d=0x1;var _0x2557c2=_0x37b36a['g'][_0x1403f8(0xc79)],_0x1d8d9d=_0x37b36a['g'][_0x1403f8(0xb6b)],_0x5355e6=_0x37b36a['g'][_0x1403f8(0x86c)],_0x53ee08=_0x37b36a['g']['TEXTURE_2D'];let _0x45a467=new Array(),_0x5c9587=new Array(),_0xc7a90f=new Array(),_0x57c165=new Array(),_0x15780b=new Array(),_0x223331=new Array(),_0x46cb45=new Array(),_0x4c2bd8=new Array();const _0x23ed5b=this[_0x1403f8(0xa7c)](!0x0,!0x1,_0x15bfb4),_0x59cba8=(void 0x0!==_0x50b385&&(_0x351035=void 0x0!==_0x50b385['generateMipMaps']&&_0x50b385[_0x1403f8(0x2c8)],_0x4005b9=void 0x0===_0x50b385[_0x1403f8(0xbc3)]||_0x50b385[_0x1403f8(0xbc3)],_0x54cb11=void 0x0!==_0x50b385['generateStencilBuffer']&&_0x50b385[_0x1403f8(0xc3a)],_0x33749c=void 0x0!==_0x50b385[_0x1403f8(0x219)]&&_0x50b385[_0x1403f8(0x219)],_0x1d486d=_0x50b385[_0x1403f8(0x818)]||0x1,_0x50b385['types']&&(_0x45a467=_0x50b385[_0x1403f8(0x552)]),_0x50b385['samplingModes']&&(_0x5c9587=_0x50b385[_0x1403f8(0xc01)]),_0x50b385[_0x1403f8(0x184)]&&(_0xc7a90f=_0x50b385[_0x1403f8(0x184)]),_0x50b385[_0x1403f8(0x2b1)]&&(_0x57c165=_0x50b385[_0x1403f8(0x2b1)]),_0x50b385[_0x1403f8(0x5f7)]&&(_0x15780b=_0x50b385[_0x1403f8(0x5f7)]),_0x50b385['faceIndex']&&(_0x223331=_0x50b385[_0x1403f8(0x9e4)]),_0x50b385[_0x1403f8(0x1f1)]&&(_0x46cb45=_0x50b385[_0x1403f8(0x1f1)]),_0x50b385[_0x1403f8(0x94e)]&&(_0x4c2bd8=_0x50b385[_0x1403f8(0x94e)]),0x1<this[_0x1403f8(0x41b)]&&(_0x50b385[_0x1403f8(0x4d1)]===_0x37b36a['g']['TEXTUREFORMAT_DEPTH24_STENCIL8']||_0x50b385[_0x1403f8(0x4d1)]===_0x37b36a['g'][_0x1403f8(0xd0a)]||_0x50b385['depthTextureFormat']===_0x37b36a['g'][_0x1403f8(0x248)]||_0x50b385['depthTextureFormat']===_0x37b36a['g']['TEXTUREFORMAT_DEPTH32_FLOAT']||_0x50b385[_0x1403f8(0x4d1)]===_0x37b36a['g']['TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8'])&&(_0x330633=_0x50b385[_0x1403f8(0x4d1)])),this[_0x1403f8(0x8a0)]);var _0x2f7ad2=_0x59cba8[_0x1403f8(0x976)](),_0x4e1d58=(this[_0x1403f8(0xa4b)](_0x2f7ad2),_0x15bfb4[_0x1403f8(0xca4)]||_0x15bfb4),_0x5af0e5=_0x15bfb4[_0x1403f8(0x43d)]||_0x15bfb4;const _0x2561e5=[],_0xdfccad=[];_0x15bfb4=0x1<this[_0x1403f8(0x41b)]&&_0x33749c&&(_0x50b385[_0x1403f8(0x4d1)]===_0x37b36a['g'][_0x1403f8(0xb99)]||_0x50b385[_0x1403f8(0x4d1)]===_0x37b36a['g'][_0x1403f8(0xd0a)]||_0x50b385['depthTextureFormat']===_0x37b36a['g']['TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8']),_0x50b385=this['_setupFramebufferDepthAttachments'](!_0x15bfb4&&_0x54cb11,!_0x33749c&&_0x4005b9,_0x4e1d58,_0x5af0e5),(_0x23ed5b[_0x1403f8(0x75e)]=_0x2f7ad2,_0x23ed5b['_depthStencilBuffer']=_0x50b385,_0x23ed5b['_generateDepthBuffer']=!_0x33749c&&_0x4005b9,_0x23ed5b[_0x1403f8(0x713)]=!_0x15bfb4&&_0x54cb11,_0x23ed5b['_attachments']=_0xdfccad);for(let _0x93e746=0x0;_0x93e746<_0x1d486d;_0x93e746++){let _0x16d7cf=_0x5c9587[_0x93e746]||_0x1d8d9d,_0x14ad5f=_0x45a467[_0x93e746]||_0x2557c2;var _0xf78061=_0xc7a90f[_0x93e746]||!0x1,_0x384759=_0x57c165[_0x93e746]||_0x5355e6,_0x461d55=_0x15780b[_0x93e746]||_0x53ee08,_0x3e6675=null!=(_0x3e6675=_0x4c2bd8[_0x93e746])?_0x3e6675:0x1,_0x426321=((_0x14ad5f===_0x37b36a['g'][_0x1403f8(0x67a)]&&!this[_0x1403f8(0x588)][_0x1403f8(0xb63)]||_0x14ad5f===_0x37b36a['g'][_0x1403f8(0x98a)]&&!this['_caps']['textureHalfFloatLinearFiltering'])&&(_0x16d7cf=_0x37b36a['g']['TEXTURE_NEAREST_SAMPLINGMODE']),this['_getSamplingParameters'](_0x16d7cf,_0x351035)),_0x180257=(_0x14ad5f!==_0x37b36a['g']['TEXTURETYPE_FLOAT']||this['_caps']['textureFloat']||(_0x14ad5f=_0x37b36a['g'][_0x1403f8(0xc79)],_0x3b1048['Y'][_0x1403f8(0x636)](_0x1403f8(0x2b4))),_0xf78061=_0xf78061&&this[_0x1403f8(0x588)]['supportSRGBBuffers']&&(0x1<this[_0x1403f8(0x41b)]||this['isWebGPU']),0x1<this['webGLVersion']),_0x3216a5=_0x59cba8[_0x180257?_0x1403f8(0x801)+_0x93e746:_0x1403f8(0x801)+_0x93e746+_0x1403f8(0x8a6)];if(_0xdfccad[_0x1403f8(0x83f)](_0x3216a5),-0x1!==_0x461d55){const _0x1b29f5=new _0x34fd1c['l'](this,_0x34fd1c['S'][_0x1403f8(0x6bd)]);_0x2561e5[_0x93e746]=_0x1b29f5,_0x59cba8[_0x1403f8(0x80c)](_0x59cba8[_0x1403f8(0x54a)+_0x93e746]),_0x59cba8[_0x1403f8(0x442)](_0x461d55,_0x1b29f5[_0x1403f8(0xaf0)][_0x1403f8(0x57b)]),_0x59cba8[_0x1403f8(0xd25)](_0x461d55,_0x59cba8[_0x1403f8(0x77c)],_0x426321['mag']),_0x59cba8[_0x1403f8(0xd25)](_0x461d55,_0x59cba8[_0x1403f8(0x9a9)],_0x426321[_0x1403f8(0xbab)]),_0x59cba8['texParameteri'](_0x461d55,_0x59cba8[_0x1403f8(0xaf9)],_0x59cba8[_0x1403f8(0xa36)]),_0x59cba8[_0x1403f8(0xd25)](_0x461d55,_0x59cba8[_0x1403f8(0xa47)],_0x59cba8[_0x1403f8(0xa36)]);var _0x19123d=this[_0x1403f8(0xa3a)](_0x14ad5f,_0x384759,_0xf78061),_0x47fe68=this[_0x1403f8(0x441)](_0x384759),_0x33ee4d=this[_0x1403f8(0x57c)](_0x14ad5f);if(!_0x180257||_0x461d55!==_0x37b36a['g']['TEXTURE_2D_ARRAY']&&_0x461d55!==_0x37b36a['g'][_0x1403f8(0x66d)]){if(_0x461d55===_0x37b36a['g'][_0x1403f8(0x52a)]){for(let _0x2bd7d9=0x0;_0x2bd7d9<0x6;_0x2bd7d9++)_0x59cba8['texImage2D'](_0x59cba8['TEXTURE_CUBE_MAP_POSITIVE_X']+_0x2bd7d9,0x0,_0x19123d,_0x4e1d58,_0x5af0e5,0x0,_0x47fe68,_0x33ee4d,null);_0x1b29f5['isCube']=!0x0;}else _0x59cba8[_0x1403f8(0x83c)](_0x59cba8[_0x1403f8(0x4db)],0x0,_0x19123d,_0x4e1d58,_0x5af0e5,0x0,_0x47fe68,_0x33ee4d,null);}else _0x461d55===_0x37b36a['g'][_0x1403f8(0x42f)]?_0x1b29f5[_0x1403f8(0x32b)]=!0x0:_0x1b29f5['is3D']=!0x0,_0x1b29f5['baseDepth']=_0x1b29f5['depth']=_0x3e6675,_0x59cba8[_0x1403f8(0xc0c)](_0x461d55,0x0,_0x19123d,_0x4e1d58,_0x5af0e5,_0x3e6675,0x0,_0x47fe68,_0x33ee4d,null);_0x351035&&_0x59cba8[_0x1403f8(0x20e)](_0x461d55),this[_0x1403f8(0x4d0)](_0x461d55,null),_0x1b29f5[_0x1403f8(0x863)]=_0x4e1d58,_0x1b29f5[_0x1403f8(0x122)]=_0x5af0e5,_0x1b29f5[_0x1403f8(0xca4)]=_0x4e1d58,_0x1b29f5[_0x1403f8(0x43d)]=_0x5af0e5,_0x1b29f5[_0x1403f8(0x5ac)]=!0x0,_0x1b29f5[_0x1403f8(0x993)]=0x1,_0x1b29f5[_0x1403f8(0x2c8)]=_0x351035,_0x1b29f5[_0x1403f8(0xcfe)]=_0x16d7cf,_0x1b29f5[_0x1403f8(0x5da)]=_0x14ad5f,_0x1b29f5[_0x1403f8(0x842)]=_0xf78061,_0x1b29f5[_0x1403f8(0x808)]=_0x384759,this[_0x1403f8(0x7d5)][_0x1403f8(0x83f)](_0x1b29f5);}}if(_0x33749c&&this[_0x1403f8(0x588)][_0x1403f8(0x6e8)]){const _0x3d7077=new _0x34fd1c['l'](this,_0x34fd1c['S'][_0x1403f8(0x93e)]);let _0x455460=_0x37b36a['g'][_0x1403f8(0xbcd)],_0x511719=_0x59cba8[_0x1403f8(0x7a7)],_0x550ebb=_0x59cba8[_0x1403f8(0x30d)],_0xc94b5a=_0x59cba8[_0x1403f8(0xc38)],_0x47eae9=_0x59cba8[_0x1403f8(0xb53)];this[_0x1403f8(0x41b)]<0x2?_0x511719=_0x59cba8[_0x1403f8(0x30d)]:_0x330633===_0x37b36a['g'][_0x1403f8(0x47b)]?(_0x455460=_0x37b36a['g'][_0x1403f8(0x67a)],_0xc94b5a=_0x59cba8[_0x1403f8(0x30c)],_0x511719=_0x59cba8[_0x1403f8(0x870)]):_0x330633===_0x37b36a['g'][_0x1403f8(0xb51)]?(_0x455460=_0x37b36a['g'][_0x1403f8(0xc79)],_0xc94b5a=_0x59cba8[_0x1403f8(0x635)],_0x511719=_0x59cba8['DEPTH32F_STENCIL8'],_0x550ebb=_0x59cba8[_0x1403f8(0x7fd)],_0x47eae9=_0x59cba8[_0x1403f8(0x33f)]):_0x330633===_0x37b36a['g'][_0x1403f8(0x248)]?(_0x455460=_0x37b36a['g'][_0x1403f8(0xc79)],_0xc94b5a=_0x59cba8['UNSIGNED_INT'],_0x511719=_0x59cba8['DEPTH_COMPONENT24'],_0x47eae9=_0x59cba8[_0x1403f8(0xb53)]):_0x330633!==_0x37b36a['g'][_0x1403f8(0xb99)]&&_0x330633!==_0x37b36a['g'][_0x1403f8(0xd0a)]||(_0x455460=_0x37b36a['g'][_0x1403f8(0x797)],_0xc94b5a=_0x59cba8[_0x1403f8(0x2a3)],_0x511719=_0x59cba8[_0x1403f8(0x6df)],_0x550ebb=_0x59cba8[_0x1403f8(0x7fd)],_0x47eae9=_0x59cba8[_0x1403f8(0x33f)]),_0x59cba8[_0x1403f8(0x80c)](_0x59cba8[_0x1403f8(0x340)]),_0x59cba8['bindTexture'](_0x59cba8[_0x1403f8(0x4db)],_0x3d7077[_0x1403f8(0xaf0)]['underlyingResource']),_0x59cba8[_0x1403f8(0xd25)](_0x59cba8[_0x1403f8(0x4db)],_0x59cba8['TEXTURE_MAG_FILTER'],_0x59cba8[_0x1403f8(0x355)]),_0x59cba8['texParameteri'](_0x59cba8['TEXTURE_2D'],_0x59cba8[_0x1403f8(0x9a9)],_0x59cba8['NEAREST']),_0x59cba8[_0x1403f8(0xd25)](_0x59cba8['TEXTURE_2D'],_0x59cba8[_0x1403f8(0xaf9)],_0x59cba8[_0x1403f8(0xa36)]),_0x59cba8[_0x1403f8(0xd25)](_0x59cba8['TEXTURE_2D'],_0x59cba8[_0x1403f8(0xa47)],_0x59cba8[_0x1403f8(0xa36)]),_0x59cba8[_0x1403f8(0x83c)](_0x59cba8[_0x1403f8(0x4db)],0x0,_0x511719,_0x4e1d58,_0x5af0e5,0x0,_0x550ebb,_0xc94b5a,null),_0x59cba8[_0x1403f8(0x411)](_0x59cba8[_0x1403f8(0x3f0)],_0x47eae9,_0x59cba8['TEXTURE_2D'],_0x3d7077[_0x1403f8(0xaf0)][_0x1403f8(0x57b)],0x0),_0x3d7077[_0x1403f8(0x863)]=_0x4e1d58,_0x3d7077['baseHeight']=_0x5af0e5,_0x3d7077[_0x1403f8(0xca4)]=_0x4e1d58,_0x3d7077['height']=_0x5af0e5,_0x3d7077[_0x1403f8(0x5ac)]=!0x0,_0x3d7077[_0x1403f8(0x993)]=0x1,_0x3d7077[_0x1403f8(0x2c8)]=_0x351035,_0x3d7077[_0x1403f8(0xcfe)]=_0x37b36a['g'][_0x1403f8(0x8c6)],_0x3d7077[_0x1403f8(0x808)]=_0x330633,_0x3d7077[_0x1403f8(0x5da)]=_0x455460,_0x2561e5[_0x1d486d]=_0x3d7077,this[_0x1403f8(0x7d5)][_0x1403f8(0x83f)](_0x3d7077);}return _0x23ed5b[_0x1403f8(0x782)](_0x2561e5),_0x4a4bb0&&_0x59cba8['drawBuffers'](_0xdfccad),this['_bindUnboundFramebuffer'](null),_0x23ed5b[_0x1403f8(0x177)](_0x46cb45,_0x223331),this[_0x1403f8(0x955)](),_0x23ed5b;},_0x1d4e5c['B'][_0x3aaad1(0x9ed)][_0x3aaad1(0xd0d)]=function(_0x13c942,_0x3bbd94,_0x1a2824=!0x0){var _0x238f2a=_0x3aaad1;if(this['webGLVersion']<0x2||!_0x13c942||!_0x13c942[_0x238f2a(0x6f7)])return 0x1;if(_0x13c942[_0x238f2a(0x993)]===_0x3bbd94)return _0x3bbd94;var _0x52fa7a=_0x13c942[_0x238f2a(0x878)][_0x238f2a(0x3ef)];if(0x0===_0x52fa7a)return 0x1;const _0x135f22=this[_0x238f2a(0x8a0)];_0x3bbd94=Math[_0x238f2a(0xbab)](_0x3bbd94,this['getCaps']()[_0x238f2a(0x84e)]);var _0x44f5fd=!!_0x13c942[_0x238f2a(0x466)];if(_0x44f5fd&&(_0x135f22[_0x238f2a(0x2f7)](_0x13c942[_0x238f2a(0x466)]),_0x13c942[_0x238f2a(0x466)]=null),_0x13c942[_0x238f2a(0x2f1)]&&(_0x135f22['deleteFramebuffer'](_0x13c942['_MSAAFramebuffer']),_0x13c942[_0x238f2a(0x2f1)]=null),0x1<_0x3bbd94&&_0x238f2a(0x97c)==typeof _0x135f22[_0x238f2a(0x259)]){var _0x46481c=_0x135f22[_0x238f2a(0x976)]();if(!_0x46481c)throw new Error(_0x238f2a(0x5e6));_0x13c942[_0x238f2a(0x2f1)]=_0x46481c,this[_0x238f2a(0xa4b)](_0x46481c);const _0x251e2f=[];for(let _0x32c705=0x0;_0x32c705<_0x52fa7a;_0x32c705++){const _0x3734e7=_0x13c942[_0x238f2a(0x80a)][_0x32c705][_0x238f2a(0xaf0)];_0x3734e7[_0x238f2a(0xa4f)]();}for(let _0x48f0e9=0x0;_0x48f0e9<_0x52fa7a;_0x48f0e9++){const _0x21f3d0=_0x13c942['textures'][_0x48f0e9],_0x3728b5=_0x21f3d0['_hardwareTexture'];var _0x3a7e26=_0x135f22[0x1<this[_0x238f2a(0x41b)]?_0x238f2a(0x801)+_0x48f0e9:_0x238f2a(0x801)+_0x48f0e9+'_WEBGL'],_0x18eefd=this['_createRenderBuffer'](_0x21f3d0[_0x238f2a(0xca4)],_0x21f3d0[_0x238f2a(0x43d)],_0x3bbd94,-0x1,this['_getRGBAMultiSampleBufferFormat'](_0x21f3d0[_0x238f2a(0x5da)]),_0x3a7e26);if(!_0x18eefd)throw new Error(_0x238f2a(0x5e6));_0x3728b5[_0x238f2a(0x5d3)](_0x18eefd),_0x21f3d0[_0x238f2a(0x993)]=_0x3bbd94,_0x251e2f['push'](_0x3a7e26);}_0x1a2824&&_0x135f22[_0x238f2a(0x2b5)](_0x251e2f);}else this['_bindUnboundFramebuffer'](_0x13c942['_framebuffer']);return _0x44f5fd&&(_0x13c942['_depthStencilBuffer']=this['_setupFramebufferDepthAttachments'](_0x13c942[_0x238f2a(0x713)],_0x13c942[_0x238f2a(0x1b6)],_0x13c942['texture'][_0x238f2a(0xca4)],_0x13c942[_0x238f2a(0x6f7)]['height'],_0x3bbd94)),this[_0x238f2a(0xa4b)](null),_0x3bbd94;};},0x17cc7:(_0x543fa0,_0x4f675b,_0x49ff80)=>{var _0xff9cef=a6_0x1e64fa,_0x5b05a1=_0x49ff80(0xdef7),_0x5b20ea=_0x49ff80(0xee04),_0x4fa448=_0x49ff80(0x1446b),_0x194d13=_0x49ff80(0x25b1),_0x2957ee=_0x49ff80(0x9fd1),_0x48a563=_0x49ff80(0x149c5),_0x2bd14a=_0x49ff80(0x15556),_0x111a8f=_0x49ff80(0x126cd);function _0x29b648(_0x56ec67,_0xd46a00){var _0x4c59f3=a6_0x2304;const _0x564b63=new _0x48a563['M'](_0x56ec67,void 0x0,!0x0,_0xd46a00);return _0x564b63[_0x4c59f3(0x1d4)](_0x4c59f3(0xb3f),0x10),_0x564b63[_0x4c59f3(0x1d4)](_0x4c59f3(0x902),0x10),_0x564b63[_0x4c59f3(0x1d4)](_0x4c59f3(0x481),0x10),_0x564b63['addUniform']('projection',0x10),_0x564b63[_0x4c59f3(0x1d4)](_0x4c59f3(0x540),0x4),_0x564b63;}_0x5b20ea['D'][_0xff9cef(0x9ed)][_0xff9cef(0xbc6)]=function(_0xa4c440,_0x4245ab){var _0x5bb69e=_0xff9cef;const _0x29d0be=this[_0x5bb69e(0x8a0)];if(!this['getCaps']()[_0x5bb69e(0x495)])throw _0x5bb69e(0x930);const _0x10deb4=this['_createHardwareRenderTargetWrapper'](!0x1,!0x1,{'width':_0xa4c440,'height':_0x4245ab}),_0x42f9cd=(_0x10deb4[_0x5bb69e(0x75e)]=_0x29d0be[_0x5bb69e(0x976)](),new _0x194d13['l'](this,_0x194d13['S'][_0x5bb69e(0x1cb)],!0x0));return _0x42f9cd[_0x5bb69e(0xca4)]=_0xa4c440,_0x42f9cd[_0x5bb69e(0x43d)]=_0x4245ab,_0x42f9cd[_0x5bb69e(0xc20)]=!0x0,_0x10deb4[_0x5bb69e(0xa6b)]=_0x29d0be[_0x5bb69e(0x550)](),_0x29d0be[_0x5bb69e(0x442)](_0x29d0be['TEXTURE_2D_ARRAY'],_0x10deb4[_0x5bb69e(0xa6b)]),_0x29d0be[_0x5bb69e(0x884)](_0x29d0be[_0x5bb69e(0x42f)],0x1,_0x29d0be['RGBA8'],_0xa4c440,_0x4245ab,0x2),_0x10deb4['_depthStencilTextureArray']=_0x29d0be['createTexture'](),_0x29d0be[_0x5bb69e(0x442)](_0x29d0be[_0x5bb69e(0x42f)],_0x10deb4[_0x5bb69e(0xb95)]),_0x29d0be['texStorage3D'](_0x29d0be[_0x5bb69e(0x42f)],0x1,_0x29d0be[_0x5bb69e(0x6df)],_0xa4c440,_0x4245ab,0x2),_0x42f9cd[_0x5bb69e(0x5ac)]=!0x0,_0x10deb4[_0x5bb69e(0x782)](_0x42f9cd),_0x10deb4[_0x5bb69e(0x27d)]=_0x42f9cd,_0x10deb4;},_0x5b20ea['D'][_0xff9cef(0x9ed)][_0xff9cef(0xa2c)]=function(_0x5db1bb){var _0x4af277=_0xff9cef;const _0x13827a=this[_0x4af277(0x8a0)],_0x4f8749=this[_0x4af277(0x33a)]()[_0x4af277(0x4a6)]||this['getCaps']()[_0x4af277(0x495)];if(this[_0x4af277(0xc47)](_0x5db1bb,void 0x0,void 0x0,void 0x0,!0x0),_0x13827a[_0x4af277(0xc47)](_0x13827a[_0x4af277(0xa2b)],_0x5db1bb['_framebuffer']),!_0x5db1bb[_0x4af277(0xa6b)]||!_0x5db1bb['_depthStencilTextureArray'])throw _0x4af277(0x71c);this[_0x4af277(0x33a)]()[_0x4af277(0x4a6)]?(_0x4f8749[_0x4af277(0x44e)](_0x13827a[_0x4af277(0xa2b)],_0x13827a[_0x4af277(0xc1a)],_0x5db1bb[_0x4af277(0xa6b)],0x0,_0x5db1bb[_0x4af277(0x993)],0x0,0x2),_0x4f8749[_0x4af277(0x44e)](_0x13827a[_0x4af277(0xa2b)],_0x13827a[_0x4af277(0x33f)],_0x5db1bb['_depthStencilTextureArray'],0x0,_0x5db1bb[_0x4af277(0x993)],0x0,0x2)):(_0x4f8749[_0x4af277(0x756)](_0x13827a[_0x4af277(0xa2b)],_0x13827a[_0x4af277(0xc1a)],_0x5db1bb[_0x4af277(0xa6b)],0x0,0x0,0x2),_0x4f8749[_0x4af277(0x756)](_0x13827a[_0x4af277(0xa2b)],_0x13827a[_0x4af277(0x33f)],_0x5db1bb[_0x4af277(0xb95)],0x0,0x0,0x2));},_0x5b05a1['V'][_0xff9cef(0x9ed)][_0xff9cef(0x1b9)]=!0x1,_0x5b05a1['V'][_0xff9cef(0x9ed)]['_multiviewTexture']=null,_0x5b05a1['V'][_0xff9cef(0x9ed)][_0xff9cef(0x13d)]=function(_0x235292,_0x8465ec){var _0x482df4=_0xff9cef;this[_0x482df4(0x98b)]?this[_0x482df4(0x98b)]['getRenderWidth']()==_0x235292&&this[_0x482df4(0x98b)][_0x482df4(0xc58)]()==_0x8465ec||(this['_multiviewTexture']['dispose'](),this[_0x482df4(0x98b)]=new _0x2bd14a['x'](this[_0x482df4(0x9fa)](),{'width':_0x235292,'height':_0x8465ec})):this['_multiviewTexture']=new _0x2bd14a['x'](this[_0x482df4(0x9fa)](),{'width':_0x235292,'height':_0x8465ec});};const _0x56ed66=_0x4fa448['x'][_0xff9cef(0x9ed)][_0xff9cef(0x14f)];_0x4fa448['x']['prototype'][_0xff9cef(0x198)]=_0x2957ee['y3']['Zero'](),_0x4fa448['x'][_0xff9cef(0x9ed)][_0xff9cef(0x6bb)]=null,_0x4fa448['x'][_0xff9cef(0x9ed)][_0xff9cef(0xa1b)]=function(){var _0x395367=_0xff9cef;this['_multiviewSceneUbo']=_0x29b648(this['getEngine'](),_0x395367(0xb9e));},_0x4fa448['x'][_0xff9cef(0x9ed)]['createSceneUniformBuffer']=function(_0xd2663d){var _0x31f2d1=_0xff9cef;return this[_0x31f2d1(0x6bb)]?_0x29b648(this[_0x31f2d1(0xcde)](),_0xd2663d):_0x56ed66['bind'](this)(_0xd2663d);},_0x4fa448['x'][_0xff9cef(0x9ed)][_0xff9cef(0xa0c)]=function(_0x385100,_0x2c1ceb){var _0xe2ba64=_0xff9cef;_0x385100&&_0x2c1ceb&&_0x385100[_0xe2ba64(0x3a7)](_0x2c1ceb,this['_transformMatrixR']),_0x385100&&_0x2c1ceb&&(_0x385100[_0xe2ba64(0x3a7)](_0x2c1ceb,_0x2957ee['jp'][_0xe2ba64(0x830)][0x0]),_0x111a8f['i'][_0xe2ba64(0x3bf)](_0x2957ee['jp']['Matrix'][0x0],this['_frustumPlanes'][0x3])),this[_0xe2ba64(0x6bb)]&&(this[_0xe2ba64(0x6bb)][_0xe2ba64(0x45c)](_0xe2ba64(0xb3f),this[_0xe2ba64(0x70b)]()),this[_0xe2ba64(0x6bb)][_0xe2ba64(0x45c)]('viewProjectionR',this[_0xe2ba64(0x198)]),this['_multiviewSceneUbo']['updateMatrix'](_0xe2ba64(0x481),this[_0xe2ba64(0x18a)]),this['_multiviewSceneUbo']['updateMatrix']('projection',this[_0xe2ba64(0x8e1)]));},_0x4fa448['x']['prototype']['_renderMultiviewToSingleView']=function(_0x5ec354){var _0x884034=_0xff9cef;_0x5ec354[_0x884034(0x13d)](_0x5ec354['_rigPostProcess']&&_0x5ec354['_rigPostProcess']&&0x0<_0x5ec354[_0x884034(0xc9a)][_0x884034(0xca4)]?_0x5ec354['_rigPostProcess'][_0x884034(0xca4)]:this[_0x884034(0xcde)]()[_0x884034(0x73a)](!0x0),_0x5ec354['_rigPostProcess']&&_0x5ec354[_0x884034(0xc9a)]&&0x0<_0x5ec354[_0x884034(0xc9a)][_0x884034(0x43d)]?_0x5ec354[_0x884034(0xc9a)][_0x884034(0x43d)]:this['getEngine']()[_0x884034(0xc58)](!0x0)),this[_0x884034(0x6bb)]||this[_0x884034(0xa1b)](),_0x5ec354[_0x884034(0x380)]=_0x5ec354[_0x884034(0x98b)],this[_0x884034(0x43b)](_0x5ec354),_0x5ec354[_0x884034(0x380)]=null;for(let _0x5908ab=0x0;_0x5908ab<_0x5ec354[_0x884034(0x576)][_0x884034(0x3ef)];_0x5908ab++){const _0x3b05ce=this[_0x884034(0xcde)]();this[_0x884034(0x5ba)]=_0x5ec354[_0x884034(0x576)][_0x5908ab],_0x3b05ce['setViewport'](this[_0x884034(0x5ba)][_0x884034(0x978)]),this[_0x884034(0x370)]&&(this[_0x884034(0x370)][_0x884034(0x68f)](),this[_0x884034(0x370)][_0x884034(0xc87)](this[_0x884034(0x5ba)]['isIntermediate']));}};},0x1293:(_0x582a8e,_0x2f8d07,_0x3c845b)=>{var _0xcf165b=a6_0x1e64fa,_0x574ead=_0x3c845b(0x25b1),_0x39ac72=_0x3c845b(0x10ea4),_0x443dd2=_0x3c845b(0xe222),_0x579eb4=_0x3c845b(0x77a5),_0x3c845b=_0x3c845b(0x202a);function _0x5c1bf8(_0xd827ec,_0x431468,_0x33ded6,_0x336b93){var _0x432e43=a6_0x2304;let _0x343c83,_0x3050a7=0x1;_0x336b93===_0x579eb4['g']['TEXTURETYPE_FLOAT']?_0x343c83=new Float32Array(_0x431468*_0x33ded6*0x4):_0x336b93===_0x579eb4['g'][_0x432e43(0x98a)]?(_0x343c83=new Uint16Array(_0x431468*_0x33ded6*0x4),_0x3050a7=0x3c00):_0x343c83=new(_0x336b93===_0x579eb4['g']['TEXTURETYPE_UNSIGNED_INTEGER']?Uint32Array:Uint8Array)(_0x431468*_0x33ded6*0x4);for(let _0x1e3227=0x0;_0x1e3227<_0x431468;_0x1e3227++)for(let _0x304878=0x0;_0x304878<_0x33ded6;_0x304878++){var _0x436a6c=0x3*(_0x304878*_0x431468+_0x1e3227),_0x4c122a=0x4*(_0x304878*_0x431468+_0x1e3227);_0x343c83[0x0+_0x4c122a]=_0xd827ec[0x0+_0x436a6c],_0x343c83[0x1+_0x4c122a]=_0xd827ec[0x1+_0x436a6c],_0x343c83[0x2+_0x4c122a]=_0xd827ec[0x2+_0x436a6c],_0x343c83[0x3+_0x4c122a]=_0x3050a7;}return _0x343c83;}function _0x1aac60(_0x1d8b39){var _0x3eab6b=a6_0x2304;return function(_0x3fbdb8,_0x21b516,_0x2e20dd,_0x1ca5eb,_0x385667,_0x155a48,_0x493b62,_0x5bbd3b,_0x18b65c=null,_0x37c9e3=_0x579eb4['g'][_0x3eab6b(0xc79)]){var _0x28ce13=_0x3eab6b,_0xb18436=_0x1d8b39?this['_gl'][_0x28ce13(0x66d)]:this[_0x28ce13(0x8a0)]['TEXTURE_2D_ARRAY'],_0x4702d5=_0x1d8b39?_0x574ead['S'][_0x28ce13(0xc00)]:_0x574ead['S'][_0x28ce13(0x5b6)];const _0x58110c=new _0x574ead['l'](this,_0x4702d5);return _0x58110c['baseWidth']=_0x21b516,_0x58110c[_0x28ce13(0x122)]=_0x2e20dd,_0x58110c[_0x28ce13(0x892)]=_0x1ca5eb,_0x58110c[_0x28ce13(0xca4)]=_0x21b516,_0x58110c[_0x28ce13(0x43d)]=_0x2e20dd,_0x58110c['depth']=_0x1ca5eb,_0x58110c[_0x28ce13(0x808)]=_0x385667,_0x58110c[_0x28ce13(0x5da)]=_0x37c9e3,_0x58110c[_0x28ce13(0x2c8)]=_0x155a48,_0x58110c[_0x28ce13(0xcfe)]=_0x5bbd3b,_0x1d8b39?_0x58110c[_0x28ce13(0x566)]=!0x0:_0x58110c['is2DArray']=!0x0,this[_0x28ce13(0x37c)]||(_0x58110c[_0x28ce13(0x985)]=_0x3fbdb8),_0x1d8b39?this[_0x28ce13(0x15c)](_0x58110c,_0x3fbdb8,_0x385667,_0x493b62,_0x18b65c,_0x37c9e3):this[_0x28ce13(0xb57)](_0x58110c,_0x3fbdb8,_0x385667,_0x493b62,_0x18b65c,_0x37c9e3),this[_0x28ce13(0x4d0)](_0xb18436,_0x58110c,!0x0),_0x4702d5=this[_0x28ce13(0xbad)](_0x5bbd3b,_0x155a48),(this[_0x28ce13(0x8a0)][_0x28ce13(0xd25)](_0xb18436,this['_gl'][_0x28ce13(0x77c)],_0x4702d5[_0x28ce13(0x32e)]),this[_0x28ce13(0x8a0)][_0x28ce13(0xd25)](_0xb18436,this[_0x28ce13(0x8a0)][_0x28ce13(0x9a9)],_0x4702d5['min']),_0x155a48&&this[_0x28ce13(0x8a0)][_0x28ce13(0x20e)](_0xb18436),this[_0x28ce13(0x4d0)](_0xb18436,null),this['_internalTexturesCache']['push'](_0x58110c),_0x58110c);};}function _0x2eab26(_0x1992bb){var _0x47b1ad=a6_0x2304;return function(_0xdd4cb7,_0x1d512f,_0x4e77f5,_0x168562,_0x5303a5=null,_0x197946=_0x579eb4['g'][_0x47b1ad(0xc79)]){var _0x4cbef5=_0x47b1ad,_0x2c69a6=_0x1992bb?this[_0x4cbef5(0x8a0)][_0x4cbef5(0x66d)]:this[_0x4cbef5(0x8a0)][_0x4cbef5(0x42f)],_0x217266=this[_0x4cbef5(0x57c)](_0x197946),_0x132065=this[_0x4cbef5(0x441)](_0x4e77f5),_0x197946=this[_0x4cbef5(0xa3a)](_0x197946,_0x4e77f5);this[_0x4cbef5(0x4d0)](_0x2c69a6,_0xdd4cb7,!0x0),this[_0x4cbef5(0x650)](void 0x0===_0x168562||!!_0x168562),this[_0x4cbef5(0x37c)]||(_0xdd4cb7[_0x4cbef5(0x985)]=_0x1d512f,_0xdd4cb7[_0x4cbef5(0x808)]=_0x4e77f5,_0xdd4cb7[_0x4cbef5(0xb9a)]=_0x168562,_0xdd4cb7[_0x4cbef5(0x992)]=_0x5303a5),_0xdd4cb7['width']%0x4!=0x0&&this[_0x4cbef5(0x8a0)][_0x4cbef5(0xc50)](this['_gl'][_0x4cbef5(0x39c)],0x1),_0x5303a5&&_0x1d512f?this['_gl'][_0x4cbef5(0xd1d)](_0x2c69a6,0x0,this['getCaps']()[_0x4cbef5(0x5c0)][_0x5303a5],_0xdd4cb7['width'],_0xdd4cb7[_0x4cbef5(0x43d)],_0xdd4cb7[_0x4cbef5(0x4c3)],0x0,_0x1d512f):this[_0x4cbef5(0x8a0)][_0x4cbef5(0xc0c)](_0x2c69a6,0x0,_0x197946,_0xdd4cb7[_0x4cbef5(0xca4)],_0xdd4cb7[_0x4cbef5(0x43d)],_0xdd4cb7[_0x4cbef5(0x4c3)],0x0,_0x132065,_0x217266,_0x1d512f),_0xdd4cb7[_0x4cbef5(0x2c8)]&&this[_0x4cbef5(0x8a0)]['generateMipmap'](_0x2c69a6),this[_0x4cbef5(0x4d0)](_0x2c69a6,null),_0xdd4cb7['isReady']=!0x0;};}_0x3c845b['B'][_0xcf165b(0x9ed)][_0xcf165b(0x348)]=function(_0xf96cdc,_0x2dfc2a,_0xa4f945,_0x42bece,_0x31ab65=null,_0xf7f18b=_0x579eb4['g'][_0xcf165b(0xc79)],_0x5c91d7=!0x1){var _0x158ffa=_0xcf165b,_0x11b239,_0x41604e;_0xf96cdc&&(_0x5c91d7=this[_0x158ffa(0xa3a)](_0xf7f18b,_0xa4f945,_0x5c91d7),_0x11b239=this[_0x158ffa(0x441)](_0xa4f945),_0x41604e=this[_0x158ffa(0x57c)](_0xf7f18b),this['_bindTextureDirectly'](this[_0x158ffa(0x8a0)][_0x158ffa(0x4db)],_0xf96cdc,!0x0),this['_unpackFlipY'](void 0x0===_0x42bece||!!_0x42bece),this[_0x158ffa(0x37c)]||(_0xf96cdc[_0x158ffa(0x985)]=_0x2dfc2a,_0xf96cdc[_0x158ffa(0x808)]=_0xa4f945,_0xf96cdc[_0x158ffa(0x5da)]=_0xf7f18b,_0xf96cdc['invertY']=_0x42bece,_0xf96cdc[_0x158ffa(0x992)]=_0x31ab65),_0xf96cdc[_0x158ffa(0xca4)]%0x4!=0x0&&this[_0x158ffa(0x8a0)][_0x158ffa(0xc50)](this[_0x158ffa(0x8a0)]['UNPACK_ALIGNMENT'],0x1),_0x31ab65&&_0x2dfc2a?this[_0x158ffa(0x8a0)][_0x158ffa(0xcb4)](this[_0x158ffa(0x8a0)][_0x158ffa(0x4db)],0x0,this['getCaps']()[_0x158ffa(0x5c0)][_0x31ab65],_0xf96cdc[_0x158ffa(0xca4)],_0xf96cdc[_0x158ffa(0x43d)],0x0,_0x2dfc2a):this[_0x158ffa(0x8a0)]['texImage2D'](this['_gl'][_0x158ffa(0x4db)],0x0,_0x5c91d7,_0xf96cdc['width'],_0xf96cdc[_0x158ffa(0x43d)],0x0,_0x11b239,_0x41604e,_0x2dfc2a),_0xf96cdc[_0x158ffa(0x2c8)]&&this['_gl'][_0x158ffa(0x20e)](this[_0x158ffa(0x8a0)][_0x158ffa(0x4db)]),this[_0x158ffa(0x4d0)](this[_0x158ffa(0x8a0)][_0x158ffa(0x4db)],null),_0xf96cdc[_0x158ffa(0x5ac)]=!0x0);},_0x3c845b['B'][_0xcf165b(0x9ed)][_0xcf165b(0x413)]=function(_0x388ccb,_0x4698f1,_0x11ecfc,_0x4e9883,_0x23ebaa,_0x4aaf89,_0x10d630,_0x33ecd1=null,_0x4eec7a=_0x579eb4['g'][_0xcf165b(0xc79)],_0x183aa7,_0x57a697=!0x1){var _0xe49fbf=_0xcf165b;const _0x67d7b7=new _0x574ead['l'](this,_0x574ead['S'][_0xe49fbf(0x610)]);return _0x67d7b7[_0xe49fbf(0x863)]=_0x4698f1,_0x67d7b7[_0xe49fbf(0x122)]=_0x11ecfc,_0x67d7b7[_0xe49fbf(0xca4)]=_0x4698f1,_0x67d7b7[_0xe49fbf(0x43d)]=_0x11ecfc,_0x67d7b7[_0xe49fbf(0x808)]=_0x4e9883,_0x67d7b7[_0xe49fbf(0x2c8)]=_0x23ebaa,_0x67d7b7[_0xe49fbf(0xcfe)]=_0x10d630,_0x67d7b7[_0xe49fbf(0xb9a)]=_0x4aaf89,_0x67d7b7[_0xe49fbf(0x992)]=_0x33ecd1,_0x67d7b7[_0xe49fbf(0x5da)]=_0x4eec7a,_0x67d7b7[_0xe49fbf(0x842)]=this[_0xe49fbf(0x294)](_0x57a697,!_0x23ebaa),this[_0xe49fbf(0x37c)]||(_0x67d7b7['_bufferView']=_0x388ccb),this[_0xe49fbf(0x348)](_0x67d7b7,_0x388ccb,_0x4e9883,_0x4aaf89,_0x33ecd1,_0x4eec7a,_0x67d7b7['_useSRGBBuffer']),this[_0xe49fbf(0x4d0)](this[_0xe49fbf(0x8a0)]['TEXTURE_2D'],_0x67d7b7,!0x0),_0x4698f1=this[_0xe49fbf(0xbad)](_0x10d630,_0x23ebaa),(this[_0xe49fbf(0x8a0)]['texParameteri'](this[_0xe49fbf(0x8a0)][_0xe49fbf(0x4db)],this[_0xe49fbf(0x8a0)]['TEXTURE_MAG_FILTER'],_0x4698f1[_0xe49fbf(0x32e)]),this[_0xe49fbf(0x8a0)][_0xe49fbf(0xd25)](this['_gl'][_0xe49fbf(0x4db)],this[_0xe49fbf(0x8a0)][_0xe49fbf(0x9a9)],_0x4698f1['min']),_0x23ebaa&&this[_0xe49fbf(0x8a0)]['generateMipmap'](this['_gl'][_0xe49fbf(0x4db)]),this[_0xe49fbf(0x4d0)](this[_0xe49fbf(0x8a0)][_0xe49fbf(0x4db)],null),this[_0xe49fbf(0x7d5)][_0xe49fbf(0x83f)](_0x67d7b7),_0x67d7b7);},_0x3c845b['B']['prototype'][_0xcf165b(0x72f)]=function(_0x16ccb2,_0x256bf8,_0x16ebe4,_0x3c157f,_0x635108,_0x32f9e4,_0x372fc7,_0x18d2ae=null){var _0x3262fd=_0xcf165b;const _0x20d0b8=this[_0x3262fd(0x8a0)],_0x5cbd89=new _0x574ead['l'](this,_0x574ead['S']['CubeRaw']);_0x5cbd89[_0x3262fd(0x144)]=!0x0,_0x5cbd89[_0x3262fd(0x808)]=_0x16ebe4,_0x5cbd89[_0x3262fd(0x5da)]=_0x3c157f,this['_doNotHandleContextLost']||(_0x5cbd89['_bufferViewArray']=_0x16ccb2);var _0x34baa8=this[_0x3262fd(0x57c)](_0x3c157f);let _0x3bebc1=this['_getInternalFormat'](_0x16ebe4);_0x3bebc1===_0x20d0b8['RGB']&&(_0x3bebc1=_0x20d0b8[_0x3262fd(0x44a)]),_0x34baa8!==_0x20d0b8[_0x3262fd(0x30c)]||this[_0x3262fd(0x588)]['textureFloatLinearFiltering']?_0x34baa8!==this['_gl'][_0x3262fd(0x1b2)]||this[_0x3262fd(0x588)][_0x3262fd(0x16b)]?_0x34baa8!==_0x20d0b8[_0x3262fd(0x30c)]||this[_0x3262fd(0x588)][_0x3262fd(0xc36)]?_0x34baa8!==_0x20d0b8[_0x3262fd(0x72d)]||this['_caps'][_0x3262fd(0x182)]||(_0x635108=!0x1,_0x39ac72['Y'][_0x3262fd(0x636)]('Render\x20to\x20half\x20float\x20textures\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20forced\x20to\x20false.')):(_0x635108=!0x1,_0x39ac72['Y'][_0x3262fd(0x636)]('Render\x20to\x20float\x20textures\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20forced\x20to\x20false.')):(_0x635108=!0x1,_0x372fc7=_0x579eb4['g'][_0x3262fd(0x8c6)],_0x39ac72['Y'][_0x3262fd(0x636)](_0x3262fd(0x952))):(_0x635108=!0x1,_0x372fc7=_0x579eb4['g'][_0x3262fd(0x8c6)],_0x39ac72['Y'][_0x3262fd(0x636)](_0x3262fd(0x9d5)));var _0x276cbb=_0x256bf8;if(_0x5cbd89[_0x3262fd(0xca4)]=_0x256bf8,_0x5cbd89[_0x3262fd(0x43d)]=_0x276cbb,_0x5cbd89[_0x3262fd(0xb9a)]=_0x32f9e4,_0x5cbd89[_0x3262fd(0x992)]=_0x18d2ae,!this[_0x3262fd(0x43f)]||_0x443dd2['w1'][_0x3262fd(0xc0e)](_0x5cbd89[_0x3262fd(0xca4)])&&_0x443dd2['w1'][_0x3262fd(0xc0e)](_0x5cbd89[_0x3262fd(0x43d)])||(_0x635108=!0x1),_0x16ccb2)this['updateRawCubeTexture'](_0x5cbd89,_0x16ccb2,_0x16ebe4,_0x3c157f,_0x32f9e4,_0x18d2ae);else{var _0x304a02=this[_0x3262fd(0xa3a)](_0x3c157f);this[_0x3262fd(0x4d0)](_0x20d0b8[_0x3262fd(0x52a)],_0x5cbd89,!0x0);for(let _0xb9ff37=0x0;_0xb9ff37<0x6;_0xb9ff37++)_0x18d2ae?_0x20d0b8['compressedTexImage2D'](_0x20d0b8['TEXTURE_CUBE_MAP_POSITIVE_X']+_0xb9ff37,0x0,this[_0x3262fd(0x33a)]()[_0x3262fd(0x5c0)][_0x18d2ae],_0x5cbd89['width'],_0x5cbd89['height'],0x0,void 0x0):_0x20d0b8[_0x3262fd(0x83c)](_0x20d0b8['TEXTURE_CUBE_MAP_POSITIVE_X']+_0xb9ff37,0x0,_0x304a02,_0x5cbd89['width'],_0x5cbd89[_0x3262fd(0x43d)],0x0,_0x3bebc1,_0x34baa8,null);this[_0x3262fd(0x4d0)](this['_gl'][_0x3262fd(0x52a)],null);}return this[_0x3262fd(0x4d0)](this[_0x3262fd(0x8a0)]['TEXTURE_CUBE_MAP'],_0x5cbd89,!0x0),_0x16ccb2&&_0x635108&&this[_0x3262fd(0x8a0)]['generateMipmap'](this[_0x3262fd(0x8a0)]['TEXTURE_CUBE_MAP']),_0x256bf8=this['_getSamplingParameters'](_0x372fc7,_0x635108),(_0x20d0b8['texParameteri'](_0x20d0b8[_0x3262fd(0x52a)],_0x20d0b8[_0x3262fd(0x77c)],_0x256bf8[_0x3262fd(0x32e)]),_0x20d0b8['texParameteri'](_0x20d0b8['TEXTURE_CUBE_MAP'],_0x20d0b8['TEXTURE_MIN_FILTER'],_0x256bf8[_0x3262fd(0xbab)]),_0x20d0b8[_0x3262fd(0xd25)](_0x20d0b8[_0x3262fd(0x52a)],_0x20d0b8[_0x3262fd(0xaf9)],_0x20d0b8[_0x3262fd(0xa36)]),_0x20d0b8[_0x3262fd(0xd25)](_0x20d0b8[_0x3262fd(0x52a)],_0x20d0b8[_0x3262fd(0xa47)],_0x20d0b8[_0x3262fd(0xa36)]),this[_0x3262fd(0x4d0)](_0x20d0b8['TEXTURE_CUBE_MAP'],null),_0x5cbd89[_0x3262fd(0x2c8)]=_0x635108,_0x5cbd89[_0x3262fd(0xcfe)]=_0x372fc7,_0x5cbd89[_0x3262fd(0x5ac)]=!0x0,_0x5cbd89);},_0x3c845b['B'][_0xcf165b(0x9ed)][_0xcf165b(0xa45)]=function(_0x4cbb40,_0x5748c5,_0x35d27c,_0x32a11b,_0x2c4e4c,_0x596cc7=null,_0x523fa7=0x0){var _0x4af39c=_0xcf165b;_0x4cbb40[_0x4af39c(0xb30)]=_0x5748c5,_0x4cbb40['format']=_0x35d27c,_0x4cbb40[_0x4af39c(0x5da)]=_0x32a11b,_0x4cbb40['invertY']=_0x2c4e4c,_0x4cbb40[_0x4af39c(0x992)]=_0x596cc7;const _0x4db44f=this[_0x4af39c(0x8a0)];var _0x3d9677=this[_0x4af39c(0x57c)](_0x32a11b);let _0x429c97=this[_0x4af39c(0x441)](_0x35d27c);var _0x441f4c=this['_getRGBABufferInternalSizedFormat'](_0x32a11b);let _0x2e39da=!0x1;_0x429c97===_0x4db44f[_0x4af39c(0xa51)]&&(_0x429c97=_0x4db44f['RGBA'],_0x2e39da=!0x0),this[_0x4af39c(0x4d0)](_0x4db44f[_0x4af39c(0x52a)],_0x4cbb40,!0x0),this[_0x4af39c(0x650)](void 0x0===_0x2c4e4c||!!_0x2c4e4c),_0x4cbb40[_0x4af39c(0xca4)]%0x4!=0x0&&_0x4db44f[_0x4af39c(0xc50)](_0x4db44f[_0x4af39c(0x39c)],0x1);for(let _0x5ae1d4=0x0;_0x5ae1d4<0x6;_0x5ae1d4++){let _0x569283=_0x5748c5[_0x5ae1d4];_0x596cc7?_0x4db44f[_0x4af39c(0xcb4)](_0x4db44f[_0x4af39c(0x5b3)]+_0x5ae1d4,_0x523fa7,this['getCaps']()['s3tc'][_0x596cc7],_0x4cbb40[_0x4af39c(0xca4)],_0x4cbb40[_0x4af39c(0x43d)],0x0,_0x569283):(_0x2e39da&&(_0x569283=_0x5c1bf8(_0x569283,_0x4cbb40[_0x4af39c(0xca4)],_0x4cbb40[_0x4af39c(0x43d)],_0x32a11b)),_0x4db44f[_0x4af39c(0x83c)](_0x4db44f[_0x4af39c(0x5b3)]+_0x5ae1d4,_0x523fa7,_0x441f4c,_0x4cbb40[_0x4af39c(0xca4)],_0x4cbb40[_0x4af39c(0x43d)],0x0,_0x429c97,_0x3d9677,_0x569283));}(!this[_0x4af39c(0x43f)]||_0x443dd2['w1'][_0x4af39c(0xc0e)](_0x4cbb40[_0x4af39c(0xca4)])&&_0x443dd2['w1'][_0x4af39c(0xc0e)](_0x4cbb40['height']))&&_0x4cbb40[_0x4af39c(0x2c8)]&&0x0===_0x523fa7&&this[_0x4af39c(0x8a0)]['generateMipmap'](this[_0x4af39c(0x8a0)][_0x4af39c(0x52a)]),this[_0x4af39c(0x4d0)](this[_0x4af39c(0x8a0)]['TEXTURE_CUBE_MAP'],null),_0x4cbb40[_0x4af39c(0x5ac)]=!0x0;},_0x3c845b['B'][_0xcf165b(0x9ed)][_0xcf165b(0x9c9)]=function(_0x5d3611,_0x5e9d10,_0x48fdd4,_0x4b7800,_0x225712,_0x424fba,_0x3e15b2,_0x391475,_0x39bfe6=null,_0x55cc79=null,_0x20ad83=_0x579eb4['g'][_0xcf165b(0xb6b)],_0x28a671=!0x1){var _0x11eee3=_0xcf165b;const _0x2f1bf2=this['_gl'],_0x230708=this[_0x11eee3(0x72f)](null,_0x48fdd4,_0x4b7800,_0x225712,!_0x424fba,_0x28a671,_0x20ad83,null),_0x40f87a=(null!=_0x5e9d10&&_0x5e9d10[_0x11eee3(0xc23)](_0x230708),_0x230708['url']=_0x5d3611,this['_internalTexturesCache']['push'](_0x230708),_0x111c99=>{var _0x37790c=_0x11eee3,_0x17ea35=_0x230708[_0x37790c(0xca4)],_0x111c99=_0x3e15b2(_0x111c99);if(_0x111c99){if(_0x391475){var _0x249468=this[_0x37790c(0x57c)](_0x225712);let _0x10af7a=this['_getInternalFormat'](_0x4b7800);var _0x1d4863=this[_0x37790c(0xa3a)](_0x225712);let _0x53d51d=!0x1;_0x10af7a===_0x2f1bf2['RGB']&&(_0x10af7a=_0x2f1bf2[_0x37790c(0x44a)],_0x53d51d=!0x0),this[_0x37790c(0x4d0)](_0x2f1bf2['TEXTURE_CUBE_MAP'],_0x230708,!0x0),this[_0x37790c(0x650)](!0x1);var _0x10a4b1=_0x391475(_0x111c99);for(let _0x439af2=0x0;_0x439af2<_0x10a4b1[_0x37790c(0x3ef)];_0x439af2++){var _0x1fd2f6=_0x17ea35>>_0x439af2;for(let _0x52fd50=0x0;_0x52fd50<0x6;_0x52fd50++){let _0x49f580=_0x10a4b1[_0x439af2][_0x52fd50];_0x53d51d&&(_0x49f580=_0x5c1bf8(_0x49f580,_0x1fd2f6,_0x1fd2f6,_0x225712)),_0x2f1bf2['texImage2D'](_0x52fd50,_0x439af2,_0x1d4863,_0x1fd2f6,_0x1fd2f6,0x0,_0x10af7a,_0x249468,_0x49f580);}}this[_0x37790c(0x4d0)](_0x2f1bf2[_0x37790c(0x52a)],null);}else this[_0x37790c(0xa45)](_0x230708,_0x111c99,_0x4b7800,_0x225712,_0x28a671);_0x230708[_0x37790c(0x5ac)]=!0x0,null!=_0x5e9d10&&_0x5e9d10[_0x37790c(0x1ed)](_0x230708),_0x230708['onLoadedObservable'][_0x37790c(0xac3)](_0x230708),_0x230708[_0x37790c(0x929)]['clear'](),_0x39bfe6&&_0x39bfe6();}});return this[_0x11eee3(0x8d6)](_0x5d3611,_0x1dc653=>{_0x40f87a(_0x1dc653);},void 0x0,null==_0x5e9d10?void 0x0:_0x5e9d10[_0x11eee3(0x1d3)],!0x0,(_0x290ae1,_0x55d0d4)=>{var _0x2920ec=_0x11eee3;null!=_0x5e9d10&&_0x5e9d10[_0x2920ec(0x1ed)](_0x230708),_0x55cc79&&_0x290ae1&&_0x55cc79(_0x290ae1[_0x2920ec(0xab2)]+'\x20'+_0x290ae1['statusText'],_0x55d0d4);}),_0x230708;},_0x3c845b['B']['prototype'][_0xcf165b(0x89c)]=_0x1aac60(!0x1),_0x3c845b['B'][_0xcf165b(0x9ed)][_0xcf165b(0xbb4)]=_0x1aac60(!0x0),_0x3c845b['B'][_0xcf165b(0x9ed)][_0xcf165b(0xb57)]=_0x2eab26(!0x1),_0x3c845b['B']['prototype'][_0xcf165b(0x15c)]=_0x2eab26(!0x0);},0x3c27:(_0x38cdd7,_0x581567,_0x4b3273)=>{var _0x466d24=a6_0x1e64fa;_0x4b3273['d'](_0x581567,{'A':()=>_0x11b691});var _0x581567=_0x4b3273(0x202a),_0x8cf3fe=_0x4b3273(0x77a5);function _0x11b691(_0x1a867d,_0x3eae2f,_0x5ee4e9=!0x1,_0xe5c200){var _0x256870=a6_0x2304;switch(_0x1a867d){case _0x8cf3fe['g'][_0x256870(0x7aa)]:{ArrayBuffer;const _0x4956c8=new Int8Array(_0x3eae2f);return _0xe5c200&&_0x4956c8[_0x256870(0x970)](new Int8Array(_0xe5c200)),_0x4956c8;}case _0x8cf3fe['g'][_0x256870(0x157)]:{ArrayBuffer;const _0x307049=new Uint8Array(_0x3eae2f);return _0xe5c200&&_0x307049[_0x256870(0x970)](new Uint8Array(_0xe5c200)),_0x307049;}case _0x8cf3fe['g'][_0x256870(0xc86)]:{const _0x2a5d84=_0x3eae2f instanceof ArrayBuffer?new Int16Array(_0x3eae2f):new Int16Array(_0x5ee4e9?_0x3eae2f/0x2:_0x3eae2f);return _0xe5c200&&_0x2a5d84[_0x256870(0x970)](new Int16Array(_0xe5c200)),_0x2a5d84;}case _0x8cf3fe['g'][_0x256870(0xbcd)]:case _0x8cf3fe['g'][_0x256870(0x3b8)]:case _0x8cf3fe['g'][_0x256870(0xb17)]:case _0x8cf3fe['g'][_0x256870(0x77b)]:case _0x8cf3fe['g'][_0x256870(0x98a)]:{const _0x5cd92a=_0x3eae2f instanceof ArrayBuffer?new Uint16Array(_0x3eae2f):new Uint16Array(_0x5ee4e9?_0x3eae2f/0x2:_0x3eae2f);return _0xe5c200&&_0x5cd92a[_0x256870(0x970)](new Uint16Array(_0xe5c200)),_0x5cd92a;}case _0x8cf3fe['g'][_0x256870(0x6b3)]:{const _0x546bcd=_0x3eae2f instanceof ArrayBuffer?new Int32Array(_0x3eae2f):new Int32Array(_0x5ee4e9?_0x3eae2f/0x4:_0x3eae2f);return _0xe5c200&&_0x546bcd[_0x256870(0x970)](new Int32Array(_0xe5c200)),_0x546bcd;}case _0x8cf3fe['g']['TEXTURETYPE_UNSIGNED_INTEGER']:case _0x8cf3fe['g'][_0x256870(0x7a0)]:case _0x8cf3fe['g'][_0x256870(0x797)]:case _0x8cf3fe['g'][_0x256870(0x9b5)]:case _0x8cf3fe['g'][_0x256870(0xcbf)]:case _0x8cf3fe['g'][_0x256870(0x6d0)]:{const _0x4439ba=_0x3eae2f instanceof ArrayBuffer?new Uint32Array(_0x3eae2f):new Uint32Array(_0x5ee4e9?_0x3eae2f/0x4:_0x3eae2f);return _0xe5c200&&_0x4439ba[_0x256870(0x970)](new Uint32Array(_0xe5c200)),_0x4439ba;}case _0x8cf3fe['g'][_0x256870(0x67a)]:{const _0x479c0f=_0x3eae2f instanceof ArrayBuffer?new Float32Array(_0x3eae2f):new Float32Array(_0x5ee4e9?_0x3eae2f/0x4:_0x3eae2f);return _0xe5c200&&_0x479c0f[_0x256870(0x970)](new Float32Array(_0xe5c200)),_0x479c0f;}}ArrayBuffer;const _0x4a05ba=new Uint8Array(_0x3eae2f);return _0xe5c200&&_0x4a05ba['set'](new Uint8Array(_0xe5c200)),_0x4a05ba;}_0x581567['B']['prototype']['_readTexturePixelsSync']=function(_0x414c4e,_0xfd1eb4,_0x1704c5,_0x1a4892=-0x1,_0x3885bb=0x0,_0x27aaed=null,_0x163c6c=!0x0,_0xb74ca1=!0x1,_0x537575=0x0,_0xf6bea7=0x0){var _0x3b712f=a6_0x2304;const _0x4cdb20=this[_0x3b712f(0x8a0)];if(!_0x4cdb20)throw new Error('Engine\x20does\x20not\x20have\x20gl\x20rendering\x20context.');if(!this[_0x3b712f(0xbed)]){var _0x1e704b=_0x4cdb20[_0x3b712f(0x976)]();if(!_0x1e704b)throw new Error('Unable\x20to\x20create\x20dummy\x20framebuffer');this['_dummyFramebuffer']=_0x1e704b;}_0x4cdb20[_0x3b712f(0xc47)](_0x4cdb20[_0x3b712f(0x3f0)],this[_0x3b712f(0xbed)]),-0x1<_0x1a4892?_0x4cdb20[_0x3b712f(0x411)](_0x4cdb20[_0x3b712f(0x3f0)],_0x4cdb20[_0x3b712f(0xc1a)],_0x4cdb20[_0x3b712f(0x5b3)]+_0x1a4892,null==(_0x1e704b=_0x414c4e[_0x3b712f(0xaf0)])?void 0x0:_0x1e704b['underlyingResource'],_0x3885bb):_0x4cdb20['framebufferTexture2D'](_0x4cdb20[_0x3b712f(0x3f0)],_0x4cdb20['COLOR_ATTACHMENT0'],_0x4cdb20[_0x3b712f(0x4db)],null==(_0x1a4892=_0x414c4e[_0x3b712f(0xaf0)])?void 0x0:_0x1a4892[_0x3b712f(0x57b)],_0x3885bb);let _0x104760=void 0x0!==_0x414c4e[_0x3b712f(0x5da)]?this[_0x3b712f(0x57c)](_0x414c4e[_0x3b712f(0x5da)]):_0x4cdb20[_0x3b712f(0xcdb)];return _0xb74ca1?_0x27aaed=_0x27aaed||_0x11b691(_0x414c4e[_0x3b712f(0x5da)],0x4*_0xfd1eb4*_0x1704c5):_0x104760=_0x104760===_0x4cdb20['UNSIGNED_BYTE']?(_0x27aaed=_0x27aaed||new Uint8Array(0x4*_0xfd1eb4*_0x1704c5),_0x4cdb20[_0x3b712f(0xcdb)]):(_0x27aaed=_0x27aaed||new Float32Array(0x4*_0xfd1eb4*_0x1704c5),_0x4cdb20['FLOAT']),_0x163c6c&&this[_0x3b712f(0xb55)](),_0x4cdb20[_0x3b712f(0xaa4)](_0x537575,_0xf6bea7,_0xfd1eb4,_0x1704c5,_0x4cdb20[_0x3b712f(0x44a)],_0x104760,_0x27aaed),_0x4cdb20[_0x3b712f(0xc47)](_0x4cdb20['FRAMEBUFFER'],this[_0x3b712f(0x523)]),_0x27aaed;},_0x581567['B'][_0x466d24(0x9ed)][_0x466d24(0x848)]=function(_0x51525e,_0x87ed1f,_0x328c46,_0x21d46c=-0x1,_0x570772=0x0,_0x40b8bb=null,_0x2b7dc3=!0x0,_0x3fc8e1=!0x1,_0x306f87=0x0,_0x56d94f=0x0){var _0x5c2e62=_0x466d24;return Promise[_0x5c2e62(0x7e1)](this[_0x5c2e62(0x8f8)](_0x51525e,_0x87ed1f,_0x328c46,_0x21d46c,_0x570772,_0x40b8bb,_0x2b7dc3,_0x3fc8e1,_0x306f87,_0x56d94f));};},0xd75:(_0x531a76,_0x3729e0,_0x26ef76)=>{var _0x46722f=a6_0x1e64fa,_0x56e767=_0x26ef76(0x25b1),_0x27d9ba=_0x26ef76(0x10ea4),_0x2790c1=_0x26ef76(0x202a);class _0x552da6 extends _0x26ef76(0x758)['r']{constructor(_0x58e9c4,_0x1db6bb,_0x273518,_0x7606e9,_0x242c35){var _0x21e280=a6_0x2304;super(_0x58e9c4,_0x1db6bb,_0x273518,_0x7606e9),this[_0x21e280(0x75e)]=null,this['_depthStencilBuffer']=null,this['_MSAAFramebuffer']=null,this[_0x21e280(0xa6b)]=null,this['_depthStencilTextureArray']=null,this['_context']=_0x242c35;}['_cloneRenderTargetWrapper'](){var _0x3aa132=a6_0x2304;let _0x5c3455=null;return this[_0x3aa132(0xa6b)]&&this[_0x3aa132(0xb95)]?(_0x5c3455=this[_0x3aa132(0x397)][_0x3aa132(0xbc6)](this[_0x3aa132(0xca4)],this[_0x3aa132(0x43d)]))[_0x3aa132(0x6f7)]['isReady']=!0x0:_0x5c3455=super[_0x3aa132(0xa54)](),_0x5c3455;}['_swapRenderTargetWrapper'](_0x1cce35){var _0x5981c4=a6_0x2304;super['_swapRenderTargetWrapper'](_0x1cce35),_0x1cce35[_0x5981c4(0x75e)]=this[_0x5981c4(0x75e)],_0x1cce35[_0x5981c4(0x466)]=this[_0x5981c4(0x466)],_0x1cce35[_0x5981c4(0x2f1)]=this['_MSAAFramebuffer'],_0x1cce35[_0x5981c4(0xa6b)]=this[_0x5981c4(0xa6b)],_0x1cce35[_0x5981c4(0xb95)]=this[_0x5981c4(0xb95)],this['_framebuffer']=this['_depthStencilBuffer']=this[_0x5981c4(0x2f1)]=this[_0x5981c4(0xa6b)]=this[_0x5981c4(0xb95)]=null;}[_0x46722f(0x2cd)](_0x1dc177){var _0x4f9677=_0x46722f;super['_shareDepth'](_0x1dc177);const _0x306cf0=this[_0x4f9677(0xc8f)];var _0x52063a=this['_depthStencilBuffer'],_0x39a502=_0x1dc177[_0x4f9677(0x2f1)]||_0x1dc177[_0x4f9677(0x75e)];_0x1dc177['_depthStencilBuffer']&&_0x306cf0[_0x4f9677(0x2f7)](_0x1dc177[_0x4f9677(0x466)]),_0x1dc177[_0x4f9677(0x466)]=this['_depthStencilBuffer'],this[_0x4f9677(0x397)]['_bindUnboundFramebuffer'](_0x39a502),_0x306cf0['framebufferRenderbuffer'](_0x306cf0[_0x4f9677(0x3f0)],_0x306cf0['DEPTH_ATTACHMENT'],_0x306cf0[_0x4f9677(0xc67)],_0x52063a),this[_0x4f9677(0x397)][_0x4f9677(0xa4b)](null);}[_0x46722f(0x5a4)](_0x45e080,_0x3b7b9b=0x0,_0x256445,_0x34d676=0x0){var _0x48d551=_0x46722f;if(_0x45e080['_hardwareTexture']){var _0x465aae=this['_framebuffer'],_0x5521a6=this[_0x48d551(0x397)]['_currentFramebuffer'];if(this[_0x48d551(0x397)][_0x48d551(0xa4b)](_0x465aae),0x1<this[_0x48d551(0x397)]['webGLVersion']){const _0x57420e=this[_0x48d551(0xc8f)];_0x465aae=_0x57420e[_0x48d551(0x801)+_0x3b7b9b],_0x45e080[_0x48d551(0x32b)]||_0x45e080[_0x48d551(0x566)]?(_0x256445=null!=(_0x7bd474=null!=_0x256445?_0x256445:null==(_0x7bd474=this['layerIndices'])?void 0x0:_0x7bd474[_0x3b7b9b])?_0x7bd474:0x0,_0x57420e[_0x48d551(0x8fd)](_0x57420e[_0x48d551(0x3f0)],_0x465aae,_0x45e080[_0x48d551(0xaf0)]['underlyingResource'],_0x34d676,_0x256445)):_0x45e080[_0x48d551(0x144)]?(_0x256445=null!=(_0x7bd474=null!=_0x256445?_0x256445:null==(_0x7bd474=this[_0x48d551(0x336)])?void 0x0:_0x7bd474[_0x3b7b9b])?_0x7bd474:0x0,_0x57420e['framebufferTexture2D'](_0x57420e[_0x48d551(0x3f0)],_0x465aae,_0x57420e[_0x48d551(0x5b3)]+_0x256445,_0x45e080[_0x48d551(0xaf0)][_0x48d551(0x57b)],_0x34d676)):_0x57420e[_0x48d551(0x411)](_0x57420e[_0x48d551(0x3f0)],_0x465aae,_0x57420e['TEXTURE_2D'],_0x45e080[_0x48d551(0xaf0)][_0x48d551(0x57b)],_0x34d676);}else{const _0x3c8917=this[_0x48d551(0xc8f)];var _0x7bd474=_0x3c8917[_0x48d551(0x801)+_0x3b7b9b+_0x48d551(0x8a6)],_0x465aae=void 0x0!==_0x256445?_0x3c8917[_0x48d551(0x5b3)]+_0x256445:_0x3c8917[_0x48d551(0x4db)];_0x3c8917[_0x48d551(0x411)](_0x3c8917[_0x48d551(0x3f0)],_0x7bd474,_0x465aae,_0x45e080[_0x48d551(0xaf0)][_0x48d551(0x57b)],_0x34d676);}this[_0x48d551(0x397)][_0x48d551(0xa4b)](_0x5521a6);}}[_0x46722f(0x205)](_0x2a0835,_0xf5c625=0x0,_0x8d36a8=!0x0){var _0xad219e=_0x46722f;super['setTexture'](_0x2a0835,_0xf5c625,_0x8d36a8),this[_0xad219e(0x5a4)](_0x2a0835,_0xf5c625);}['setLayerAndFaceIndices'](_0x4ba9a0,_0x43fbee){var _0x2080a2=_0x46722f;if(super['setLayerAndFaceIndices'](_0x4ba9a0,_0x43fbee),this[_0x2080a2(0x80a)]&&this['layerIndices']&&this[_0x2080a2(0x336)]){var _0x256fe4=null!=(_0x43fbee=null==(_0x4ba9a0=this['_attachments'])?void 0x0:_0x4ba9a0[_0x2080a2(0x3ef)])?_0x43fbee:this['textures'][_0x2080a2(0x3ef)];for(let _0x3421a0=0x0;_0x3421a0<_0x256fe4;_0x3421a0++){var _0x6116ed=this['textures'][_0x3421a0];_0x6116ed&&(_0x6116ed['is2DArray']||_0x6116ed['is3D']?this['_bindTextureRenderTarget'](_0x6116ed,_0x3421a0,this[_0x2080a2(0x2a4)][_0x3421a0]):_0x6116ed[_0x2080a2(0x144)]?this['_bindTextureRenderTarget'](_0x6116ed,_0x3421a0,this[_0x2080a2(0x336)][_0x3421a0]):this[_0x2080a2(0x5a4)](_0x6116ed,_0x3421a0));}}}['setLayerAndFaceIndex'](_0x32622a=0x0,_0x51bf10,_0x25bcf7){var _0x428f40=_0x46722f;super[_0x428f40(0x79a)](_0x32622a,_0x51bf10,_0x25bcf7),this[_0x428f40(0x80a)]&&this[_0x428f40(0x2a4)]&&this['faceIndices']&&((_0x51bf10=this['textures'][_0x32622a])[_0x428f40(0x32b)]||_0x51bf10[_0x428f40(0x566)]?this['_bindTextureRenderTarget'](this[_0x428f40(0x80a)][_0x32622a],_0x32622a,this[_0x428f40(0x2a4)][_0x32622a]):_0x51bf10[_0x428f40(0x144)]&&this[_0x428f40(0x5a4)](this[_0x428f40(0x80a)][_0x32622a],_0x32622a,this['faceIndices'][_0x32622a]));}[_0x46722f(0x431)](_0x5e0c41=!0x1){var _0x1a2164=_0x46722f;const _0x303be5=this[_0x1a2164(0xc8f)];_0x5e0c41||(this[_0x1a2164(0xa6b)]&&(this[_0x1a2164(0xc8f)][_0x1a2164(0x8b6)](this['_colorTextureArray']),this['_colorTextureArray']=null),this[_0x1a2164(0xb95)]&&(this['_context'][_0x1a2164(0x8b6)](this['_depthStencilTextureArray']),this[_0x1a2164(0xb95)]=null)),this['_framebuffer']&&(_0x303be5[_0x1a2164(0x66b)](this[_0x1a2164(0x75e)]),this[_0x1a2164(0x75e)]=null),this[_0x1a2164(0x466)]&&(_0x303be5[_0x1a2164(0x2f7)](this['_depthStencilBuffer']),this[_0x1a2164(0x466)]=null),this[_0x1a2164(0x2f1)]&&(_0x303be5['deleteFramebuffer'](this['_MSAAFramebuffer']),this[_0x1a2164(0x2f1)]=null),super['dispose'](_0x5e0c41);}}var _0x124858=_0x26ef76(0x77a5);_0x2790c1['B'][_0x46722f(0x9ed)][_0x46722f(0xa7c)]=function(_0x1e650b,_0x443978,_0x5358cc){var _0x40e148=_0x46722f;return _0x1e650b=new _0x552da6(_0x1e650b,_0x443978,_0x5358cc,this,this[_0x40e148(0x8a0)]),(this['_renderTargetWrapperCache'][_0x40e148(0x83f)](_0x1e650b),_0x1e650b);},_0x2790c1['B']['prototype']['createRenderTargetTexture']=function(_0x5aeda0,_0xad3a35){var _0x269b36=_0x46722f;const _0x5bfd07=this[_0x269b36(0xa7c)](!0x1,!0x1,_0x5aeda0);let _0x28542f=!0x0,_0x1ac319=!0x1,_0x52a091=!0x1,_0xdcd399=void 0x0,_0x24d03b=0x1;void 0x0!==_0xad3a35&&'object'==typeof _0xad3a35&&(_0x28542f=null==(_0x4a4932=_0xad3a35[_0x269b36(0xbc3)])||_0x4a4932,_0x1ac319=!!_0xad3a35['generateStencilBuffer'],_0x52a091=!!_0xad3a35[_0x269b36(0x527)],_0xdcd399=_0xad3a35[_0x269b36(0x58b)],_0x24d03b=null!=(_0x4a4932=_0xad3a35[_0x269b36(0x993)])?_0x4a4932:0x1);var _0x4a4932=_0xdcd399||(_0x52a091?null:this['_createInternalTexture'](_0x5aeda0,_0xad3a35,!0x0,_0x56e767['S'][_0x269b36(0x26d)])),_0xad3a35=_0x5aeda0[_0x269b36(0xca4)]||_0x5aeda0,_0x5aeda0=_0x5aeda0[_0x269b36(0x43d)]||_0x5aeda0,_0x1d97f7=this[_0x269b36(0x523)];const _0x1d5908=this['_gl'];var _0x4228ae=_0x1d5908[_0x269b36(0x976)]();return this[_0x269b36(0xa4b)](_0x4228ae),_0x5bfd07[_0x269b36(0x466)]=this['_setupFramebufferDepthAttachments'](_0x1ac319,_0x28542f,_0xad3a35,_0x5aeda0),_0x4a4932&&!_0x4a4932['is2DArray']&&_0x1d5908[_0x269b36(0x411)](_0x1d5908[_0x269b36(0x3f0)],_0x1d5908['COLOR_ATTACHMENT0'],_0x1d5908[_0x269b36(0x4db)],_0x4a4932[_0x269b36(0xaf0)][_0x269b36(0x57b)],0x0),this[_0x269b36(0xa4b)](_0x1d97f7),_0x5bfd07[_0x269b36(0x75e)]=_0x4228ae,_0x5bfd07[_0x269b36(0x1b6)]=_0x28542f,_0x5bfd07[_0x269b36(0x713)]=_0x1ac319,_0x5bfd07[_0x269b36(0x782)](_0x4a4932),this[_0x269b36(0x877)](_0x5bfd07,_0x24d03b),_0x5bfd07;},_0x2790c1['B']['prototype'][_0x46722f(0x324)]=function(_0x2c73ce,_0x13dc28,_0x523bea){var _0x2fd0de=_0x46722f,_0x5d5fb3;return _0x13dc28[_0x2fd0de(0x144)]?(_0x5d5fb3=_0x2c73ce[_0x2fd0de(0xca4)]||_0x2c73ce,this[_0x2fd0de(0x6db)](_0x5d5fb3,_0x13dc28,_0x523bea)):this[_0x2fd0de(0xb6a)](_0x2c73ce,_0x13dc28,_0x523bea);},_0x2790c1['B']['prototype']['_createDepthStencilTexture']=function(_0x2b874a,_0x43f913,_0x34fd8c){var _0xf29d33=_0x46722f;const _0x48b51e=this[_0xf29d33(0x8a0)];var _0xd494db=_0x2b874a[_0xf29d33(0xa73)]||0x0,_0x55fa08=0x0!==_0xd494db?_0x48b51e[_0xf29d33(0x42f)]:_0x48b51e[_0xf29d33(0x4db)];const _0x12e8d1=new _0x56e767['l'](this,_0x56e767['S'][_0xf29d33(0x9f3)]);if(!this[_0xf29d33(0x588)][_0xf29d33(0x6e8)])return _0x27d9ba['Y']['Error'](_0xf29d33(0x7d7)),_0x12e8d1;_0x43f913=Object[_0xf29d33(0x1ce)]({'bilinearFiltering':!0x1,'comparisonFunction':0x0,'generateStencil':!0x1},_0x43f913);if(this[_0xf29d33(0x4d0)](_0x55fa08,_0x12e8d1,!0x0),this['_setupDepthStencilTexture'](_0x12e8d1,_0x2b874a,_0x43f913['generateStencil'],0x0!==_0x43f913[_0xf29d33(0x186)]&&_0x43f913[_0xf29d33(0x58c)],_0x43f913[_0xf29d33(0x186)],_0x43f913[_0xf29d33(0x993)]),void 0x0!==_0x43f913['depthTextureFormat']){if(_0x43f913[_0xf29d33(0x4d1)]!==_0x124858['g']['TEXTUREFORMAT_DEPTH16']&&_0x43f913['depthTextureFormat']!==_0x124858['g']['TEXTUREFORMAT_DEPTH24']&&_0x43f913['depthTextureFormat']!==_0x124858['g'][_0xf29d33(0xd0a)]&&_0x43f913[_0xf29d33(0x4d1)]!==_0x124858['g'][_0xf29d33(0xb99)]&&_0x43f913[_0xf29d33(0x4d1)]!==_0x124858['g'][_0xf29d33(0x47b)]&&_0x43f913[_0xf29d33(0x4d1)]!==_0x124858['g'][_0xf29d33(0xb51)])return _0x27d9ba['Y'][_0xf29d33(0x286)](_0xf29d33(0x386)),_0x12e8d1;_0x12e8d1['format']=_0x43f913[_0xf29d33(0x4d1)];}else _0x12e8d1[_0xf29d33(0x808)]=_0x43f913[_0xf29d33(0x55a)]?_0x124858['g']['TEXTUREFORMAT_DEPTH24_STENCIL8']:_0x124858['g']['TEXTUREFORMAT_DEPTH24'];_0x2b874a=_0x12e8d1[_0xf29d33(0x808)]===_0x124858['g']['TEXTUREFORMAT_DEPTH24UNORM_STENCIL8']||_0x12e8d1['format']===_0x124858['g'][_0xf29d33(0xb99)]||_0x12e8d1[_0xf29d33(0x808)]===_0x124858['g']['TEXTUREFORMAT_DEPTH32FLOAT_STENCIL8'],(_0x34fd8c[_0xf29d33(0x27d)]=_0x12e8d1,_0x34fd8c[_0xf29d33(0x6a2)]=_0x2b874a);let _0x30ad87=_0x48b51e[_0xf29d33(0x2ab)];_0x12e8d1[_0xf29d33(0x808)]===_0x124858['g'][_0xf29d33(0xa44)]?_0x30ad87=_0x48b51e['UNSIGNED_SHORT']:_0x12e8d1[_0xf29d33(0x808)]===_0x124858['g'][_0xf29d33(0xd0a)]||_0x12e8d1[_0xf29d33(0x808)]===_0x124858['g'][_0xf29d33(0xb99)]?_0x30ad87=_0x48b51e['UNSIGNED_INT_24_8']:_0x12e8d1[_0xf29d33(0x808)]===_0x124858['g']['TEXTUREFORMAT_DEPTH32_FLOAT']?_0x30ad87=_0x48b51e[_0xf29d33(0x30c)]:_0x12e8d1[_0xf29d33(0x808)]===_0x124858['g'][_0xf29d33(0xb51)]&&(_0x30ad87=_0x48b51e[_0xf29d33(0x635)]),_0x43f913=_0x2b874a?_0x48b51e[_0xf29d33(0x7fd)]:_0x48b51e[_0xf29d33(0x30d)];let _0x25337f=_0x43f913;0x1<this[_0xf29d33(0x41b)]&&(_0x12e8d1[_0xf29d33(0x808)]===_0x124858['g'][_0xf29d33(0xa44)]?_0x25337f=_0x48b51e[_0xf29d33(0x7a7)]:_0x12e8d1[_0xf29d33(0x808)]===_0x124858['g'][_0xf29d33(0x248)]?_0x25337f=_0x48b51e['DEPTH_COMPONENT24']:_0x12e8d1[_0xf29d33(0x808)]===_0x124858['g']['TEXTUREFORMAT_DEPTH24UNORM_STENCIL8']||_0x12e8d1[_0xf29d33(0x808)]===_0x124858['g']['TEXTUREFORMAT_DEPTH24_STENCIL8']?_0x25337f=_0x48b51e[_0xf29d33(0x6df)]:_0x12e8d1['format']===_0x124858['g'][_0xf29d33(0x47b)]?_0x25337f=_0x48b51e[_0xf29d33(0x870)]:_0x12e8d1['format']===_0x124858['g'][_0xf29d33(0xb51)]&&(_0x25337f=_0x48b51e['DEPTH32F_STENCIL8'])),_0x12e8d1[_0xf29d33(0x32b)]?_0x48b51e[_0xf29d33(0xc0c)](_0x55fa08,0x0,_0x25337f,_0x12e8d1[_0xf29d33(0xca4)],_0x12e8d1['height'],_0xd494db,0x0,_0x43f913,_0x30ad87,null):_0x48b51e['texImage2D'](_0x55fa08,0x0,_0x25337f,_0x12e8d1[_0xf29d33(0xca4)],_0x12e8d1[_0xf29d33(0x43d)],0x0,_0x43f913,_0x30ad87,null),this[_0xf29d33(0x4d0)](_0x55fa08,null),this['_internalTexturesCache']['push'](_0x12e8d1);const _0x304a80=_0x34fd8c;return _0x304a80[_0xf29d33(0x466)]&&(_0x2b874a=this['_currentFramebuffer'],this[_0xf29d33(0xa4b)](_0x304a80[_0xf29d33(0x75e)]),_0x48b51e['framebufferRenderbuffer'](_0x48b51e[_0xf29d33(0x3f0)],_0x48b51e[_0xf29d33(0x33f)],_0x48b51e[_0xf29d33(0xc67)],null),_0x48b51e[_0xf29d33(0x569)](_0x48b51e['FRAMEBUFFER'],_0x48b51e['DEPTH_ATTACHMENT'],_0x48b51e[_0xf29d33(0xc67)],null),_0x48b51e['framebufferRenderbuffer'](_0x48b51e[_0xf29d33(0x3f0)],_0x48b51e[_0xf29d33(0xabd)],_0x48b51e[_0xf29d33(0xc67)],null),this[_0xf29d33(0xa4b)](_0x2b874a),_0x48b51e['deleteRenderbuffer'](_0x304a80[_0xf29d33(0x466)]),_0x304a80[_0xf29d33(0x466)]=null),_0x12e8d1;},_0x2790c1['B']['prototype'][_0x46722f(0x877)]=function(_0x32e082,_0x48aac6){var _0x558b92=_0x46722f;if(this[_0x558b92(0x41b)]<0x2||!_0x32e082||!_0x32e082[_0x558b92(0x6f7)])return 0x1;if(_0x32e082[_0x558b92(0x993)]===_0x48aac6)return _0x48aac6;const _0x2deb7b=this[_0x558b92(0x8a0)],_0x2103e1=(_0x48aac6=Math['min'](_0x48aac6,this[_0x558b92(0x33a)]()[_0x558b92(0x84e)]),_0x32e082['_depthStencilBuffer']&&(_0x2deb7b[_0x558b92(0x2f7)](_0x32e082[_0x558b92(0x466)]),_0x32e082[_0x558b92(0x466)]=null),_0x32e082[_0x558b92(0x2f1)]&&(_0x2deb7b[_0x558b92(0x66b)](_0x32e082[_0x558b92(0x2f1)]),_0x32e082[_0x558b92(0x2f1)]=null),_0x32e082[_0x558b92(0x6f7)][_0x558b92(0xaf0)]);if(_0x2103e1[_0x558b92(0xa4f)](),0x1<_0x48aac6&&_0x558b92(0x97c)==typeof _0x2deb7b[_0x558b92(0x259)]){var _0x45b995=_0x2deb7b[_0x558b92(0x976)]();if(!_0x45b995)throw new Error(_0x558b92(0x5e6));_0x32e082[_0x558b92(0x2f1)]=_0x45b995,this[_0x558b92(0xa4b)](_0x32e082[_0x558b92(0x2f1)]),_0x45b995=this[_0x558b92(0x658)](_0x32e082['texture'][_0x558b92(0xca4)],_0x32e082['texture'][_0x558b92(0x43d)],_0x48aac6,-0x1,this[_0x558b92(0x9d6)](_0x32e082[_0x558b92(0x6f7)]['type']),_0x2deb7b[_0x558b92(0xc1a)],!0x1);if(!_0x45b995)throw new Error(_0x558b92(0x5e6));_0x2103e1[_0x558b92(0x5d3)](_0x45b995);}else this[_0x558b92(0xa4b)](_0x32e082[_0x558b92(0x75e)]);return _0x32e082['texture'][_0x558b92(0x993)]=_0x48aac6,_0x32e082[_0x558b92(0xd2e)]=_0x48aac6,_0x32e082[_0x558b92(0x466)]=this['_setupFramebufferDepthAttachments'](_0x32e082['_generateStencilBuffer'],_0x32e082[_0x558b92(0x1b6)],_0x32e082[_0x558b92(0x6f7)][_0x558b92(0xca4)],_0x32e082[_0x558b92(0x6f7)][_0x558b92(0x43d)],_0x48aac6),this['_bindUnboundFramebuffer'](null),_0x48aac6;};},0xf29:(_0x3f35b0,_0x42879a,_0x4ace19)=>{var _0x301fcd=a6_0x1e64fa,_0x4c0045=_0x4ace19(0x25b1),_0x49c0a1=_0x4ace19(0x10ea4),_0x579edb=_0x4ace19(0x77a5);_0x4ace19(0x202a)['B'][_0x301fcd(0x9ed)]['createRenderTargetCubeTexture']=function(_0x2bb2bc,_0x4948a5){var _0x35235c=_0x301fcd;const _0x2b3191=this[_0x35235c(0xa7c)](!0x1,!0x0,_0x2bb2bc),_0x2f2261=Object['assign']({'generateMipMaps':!0x0,'generateDepthBuffer':!0x0,'generateStencilBuffer':!0x1,'type':_0x579edb['g']['TEXTURETYPE_UNSIGNED_INT'],'samplingMode':_0x579edb['g'][_0x35235c(0xb6b)],'format':_0x579edb['g'][_0x35235c(0x86c)]},_0x4948a5),_0x22c881=(_0x2f2261[_0x35235c(0xc3a)]=_0x2f2261[_0x35235c(0xbc3)]&&_0x2f2261[_0x35235c(0xc3a)],(_0x2f2261[_0x35235c(0x5da)]===_0x579edb['g'][_0x35235c(0x67a)]&&!this[_0x35235c(0x588)][_0x35235c(0xb63)]||_0x2f2261[_0x35235c(0x5da)]===_0x579edb['g'][_0x35235c(0x98a)]&&!this[_0x35235c(0x588)][_0x35235c(0x16b)])&&(_0x2f2261[_0x35235c(0xcfe)]=_0x579edb['g']['TEXTURE_NEAREST_SAMPLINGMODE']),this[_0x35235c(0x8a0)]),_0x3fda9a=new _0x4c0045['l'](this,_0x4c0045['S'][_0x35235c(0x26d)]);this[_0x35235c(0x4d0)](_0x22c881[_0x35235c(0x52a)],_0x3fda9a,!0x0),_0x4948a5=this[_0x35235c(0xbad)](_0x2f2261['samplingMode'],_0x2f2261[_0x35235c(0x2c8)]),(_0x2f2261[_0x35235c(0x5da)]!==_0x579edb['g'][_0x35235c(0x67a)]||this[_0x35235c(0x588)][_0x35235c(0x5b8)]||(_0x2f2261[_0x35235c(0x5da)]=_0x579edb['g']['TEXTURETYPE_UNSIGNED_INT'],_0x49c0a1['Y'][_0x35235c(0x636)](_0x35235c(0x408))),_0x22c881[_0x35235c(0xd25)](_0x22c881[_0x35235c(0x52a)],_0x22c881[_0x35235c(0x77c)],_0x4948a5[_0x35235c(0x32e)]),_0x22c881[_0x35235c(0xd25)](_0x22c881[_0x35235c(0x52a)],_0x22c881['TEXTURE_MIN_FILTER'],_0x4948a5[_0x35235c(0xbab)]),_0x22c881[_0x35235c(0xd25)](_0x22c881[_0x35235c(0x52a)],_0x22c881[_0x35235c(0xaf9)],_0x22c881[_0x35235c(0xa36)]),_0x22c881[_0x35235c(0xd25)](_0x22c881[_0x35235c(0x52a)],_0x22c881['TEXTURE_WRAP_T'],_0x22c881[_0x35235c(0xa36)]));for(let _0x276432=0x0;_0x276432<0x6;_0x276432++)_0x22c881['texImage2D'](_0x22c881[_0x35235c(0x5b3)]+_0x276432,0x0,this[_0x35235c(0xa3a)](_0x2f2261[_0x35235c(0x5da)],_0x2f2261[_0x35235c(0x808)]),_0x2bb2bc,_0x2bb2bc,0x0,this[_0x35235c(0x441)](_0x2f2261['format']),this['_getWebGLTextureType'](_0x2f2261['type']),null);return _0x4948a5=_0x22c881[_0x35235c(0x976)](),(this[_0x35235c(0xa4b)](_0x4948a5),_0x2b3191[_0x35235c(0x466)]=this[_0x35235c(0xc48)](_0x2f2261[_0x35235c(0xc3a)],_0x2f2261[_0x35235c(0xbc3)],_0x2bb2bc,_0x2bb2bc),_0x2f2261[_0x35235c(0x2c8)]&&_0x22c881['generateMipmap'](_0x22c881['TEXTURE_CUBE_MAP']),this[_0x35235c(0x4d0)](_0x22c881[_0x35235c(0x52a)],null),this[_0x35235c(0xa4b)](null),_0x2b3191[_0x35235c(0x75e)]=_0x4948a5,_0x2b3191['_generateDepthBuffer']=_0x2f2261[_0x35235c(0xbc3)],_0x2b3191['_generateStencilBuffer']=_0x2f2261[_0x35235c(0xc3a)],_0x3fda9a[_0x35235c(0xca4)]=_0x2bb2bc,_0x3fda9a[_0x35235c(0x43d)]=_0x2bb2bc,_0x3fda9a[_0x35235c(0x5ac)]=!0x0,_0x3fda9a[_0x35235c(0x144)]=!0x0,_0x3fda9a[_0x35235c(0x993)]=0x1,_0x3fda9a[_0x35235c(0x2c8)]=_0x2f2261[_0x35235c(0x2c8)],_0x3fda9a[_0x35235c(0xcfe)]=_0x2f2261[_0x35235c(0xcfe)],_0x3fda9a[_0x35235c(0x5da)]=_0x2f2261[_0x35235c(0x5da)],_0x3fda9a[_0x35235c(0x808)]=_0x2f2261[_0x35235c(0x808)],this['_internalTexturesCache'][_0x35235c(0x83f)](_0x3fda9a),_0x2b3191['setTextures'](_0x3fda9a),_0x2b3191);};},0x2505:(_0x2d0ff2,_0x99616b,_0x2c4527)=>{var _0x399510=a6_0x1e64fa;_0x2c4527=_0x2c4527(0x202a),(_0x2c4527['B'][_0x399510(0x9ed)][_0x399510(0x13b)]=function(_0x3ae529,_0x4958f2){throw new Error('createStorageBuffer:\x20Unsupported\x20method\x20in\x20this\x20engine!');},_0x2c4527['B'][_0x399510(0x9ed)][_0x399510(0x26a)]=function(_0x24d58b,_0x26165c,_0x33c149,_0x426c45){},_0x2c4527['B'][_0x399510(0x9ed)][_0x399510(0xa35)]=function(_0x2e2b93,_0x21a0f9,_0xa8319b,_0x4a179a){var _0x47d947=_0x399510;throw new Error(_0x47d947(0x4b6));},_0x2c4527['B'][_0x399510(0x9ed)]['setStorageBuffer']=function(_0x972f41,_0x1db0db){var _0x49dc53=_0x399510;throw new Error(_0x49dc53(0x54f));});},0x100b5:(_0xc79fdf,_0x421777,_0x16f675)=>{var _0x31deb1=a6_0x1e64fa;_0x16f675(0x202a)['B'][_0x31deb1(0x9ed)][_0x31deb1(0x534)]=function(_0x351b55,_0x5f6392){var _0x3348f4=_0x31deb1;throw new Error(_0x3348f4(0x4e6));};},0x4c3:(_0x425680,_0x10d617,_0x2306f8)=>{var _0x41103a=a6_0x1e64fa;_0x2306f8=_0x2306f8(0xee04);function _0x1947d6(_0xe24589){var _0x1c3e5c=a6_0x2304;if(this[_0x1c3e5c(0xcd4)]&&this[_0x1c3e5c(0xcd4)][_0x1c3e5c(0x65a)](_0x48e75b=>_0xe24589&&(_0xe24589===_0x48e75b||_0xe24589[_0x1c3e5c(0xc98)](new RegExp('\x5cb'+_0x48e75b+'\x5cb','g')))))return _0xe24589;var _0x412bb3=_0xe24589[_0x1c3e5c(0x6ac)]('.'),_0x21e095=_0xe24589['lastIndexOf']('?'),_0x21e095=-0x1<_0x21e095?_0xe24589[_0x1c3e5c(0x6a1)](_0x21e095,_0xe24589[_0x1c3e5c(0x3ef)]):'';return(-0x1<_0x412bb3?_0xe24589['substring'](0x0,_0x412bb3):_0xe24589)+this[_0x1c3e5c(0x272)]+_0x21e095;}Object[_0x41103a(0x41c)](_0x2306f8['D'][_0x41103a(0x9ed)],_0x41103a(0xc93),{'get':function(){var _0x4377ad=_0x41103a;const _0x51d701=new Array();return this[_0x4377ad(0x588)][_0x4377ad(0x875)]&&_0x51d701[_0x4377ad(0x83f)](_0x4377ad(0x23a)),this[_0x4377ad(0x588)]['s3tc']&&_0x51d701[_0x4377ad(0x83f)]('-dxt.ktx'),this[_0x4377ad(0x588)][_0x4377ad(0x98f)]&&_0x51d701['push']('-pvrtc.ktx'),this[_0x4377ad(0x588)][_0x4377ad(0x522)]&&_0x51d701[_0x4377ad(0x83f)](_0x4377ad(0x2fe)),this['_caps'][_0x4377ad(0x1bc)]&&_0x51d701[_0x4377ad(0x83f)](_0x4377ad(0xc4b)),_0x51d701;},'enumerable':!0x0,'configurable':!0x0}),Object[_0x41103a(0x41c)](_0x2306f8['D'][_0x41103a(0x9ed)],_0x41103a(0x819),{'get':function(){var _0x5cb341=_0x41103a;return this[_0x5cb341(0x272)]||null;},'enumerable':!0x0,'configurable':!0x0}),_0x2306f8['D']['prototype']['setCompressedTextureExclusions']=function(_0xfda280){var _0x3564db=_0x41103a;this[_0x3564db(0xcd4)]=_0xfda280;},_0x2306f8['D']['prototype'][_0x41103a(0x2a9)]=function(_0x13ecc1){var _0x35372c=_0x41103a,_0x364b4=this[_0x35372c(0xc93)];for(let _0x133747=0x0,_0x333895=_0x364b4[_0x35372c(0x3ef)];_0x133747<_0x333895;_0x133747++)for(let _0xdcbb31=0x0,_0x5137a6=_0x13ecc1[_0x35372c(0x3ef)];_0xdcbb31<_0x5137a6;_0xdcbb31++)if(_0x364b4[_0x133747]===_0x13ecc1[_0xdcbb31][_0x35372c(0x619)]())return this['_transformTextureUrl']=_0x1947d6[_0x35372c(0x853)](this),this[_0x35372c(0x272)]=_0x364b4[_0x133747];return this[_0x35372c(0x272)]='',this['_transformTextureUrl']=null;};},0xa758:(_0x55628c,_0x260b5e,_0x23d750)=>{var _0x7bc9f3=a6_0x1e64fa,_0x1f122d=_0x23d750(0x202a),_0x4e3053=_0x23d750(0xc7ed);_0x1f122d['B'][_0x7bc9f3(0x9ed)]['createUniformBuffer']=function(_0x1a5fce){var _0x2cc91f=_0x7bc9f3,_0x3c8fe3=this[_0x2cc91f(0x8a0)][_0x2cc91f(0x4b8)]();if(!_0x3c8fe3)throw new Error(_0x2cc91f(0x835));const _0x9654b0=new _0x4e3053['M'](_0x3c8fe3);return this[_0x2cc91f(0x2d3)](_0x9654b0),_0x1a5fce instanceof Float32Array?this[_0x2cc91f(0x8a0)]['bufferData'](this[_0x2cc91f(0x8a0)][_0x2cc91f(0x8d3)],_0x1a5fce,this[_0x2cc91f(0x8a0)][_0x2cc91f(0x266)]):this[_0x2cc91f(0x8a0)][_0x2cc91f(0xadd)](this[_0x2cc91f(0x8a0)][_0x2cc91f(0x8d3)],new Float32Array(_0x1a5fce),this['_gl']['STATIC_DRAW']),this[_0x2cc91f(0x2d3)](null),_0x9654b0[_0x2cc91f(0x860)]=0x1,_0x9654b0;},_0x1f122d['B'][_0x7bc9f3(0x9ed)][_0x7bc9f3(0xca7)]=function(_0x3b3fd5){var _0x439abc=_0x7bc9f3,_0x5ecc64=this[_0x439abc(0x8a0)]['createBuffer']();if(!_0x5ecc64)throw new Error(_0x439abc(0x40e));const _0x3383ed=new _0x4e3053['M'](_0x5ecc64);return this[_0x439abc(0x2d3)](_0x3383ed),_0x3b3fd5 instanceof Float32Array?this[_0x439abc(0x8a0)][_0x439abc(0xadd)](this['_gl'][_0x439abc(0x8d3)],_0x3b3fd5,this[_0x439abc(0x8a0)][_0x439abc(0x630)]):this[_0x439abc(0x8a0)][_0x439abc(0xadd)](this['_gl'][_0x439abc(0x8d3)],new Float32Array(_0x3b3fd5),this[_0x439abc(0x8a0)][_0x439abc(0x630)]),this[_0x439abc(0x2d3)](null),_0x3383ed[_0x439abc(0x860)]=0x1,_0x3383ed;},_0x1f122d['B']['prototype'][_0x7bc9f3(0x435)]=function(_0x3289d6,_0x59c167,_0x3653bf,_0x2ac46f){var _0x4edefb=_0x7bc9f3;this[_0x4edefb(0x2d3)](_0x3289d6),void 0x0===_0x3653bf&&(_0x3653bf=0x0),void 0x0===_0x2ac46f?_0x59c167 instanceof Float32Array?this[_0x4edefb(0x8a0)]['bufferSubData'](this[_0x4edefb(0x8a0)]['UNIFORM_BUFFER'],_0x3653bf,_0x59c167):this[_0x4edefb(0x8a0)][_0x4edefb(0x4e9)](this[_0x4edefb(0x8a0)][_0x4edefb(0x8d3)],_0x3653bf,new Float32Array(_0x59c167)):_0x59c167 instanceof Float32Array?this[_0x4edefb(0x8a0)]['bufferSubData'](this[_0x4edefb(0x8a0)][_0x4edefb(0x8d3)],0x0,_0x59c167[_0x4edefb(0x25f)](_0x3653bf,_0x3653bf+_0x2ac46f)):this[_0x4edefb(0x8a0)]['bufferSubData'](this[_0x4edefb(0x8a0)][_0x4edefb(0x8d3)],0x0,new Float32Array(_0x59c167)[_0x4edefb(0x25f)](_0x3653bf,_0x3653bf+_0x2ac46f)),this['bindUniformBuffer'](null);},_0x1f122d['B'][_0x7bc9f3(0x9ed)][_0x7bc9f3(0x2d3)]=function(_0x2344d4){var _0x708433=_0x7bc9f3;this[_0x708433(0x8a0)]['bindBuffer'](this[_0x708433(0x8a0)][_0x708433(0x8d3)],_0x2344d4?_0x2344d4[_0x708433(0x57b)]:null);},_0x1f122d['B'][_0x7bc9f3(0x9ed)][_0x7bc9f3(0x688)]=function(_0x4c34ea,_0x39abe8,_0x3a4669){var _0x2eed26=_0x7bc9f3;this[_0x2eed26(0x8a0)][_0x2eed26(0x7fe)](this[_0x2eed26(0x8a0)][_0x2eed26(0x8d3)],_0x39abe8,_0x4c34ea?_0x4c34ea[_0x2eed26(0x57b)]:null);},_0x1f122d['B'][_0x7bc9f3(0x9ed)][_0x7bc9f3(0x292)]=function(_0x546420,_0x5bb6f9,_0x2ac6c4){var _0x807b39=_0x7bc9f3;_0x546420=_0x546420['program'],_0x5bb6f9=this['_gl']['getUniformBlockIndex'](_0x546420,_0x5bb6f9),0xffffffff!==_0x5bb6f9&&this['_gl'][_0x807b39(0x8fc)](_0x546420,_0x5bb6f9,_0x2ac6c4);};},0x89d3:(_0x2e6873,_0x3acf66,_0xb46a9)=>{var _0x36052f=a6_0x1e64fa,_0x565c28=_0xb46a9(0x202a),_0x1fc194=_0xb46a9(0x77a5);_0x565c28['B'][_0x36052f(0x9ed)]['updateVideoTexture']=function(_0x5acba8,_0x29db9d,_0x2714e9){var _0x245090=_0x36052f;if(_0x5acba8&&!_0x5acba8[_0x245090(0x8b0)]){var _0x3d9e33=this[_0x245090(0x441)](_0x5acba8[_0x245090(0x808)]),_0x1502e7=this[_0x245090(0xa3a)](_0x1fc194['g']['TEXTURETYPE_UNSIGNED_BYTE'],_0x5acba8[_0x245090(0x808)]),_0x1feda2=this[_0x245090(0x4d0)](this[_0x245090(0x8a0)][_0x245090(0x4db)],_0x5acba8,!0x0);this[_0x245090(0x650)](!_0x2714e9);try{if(void 0x0===this[_0x245090(0x574)]&&(this['_gl'][_0x245090(0xbe3)](),this[_0x245090(0x8a0)]['texImage2D'](this['_gl'][_0x245090(0x4db)],0x0,_0x1502e7,_0x3d9e33,this[_0x245090(0x8a0)][_0x245090(0xcdb)],_0x29db9d),0x0!==this[_0x245090(0x8a0)]['getError']()?this[_0x245090(0x574)]=!0x1:this[_0x245090(0x574)]=!0x0),this[_0x245090(0x574)])this[_0x245090(0x8a0)]['texImage2D'](this[_0x245090(0x8a0)][_0x245090(0x4db)],0x0,_0x1502e7,_0x3d9e33,this[_0x245090(0x8a0)]['UNSIGNED_BYTE'],_0x29db9d);else{if(!_0x5acba8[_0x245090(0x134)]){_0x5acba8[_0x245090(0x134)]=this[_0x245090(0x485)](_0x5acba8[_0x245090(0xca4)],_0x5acba8[_0x245090(0x43d)]);var _0x3fafbc=_0x5acba8[_0x245090(0x134)][_0x245090(0x9b0)]('2d');if(!_0x3fafbc)throw new Error(_0x245090(0xbd3));_0x5acba8['_workingContext']=_0x3fafbc,_0x5acba8[_0x245090(0x134)]['width']=_0x5acba8[_0x245090(0xca4)],_0x5acba8[_0x245090(0x134)][_0x245090(0x43d)]=_0x5acba8[_0x245090(0x43d)];}_0x5acba8[_0x245090(0xabe)]['clearRect'](0x0,0x0,_0x5acba8[_0x245090(0xca4)],_0x5acba8[_0x245090(0x43d)]),_0x5acba8['_workingContext'][_0x245090(0x73e)](_0x29db9d,0x0,0x0,_0x29db9d[_0x245090(0x402)],_0x29db9d['videoHeight'],0x0,0x0,_0x5acba8[_0x245090(0xca4)],_0x5acba8[_0x245090(0x43d)]),this[_0x245090(0x8a0)]['texImage2D'](this['_gl'][_0x245090(0x4db)],0x0,_0x1502e7,_0x3d9e33,this[_0x245090(0x8a0)][_0x245090(0xcdb)],_0x5acba8[_0x245090(0x134)]);}_0x5acba8[_0x245090(0x2c8)]&&this[_0x245090(0x8a0)][_0x245090(0x20e)](this[_0x245090(0x8a0)]['TEXTURE_2D']),_0x1feda2||this[_0x245090(0x4d0)](this[_0x245090(0x8a0)][_0x245090(0x4db)],null),_0x5acba8['isReady']=!0x0;}catch(_0x5b7bd5){_0x5acba8[_0x245090(0x8b0)]=!0x0;}}};},0xeefc:(_0xb798db,_0xb04765,_0x2d4191)=>{var _0xb47e94=a6_0x1e64fa,_0x26ee4b=_0x2d4191(0xee04),_0x4c532c=_0x2d4191(0xceed),_0x3f2667=_0x2d4191(0xf96c),_0xaaed=_0x2d4191(0xe222),_0x2cc2bb=_0x2d4191(0x18233);Object[_0xb47e94(0x41c)](_0x26ee4b['D'][_0xb47e94(0x9ed)],'isInVRExclusivePointerMode',{'get':function(){var _0x4bd1db=_0xb47e94;return this[_0x4bd1db(0xab8)];},'enumerable':!0x0,'configurable':!0x0}),_0x26ee4b['D'][_0xb47e94(0x9ed)][_0xb47e94(0x418)]=function(){var _0x559298=_0xb47e94;this[_0x559298(0x183)]=!0x1,this[_0x559298(0xab8)]=!0x1,this[_0x559298(0x321)]=new _0x3f2667['y$'](),this['onVRRequestPresentComplete']=new _0x3f2667['y$'](),this['onVRRequestPresentStart']=new _0x3f2667['y$']();},_0x26ee4b['D'][_0xb47e94(0x9ed)][_0xb47e94(0xc4f)]=function(){var _0x4af01d=_0xb47e94;return!!this[_0x4af01d(0xbf2)];},_0x26ee4b['D'][_0xb47e94(0x9ed)][_0xb47e94(0x691)]=function(){var _0x5b8bb1=_0xb47e94;return this[_0x5b8bb1(0xbf2)];},_0x26ee4b['D'][_0xb47e94(0x9ed)]['initWebVR']=function(){var _0x365ec2=_0xb47e94;return this[_0x365ec2(0xae4)](),this['onVRDisplayChangedObservable'];},_0x26ee4b['D'][_0xb47e94(0x9ed)]['initWebVRAsync']=function(){var _0x1d4903=_0xb47e94;const _0x98d9cf=()=>{var _0x1d12e1=a6_0x2304;const _0x1ede50={'vrDisplay':this[_0x1d12e1(0xbf2)],'vrSupported':this[_0x1d12e1(0x183)]};this[_0x1d12e1(0x321)]['notifyObservers'](_0x1ede50),this['_webVRInitPromise']=new Promise(_0x3651b7=>{_0x3651b7(_0x1ede50);});};if(!this[_0x1d4903(0xc49)]){this[_0x1d4903(0xc49)]=_0x4651a5=>{var _0x236d6d=_0x1d4903;this[_0x236d6d(0xbf2)]=_0x4651a5['display'],_0x98d9cf();},this['_onVrDisplayDisconnect']=()=>{var _0x388351=_0x1d4903;this[_0x388351(0xbf2)][_0x388351(0x92f)](this[_0x388351(0x99e)]),this[_0x388351(0xbf2)]=void 0x0,this[_0x388351(0x99e)]=_0x26ee4b['D'][_0x388351(0xb21)](this[_0x388351(0x137)]),_0x98d9cf();},this[_0x1d4903(0x9c7)]=()=>{var _0x43c730=_0x1d4903;this[_0x43c730(0xab8)]=this[_0x43c730(0xbf2)]&&this[_0x43c730(0xbf2)]['isPresenting'];};const _0xd259fe=this['getHostWindow']();_0xd259fe&&(_0xd259fe[_0x1d4903(0x478)](_0x1d4903(0x1eb),this[_0x1d4903(0xc49)]),_0xd259fe[_0x1d4903(0x478)](_0x1d4903(0x1d5),this[_0x1d4903(0x1dd)]),_0xd259fe[_0x1d4903(0x478)]('vrdisplaypresentchange',this[_0x1d4903(0x9c7)]));}return this[_0x1d4903(0x30e)]=this['_webVRInitPromise']||this['_getVRDisplaysAsync'](),this[_0x1d4903(0x30e)][_0x1d4903(0xbb3)](_0x98d9cf),this[_0x1d4903(0x30e)];},_0x26ee4b['D'][_0xb47e94(0x9ed)][_0xb47e94(0x24a)]=function(){return new Promise(_0x21b5c7=>{var _0x360873=a6_0x2304;navigator[_0x360873(0x17f)]?navigator['getVRDisplays']()[_0x360873(0xbb3)](_0x3aeedc=>{var _0x1a7b16=_0x360873;this[_0x1a7b16(0x183)]=!0x0,this[_0x1a7b16(0xbf2)]=_0x3aeedc[0x0],_0x21b5c7({'vrDisplay':this[_0x1a7b16(0xbf2)],'vrSupported':this[_0x1a7b16(0x183)]});}):(this[_0x360873(0xbf2)]=void 0x0,this[_0x360873(0x183)]=!0x1,_0x21b5c7({'vrDisplay':this['_vrDisplay'],'vrSupported':this[_0x360873(0x183)]}));});},_0x26ee4b['D']['prototype'][_0xb47e94(0x5aa)]=function(_0x26a49c){var _0x576458=_0xb47e94;this[_0x576458(0xbf2)]&&!this['_vrDisplay']['isPresenting']&&(this[_0x576458(0x989)][_0x576458(0xac3)](this),_0x26a49c={'highRefreshRate':!!this[_0x576458(0xced)]&&this[_0x576458(0xced)][_0x576458(0x72c)],'foveationLevel':this[_0x576458(0xced)]?this[_0x576458(0xced)]['foveationLevel']:0x1,'multiview':(this[_0x576458(0x33a)]()[_0x576458(0x495)]||this['getCaps']()['oculusMultiview'])&&_0x26a49c['useMultiview']},this[_0x576458(0xbf2)][_0x576458(0x5ef)]([Object[_0x576458(0x1ce)]({'source':this[_0x576458(0x461)](),'attributes':_0x26a49c},_0x26a49c)])[_0x576458(0xbb3)](()=>{var _0x298856=_0x576458;this[_0x298856(0x304)][_0x298856(0xac3)](!0x0),this[_0x298856(0x123)]();})[_0x576458(0x6fd)](()=>{var _0xd40839=_0x576458;this[_0xd40839(0x304)][_0xd40839(0xac3)](!0x1);}));},_0x26ee4b['D'][_0xb47e94(0x9ed)][_0xb47e94(0x123)]=function(){var _0x5a5ec0=_0xb47e94,_0x46c478;this[_0x5a5ec0(0xbf2)]&&this[_0x5a5ec0(0xbf2)][_0x5a5ec0(0x9c2)]?(this[_0x5a5ec0(0x730)]=new _0x4c532c['$'](this[_0x5a5ec0(0x73a)](),this['getRenderHeight']()),this[_0x5a5ec0(0x181)]=this[_0x5a5ec0(0x9c3)](),_0x46c478=this[_0x5a5ec0(0xbf2)][_0x5a5ec0(0xb2a)](_0x5a5ec0(0x471)),this[_0x5a5ec0(0xa96)](0x1),this[_0x5a5ec0(0x8c0)](0x2*_0x46c478[_0x5a5ec0(0x217)],_0x46c478[_0x5a5ec0(0x903)])):(this[_0x5a5ec0(0xa96)](this[_0x5a5ec0(0x181)]),this[_0x5a5ec0(0x8c0)](this[_0x5a5ec0(0x730)]['width'],this[_0x5a5ec0(0x730)][_0x5a5ec0(0x43d)]));},_0x26ee4b['D'][_0xb47e94(0x9ed)][_0xb47e94(0xaeb)]=function(){var _0x446ddf=_0xb47e94;this[_0x446ddf(0xbf2)]&&this[_0x446ddf(0xbf2)]['isPresenting']&&this['_vrDisplay'][_0x446ddf(0x4e5)]()['then'](()=>this[_0x446ddf(0x123)]())[_0x446ddf(0x6fd)](()=>this[_0x446ddf(0x123)]()),(0x0,_0x2cc2bb['CG'])()&&(window[_0x446ddf(0x148)](_0x446ddf(0xc19),this[_0x446ddf(0xcba)]),window[_0x446ddf(0x148)]('vrdisplaypointerunrestricted',this['_onVRDisplayPointerUnrestricted']),this['_onVrDisplayConnect']&&(window['removeEventListener'](_0x446ddf(0x1eb),this[_0x446ddf(0xc49)]),this[_0x446ddf(0x1dd)]&&window[_0x446ddf(0x148)]('vrdisplaydisconnect',this['_onVrDisplayDisconnect']),this['_onVrDisplayPresentChange']&&window[_0x446ddf(0x148)](_0x446ddf(0xc32),this[_0x446ddf(0x9c7)]),this[_0x446ddf(0xc49)]=null,this[_0x446ddf(0x1dd)]=null));},_0x26ee4b['D'][_0xb47e94(0x9ed)]['_connectVREvents']=function(_0x100fc2,_0x192a27){var _0x1853d9=_0xb47e94;if(this[_0x1853d9(0xcba)]=()=>{var _0x16bad2=_0x1853d9;_0x100fc2&&_0x100fc2[_0x16bad2(0xb71)]();},this[_0x1853d9(0x174)]=()=>{var _0x183026=_0x1853d9;if(_0x192a27)_0x192a27['exitPointerLock']&&_0x192a27[_0x183026(0xb73)]();else{const _0x407c49=this['getHostWindow']();_0x407c49[_0x183026(0x237)]&&_0x407c49[_0x183026(0x237)][_0x183026(0xb73)]&&_0x407c49[_0x183026(0x237)][_0x183026(0xb73)]();}},(0x0,_0x2cc2bb['CG'])()){const _0x130ee5=this[_0x1853d9(0x2d6)]();_0x130ee5['addEventListener'](_0x1853d9(0xc19),this[_0x1853d9(0xcba)],!0x1),_0x130ee5['addEventListener'](_0x1853d9(0x43c),this[_0x1853d9(0x174)],!0x1);}},_0x26ee4b['D'][_0xb47e94(0x9ed)][_0xb47e94(0x3b9)]=function(){var _0x3bc935=_0xb47e94;if(this['_vrDisplay']&&this[_0x3bc935(0xbf2)]['isPresenting'])try{this[_0x3bc935(0xbf2)]['submitFrame']();}catch(_0x18daf2){_0xaaed['w1'][_0x3bc935(0x636)](_0x3bc935(0x80b)+_0x18daf2);}},_0x26ee4b['D'][_0xb47e94(0x9ed)][_0xb47e94(0x305)]=function(){var _0x180cf4=_0xb47e94;return this[_0x180cf4(0xbf2)]&&this['_vrDisplay'][_0x180cf4(0x9c2)];},_0x26ee4b['D'][_0xb47e94(0x9ed)][_0xb47e94(0xd02)]=function(){var _0x1ac4a6=_0xb47e94;this[_0x1ac4a6(0x99e)]=_0x26ee4b['D']['QueueNewFrame'](this[_0x1ac4a6(0x137)],this[_0x1ac4a6(0xbf2)]);};},0x16651:(_0x14f98b,_0x3aed50,_0x4fb02c)=>{var _0x58054d=a6_0x1e64fa;_0x4fb02c['d'](_0x3aed50,{'E':()=>_0x18644e});class _0x18644e{constructor(_0x1e461c,_0x42a6ce){this['_engine']=_0x42a6ce,this['set'](_0x1e461c);}get['underlyingResource'](){return this['_nativeTexture'];}[_0x58054d(0xd11)](){}[_0x58054d(0x970)](_0x1465c2){this['_nativeTexture']=_0x1465c2;}[_0x58054d(0x22b)](){var _0x3fee17=_0x58054d;this[_0x3fee17(0xc96)]=null;}[_0x58054d(0xc74)](){var _0x444285=_0x58054d;this['_nativeTexture']&&this[_0x444285(0x397)][_0x444285(0x8b6)](this[_0x444285(0xc96)]),this[_0x444285(0x22b)]();}}},0xa218:(_0x18c98f,_0x1fa35d,_0x4dc41b)=>{var _0x3e3819=a6_0x1e64fa;_0x4dc41b['d'](_0x1fa35d,{'G':()=>_0x238dd6});class _0x238dd6{constructor(_0xcdf4d){var _0x45fa44=a6_0x2304;this[_0x45fa44(0x3bb)]=!0x0,this[_0x45fa44(0x479)]=!0x1,this['_valueCache']={},this['_engine']=_0xcdf4d;}get['isAsync'](){var _0x45bc99=a6_0x2304;return this[_0x45bc99(0x3bb)];}get['isReady'](){var _0x5b1d14=a6_0x2304,_0x536157;if(this['compilationError'])throw _0x536157=this[_0x5b1d14(0x912)][_0x5b1d14(0xc43)],new Error(_0x5b1d14(0xc42)+(_0x5b1d14(0x3f3)==typeof _0x536157?'\x0a'+_0x536157:''));return this[_0x5b1d14(0x479)];}[_0x3e3819(0x78c)](){return null;}['_getFragmentShaderCode'](){return null;}[_0x3e3819(0x838)](_0x1cd5d4){var _0x296a0e=_0x3e3819;throw new Error(_0x296a0e(0xb89));}[_0x3e3819(0xb9f)](_0x7fab74,_0x2baae9,_0x3082a5,_0x4dfa57,_0x3f8769,_0x2d19a0,_0x3b67ad,_0x1a4c06){var _0x458aa4=_0x3e3819;const _0x3d3fb6=this[_0x458aa4(0x397)];if(_0x3d3fb6[_0x458aa4(0x646)]){for(const _0x4ebf7f in _0x2baae9)_0x7fab74[_0x458aa4(0x292)](_0x4ebf7f,_0x2baae9[_0x4ebf7f]);}const _0x516e53=this['_engine']['getUniforms'](this,_0x3082a5);_0x516e53[_0x458aa4(0x497)]((_0x21c30f,_0xd45cb2)=>{_0x4dfa57[_0x3082a5[_0xd45cb2]]=_0x21c30f;}),this['_uniforms']=_0x4dfa57;let _0x27a93b;for(_0x27a93b=0x0;_0x27a93b<_0x3f8769[_0x458aa4(0x3ef)];_0x27a93b++)null==_0x7fab74[_0x458aa4(0x331)](_0x3f8769[_0x27a93b])&&(_0x3f8769[_0x458aa4(0x227)](_0x27a93b,0x1),_0x27a93b--);_0x3f8769['forEach']((_0x5833c4,_0x257791)=>{_0x2d19a0[_0x5833c4]=_0x257791;}),_0x1a4c06[_0x458aa4(0x83f)](..._0x3d3fb6[_0x458aa4(0xb7e)](this,_0x3b67ad));}[_0x3e3819(0x431)](){this['_uniforms']={};}[_0x3e3819(0x1c2)](_0x358eee,_0x490476){var _0x54e021=_0x3e3819,_0x3fbd04=this['_valueCache'][_0x358eee],_0x490476=_0x490476[_0x54e021(0x31f)];return(void 0x0===_0x3fbd04||_0x3fbd04!==_0x490476)&&(this[_0x54e021(0x6aa)][_0x358eee]=_0x490476,!0x0);}['_cacheFloat2'](_0x653a9f,_0x549a73,_0x31f68b){var _0x45ab01=_0x3e3819;let _0x15c896=this['_valueCache'][_0x653a9f];if(!_0x15c896)return _0x15c896=[_0x549a73,_0x31f68b],this[_0x45ab01(0x6aa)][_0x653a9f]=_0x15c896,!0x0;let _0x221c08=!0x1;return _0x15c896[0x0]!==_0x549a73&&(_0x15c896[0x0]=_0x549a73,_0x221c08=!0x0),_0x15c896[0x1]!==_0x31f68b&&(_0x15c896[0x1]=_0x31f68b,_0x221c08=!0x0),_0x221c08;}[_0x3e3819(0xc61)](_0x1f6920,_0x8ad88d,_0x5d139a,_0x239801){var _0x569a49=_0x3e3819;let _0x4febb6=this[_0x569a49(0x6aa)][_0x1f6920];if(!_0x4febb6)return _0x4febb6=[_0x8ad88d,_0x5d139a,_0x239801],this[_0x569a49(0x6aa)][_0x1f6920]=_0x4febb6,!0x0;let _0x4afc36=!0x1;return _0x4febb6[0x0]!==_0x8ad88d&&(_0x4febb6[0x0]=_0x8ad88d,_0x4afc36=!0x0),_0x4febb6[0x1]!==_0x5d139a&&(_0x4febb6[0x1]=_0x5d139a,_0x4afc36=!0x0),_0x4febb6[0x2]!==_0x239801&&(_0x4febb6[0x2]=_0x239801,_0x4afc36=!0x0),_0x4afc36;}['_cacheFloat4'](_0x19432a,_0x2a329e,_0x2c3bd5,_0x64039a,_0x1becca){var _0x404bc6=_0x3e3819;let _0x3d92e0=this[_0x404bc6(0x6aa)][_0x19432a];if(!_0x3d92e0)return _0x3d92e0=[_0x2a329e,_0x2c3bd5,_0x64039a,_0x1becca],this[_0x404bc6(0x6aa)][_0x19432a]=_0x3d92e0,!0x0;let _0x1aea53=!0x1;return _0x3d92e0[0x0]!==_0x2a329e&&(_0x3d92e0[0x0]=_0x2a329e,_0x1aea53=!0x0),_0x3d92e0[0x1]!==_0x2c3bd5&&(_0x3d92e0[0x1]=_0x2c3bd5,_0x1aea53=!0x0),_0x3d92e0[0x2]!==_0x64039a&&(_0x3d92e0[0x2]=_0x64039a,_0x1aea53=!0x0),_0x3d92e0[0x3]!==_0x1becca&&(_0x3d92e0[0x3]=_0x1becca,_0x1aea53=!0x0),_0x1aea53;}[_0x3e3819(0x3a8)](_0x1a08dd,_0xf62794){var _0x14ce08=_0x3e3819,_0x1bf1db=this[_0x14ce08(0x6aa)][_0x1a08dd];void 0x0!==_0x1bf1db&&_0x1bf1db===_0xf62794||this[_0x14ce08(0x397)]['setInt'](this[_0x14ce08(0x5fa)][_0x1a08dd],_0xf62794)&&(this[_0x14ce08(0x6aa)][_0x1a08dd]=_0xf62794);}[_0x3e3819(0x831)](_0x52a477,_0x3d1867,_0x1c28b3){var _0x1d2fad=_0x3e3819;this[_0x1d2fad(0xc30)](_0x52a477,_0x3d1867,_0x1c28b3)&&!this[_0x1d2fad(0x397)][_0x1d2fad(0x831)](this[_0x1d2fad(0x5fa)][_0x52a477],_0x3d1867,_0x1c28b3)&&(this[_0x1d2fad(0x6aa)][_0x52a477]=null);}[_0x3e3819(0x719)](_0x277f7c,_0x94029f,_0x13f4d3,_0x12dae7){var _0x2c903e=_0x3e3819;this['_cacheFloat3'](_0x277f7c,_0x94029f,_0x13f4d3,_0x12dae7)&&!this[_0x2c903e(0x397)][_0x2c903e(0x719)](this[_0x2c903e(0x5fa)][_0x277f7c],_0x94029f,_0x13f4d3,_0x12dae7)&&(this[_0x2c903e(0x6aa)][_0x277f7c]=null);}[_0x3e3819(0x530)](_0x478adf,_0x211fbf,_0x3582b6,_0x38a3c8,_0x20ead9){var _0x4526ba=_0x3e3819;this[_0x4526ba(0x328)](_0x478adf,_0x211fbf,_0x3582b6,_0x38a3c8,_0x20ead9)&&!this[_0x4526ba(0x397)][_0x4526ba(0x530)](this['_uniforms'][_0x478adf],_0x211fbf,_0x3582b6,_0x38a3c8,_0x20ead9)&&(this[_0x4526ba(0x6aa)][_0x478adf]=null);}[_0x3e3819(0xa61)](_0x20216a,_0x71a5d5){var _0x2ea577=_0x3e3819;this['_valueCache'][_0x20216a]=null,this[_0x2ea577(0x397)]['setIntArray'](this[_0x2ea577(0x5fa)][_0x20216a],_0x71a5d5);}[_0x3e3819(0x14a)](_0x42a637,_0x51aa5d){var _0x363021=_0x3e3819;this[_0x363021(0x6aa)][_0x42a637]=null,this[_0x363021(0x397)][_0x363021(0x14a)](this[_0x363021(0x5fa)][_0x42a637],_0x51aa5d);}[_0x3e3819(0x744)](_0x3ff436,_0xec7931){var _0x168322=_0x3e3819;this[_0x168322(0x6aa)][_0x3ff436]=null,this[_0x168322(0x397)][_0x168322(0x744)](this[_0x168322(0x5fa)][_0x3ff436],_0xec7931);}[_0x3e3819(0xa6a)](_0xd387d4,_0x52b461){var _0x2c2c0d=_0x3e3819;this[_0x2c2c0d(0x6aa)][_0xd387d4]=null,this['_engine'][_0x2c2c0d(0xa6a)](this['_uniforms'][_0xd387d4],_0x52b461);}['setUInt'](_0x447956,_0x47c398){var _0xd67d0f=_0x3e3819,_0x137fc7=this['_valueCache'][_0x447956];void 0x0!==_0x137fc7&&_0x137fc7===_0x47c398||this[_0xd67d0f(0x397)][_0xd67d0f(0x8dc)](this[_0xd67d0f(0x5fa)][_0x447956],_0x47c398)&&(this[_0xd67d0f(0x6aa)][_0x447956]=_0x47c398);}[_0x3e3819(0x6ec)](_0x7d84eb,_0x2274a3,_0x54f092){var _0x16ad28=_0x3e3819;this[_0x16ad28(0xc30)](_0x7d84eb,_0x2274a3,_0x54f092)&&!this[_0x16ad28(0x397)][_0x16ad28(0x6ec)](this[_0x16ad28(0x5fa)][_0x7d84eb],_0x2274a3,_0x54f092)&&(this['_valueCache'][_0x7d84eb]=null);}[_0x3e3819(0x1a5)](_0x5d38be,_0x42816f,_0x516b86,_0x277e3a){var _0x272311=_0x3e3819;this[_0x272311(0xc61)](_0x5d38be,_0x42816f,_0x516b86,_0x277e3a)&&!this[_0x272311(0x397)]['setUInt3'](this[_0x272311(0x5fa)][_0x5d38be],_0x42816f,_0x516b86,_0x277e3a)&&(this[_0x272311(0x6aa)][_0x5d38be]=null);}[_0x3e3819(0x629)](_0x5911a2,_0x809ab6,_0x200cda,_0x179b42,_0x3d549c){var _0x180d42=_0x3e3819;this[_0x180d42(0x328)](_0x5911a2,_0x809ab6,_0x200cda,_0x179b42,_0x3d549c)&&!this[_0x180d42(0x397)]['setUInt4'](this[_0x180d42(0x5fa)][_0x5911a2],_0x809ab6,_0x200cda,_0x179b42,_0x3d549c)&&(this[_0x180d42(0x6aa)][_0x5911a2]=null);}[_0x3e3819(0x439)](_0xd57d9d,_0x1a597e){var _0x161881=_0x3e3819;this[_0x161881(0x6aa)][_0xd57d9d]=null,this[_0x161881(0x397)]['setUIntArray'](this[_0x161881(0x5fa)][_0xd57d9d],_0x1a597e);}[_0x3e3819(0x643)](_0x59981c,_0x169181){var _0x3fb6ef=_0x3e3819;this['_valueCache'][_0x59981c]=null,this['_engine'][_0x3fb6ef(0x643)](this['_uniforms'][_0x59981c],_0x169181);}[_0x3e3819(0xa72)](_0x289cdd,_0x5a30c9){var _0x48f1e7=_0x3e3819;this[_0x48f1e7(0x6aa)][_0x289cdd]=null,this[_0x48f1e7(0x397)][_0x48f1e7(0xa72)](this['_uniforms'][_0x289cdd],_0x5a30c9);}[_0x3e3819(0x733)](_0x5c07b5,_0x318cf0){var _0x2dd19d=_0x3e3819;this['_valueCache'][_0x5c07b5]=null,this[_0x2dd19d(0x397)][_0x2dd19d(0x733)](this[_0x2dd19d(0x5fa)][_0x5c07b5],_0x318cf0);}[_0x3e3819(0x8b3)](_0x5ee0c6,_0x5b405a){var _0x39bdff=_0x3e3819;this[_0x39bdff(0x6aa)][_0x5ee0c6]=null,this[_0x39bdff(0x397)][_0x39bdff(0x8b3)](this['_uniforms'][_0x5ee0c6],_0x5b405a);}[_0x3e3819(0x20c)](_0x406f49,_0x15ade4){var _0x18d50c=_0x3e3819;this[_0x18d50c(0x6aa)][_0x406f49]=null,this[_0x18d50c(0x397)]['setFloatArray2'](this['_uniforms'][_0x406f49],_0x15ade4);}[_0x3e3819(0x539)](_0x3aea3a,_0x53f27c){var _0x462fcf=_0x3e3819;this['_valueCache'][_0x3aea3a]=null,this['_engine'][_0x462fcf(0x539)](this[_0x462fcf(0x5fa)][_0x3aea3a],_0x53f27c);}[_0x3e3819(0xa9d)](_0x5d1488,_0x1e64e1){var _0x299846=_0x3e3819;this['_valueCache'][_0x5d1488]=null,this[_0x299846(0x397)][_0x299846(0xa9d)](this['_uniforms'][_0x5d1488],_0x1e64e1);}[_0x3e3819(0x8ab)](_0x1214ab,_0xacc14c){var _0x3d5f37=_0x3e3819;this[_0x3d5f37(0x6aa)][_0x1214ab]=null,this[_0x3d5f37(0x397)][_0x3d5f37(0x8ab)](this['_uniforms'][_0x1214ab],_0xacc14c);}['setArray2'](_0x5cea17,_0x5c69db){var _0x2345cd=_0x3e3819;this[_0x2345cd(0x6aa)][_0x5cea17]=null,this[_0x2345cd(0x397)][_0x2345cd(0x57a)](this['_uniforms'][_0x5cea17],_0x5c69db);}['setArray3'](_0x12b603,_0x3bd3cb){var _0x57ea10=_0x3e3819;this[_0x57ea10(0x6aa)][_0x12b603]=null,this[_0x57ea10(0x397)]['setArray3'](this[_0x57ea10(0x5fa)][_0x12b603],_0x3bd3cb);}[_0x3e3819(0x2dd)](_0x39112d,_0x4f0d06){var _0x5c52ae=_0x3e3819;this[_0x5c52ae(0x6aa)][_0x39112d]=null,this[_0x5c52ae(0x397)]['setArray4'](this[_0x5c52ae(0x5fa)][_0x39112d],_0x4f0d06);}[_0x3e3819(0x7f3)](_0x299c03,_0x50810a){var _0x3f7938=_0x3e3819;_0x50810a&&(this[_0x3f7938(0x6aa)][_0x299c03]=null,this['_engine'][_0x3f7938(0x7f3)](this[_0x3f7938(0x5fa)][_0x299c03],_0x50810a));}[_0x3e3819(0x44c)](_0x10d1ab,_0x341cba){var _0x158de8=_0x3e3819;this['_cacheMatrix'](_0x10d1ab,_0x341cba)&&!this['_engine']['setMatrices'](this[_0x158de8(0x5fa)][_0x10d1ab],_0x341cba['toArray']())&&(this['_valueCache'][_0x10d1ab]=null);}[_0x3e3819(0x409)](_0x5a9628,_0x27e992){var _0x1371fb=_0x3e3819;this[_0x1371fb(0x6aa)][_0x5a9628]=null,this[_0x1371fb(0x397)][_0x1371fb(0x409)](this[_0x1371fb(0x5fa)][_0x5a9628],_0x27e992);}['setMatrix2x2'](_0x1358a3,_0xb2d4c7){var _0x19a33c=_0x3e3819;this[_0x19a33c(0x6aa)][_0x1358a3]=null,this[_0x19a33c(0x397)][_0x19a33c(0xa9a)](this[_0x19a33c(0x5fa)][_0x1358a3],_0xb2d4c7);}[_0x3e3819(0x5f3)](_0x3ddd45,_0x5ede31){var _0x2cda11=_0x3e3819,_0x192345=this['_valueCache'][_0x3ddd45];void 0x0!==_0x192345&&_0x192345===_0x5ede31||this[_0x2cda11(0x397)][_0x2cda11(0x5f3)](this[_0x2cda11(0x5fa)][_0x3ddd45],_0x5ede31)&&(this[_0x2cda11(0x6aa)][_0x3ddd45]=_0x5ede31);}[_0x3e3819(0x67b)](_0x440c83,_0x282c81){var _0x5bf18f=_0x3e3819,_0x461f08=this[_0x5bf18f(0x6aa)][_0x440c83];void 0x0!==_0x461f08&&_0x461f08===_0x282c81||this[_0x5bf18f(0x397)][_0x5bf18f(0x3a8)](this[_0x5bf18f(0x5fa)][_0x440c83],_0x282c81?0x1:0x0)&&(this[_0x5bf18f(0x6aa)][_0x440c83]=_0x282c81?0x1:0x0);}[_0x3e3819(0x3a6)](_0x8dda49,_0x536245){var _0x4af189=_0x3e3819;this[_0x4af189(0xc30)](_0x8dda49,_0x536245['x'],_0x536245['y'])&&!this[_0x4af189(0x397)][_0x4af189(0x796)](this['_uniforms'][_0x8dda49],_0x536245['x'],_0x536245['y'])&&(this[_0x4af189(0x6aa)][_0x8dda49]=null);}[_0x3e3819(0x796)](_0x141df0,_0x137e02,_0x7439a4){var _0x5ec802=_0x3e3819;this[_0x5ec802(0xc30)](_0x141df0,_0x137e02,_0x7439a4)&&!this[_0x5ec802(0x397)]['setFloat2'](this['_uniforms'][_0x141df0],_0x137e02,_0x7439a4)&&(this[_0x5ec802(0x6aa)][_0x141df0]=null);}[_0x3e3819(0x5fc)](_0x4888d9,_0x57ec86){var _0x4be2f0=_0x3e3819;this[_0x4be2f0(0xc61)](_0x4888d9,_0x57ec86['x'],_0x57ec86['y'],_0x57ec86['z'])&&!this[_0x4be2f0(0x397)][_0x4be2f0(0xa4c)](this[_0x4be2f0(0x5fa)][_0x4888d9],_0x57ec86['x'],_0x57ec86['y'],_0x57ec86['z'])&&(this[_0x4be2f0(0x6aa)][_0x4888d9]=null);}['setFloat3'](_0xfd27d9,_0x52e801,_0x186fca,_0x1b9c4b){var _0x60db9=_0x3e3819;this['_cacheFloat3'](_0xfd27d9,_0x52e801,_0x186fca,_0x1b9c4b)&&!this[_0x60db9(0x397)][_0x60db9(0xa4c)](this['_uniforms'][_0xfd27d9],_0x52e801,_0x186fca,_0x1b9c4b)&&(this[_0x60db9(0x6aa)][_0xfd27d9]=null);}[_0x3e3819(0x4af)](_0xa30cd5,_0x2a6118){var _0x451378=_0x3e3819;this['_cacheFloat4'](_0xa30cd5,_0x2a6118['x'],_0x2a6118['y'],_0x2a6118['z'],_0x2a6118['w'])&&!this['_engine'][_0x451378(0xaee)](this[_0x451378(0x5fa)][_0xa30cd5],_0x2a6118['x'],_0x2a6118['y'],_0x2a6118['z'],_0x2a6118['w'])&&(this[_0x451378(0x6aa)][_0xa30cd5]=null);}[_0x3e3819(0xc90)](_0x2986eb,_0x554539){var _0x5002a9=_0x3e3819;this['_cacheFloat4'](_0x2986eb,_0x554539['x'],_0x554539['y'],_0x554539['z'],_0x554539['w'])&&!this[_0x5002a9(0x397)][_0x5002a9(0xaee)](this[_0x5002a9(0x5fa)][_0x2986eb],_0x554539['x'],_0x554539['y'],_0x554539['z'],_0x554539['w'])&&(this[_0x5002a9(0x6aa)][_0x2986eb]=null);}[_0x3e3819(0xaee)](_0x2248f0,_0x10e5c5,_0x138f36,_0x1d6ff1,_0x28cc33){var _0x2bc35b=_0x3e3819;this[_0x2bc35b(0x328)](_0x2248f0,_0x10e5c5,_0x138f36,_0x1d6ff1,_0x28cc33)&&!this[_0x2bc35b(0x397)][_0x2bc35b(0xaee)](this[_0x2bc35b(0x5fa)][_0x2248f0],_0x10e5c5,_0x138f36,_0x1d6ff1,_0x28cc33)&&(this[_0x2bc35b(0x6aa)][_0x2248f0]=null);}[_0x3e3819(0x325)](_0x31addb,_0x1ed579){var _0x55a15f=_0x3e3819;this[_0x55a15f(0xc61)](_0x31addb,_0x1ed579['r'],_0x1ed579['g'],_0x1ed579['b'])&&!this[_0x55a15f(0x397)][_0x55a15f(0xa4c)](this[_0x55a15f(0x5fa)][_0x31addb],_0x1ed579['r'],_0x1ed579['g'],_0x1ed579['b'])&&(this['_valueCache'][_0x31addb]=null);}[_0x3e3819(0xb8d)](_0x142ad9,_0x34b6f9,_0x3b9b7a){var _0x16519e=_0x3e3819;this['_cacheFloat4'](_0x142ad9,_0x34b6f9['r'],_0x34b6f9['g'],_0x34b6f9['b'],_0x3b9b7a)&&!this[_0x16519e(0x397)][_0x16519e(0xaee)](this[_0x16519e(0x5fa)][_0x142ad9],_0x34b6f9['r'],_0x34b6f9['g'],_0x34b6f9['b'],_0x3b9b7a)&&(this[_0x16519e(0x6aa)][_0x142ad9]=null);}[_0x3e3819(0x9fd)](_0x1ec585,_0x308fb7){var _0x510532=_0x3e3819;this[_0x510532(0x328)](_0x1ec585,_0x308fb7['r'],_0x308fb7['g'],_0x308fb7['b'],_0x308fb7['a'])&&!this[_0x510532(0x397)][_0x510532(0xaee)](this[_0x510532(0x5fa)][_0x1ec585],_0x308fb7['r'],_0x308fb7['g'],_0x308fb7['b'],_0x308fb7['a'])&&(this[_0x510532(0x6aa)][_0x1ec585]=null);}}},0x1581f:(_0x12138a,_0x2eaa22,_0x9d464d)=>{var _0x1b3fcd=a6_0x1e64fa;_0x9d464d['d'](_0x2eaa22,{'o':()=>_0x15f620});class _0x15f620 extends _0x9d464d(0x758)['r']{constructor(_0x1f05b9,_0xda9905,_0x3ed941,_0x2a73be){var _0x3c8884=a6_0x2304;super(_0x1f05b9,_0xda9905,_0x3ed941,_0x2a73be),this[_0x3c8884(0x768)]=null,this[_0x3c8884(0x5b9)]=null,this['_engine']=_0x2a73be;}get[_0x1b3fcd(0x75e)](){var _0x46cbe5=_0x1b3fcd;return this[_0x46cbe5(0x768)];}set[_0x1b3fcd(0x75e)](_0x4f88e5){var _0x33690f=_0x1b3fcd;this[_0x33690f(0x768)]&&this['_engine']['_releaseFramebufferObjects'](this[_0x33690f(0x768)]),this[_0x33690f(0x768)]=_0x4f88e5;}get[_0x1b3fcd(0x367)](){return this['__framebufferDepthStencil'];}set[_0x1b3fcd(0x367)](_0x557e90){var _0x2edb17=_0x1b3fcd;this[_0x2edb17(0x5b9)]&&this[_0x2edb17(0x397)][_0x2edb17(0xd05)](this[_0x2edb17(0x5b9)]),this[_0x2edb17(0x5b9)]=_0x557e90;}[_0x1b3fcd(0x431)](_0x34a9f3=!0x1){var _0x2ccff4=_0x1b3fcd;this['_framebuffer']=null,this[_0x2ccff4(0x367)]=null,super[_0x2ccff4(0x431)](_0x34a9f3);}}},0x5c6e:(_0x43535d,_0x1c604b,_0x1b02b1)=>{var _0xaf81ea=a6_0x1e64fa;_0x1b02b1['d'](_0x1c604b,{'L':()=>_0x38de32});class _0x17a253{constructor(){var _0x200263=a6_0x2304;this[_0x200263(0xbb7)]=[];}[_0xaf81ea(0xbbf)](_0x374ecd){return!0x0;}[_0xaf81ea(0x468)](_0xb8c950,_0x1c01d4){var _0x5cc0e3=_0xaf81ea;let _0x397990='';if(this[_0x5cc0e3(0xbb9)]){let _0x438e25=this[_0x5cc0e3(0xbb9)];const _0x3ed0d2=_0x1c01d4[_0x5cc0e3(0x69a)];if(_0x3ed0d2){_0x3ed0d2['lineProcessor']&&(_0x438e25=_0x3ed0d2[_0x5cc0e3(0x7b3)](_0x438e25,_0x1c01d4[_0x5cc0e3(0x655)],_0x1c01d4['processingContext']));var _0x424aca=null!=(_0x424aca=null==(_0x424aca=_0x1c01d4[_0x5cc0e3(0x69a)])?void 0x0:_0x424aca['attributeKeywordName'])?_0x424aca:_0x5cc0e3(0xa12),_0x49f6a1=_0x1c01d4[_0x5cc0e3(0x655)]&&null!=(_0x49f6a1=_0x1c01d4[_0x5cc0e3(0x69a)])&&_0x49f6a1[_0x5cc0e3(0x225)]?null==(_0x49f6a1=_0x1c01d4[_0x5cc0e3(0x69a)])?void 0x0:_0x49f6a1['varyingFragmentKeywordName']:!_0x1c01d4[_0x5cc0e3(0x655)]&&null!=(_0x49f6a1=_0x1c01d4[_0x5cc0e3(0x69a)])&&_0x49f6a1[_0x5cc0e3(0x42d)]?null==(_0x49f6a1=_0x1c01d4[_0x5cc0e3(0x69a)])?void 0x0:_0x49f6a1['varyingVertexKeywordName']:'varying';if(!_0x1c01d4[_0x5cc0e3(0x655)]&&_0x3ed0d2[_0x5cc0e3(0x6c7)]&&this['line'][_0x5cc0e3(0xc41)](_0x424aca))_0x438e25=_0x3ed0d2['attributeProcessor'](this['line'],_0xb8c950,_0x1c01d4[_0x5cc0e3(0x3fb)]);else{if(_0x3ed0d2['varyingProcessor']&&this[_0x5cc0e3(0xbb9)]['startsWith'](_0x49f6a1))_0x438e25=_0x3ed0d2[_0x5cc0e3(0x362)](this[_0x5cc0e3(0xbb9)],_0x1c01d4['isFragment'],_0xb8c950,_0x1c01d4[_0x5cc0e3(0x3fb)]);else{if(_0x3ed0d2['uniformProcessor']&&_0x3ed0d2[_0x5cc0e3(0x378)]&&_0x3ed0d2[_0x5cc0e3(0x378)][_0x5cc0e3(0x70c)](this[_0x5cc0e3(0xbb9)]))_0x1c01d4[_0x5cc0e3(0x76e)]||(_0x438e25=_0x3ed0d2[_0x5cc0e3(0xab7)](this[_0x5cc0e3(0xbb9)],_0x1c01d4[_0x5cc0e3(0x655)],_0xb8c950,_0x1c01d4[_0x5cc0e3(0x3fb)]));else{if(_0x3ed0d2[_0x5cc0e3(0x5b1)]&&_0x3ed0d2[_0x5cc0e3(0x9a2)]&&_0x3ed0d2[_0x5cc0e3(0x9a2)][_0x5cc0e3(0x70c)](this['line']))_0x1c01d4[_0x5cc0e3(0x76e)]||(_0x438e25=_0x3ed0d2[_0x5cc0e3(0x5b1)](this['line'],_0x1c01d4['isFragment'],_0x1c01d4[_0x5cc0e3(0x3fb)]),_0x1c01d4['lookForClosingBracketForUniformBuffer']=!0x0);else{if(_0x3ed0d2[_0x5cc0e3(0x6ba)]&&_0x3ed0d2[_0x5cc0e3(0xaec)]&&_0x3ed0d2['textureRegexp']['test'](this['line']))_0x438e25=_0x3ed0d2['textureProcessor'](this['line'],_0x1c01d4['isFragment'],_0xb8c950,_0x1c01d4[_0x5cc0e3(0x3fb)]);else{if((_0x3ed0d2[_0x5cc0e3(0xab7)]||_0x3ed0d2[_0x5cc0e3(0x5b1)])&&this[_0x5cc0e3(0xbb9)][_0x5cc0e3(0xc41)](_0x5cc0e3(0x674))&&!_0x1c01d4['lookForClosingBracketForUniformBuffer']){const _0x1db614=/uniform\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/;_0x1db614['test'](this['line'])?_0x3ed0d2[_0x5cc0e3(0xab7)]&&(_0x438e25=_0x3ed0d2['uniformProcessor'](this[_0x5cc0e3(0xbb9)],_0x1c01d4[_0x5cc0e3(0x655)],_0xb8c950,_0x1c01d4[_0x5cc0e3(0x3fb)])):_0x3ed0d2['uniformBufferProcessor']&&(_0x438e25=_0x3ed0d2[_0x5cc0e3(0x5b1)](this[_0x5cc0e3(0xbb9)],_0x1c01d4[_0x5cc0e3(0x655)],_0x1c01d4[_0x5cc0e3(0x3fb)]),_0x1c01d4[_0x5cc0e3(0x76e)]=!0x0);}}}}}}_0x1c01d4[_0x5cc0e3(0x76e)]&&-0x1!==this[_0x5cc0e3(0xbb9)][_0x5cc0e3(0x9e0)]('}')&&(_0x1c01d4[_0x5cc0e3(0x76e)]=!0x1,_0x3ed0d2['endOfUniformBufferProcessor']&&(_0x438e25=_0x3ed0d2[_0x5cc0e3(0xc8e)](this[_0x5cc0e3(0xbb9)],_0x1c01d4[_0x5cc0e3(0x655)],_0x1c01d4[_0x5cc0e3(0x3fb)])));}_0x397990+=_0x438e25+'\x0d\x0a';}return this[_0x5cc0e3(0xbb7)][_0x5cc0e3(0x497)](_0x15b5bd=>{var _0x52684c=_0x5cc0e3;_0x397990+=_0x15b5bd[_0x52684c(0x468)](_0xb8c950,_0x1c01d4);}),this[_0x5cc0e3(0x8e5)]&&(_0xb8c950[this[_0x5cc0e3(0x8e5)]]=this[_0x5cc0e3(0x8df)]||_0x5cc0e3(0xcb7)),_0x397990;}}class _0x238e92{constructor(){var _0x5c1980=_0xaf81ea;this[_0x5c1980(0x5a9)]=[];}get[_0xaf81ea(0x4b2)](){var _0x5a8144=_0xaf81ea;return this[_0x5a8144(0x5a9)][this[_0x5a8144(0x6da)]];}get[_0xaf81ea(0x3db)](){var _0x361db9=_0xaf81ea;return this[_0x361db9(0x6da)]<this['_lines'][_0x361db9(0x3ef)]-0x1;}set[_0xaf81ea(0xcc3)](_0x428ab2){var _0x368b1f=_0xaf81ea;this[_0x368b1f(0x5a9)][_0x368b1f(0x3ef)]=0x0;for(const _0x2ee6dd of _0x428ab2)if('#'===_0x2ee6dd[0x0])this[_0x368b1f(0x5a9)][_0x368b1f(0x83f)](_0x2ee6dd);else{if(_0x2ee6dd[_0x368b1f(0xb68)]()['startsWith']('//'))this[_0x368b1f(0x5a9)][_0x368b1f(0x83f)](_0x2ee6dd);else{var _0x1f099c=_0x2ee6dd[_0x368b1f(0x1f6)](';');for(let _0x4474cb=0x0;_0x4474cb<_0x1f099c[_0x368b1f(0x3ef)];_0x4474cb++){let _0x4e5dae=_0x1f099c[_0x4474cb];(_0x4e5dae=_0x4e5dae[_0x368b1f(0xb68)]())&&this['_lines'][_0x368b1f(0x83f)](_0x4e5dae+(_0x4474cb!==_0x1f099c[_0x368b1f(0x3ef)]-0x1?';':''));}}}}}class _0x933530 extends _0x17a253{[_0xaf81ea(0x468)](_0x2017df,_0x257858){var _0x519226=_0xaf81ea;for(let _0x4bed97=0x0;_0x4bed97<this[_0x519226(0xbb7)][_0x519226(0x3ef)];_0x4bed97++){const _0x1dba38=this['children'][_0x4bed97];if(_0x1dba38[_0x519226(0xbbf)](_0x2017df))return _0x1dba38[_0x519226(0x468)](_0x2017df,_0x257858);}return'';}}class _0x5532b2 extends _0x17a253{[_0xaf81ea(0xbbf)](_0x465abe){var _0x3b104e=_0xaf81ea;return this[_0x3b104e(0x2b0)][_0x3b104e(0xa3d)](_0x465abe);}}class _0x56532b{['isTrue'](_0x11927f){return!0x0;}static[_0xaf81ea(0x8d7)](_0x495312){var _0x2e94bc=_0xaf81ea;const _0x1c3762=[];for(const _0x2aa33b of _0x495312){var _0x2d1268,_0x44f3;void 0x0===_0x56532b['_OperatorPriority'][_0x2aa33b]?_0x1c3762[_0x2e94bc(0x83f)](_0x2aa33b):(_0x2d1268=_0x1c3762[_0x1c3762[_0x2e94bc(0x3ef)]-0x1],_0x44f3=_0x1c3762[_0x1c3762[_0x2e94bc(0x3ef)]-0x2],_0x1c3762[_0x2e94bc(0x3ef)]-=0x2,_0x1c3762[_0x2e94bc(0x83f)]('('+_0x44f3+_0x2aa33b+_0x2d1268+')'));}return _0x1c3762[_0x1c3762[_0x2e94bc(0x3ef)]-0x1];}static[_0xaf81ea(0xca9)](_0x9b7911){var _0xad924=_0xaf81ea;const _0x2c91f3=[];let _0x3a3deb=-0x1;var _0x21f059=()=>{var _0x3ab01b=a6_0x2304;''!==(_0x5c7982=_0x5c7982[_0x3ab01b(0xb68)]())&&(_0x2c91f3[_0x3ab01b(0x83f)](_0x5c7982),_0x5c7982='');},_0x156814=_0x58d53a=>{var _0x4ca04d=a6_0x2304;_0x3a3deb<_0x56532b[_0x4ca04d(0x3a5)][_0x4ca04d(0x3ef)]-0x1&&(_0x56532b['_Stack'][++_0x3a3deb]=_0x58d53a);},_0x56f3d5=()=>_0x56532b[_0xad924(0x3a5)][_0x3a3deb],_0x7050e6=()=>-0x1===_0x3a3deb?_0xad924(0x2df):_0x56532b[_0xad924(0x3a5)][_0x3a3deb--];let _0x24be41=0x0,_0x5c7982='';for(;_0x24be41<_0x9b7911[_0xad924(0x3ef)];){var _0x27ca5f=_0x9b7911[_0xad924(0x306)](_0x24be41),_0x344574=_0x24be41<_0x9b7911['length']-0x1?_0x9b7911['substr'](_0x24be41,0x2):'';if('('===_0x27ca5f)_0x5c7982='',_0x156814(_0x27ca5f);else{if(')'===_0x27ca5f){for(_0x21f059();-0x1!==_0x3a3deb&&'('!==_0x56f3d5();)_0x2c91f3['push'](_0x7050e6());_0x7050e6();}else{if(0x1<_0x56532b[_0xad924(0x1fe)][_0x344574]){for(_0x21f059();-0x1!==_0x3a3deb&&_0x56532b[_0xad924(0x1fe)][_0x56f3d5()]>=_0x56532b['_OperatorPriority'][_0x344574];)_0x2c91f3['push'](_0x7050e6());_0x156814(_0x344574),_0x24be41++;}else _0x5c7982+=_0x27ca5f;}}_0x24be41++;}for(_0x21f059();-0x1!==_0x3a3deb;)'('===_0x56f3d5()?_0x7050e6():_0x2c91f3[_0xad924(0x83f)](_0x7050e6());return _0x2c91f3;}}_0x56532b[_0xaf81ea(0x1fe)]={')':0x0,'(':0x1,'||':0x2,'&&':0x3},_0x56532b[_0xaf81ea(0x3a5)]=['','','','','','','','','','','','','','','','','','','',''];class _0x3459aa extends _0x56532b{constructor(_0x45063f,_0x5ca08e=!0x1){super(),this['define']=_0x45063f,this['not']=_0x5ca08e;}['isTrue'](_0x4ab6c4){var _0x27197e=_0xaf81ea;let _0x5d04b2=void 0x0!==_0x4ab6c4[this[_0x27197e(0x9ea)]];return _0x5d04b2=this[_0x27197e(0x87f)]?!_0x5d04b2:_0x5d04b2;}}class _0x95b2be extends _0x56532b{[_0xaf81ea(0xa3d)](_0x5a185e){var _0x9c26e=_0xaf81ea;return this['leftOperand'][_0x9c26e(0xa3d)](_0x5a185e)||this['rightOperand'][_0x9c26e(0xa3d)](_0x5a185e);}}class _0x1275fd extends _0x56532b{['isTrue'](_0x5bca14){return this['leftOperand']['isTrue'](_0x5bca14)&&this['rightOperand']['isTrue'](_0x5bca14);}}class _0x1ed9fb extends _0x56532b{constructor(_0x429f4d,_0x28bbd3,_0x3a6f78){var _0x31b5b3=_0xaf81ea;super(),this[_0x31b5b3(0x9ea)]=_0x429f4d,this[_0x31b5b3(0xcd3)]=_0x28bbd3,this['testValue']=_0x3a6f78;}[_0xaf81ea(0xa3d)](_0x41c245){var _0xbfe48d=_0xaf81ea;let _0x488d3f=_0x41c245[this[_0xbfe48d(0x9ea)]],_0x3d5841=(void 0x0===_0x488d3f&&(_0x488d3f=this[_0xbfe48d(0x9ea)]),!0x1);var _0x58bd10=parseInt(_0x488d3f),_0x4202f9=parseInt(this[_0xbfe48d(0x6a3)]);switch(this[_0xbfe48d(0xcd3)]){case'>':_0x3d5841=_0x4202f9<_0x58bd10;break;case'<':_0x3d5841=_0x58bd10<_0x4202f9;break;case'<=':_0x3d5841=_0x58bd10<=_0x4202f9;break;case'>=':_0x3d5841=_0x4202f9<=_0x58bd10;break;case'==':_0x3d5841=_0x58bd10===_0x4202f9;}return _0x3d5841;}}var _0x325afa=_0x1b02b1(0x15cb9),_0x5622b2=_0x1b02b1(0x11722);const _0x1756d2=/defined\s*?\((.+?)\)/g,_0x430c44=/defined\s*?\[(.+?)\]/g,_0x1c5a17=/#include\s?<(.+)>(\((.*)\))*(\[(.*)\])*/g;class _0x38de32{static[_0xaf81ea(0x428)](_0x56318d){var _0x2c836a=_0xaf81ea;_0x56318d[_0x2c836a(0x69a)]&&_0x56318d[_0x2c836a(0x69a)]['initializeShaders']&&_0x56318d[_0x2c836a(0x69a)][_0x2c836a(0xaf7)](_0x56318d[_0x2c836a(0x3fb)]);}static['Process'](_0x56ceec,_0x357ad8,_0x3e8f4e,_0x182f3a){var _0x24fa0a=_0xaf81ea,_0x36d4dc;null!=(_0x36d4dc=_0x357ad8[_0x24fa0a(0x69a)])&&_0x36d4dc[_0x24fa0a(0xacd)]&&(_0x56ceec=_0x357ad8['processor']['preProcessShaderCode'](_0x56ceec,_0x357ad8['isFragment'])),this[_0x24fa0a(0x161)](_0x56ceec,_0x357ad8,_0x5896be=>{var _0x3d9e71=_0x24fa0a;_0x357ad8[_0x3d9e71(0x541)]&&(_0x5896be=_0x357ad8['processCodeAfterIncludes'](_0x357ad8[_0x3d9e71(0x655)]?'fragment':'vertex',_0x5896be));var _0x43ea67=this[_0x3d9e71(0x850)](_0x5896be,_0x357ad8,_0x182f3a);_0x3e8f4e(_0x43ea67,_0x5896be);});}static[_0xaf81ea(0x48f)](_0x4338af,_0x5e03c7,_0x599b01,_0x18a38d){var _0x3cdcab=_0xaf81ea,_0x26acd8;null!=(_0x26acd8=_0x5e03c7[_0x3cdcab(0x69a)])&&_0x26acd8[_0x3cdcab(0xacd)]&&(_0x4338af=_0x5e03c7['processor'][_0x3cdcab(0xacd)](_0x4338af,_0x5e03c7[_0x3cdcab(0x655)])),this[_0x3cdcab(0x161)](_0x4338af,_0x5e03c7,_0x58c20e=>{var _0x20c967=_0x3cdcab;_0x5e03c7[_0x20c967(0x541)]&&(_0x58c20e=_0x5e03c7['processCodeAfterIncludes'](_0x5e03c7[_0x20c967(0x655)]?_0x20c967(0x7d3):_0x20c967(0x4a2),_0x58c20e));var _0x10e0be=this[_0x20c967(0x883)](_0x58c20e,_0x5e03c7,_0x18a38d);_0x599b01(_0x10e0be,_0x58c20e);});}static[_0xaf81ea(0xb2e)](_0x31754c,_0xa09cc6,_0x35d29d){var _0x212f6e=_0xaf81ea;return _0x35d29d[_0x212f6e(0x69a)]&&_0x35d29d[_0x212f6e(0x69a)]['finalizeShaders']?_0x35d29d[_0x212f6e(0x69a)][_0x212f6e(0x93f)](_0x31754c,_0xa09cc6,_0x35d29d[_0x212f6e(0x3fb)]):{'vertexCode':_0x31754c,'fragmentCode':_0xa09cc6};}static[_0xaf81ea(0x72a)](_0x9a7ac5,_0x3019ec){var _0x303a37=_0xaf81ea;if(null!=(_0x5ea006=_0x3019ec[_0x303a37(0x69a)])&&_0x5ea006[_0x303a37(0x932)])return _0x9a7ac5;var _0x5ea006=_0x3019ec[_0x303a37(0x245)];return-0x1===_0x9a7ac5[_0x303a37(0x9e0)]('precision\x20highp\x20float')?_0x9a7ac5=_0x5ea006?'precision\x20highp\x20float;\x0a'+_0x9a7ac5:_0x303a37(0xccf)+_0x9a7ac5:_0x5ea006||(_0x9a7ac5=_0x9a7ac5['replace'](_0x303a37(0x178),'precision\x20mediump\x20float')),_0x9a7ac5;}static[_0xaf81ea(0x805)](_0x3359c5){var _0x13a96d=_0xaf81ea;const _0x2098b4=/defined\((.+)\)/[_0x13a96d(0xd07)](_0x3359c5);if(_0x2098b4&&_0x2098b4[_0x13a96d(0x3ef)])return new _0x3459aa(_0x2098b4[0x1][_0x13a96d(0xb68)](),'!'===_0x3359c5[0x0]);let _0x3bb25c='',_0x13e682=0x0;for(_0x3bb25c of['==','>=','<=','<','>'])if(-0x1<(_0x13e682=_0x3359c5[_0x13a96d(0x9e0)](_0x3bb25c)))break;if(-0x1===_0x13e682)return new _0x3459aa(_0x3359c5);var _0x4b29a9=_0x3359c5[_0x13a96d(0x6a1)](0x0,_0x13e682)[_0x13a96d(0xb68)](),_0x26cc56=_0x3359c5[_0x13a96d(0x6a1)](_0x13e682+_0x3bb25c[_0x13a96d(0x3ef)])[_0x13a96d(0xb68)]();return new _0x1ed9fb(_0x4b29a9,_0x3bb25c,_0x26cc56);}static[_0xaf81ea(0xbbe)](_0x137f88){var _0x1b5497=_0xaf81ea;_0x137f88=_0x137f88[_0x1b5497(0x3cd)](_0x1756d2,'defined[$1]');const _0x3eef0b=[];for(const _0x4827cc of _0x56532b[_0x1b5497(0xca9)](_0x137f88))if('||'!==_0x4827cc&&'&&'!==_0x4827cc)_0x3eef0b[_0x1b5497(0x83f)](_0x4827cc);else{if(0x2<=_0x3eef0b[_0x1b5497(0x3ef)]){let _0x2c3983=_0x3eef0b[_0x3eef0b[_0x1b5497(0x3ef)]-0x1],_0x50bf6d=_0x3eef0b[_0x3eef0b['length']-0x2];_0x3eef0b[_0x1b5497(0x3ef)]-=0x2;const _0x198cbb=new('&&'==_0x4827cc?_0x1275fd:_0x95b2be)();_0x1b5497(0x3f3)==typeof _0x2c3983&&(_0x2c3983=_0x2c3983[_0x1b5497(0x3cd)](_0x430c44,_0x1b5497(0xb5c))),'string'==typeof _0x50bf6d&&(_0x50bf6d=_0x50bf6d[_0x1b5497(0x3cd)](_0x430c44,_0x1b5497(0xb5c))),_0x198cbb['leftOperand']=_0x1b5497(0x3f3)==typeof _0x50bf6d?this[_0x1b5497(0x805)](_0x50bf6d):_0x50bf6d,_0x198cbb[_0x1b5497(0x327)]=_0x1b5497(0x3f3)==typeof _0x2c3983?this[_0x1b5497(0x805)](_0x2c3983):_0x2c3983,_0x3eef0b[_0x1b5497(0x83f)](_0x198cbb);}}let _0x1aa467=_0x3eef0b[_0x3eef0b[_0x1b5497(0x3ef)]-0x1];return _0x1b5497(0x3f3)==typeof(_0x1aa467='string'==typeof _0x1aa467?_0x1aa467[_0x1b5497(0x3cd)](_0x430c44,'defined($1)'):_0x1aa467)?this[_0x1b5497(0x805)](_0x1aa467):_0x1aa467;}static[_0xaf81ea(0xa8d)](_0x3c7a75,_0x4cd32a){var _0x4d347e=_0xaf81ea;const _0x4c44f6=new _0x5532b2();var _0x30d626=_0x3c7a75['substring'](0x0,_0x4cd32a);let _0x926412=_0x3c7a75['substring'](_0x4cd32a);return _0x926412=_0x926412[_0x4d347e(0x6a1)](0x0,(_0x926412[_0x4d347e(0x9e0)]('//')+0x1||_0x926412[_0x4d347e(0x3ef)]+0x1)-0x1)['trim'](),_0x4c44f6['testExpression']=_0x4d347e(0x995)===_0x30d626?new _0x3459aa(_0x926412):'#ifndef'===_0x30d626?new _0x3459aa(_0x926412,!0x0):this[_0x4d347e(0xbbe)](_0x926412),_0x4c44f6;}static[_0xaf81ea(0xac8)](_0x3f5666,_0xb4de16,_0x16e4ef){var _0x3a0a21=_0xaf81ea;let _0x2bb7d1=_0x3f5666[_0x3a0a21(0x4b2)];for(;this[_0x3a0a21(0x4ad)](_0x3f5666,_0x16e4ef);){var _0x3a06b4,_0x121e0c=(_0x2bb7d1=_0x3f5666[_0x3a0a21(0x4b2)])['substring'](0x0,0x5)[_0x3a0a21(0x619)]();if(_0x3a0a21(0x9b6)===_0x121e0c)return _0x3a06b4=new _0x17a253(),_0xb4de16['children'][_0x3a0a21(0x83f)](_0x3a06b4),void this[_0x3a0a21(0x4ad)](_0x3f5666,_0x3a06b4);_0x3a0a21(0xc1d)===_0x121e0c&&(_0x3a06b4=this[_0x3a0a21(0xa8d)](_0x2bb7d1,0x5),_0xb4de16[_0x3a0a21(0xbb7)][_0x3a0a21(0x83f)](_0x3a06b4),_0x16e4ef=_0x3a06b4);}}static['_MoveCursor'](_0x3b1b67,_0x32a27b){var _0x56c8a7=_0xaf81ea;for(;_0x3b1b67['canRead'];){_0x3b1b67['lineIndex']++;const _0x1dc793=_0x3b1b67[_0x56c8a7(0x4b2)],_0x17b195=/(#ifdef)|(#else)|(#elif)|(#endif)|(#ifndef)|(#if)/;var _0x9eba8a=_0x17b195['exec'](_0x1dc793);if(_0x9eba8a&&_0x9eba8a[_0x56c8a7(0x3ef)])switch(_0x9eba8a[0x0]){case'#ifdef':{const _0x53a703=new _0x933530();_0x32a27b[_0x56c8a7(0xbb7)][_0x56c8a7(0x83f)](_0x53a703);var _0x579a2b=this['_BuildExpression'](_0x1dc793,0x6);_0x53a703['children'][_0x56c8a7(0x83f)](_0x579a2b),this['_MoveCursorWithinIf'](_0x3b1b67,_0x53a703,_0x579a2b);break;}case _0x56c8a7(0x9b6):case _0x56c8a7(0xc1d):return!0x0;case _0x56c8a7(0xac5):return!0x1;case _0x56c8a7(0x2ac):{const _0x3acf43=new _0x933530();_0x32a27b[_0x56c8a7(0xbb7)][_0x56c8a7(0x83f)](_0x3acf43),_0x579a2b=this[_0x56c8a7(0xa8d)](_0x1dc793,0x7),(_0x3acf43[_0x56c8a7(0xbb7)][_0x56c8a7(0x83f)](_0x579a2b),this[_0x56c8a7(0xac8)](_0x3b1b67,_0x3acf43,_0x579a2b));break;}case _0x56c8a7(0xc5c):{const _0x417eab=new _0x933530();var _0xc411c0=this[_0x56c8a7(0xa8d)](_0x1dc793,0x3);_0x32a27b[_0x56c8a7(0xbb7)][_0x56c8a7(0x83f)](_0x417eab),_0x417eab['children']['push'](_0xc411c0),this[_0x56c8a7(0xac8)](_0x3b1b67,_0x417eab,_0xc411c0);break;}}else{const _0x34837d=new _0x17a253();_0x34837d[_0x56c8a7(0xbb9)]=_0x1dc793,_0x32a27b[_0x56c8a7(0xbb7)]['push'](_0x34837d),'#'===_0x1dc793[0x0]&&'d'===_0x1dc793[0x1]&&(_0x9eba8a=_0x1dc793[_0x56c8a7(0x3cd)](';','')['split']('\x20'),_0x34837d['additionalDefineKey']=_0x9eba8a[0x1],0x3===_0x9eba8a[_0x56c8a7(0x3ef)]&&(_0x34837d['additionalDefineValue']=_0x9eba8a[0x2]));}}return!0x1;}static[_0xaf81ea(0x3b6)](_0x22a9d2,_0x195850,_0x105960){var _0x395ca4=_0xaf81ea;const _0xe67581=new _0x17a253(),_0x44dd73=new _0x238e92();return _0x44dd73[_0x395ca4(0x6da)]=-0x1,_0x44dd73[_0x395ca4(0xcc3)]=_0x22a9d2[_0x395ca4(0x1f6)]('\x0a'),this[_0x395ca4(0x4ad)](_0x44dd73,_0xe67581),_0xe67581['process'](_0x195850,_0x105960);}static[_0xaf81ea(0x1ff)](_0x2005d1,_0xe37d5a){var _0x2ea3e1=_0xaf81ea,_0x2c1bd0;const _0x2404f2={};for(const _0x15e8fc of _0x2005d1['defines']){const _0x489110=_0x15e8fc[_0x2ea3e1(0x3cd)](_0x2ea3e1(0x2ec),'')[_0x2ea3e1(0x3cd)](';','')[_0x2ea3e1(0xb68)]();var _0x2d3a8f=_0x489110['split']('\x20');_0x2404f2[_0x2d3a8f[0x0]]=0x1<_0x2d3a8f[_0x2ea3e1(0x3ef)]?_0x2d3a8f[0x1]:'';}return(null==(_0x2c1bd0=_0x2005d1[_0x2ea3e1(0x69a)])?void 0x0:_0x2c1bd0['shaderLanguage'])===_0x5622b2['x']['GLSL']&&(_0x2404f2['GL_ES']=_0x2ea3e1(0xcb7)),_0x2404f2[_0x2ea3e1(0x969)]=_0x2005d1['version'],_0x2404f2[_0x2005d1[_0x2ea3e1(0x322)]]=_0x2ea3e1(0xcb7),_0xe37d5a['_getGlobalDefines'](_0x2404f2),_0x2404f2;}static[_0xaf81ea(0x850)](_0x23d26a,_0x51a6ae,_0x2f71db){var _0x4c1caa=_0xaf81ea;let _0x275a85=this[_0x4c1caa(0x72a)](_0x23d26a,_0x51a6ae);if(!_0x51a6ae[_0x4c1caa(0x69a)])return _0x275a85;if(_0x51a6ae['processor'][_0x4c1caa(0x538)]===_0x5622b2['x']['GLSL']&&-0x1!==_0x275a85[_0x4c1caa(0x9e0)](_0x4c1caa(0xc6c))&&(_0x275a85=_0x275a85[_0x4c1caa(0x3cd)](_0x4c1caa(0x187),''),!_0x51a6ae[_0x4c1caa(0x69a)][_0x4c1caa(0x9ae)]))return _0x275a85;var _0x23d26a=_0x51a6ae[_0x4c1caa(0x532)],_0x356e05=this[_0x4c1caa(0x1ff)](_0x51a6ae,_0x2f71db);return _0x51a6ae[_0x4c1caa(0x69a)]['preProcessor']&&(_0x275a85=_0x51a6ae['processor'][_0x4c1caa(0x3a2)](_0x275a85,_0x23d26a,_0x51a6ae[_0x4c1caa(0x655)],_0x51a6ae[_0x4c1caa(0x3fb)])),_0x275a85=this[_0x4c1caa(0x3b6)](_0x275a85,_0x356e05,_0x51a6ae),_0x51a6ae[_0x4c1caa(0x69a)][_0x4c1caa(0x319)]&&(_0x275a85=_0x51a6ae['processor'][_0x4c1caa(0x319)](_0x275a85,_0x23d26a,_0x51a6ae['isFragment'],_0x51a6ae[_0x4c1caa(0x3fb)],_0x2f71db)),_0x275a85=_0x2f71db[_0x4c1caa(0x514)]['needShaderCodeInlining']?_0x2f71db[_0x4c1caa(0xce0)](_0x275a85):_0x275a85;}static['_ApplyPreProcessing'](_0x4abc1f,_0x517162,_0x1039c0){var _0x250614=_0xaf81ea,_0x38fad7;let _0x14fb0f=_0x4abc1f;var _0x4abc1f=_0x517162[_0x250614(0x532)],_0x479635=this[_0x250614(0x1ff)](_0x517162,_0x1039c0);return null!=(_0x38fad7=_0x517162[_0x250614(0x69a)])&&_0x38fad7['preProcessor']&&(_0x14fb0f=_0x517162[_0x250614(0x69a)][_0x250614(0x3a2)](_0x14fb0f,_0x4abc1f,_0x517162[_0x250614(0x655)],_0x517162[_0x250614(0x3fb)])),_0x14fb0f=this[_0x250614(0x3b6)](_0x14fb0f,_0x479635,_0x517162),null!=(_0x38fad7=_0x517162['processor'])&&_0x38fad7['postProcessor']&&(_0x14fb0f=_0x517162[_0x250614(0x69a)][_0x250614(0x319)](_0x14fb0f,_0x4abc1f,_0x517162[_0x250614(0x655)],_0x517162[_0x250614(0x3fb)],_0x1039c0)),_0x14fb0f=_0x1039c0['_features']['needShaderCodeInlining']?_0x1039c0[_0x250614(0xce0)](_0x14fb0f):_0x14fb0f;}static[_0xaf81ea(0x161)](_0x584ea5,_0x3b07ad,_0x17521a){var _0x1982f2=_0xaf81ea;let _0x58bcb6=_0x1c5a17[_0x1982f2(0xd07)](_0x584ea5),_0x3c1ed6=new String(_0x584ea5),_0x2f8f06=!0x1;for(;null!=_0x58bcb6;){let _0x30177d=_0x58bcb6[0x1];if(-0x1!==_0x30177d['indexOf'](_0x1982f2(0x6e0))&&(_0x30177d=_0x30177d[_0x1982f2(0x3cd)](/__decl__/,''),_0x3b07ad['supportsUniformBuffers']&&(_0x30177d=(_0x30177d=_0x30177d['replace'](/Vertex/,_0x1982f2(0x56a)))[_0x1982f2(0x3cd)](/Fragment/,_0x1982f2(0x56a))),_0x30177d+=_0x1982f2(0x7d1)),!_0x3b07ad['includesShadersStore'][_0x30177d])return _0x3095fb=_0x3b07ad[_0x1982f2(0x1bb)]+_0x1982f2(0xb0a)+_0x30177d+_0x1982f2(0x2ff),void _0x38de32[_0x1982f2(0x363)](_0x3095fb,_0x3f3958=>{var _0x38b3c5=_0x1982f2;_0x3b07ad[_0x38b3c5(0x212)][_0x30177d]=_0x3f3958,this[_0x38b3c5(0x161)](_0x3c1ed6,_0x3b07ad,_0x17521a);});{let _0x335148=_0x3b07ad[_0x1982f2(0x212)][_0x30177d];if(_0x58bcb6[0x2]){var _0x502e46=_0x58bcb6[0x3][_0x1982f2(0x1f6)](',');for(let _0x521ea9=0x0;_0x521ea9<_0x502e46[_0x1982f2(0x3ef)];_0x521ea9+=0x2){var _0x42ab91=new RegExp(_0x502e46[_0x521ea9],'g'),_0x1b2c6b=_0x502e46[_0x521ea9+0x1];_0x335148=_0x335148[_0x1982f2(0x3cd)](_0x42ab91,_0x1b2c6b);}}if(_0x58bcb6[0x4]){const _0xa17be1=_0x58bcb6[0x5];if(-0x1!==_0xa17be1[_0x1982f2(0x9e0)]('..')){var _0x3095fb=_0xa17be1['split']('..'),_0x1c2e79=parseInt(_0x3095fb[0x0]);let _0x49c1ca=parseInt(_0x3095fb[0x1]),_0x51cfc7=_0x335148[_0x1982f2(0x433)](0x0);_0x335148='',isNaN(_0x49c1ca)&&(_0x49c1ca=_0x3b07ad[_0x1982f2(0xade)][_0x3095fb[0x1]]);for(let _0x580571=_0x1c2e79;_0x580571<_0x49c1ca;_0x580571++)_0x3b07ad[_0x1982f2(0x646)]||(_0x51cfc7=_0x51cfc7[_0x1982f2(0x3cd)](/light\{X\}.(\w*)/g,(_0x5a5a75,_0xcfe3af)=>_0xcfe3af+_0x1982f2(0x9f0))),_0x335148+=_0x51cfc7[_0x1982f2(0x3cd)](/\{X\}/g,_0x580571[_0x1982f2(0xb4a)]())+'\x0a';}else _0x335148=(_0x335148=_0x3b07ad[_0x1982f2(0x646)]?_0x335148:_0x335148[_0x1982f2(0x3cd)](/light\{X\}.(\w*)/g,(_0xb19e76,_0x66ae32)=>_0x66ae32+'{X}'))[_0x1982f2(0x3cd)](/\{X\}/g,_0xa17be1);}_0x3c1ed6=_0x3c1ed6['replace'](_0x58bcb6[0x0],_0x335148),_0x2f8f06=_0x2f8f06||0x0<=_0x335148[_0x1982f2(0x9e0)]('#include<')||0x0<=_0x335148['indexOf'](_0x1982f2(0x467));}_0x58bcb6=_0x1c5a17['exec'](_0x584ea5);}_0x2f8f06?this[_0x1982f2(0x161)](_0x3c1ed6[_0x1982f2(0xb4a)](),_0x3b07ad,_0x17521a):_0x17521a(_0x3c1ed6);}static[_0xaf81ea(0x363)](_0x253e49,_0x20b099,_0x5b252b,_0x84a34d,_0x5f0d39,_0x70518e){throw(0x0,_0x325afa['S'])('FileTools');}}},0xc627:(_0x5e2254,_0xd1db2c,_0x38d64b)=>{var _0x5b3af3=a6_0x1e64fa;_0x38d64b['d'](_0xd1db2c,{'B':()=>_0x33a359});class _0x33a359{constructor(_0x750960=null,_0x48694f){var _0x38ab11=a6_0x2304;if(this[_0x38ab11(0xd28)]=null,this[_0x38ab11(0xc8f)]=_0x48694f,!_0x750960&&!(_0x750960=_0x48694f[_0x38ab11(0x550)]()))throw new Error('Unable\x20to\x20create\x20webGL\x20texture');this[_0x38ab11(0x970)](_0x750960);}get[_0x5b3af3(0x57b)](){return this['_webGLTexture'];}['setUsage'](){}[_0x5b3af3(0x970)](_0x43510e){var _0x26b86e=_0x5b3af3;this[_0x26b86e(0x633)]=_0x43510e;}[_0x5b3af3(0x22b)](){var _0x3b0e4b=_0x5b3af3;this[_0x3b0e4b(0x633)]=null,this['_MSAARenderBuffers']=null;}[_0x5b3af3(0x5d3)](_0x16f848){var _0x5bf45d=_0x5b3af3;this['_MSAARenderBuffers']||(this['_MSAARenderBuffers']=[]),this['_MSAARenderBuffers'][_0x5bf45d(0x83f)](_0x16f848);}['releaseMSAARenderBuffers'](){var _0x48042f=_0x5b3af3;if(this[_0x48042f(0xd28)]){for(const _0x5a9345 of this[_0x48042f(0xd28)])this[_0x48042f(0xc8f)][_0x48042f(0x2f7)](_0x5a9345);this['_MSAARenderBuffers']=null;}}[_0x5b3af3(0xc74)](){var _0x49818c=_0x5b3af3;this[_0x49818c(0xa4f)](),this['_webGLTexture']&&this[_0x49818c(0xc8f)][_0x49818c(0x8b6)](this[_0x49818c(0x633)]),this[_0x49818c(0x22b)]();}}},0x2df4:(_0x3de14f,_0x2b3cae,_0x26a4f3)=>{var _0x357353=a6_0x1e64fa;_0x26a4f3['d'](_0x2b3cae,{'y':()=>_0x254c55});class _0x254c55{constructor(){var _0x1cd091=a6_0x2304;this[_0x1cd091(0x6aa)]={},this[_0x1cd091(0x9ee)]=null,this[_0x1cd091(0x738)]=null,this['programLinkError']=null,this[_0x1cd091(0xb9c)]=null;}get['isAsync'](){var _0x964d35=a6_0x2304;return this[_0x964d35(0x3bb)];}get[_0x357353(0x5ac)](){var _0x45dc8c=_0x357353;return!!this[_0x45dc8c(0xa56)]&&(!this[_0x45dc8c(0x3bb)]||this['engine']['_isRenderingStateCompiled'](this));}[_0x357353(0x838)](_0x42bf8c){var _0x18c6bf=_0x357353;_0x42bf8c&&this[_0x18c6bf(0xa56)]&&_0x42bf8c(this[_0x18c6bf(0xa56)]);}['_fillEffectInformation'](_0x97bbe3,_0x25aa7b,_0x310052,_0x37f7ce,_0x23c327,_0x223cde,_0x588b0a,_0x1f1392){var _0x45aa1e=_0x357353;const _0x3e8c74=this['engine'];if(_0x3e8c74[_0x45aa1e(0x646)]){for(const _0x3a05d3 in _0x25aa7b)_0x97bbe3['bindUniformBlock'](_0x3a05d3,_0x25aa7b[_0x3a05d3]);}const _0x3060eb=this[_0x45aa1e(0xc62)][_0x45aa1e(0x34b)](this,_0x310052);_0x3060eb[_0x45aa1e(0x497)]((_0x5cf9a6,_0x45d9ce)=>{_0x37f7ce[_0x310052[_0x45d9ce]]=_0x5cf9a6;}),this[_0x45aa1e(0x5fa)]=_0x37f7ce;let _0x50e51d;for(_0x50e51d=0x0;_0x50e51d<_0x23c327['length'];_0x50e51d++)null==_0x97bbe3[_0x45aa1e(0x331)](_0x23c327[_0x50e51d])&&(_0x23c327[_0x45aa1e(0x227)](_0x50e51d,0x1),_0x50e51d--);_0x23c327[_0x45aa1e(0x497)]((_0x1423b5,_0x25e9eb)=>{_0x223cde[_0x1423b5]=_0x25e9eb;});for(const _0x10d9d8 of _0x3e8c74[_0x45aa1e(0xb7e)](this,_0x588b0a))_0x1f1392['push'](_0x10d9d8);}[_0x357353(0x431)](){var _0xbecedd=_0x357353;this[_0xbecedd(0x5fa)]={};}['_cacheMatrix'](_0x7084b7,_0x3c81c8){var _0x38b427=_0x357353,_0x186766=this[_0x38b427(0x6aa)][_0x7084b7],_0x3c81c8=_0x3c81c8[_0x38b427(0x31f)];return(void 0x0===_0x186766||_0x186766!==_0x3c81c8)&&(this[_0x38b427(0x6aa)][_0x7084b7]=_0x3c81c8,!0x0);}[_0x357353(0xc30)](_0x41bc93,_0x4d19d3,_0x4bdc15){var _0x396029=_0x357353;let _0x20cab9=this[_0x396029(0x6aa)][_0x41bc93];if(!_0x20cab9||0x2!==_0x20cab9[_0x396029(0x3ef)])return _0x20cab9=[_0x4d19d3,_0x4bdc15],this[_0x396029(0x6aa)][_0x41bc93]=_0x20cab9,!0x0;let _0x635e31=!0x1;return _0x20cab9[0x0]!==_0x4d19d3&&(_0x20cab9[0x0]=_0x4d19d3,_0x635e31=!0x0),_0x20cab9[0x1]!==_0x4bdc15&&(_0x20cab9[0x1]=_0x4bdc15,_0x635e31=!0x0),_0x635e31;}['_cacheFloat3'](_0x28cb7f,_0x46521c,_0x2bc8c3,_0x765263){var _0x21c39d=_0x357353;let _0x5cf92c=this[_0x21c39d(0x6aa)][_0x28cb7f];if(!_0x5cf92c||0x3!==_0x5cf92c[_0x21c39d(0x3ef)])return _0x5cf92c=[_0x46521c,_0x2bc8c3,_0x765263],this[_0x21c39d(0x6aa)][_0x28cb7f]=_0x5cf92c,!0x0;let _0x5b35bc=!0x1;return _0x5cf92c[0x0]!==_0x46521c&&(_0x5cf92c[0x0]=_0x46521c,_0x5b35bc=!0x0),_0x5cf92c[0x1]!==_0x2bc8c3&&(_0x5cf92c[0x1]=_0x2bc8c3,_0x5b35bc=!0x0),_0x5cf92c[0x2]!==_0x765263&&(_0x5cf92c[0x2]=_0x765263,_0x5b35bc=!0x0),_0x5b35bc;}['_cacheFloat4'](_0x4a19cb,_0x2935e9,_0x4c973e,_0xf6abaf,_0x39064a){var _0x53662f=_0x357353;let _0x45e3ce=this[_0x53662f(0x6aa)][_0x4a19cb];if(!_0x45e3ce||0x4!==_0x45e3ce[_0x53662f(0x3ef)])return _0x45e3ce=[_0x2935e9,_0x4c973e,_0xf6abaf,_0x39064a],this[_0x53662f(0x6aa)][_0x4a19cb]=_0x45e3ce,!0x0;let _0x22ef02=!0x1;return _0x45e3ce[0x0]!==_0x2935e9&&(_0x45e3ce[0x0]=_0x2935e9,_0x22ef02=!0x0),_0x45e3ce[0x1]!==_0x4c973e&&(_0x45e3ce[0x1]=_0x4c973e,_0x22ef02=!0x0),_0x45e3ce[0x2]!==_0xf6abaf&&(_0x45e3ce[0x2]=_0xf6abaf,_0x22ef02=!0x0),_0x45e3ce[0x3]!==_0x39064a&&(_0x45e3ce[0x3]=_0x39064a,_0x22ef02=!0x0),_0x22ef02;}[_0x357353(0x3a8)](_0x20e51c,_0x43a961){var _0x482426=_0x357353,_0x1d7cbc=this[_0x482426(0x6aa)][_0x20e51c];void 0x0!==_0x1d7cbc&&_0x1d7cbc===_0x43a961||this[_0x482426(0xc62)][_0x482426(0x3a8)](this[_0x482426(0x5fa)][_0x20e51c],_0x43a961)&&(this['_valueCache'][_0x20e51c]=_0x43a961);}[_0x357353(0x831)](_0x4e325e,_0x17b404,_0x27f4f0){var _0x45bd8d=_0x357353;this['_cacheFloat2'](_0x4e325e,_0x17b404,_0x27f4f0)&&!this[_0x45bd8d(0xc62)][_0x45bd8d(0x831)](this[_0x45bd8d(0x5fa)][_0x4e325e],_0x17b404,_0x27f4f0)&&(this[_0x45bd8d(0x6aa)][_0x4e325e]=null);}['setInt3'](_0x34a7e2,_0x11dc02,_0x324f6e,_0x20153e){var _0x56f7bb=_0x357353;this[_0x56f7bb(0xc61)](_0x34a7e2,_0x11dc02,_0x324f6e,_0x20153e)&&!this['engine'][_0x56f7bb(0x719)](this[_0x56f7bb(0x5fa)][_0x34a7e2],_0x11dc02,_0x324f6e,_0x20153e)&&(this[_0x56f7bb(0x6aa)][_0x34a7e2]=null);}[_0x357353(0x530)](_0x292c48,_0x516a03,_0x4c1b12,_0x493681,_0x39697c){var _0x558966=_0x357353;this[_0x558966(0x328)](_0x292c48,_0x516a03,_0x4c1b12,_0x493681,_0x39697c)&&!this[_0x558966(0xc62)]['setInt4'](this[_0x558966(0x5fa)][_0x292c48],_0x516a03,_0x4c1b12,_0x493681,_0x39697c)&&(this['_valueCache'][_0x292c48]=null);}['setIntArray'](_0x2fdf7f,_0x20760a){var _0x10a3e7=_0x357353;this[_0x10a3e7(0x6aa)][_0x2fdf7f]=null,this['engine'][_0x10a3e7(0xa61)](this['_uniforms'][_0x2fdf7f],_0x20760a);}[_0x357353(0x14a)](_0x535b95,_0x212fdc){var _0x42b17a=_0x357353;this[_0x42b17a(0x6aa)][_0x535b95]=null,this[_0x42b17a(0xc62)]['setIntArray2'](this['_uniforms'][_0x535b95],_0x212fdc);}[_0x357353(0x744)](_0x3cb641,_0x293d10){var _0x503d0e=_0x357353;this[_0x503d0e(0x6aa)][_0x3cb641]=null,this[_0x503d0e(0xc62)]['setIntArray3'](this[_0x503d0e(0x5fa)][_0x3cb641],_0x293d10);}[_0x357353(0xa6a)](_0x30e799,_0x4c34c6){var _0x1673e9=_0x357353;this[_0x1673e9(0x6aa)][_0x30e799]=null,this['engine'][_0x1673e9(0xa6a)](this['_uniforms'][_0x30e799],_0x4c34c6);}[_0x357353(0x8dc)](_0x4a05e1,_0x4a3105){var _0x38e165=_0x357353,_0x2a9900=this['_valueCache'][_0x4a05e1];void 0x0!==_0x2a9900&&_0x2a9900===_0x4a3105||this[_0x38e165(0xc62)][_0x38e165(0x8dc)](this[_0x38e165(0x5fa)][_0x4a05e1],_0x4a3105)&&(this[_0x38e165(0x6aa)][_0x4a05e1]=_0x4a3105);}['setUInt2'](_0x340c97,_0x188143,_0x172c6e){var _0x1f823c=_0x357353;this[_0x1f823c(0xc30)](_0x340c97,_0x188143,_0x172c6e)&&!this['engine'][_0x1f823c(0x6ec)](this[_0x1f823c(0x5fa)][_0x340c97],_0x188143,_0x172c6e)&&(this[_0x1f823c(0x6aa)][_0x340c97]=null);}[_0x357353(0x1a5)](_0x2af01a,_0x2a2e0f,_0x6470ca,_0x4202a2){var _0x1adfb1=_0x357353;this[_0x1adfb1(0xc61)](_0x2af01a,_0x2a2e0f,_0x6470ca,_0x4202a2)&&!this['engine'][_0x1adfb1(0x1a5)](this[_0x1adfb1(0x5fa)][_0x2af01a],_0x2a2e0f,_0x6470ca,_0x4202a2)&&(this[_0x1adfb1(0x6aa)][_0x2af01a]=null);}[_0x357353(0x629)](_0x4d97bd,_0x1ed27b,_0x5d59ed,_0x2d3e9e,_0x426ae6){var _0x556d98=_0x357353;this[_0x556d98(0x328)](_0x4d97bd,_0x1ed27b,_0x5d59ed,_0x2d3e9e,_0x426ae6)&&!this[_0x556d98(0xc62)][_0x556d98(0x629)](this[_0x556d98(0x5fa)][_0x4d97bd],_0x1ed27b,_0x5d59ed,_0x2d3e9e,_0x426ae6)&&(this[_0x556d98(0x6aa)][_0x4d97bd]=null);}['setUIntArray'](_0x4a1009,_0x2b7f68){var _0x29ca29=_0x357353;this['_valueCache'][_0x4a1009]=null,this[_0x29ca29(0xc62)]['setUIntArray'](this[_0x29ca29(0x5fa)][_0x4a1009],_0x2b7f68);}['setUIntArray2'](_0x3b9f5e,_0x5a569e){var _0x3a30ad=_0x357353;this['_valueCache'][_0x3b9f5e]=null,this[_0x3a30ad(0xc62)][_0x3a30ad(0x643)](this['_uniforms'][_0x3b9f5e],_0x5a569e);}['setUIntArray3'](_0x2e489e,_0x4fde79){var _0x680c54=_0x357353;this[_0x680c54(0x6aa)][_0x2e489e]=null,this['engine'][_0x680c54(0xa72)](this[_0x680c54(0x5fa)][_0x2e489e],_0x4fde79);}[_0x357353(0x733)](_0x5b9daa,_0x15e5e5){var _0x1675cb=_0x357353;this[_0x1675cb(0x6aa)][_0x5b9daa]=null,this[_0x1675cb(0xc62)][_0x1675cb(0x733)](this[_0x1675cb(0x5fa)][_0x5b9daa],_0x15e5e5);}[_0x357353(0x8ab)](_0x42f949,_0x1ed49a){var _0x26d62e=_0x357353;this[_0x26d62e(0x6aa)][_0x42f949]=null,this['engine'][_0x26d62e(0x8ab)](this['_uniforms'][_0x42f949],_0x1ed49a);}[_0x357353(0x57a)](_0x150d3b,_0x530590){var _0x5738bc=_0x357353;this[_0x5738bc(0x6aa)][_0x150d3b]=null,this[_0x5738bc(0xc62)][_0x5738bc(0x57a)](this[_0x5738bc(0x5fa)][_0x150d3b],_0x530590);}['setArray3'](_0x18d2d2,_0x3c2ccb){var _0x26f612=_0x357353;this['_valueCache'][_0x18d2d2]=null,this[_0x26f612(0xc62)][_0x26f612(0xc99)](this[_0x26f612(0x5fa)][_0x18d2d2],_0x3c2ccb);}['setArray4'](_0x200db4,_0xbd09cf){var _0x19e78e=_0x357353;this[_0x19e78e(0x6aa)][_0x200db4]=null,this[_0x19e78e(0xc62)][_0x19e78e(0x2dd)](this[_0x19e78e(0x5fa)][_0x200db4],_0xbd09cf);}[_0x357353(0x7f3)](_0x494f71,_0x3b0377){var _0x137f20=_0x357353;_0x3b0377&&(this[_0x137f20(0x6aa)][_0x494f71]=null,this[_0x137f20(0xc62)][_0x137f20(0x7f3)](this[_0x137f20(0x5fa)][_0x494f71],_0x3b0377));}['setMatrix'](_0x5d909a,_0x927ff5){var _0x414b5f=_0x357353;this[_0x414b5f(0x1c2)](_0x5d909a,_0x927ff5)&&!this[_0x414b5f(0xc62)][_0x414b5f(0x7f3)](this[_0x414b5f(0x5fa)][_0x5d909a],_0x927ff5[_0x414b5f(0x129)]())&&(this['_valueCache'][_0x5d909a]=null);}[_0x357353(0x409)](_0x3525af,_0x3768ab){var _0x1c2c4a=_0x357353;this['_valueCache'][_0x3525af]=null,this[_0x1c2c4a(0xc62)][_0x1c2c4a(0x409)](this[_0x1c2c4a(0x5fa)][_0x3525af],_0x3768ab);}['setMatrix2x2'](_0xe06309,_0x3f66f8){var _0x26d9e8=_0x357353;this[_0x26d9e8(0x6aa)][_0xe06309]=null,this[_0x26d9e8(0xc62)][_0x26d9e8(0xa9a)](this[_0x26d9e8(0x5fa)][_0xe06309],_0x3f66f8);}[_0x357353(0x5f3)](_0x3e056d,_0x1ae15a){var _0x507699=_0x357353,_0x599974=this[_0x507699(0x6aa)][_0x3e056d];void 0x0!==_0x599974&&_0x599974===_0x1ae15a||this[_0x507699(0xc62)][_0x507699(0x5f3)](this[_0x507699(0x5fa)][_0x3e056d],_0x1ae15a)&&(this[_0x507699(0x6aa)][_0x3e056d]=_0x1ae15a);}[_0x357353(0x3a6)](_0x46ea3d,_0x4abd41){var _0x196ab6=_0x357353;this[_0x196ab6(0xc30)](_0x46ea3d,_0x4abd41['x'],_0x4abd41['y'])&&!this[_0x196ab6(0xc62)][_0x196ab6(0x796)](this[_0x196ab6(0x5fa)][_0x46ea3d],_0x4abd41['x'],_0x4abd41['y'])&&(this[_0x196ab6(0x6aa)][_0x46ea3d]=null);}[_0x357353(0x796)](_0x2a19dc,_0x340478,_0x25ed9e){var _0x15b0cc=_0x357353;this[_0x15b0cc(0xc30)](_0x2a19dc,_0x340478,_0x25ed9e)&&!this[_0x15b0cc(0xc62)][_0x15b0cc(0x796)](this[_0x15b0cc(0x5fa)][_0x2a19dc],_0x340478,_0x25ed9e)&&(this[_0x15b0cc(0x6aa)][_0x2a19dc]=null);}[_0x357353(0x5fc)](_0x5c5518,_0x44b86a){var _0x25b57c=_0x357353;this[_0x25b57c(0xc61)](_0x5c5518,_0x44b86a['x'],_0x44b86a['y'],_0x44b86a['z'])&&!this[_0x25b57c(0xc62)][_0x25b57c(0xa4c)](this[_0x25b57c(0x5fa)][_0x5c5518],_0x44b86a['x'],_0x44b86a['y'],_0x44b86a['z'])&&(this[_0x25b57c(0x6aa)][_0x5c5518]=null);}['setFloat3'](_0x4a70c0,_0x51baca,_0x59383d,_0x241e2b){var _0x3454a4=_0x357353;this['_cacheFloat3'](_0x4a70c0,_0x51baca,_0x59383d,_0x241e2b)&&!this[_0x3454a4(0xc62)][_0x3454a4(0xa4c)](this[_0x3454a4(0x5fa)][_0x4a70c0],_0x51baca,_0x59383d,_0x241e2b)&&(this[_0x3454a4(0x6aa)][_0x4a70c0]=null);}['setVector4'](_0x5d415f,_0x451633){var _0x8e278e=_0x357353;this[_0x8e278e(0x328)](_0x5d415f,_0x451633['x'],_0x451633['y'],_0x451633['z'],_0x451633['w'])&&!this[_0x8e278e(0xc62)][_0x8e278e(0xaee)](this[_0x8e278e(0x5fa)][_0x5d415f],_0x451633['x'],_0x451633['y'],_0x451633['z'],_0x451633['w'])&&(this[_0x8e278e(0x6aa)][_0x5d415f]=null);}[_0x357353(0xc90)](_0x468006,_0x492eee){var _0x732dd=_0x357353;this['_cacheFloat4'](_0x468006,_0x492eee['x'],_0x492eee['y'],_0x492eee['z'],_0x492eee['w'])&&!this['engine']['setFloat4'](this[_0x732dd(0x5fa)][_0x468006],_0x492eee['x'],_0x492eee['y'],_0x492eee['z'],_0x492eee['w'])&&(this['_valueCache'][_0x468006]=null);}[_0x357353(0xaee)](_0x304d37,_0xa693c4,_0x23c7a0,_0x987fc6,_0x1737f3){var _0x41ec39=_0x357353;this['_cacheFloat4'](_0x304d37,_0xa693c4,_0x23c7a0,_0x987fc6,_0x1737f3)&&!this[_0x41ec39(0xc62)][_0x41ec39(0xaee)](this[_0x41ec39(0x5fa)][_0x304d37],_0xa693c4,_0x23c7a0,_0x987fc6,_0x1737f3)&&(this[_0x41ec39(0x6aa)][_0x304d37]=null);}[_0x357353(0x325)](_0x28f448,_0x378936){var _0xf3d629=_0x357353;this['_cacheFloat3'](_0x28f448,_0x378936['r'],_0x378936['g'],_0x378936['b'])&&!this[_0xf3d629(0xc62)][_0xf3d629(0xa4c)](this[_0xf3d629(0x5fa)][_0x28f448],_0x378936['r'],_0x378936['g'],_0x378936['b'])&&(this[_0xf3d629(0x6aa)][_0x28f448]=null);}[_0x357353(0xb8d)](_0x27adf5,_0x39f125,_0xb96ec6){var _0x1fd7bc=_0x357353;this[_0x1fd7bc(0x328)](_0x27adf5,_0x39f125['r'],_0x39f125['g'],_0x39f125['b'],_0xb96ec6)&&!this[_0x1fd7bc(0xc62)]['setFloat4'](this[_0x1fd7bc(0x5fa)][_0x27adf5],_0x39f125['r'],_0x39f125['g'],_0x39f125['b'],_0xb96ec6)&&(this[_0x1fd7bc(0x6aa)][_0x27adf5]=null);}[_0x357353(0x9fd)](_0x12b30e,_0x1193b8){var _0x544f92=_0x357353;this[_0x544f92(0x328)](_0x12b30e,_0x1193b8['r'],_0x1193b8['g'],_0x1193b8['b'],_0x1193b8['a'])&&!this[_0x544f92(0xc62)][_0x544f92(0xaee)](this[_0x544f92(0x5fa)][_0x12b30e],_0x1193b8['r'],_0x1193b8['g'],_0x1193b8['b'],_0x1193b8['a'])&&(this[_0x544f92(0x6aa)][_0x12b30e]=null);}[_0x357353(0x78c)](){var _0x32a3cc=_0x357353;return this[_0x32a3cc(0x160)]?this['engine'][_0x32a3cc(0xd29)](this[_0x32a3cc(0x160)]):null;}['_getFragmentShaderCode'](){var _0x4bed81=_0x357353;return this[_0x4bed81(0x300)]?this['engine'][_0x4bed81(0xd29)](this[_0x4bed81(0x300)]):null;}}},0xb7b8:(_0x4ffaa7,_0x147e19,_0x5a5676)=>{_0x5a5676['d'](_0x147e19,{'f':()=>_0x4f6c55});var _0x4faa62=_0x5a5676(0x11722);class _0x4f6c55{constructor(){var _0x4397cf=a6_0x2304;this[_0x4397cf(0x538)]=_0x4faa62['x'][_0x4397cf(0x7db)];}['postProcessor'](_0x45287b,_0x47fe63,_0x31ba1d,_0x1b87f2,_0x4c2a56){var _0x42f1d6=a6_0x2304;return _0x4c2a56['getCaps']()['drawBuffersExtension']?_0x45287b:_0x45287b[_0x42f1d6(0x3cd)](/#extension.+GL_EXT_draw_buffers.+(enable|require)/g,'');}}},0x15e6f:(_0x162bf4,_0x42c7a2,_0x1578fd)=>{var _0x4b2aa0=a6_0x1e64fa,_0x10a78d=_0x1578fd(0x77a5),_0x3fa13f=_0x1578fd(0xee04),_0x58a626=_0x1578fd(0x9957),_0x2692f9=(_0x58a626['f'][_0x4b2aa0(0x9ed)]['setAlphaMode']=function(_0x2ef4dc,_0x957a8b=!0x1){var _0x813aec=_0x4b2aa0,_0x23975f;if(this[_0x813aec(0x482)]===_0x2ef4dc&&(_0x2ef4dc===_0x10a78d['g'][_0x813aec(0x603)]&&!this['_alphaState'][_0x813aec(0xb14)]||_0x2ef4dc!==_0x10a78d['g']['ALPHA_DISABLE']&&this[_0x813aec(0x224)][_0x813aec(0xb14)]))_0x957a8b||(_0x23975f=_0x2ef4dc===_0x10a78d['g'][_0x813aec(0x603)],this['depthCullingState'][_0x813aec(0x828)]!==_0x23975f&&(this[_0x813aec(0x881)](_0x23975f),this['_cacheRenderPipeline'][_0x813aec(0x421)](_0x23975f)));else{switch(_0x2ef4dc){case _0x10a78d['g']['ALPHA_DISABLE']:this[_0x813aec(0x224)]['alphaBlend']=!0x1;break;case _0x10a78d['g'][_0x813aec(0x97b)]:this[_0x813aec(0x224)][_0x813aec(0x503)](0x1,_0x10a78d['g'][_0x813aec(0x1a0)],0x1,0x1),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g'][_0x813aec(0x7b8)]:this[_0x813aec(0x224)][_0x813aec(0x503)](0x1,_0x10a78d['g'][_0x813aec(0x1a0)],0x1,_0x10a78d['g']['GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA']),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g']['ALPHA_COMBINE']:this[_0x813aec(0x224)]['setAlphaBlendFunctionParameters'](_0x10a78d['g'][_0x813aec(0x4a0)],_0x10a78d['g'][_0x813aec(0x1a0)],0x1,0x1),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g'][_0x813aec(0xbe0)]:this[_0x813aec(0x224)]['setAlphaBlendFunctionParameters'](0x1,0x1,0x0,0x1),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g'][_0x813aec(0x2d7)]:this[_0x813aec(0x224)][_0x813aec(0x503)](_0x10a78d['g']['GL_ALPHA_FUNCTION_SRC_ALPHA'],0x1,0x0,0x1),this['_alphaState']['alphaBlend']=!0x0;break;case _0x10a78d['g'][_0x813aec(0x627)]:this[_0x813aec(0x224)][_0x813aec(0x503)](0x0,_0x10a78d['g'][_0x813aec(0x690)],0x1,0x1),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g'][_0x813aec(0x36b)]:this[_0x813aec(0x224)][_0x813aec(0x503)](_0x10a78d['g'][_0x813aec(0x89b)],0x0,0x1,0x1),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g'][_0x813aec(0x3e2)]:this['_alphaState'][_0x813aec(0x503)](_0x10a78d['g']['GL_ALPHA_FUNCTION_SRC_ALPHA'],_0x10a78d['g'][_0x813aec(0x690)],0x1,0x1),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g']['ALPHA_INTERPOLATE']:this[_0x813aec(0x224)][_0x813aec(0x503)](_0x10a78d['g'][_0x813aec(0xb5b)],_0x10a78d['g']['GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_COLOR'],_0x10a78d['g'][_0x813aec(0x326)],_0x10a78d['g']['GL_ALPHA_FUNCTION_ONE_MINUS_CONSTANT_ALPHA']),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g']['ALPHA_SCREENMODE']:this[_0x813aec(0x224)][_0x813aec(0x503)](0x1,_0x10a78d['g'][_0x813aec(0x690)],0x1,_0x10a78d['g'][_0x813aec(0x1a0)]),this['_alphaState'][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g'][_0x813aec(0x7d0)]:this[_0x813aec(0x224)][_0x813aec(0x503)](0x1,0x1,0x1,0x1),this['_alphaState']['alphaBlend']=!0x0;break;case _0x10a78d['g']['ALPHA_ALPHATOCOLOR']:this['_alphaState']['setAlphaBlendFunctionParameters'](_0x10a78d['g']['GL_ALPHA_FUNCTION_DST_ALPHA'],0x1,0x0,0x0),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g'][_0x813aec(0x551)]:this[_0x813aec(0x224)][_0x813aec(0x503)](_0x10a78d['g'][_0x813aec(0x39a)],_0x10a78d['g']['GL_ALPHA_FUNCTION_ONE_MINUS_SRC_COLOR'],_0x10a78d['g'][_0x813aec(0x5d1)],_0x10a78d['g'][_0x813aec(0x1a0)]),this[_0x813aec(0x224)]['alphaBlend']=!0x0;break;case _0x10a78d['g'][_0x813aec(0xadf)]:this['_alphaState'][_0x813aec(0x503)](0x1,_0x10a78d['g'][_0x813aec(0x1a0)],0x1,_0x10a78d['g'][_0x813aec(0x1a0)]),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g']['ALPHA_ONEONE_ONEZERO']:this[_0x813aec(0x224)]['setAlphaBlendFunctionParameters'](0x1,0x1,0x1,0x0),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g']['ALPHA_EXCLUSION']:this[_0x813aec(0x224)][_0x813aec(0x503)](_0x10a78d['g'][_0x813aec(0x39a)],_0x10a78d['g'][_0x813aec(0x690)],0x0,0x1),this['_alphaState'][_0x813aec(0xb14)]=!0x0;break;case _0x10a78d['g'][_0x813aec(0x26f)]:this[_0x813aec(0x224)][_0x813aec(0x503)](_0x10a78d['g']['GL_ALPHA_FUNCTION_SRC_ALPHA'],_0x10a78d['g']['GL_ALPHA_FUNCTION_ONE_MINUS_SRC_ALPHA'],0x1,_0x10a78d['g'][_0x813aec(0x1a0)]),this[_0x813aec(0x224)][_0x813aec(0xb14)]=!0x0;}_0x957a8b||(this['setDepthWrite'](_0x2ef4dc===_0x3fa13f['D'][_0x813aec(0x603)]),this[_0x813aec(0x22d)][_0x813aec(0x421)](_0x2ef4dc===_0x3fa13f['D'][_0x813aec(0x603)])),this[_0x813aec(0x482)]=_0x2ef4dc,this[_0x813aec(0x22d)][_0x813aec(0x836)](this[_0x813aec(0x224)]['alphaBlend']),this['_cacheRenderPipeline'][_0x813aec(0xcf9)](this[_0x813aec(0x224)][_0x813aec(0x66e)],this['_alphaState'][_0x813aec(0x46a)]);}},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x625)]=function(_0x1e43dd){var _0x177b30=_0x4b2aa0;_0x3fa13f['D'][_0x177b30(0x9ed)][_0x177b30(0x625)][_0x177b30(0x1f8)](this,_0x1e43dd),this[_0x177b30(0x22d)]['setAlphaBlendFactors'](this['_alphaState']['_blendFunctionParameters'],this[_0x177b30(0x224)][_0x177b30(0x46a)]);},_0x1578fd(0x7755)),_0x334e8c=_0x1578fd(0x10ea4),_0x3ceb29=_0x1578fd(0xe34c),_0x2a5a64=_0x1578fd(0x89a1);class _0x18c0a8{constructor(_0xcb2de2,_0x357ef6){var _0x1d60f7=_0x4b2aa0;this[_0x1d60f7(0x7b4)]=_0xcb2de2,this[_0x1d60f7(0x997)]=_0x357ef6,this[_0x1d60f7(0x155)]=_0x18c0a8[_0x1d60f7(0x9e3)]++,this[_0x1d60f7(0x7b5)]=[],this['clear']();}[_0x4b2aa0(0xa32)](_0x2627ff,_0x16453d,_0x1489cd){var _0x53ead0=_0x4b2aa0;if(!_0x1489cd)throw new Error('WebGPUComputeContext.getBindGroups:\x20bindingsMapping\x20is\x20required\x20until\x20browsers\x20support\x20reflection\x20for\x20wgsl\x20shaders!');if(0x0===this['_bindGroups']['length']){var _0x4143d5=0x0<this[_0x53ead0(0x7b5)]['length'];for(const _0x58ff49 in _0x2627ff){const _0x4e2adc=_0x2627ff[_0x58ff49],_0x42c85f=_0x1489cd[_0x58ff49],_0x5ca989=_0x42c85f['group'],_0x3a6a73=_0x42c85f[_0x53ead0(0x49d)],_0xdd57e7=_0x4e2adc[_0x53ead0(0x5da)],_0x58ed4d=_0x4e2adc[_0x53ead0(0x91c)];let _0x392e8f=_0x4e2adc[_0x53ead0(0x549)],_0xc50b04=this[_0x53ead0(0x7b5)][_0x5ca989];switch(_0xc50b04=_0xc50b04||(this[_0x53ead0(0x7b5)][_0x5ca989]=[]),_0xdd57e7){case _0x3ceb29['t']['Sampler']:var _0x2d4d88=_0x58ed4d;void 0x0!==_0x392e8f&&_0x4143d5?_0xc50b04[_0x392e8f][_0x53ead0(0x61e)]=this[_0x53ead0(0x997)][_0x53ead0(0x718)](_0x2d4d88):(_0x4e2adc['indexInGroupEntries']=_0xc50b04[_0x53ead0(0x3ef)],_0xc50b04['push']({'binding':_0x3a6a73,'resource':this[_0x53ead0(0x997)][_0x53ead0(0x718)](_0x2d4d88)}));break;case _0x3ceb29['t'][_0x53ead0(0xace)]:case _0x3ceb29['t'][_0x53ead0(0xadb)]:var _0x2d4d88=_0x58ed4d,_0x18085b=_0x2d4d88['_texture'][_0x53ead0(0xaf0)];void 0x0!==_0x392e8f&&_0x4143d5?(_0xdd57e7===_0x3ceb29['t'][_0x53ead0(0xace)]&&(_0xc50b04[_0x392e8f++]['resource']=this[_0x53ead0(0x997)][_0x53ead0(0x718)](_0x2d4d88[_0x53ead0(0xa37)])),_0xc50b04[_0x392e8f][_0x53ead0(0x61e)]=_0x18085b[_0x53ead0(0x481)]):(_0x4e2adc[_0x53ead0(0x549)]=_0xc50b04[_0x53ead0(0x3ef)],_0xdd57e7===_0x3ceb29['t'][_0x53ead0(0xace)]&&_0xc50b04['push']({'binding':_0x3a6a73-0x1,'resource':this[_0x53ead0(0x997)][_0x53ead0(0x718)](_0x2d4d88['_texture'])}),_0xc50b04[_0x53ead0(0x83f)]({'binding':_0x3a6a73,'resource':_0x18085b['view']}));break;case _0x3ceb29['t'][_0x53ead0(0x138)]:_0x18085b=_0x58ed4d['_texture'][_0x53ead0(0xaf0)],(0x0==(_0x18085b[_0x53ead0(0x592)]&_0x2a5a64['v2'][_0x53ead0(0x5a3)])&&_0x334e8c['Y'][_0x53ead0(0x286)](_0x53ead0(0xaba)+_0x58ed4d['name']+_0x53ead0(0x991)+_0x58ed4d['uniqueId']+')\x20is\x20not\x20a\x20storage\x20texture!',0x32),void 0x0!==_0x392e8f&&_0x4143d5?_0xc50b04[_0x392e8f][_0x53ead0(0x61e)]=_0x18085b[_0x53ead0(0xc9d)]:(_0x4e2adc['indexInGroupEntries']=_0xc50b04[_0x53ead0(0x3ef)],_0xc50b04['push']({'binding':_0x3a6a73,'resource':_0x18085b[_0x53ead0(0xc9d)]})));break;case _0x3ceb29['t'][_0x53ead0(0xbc4)]:case _0x3ceb29['t'][_0x53ead0(0x7e6)]:{_0x3ceb29['t'][_0x53ead0(0xbc4)];const _0x4bc34f=_0x58ed4d;var _0x2b070e=_0x4bc34f[_0x53ead0(0x36d)](),_0x338298=_0x2b070e[_0x53ead0(0x57b)];void 0x0!==_0x392e8f&&_0x4143d5?(_0xc50b04[_0x392e8f][_0x53ead0(0x61e)][_0x53ead0(0xc3e)]=_0x338298,_0xc50b04[_0x392e8f][_0x53ead0(0x61e)][_0x53ead0(0xc68)]=_0x2b070e[_0x53ead0(0x9ef)]):(_0x4e2adc['indexInGroupEntries']=_0xc50b04[_0x53ead0(0x3ef)],_0xc50b04[_0x53ead0(0x83f)]({'binding':_0x3a6a73,'resource':{'buffer':_0x338298,'offset':0x0,'size':_0x2b070e['capacity']}}));break;}}}for(let _0xebb433=0x0;_0xebb433<this[_0x53ead0(0x7b5)][_0x53ead0(0x3ef)];++_0xebb433){var _0x1ef13c=this['_bindGroupEntries'][_0xebb433];this[_0x53ead0(0x966)][_0xebb433]=_0x1ef13c?this['_device']['createBindGroup']({'layout':_0x16453d[_0x53ead0(0x429)](_0xebb433),'entries':_0x1ef13c}):void 0x0;}this['_bindGroups'][_0x53ead0(0x3ef)]=this[_0x53ead0(0x7b5)][_0x53ead0(0x3ef)];}return this[_0x53ead0(0x966)];}[_0x4b2aa0(0x6de)](){var _0x49bbb2=_0x4b2aa0;this[_0x49bbb2(0x966)]=[];}}_0x18c0a8[_0x4b2aa0(0x9e3)]=0x0;class _0x49714d{constructor(_0x2d066a){var _0x5ef664=_0x4b2aa0;this[_0x5ef664(0x856)]=_0x5ef664(0xc7b),this[_0x5ef664(0xc62)]=_0x2d066a;}get['isAsync'](){return!0x1;}get[_0x4b2aa0(0x5ac)](){var _0x3f7aa7=_0x4b2aa0;return!!this[_0x3f7aa7(0xd08)];}[_0x4b2aa0(0x4cf)](){var _0x14cc5d=_0x4b2aa0,_0xb89e54;return null==(_0xb89e54=this[_0x14cc5d(0x2e7)])?void 0x0:_0xb89e54['compute'];}['dispose'](){}}var _0xa6cd09=_0x1578fd(0x6214),_0x140fc5=(_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x1f2)]=function(){var _0x2d7771=_0x4b2aa0;return new _0x18c0a8(this[_0x2d7771(0x7b4)],this[_0x2d7771(0x997)]);},_0x58a626['f'][_0x4b2aa0(0x9ed)]['createComputeEffect']=function(_0x4fa063,_0x9b2db6){var _0x219b79=_0x4b2aa0,_0x428573=(_0x4fa063['computeElement']||_0x4fa063[_0x219b79(0x407)]||_0x4fa063[_0x219b79(0x8f1)]||_0x4fa063[_0x219b79(0x585)]||_0x4fa063)+'@'+_0x9b2db6[_0x219b79(0x532)];if(this[_0x219b79(0x71a)][_0x428573]){const _0x4de624=this['_compiledComputeEffects'][_0x428573];return _0x9b2db6[_0x219b79(0xccc)]&&_0x4de624[_0x219b79(0x5ac)]()&&_0x9b2db6[_0x219b79(0xccc)](_0x4de624),_0x4de624;}return _0x4fa063=new _0x2692f9['n'](_0x4fa063,_0x9b2db6,this,_0x428573),this[_0x219b79(0x71a)][_0x428573]=_0x4fa063;},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x2f2)]=function(){return new _0x49714d(this);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x47d)]=function(){var _0x35b390=_0x4b2aa0;for(const _0x550eda in this[_0x35b390(0x71a)]){const _0x1bc8e5=this[_0x35b390(0x71a)][_0x550eda];if(!_0x1bc8e5['isReady']())return!0x1;}return!0x0;},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x30f)]=function(_0x980495,_0x4dbb84,_0x10e14d,_0xc30d8e,_0x4d953c,_0x2a4be9,_0x2b1fbd){var _0xa912d3=_0x4b2aa0;if(this['_currentRenderTarget'])this[_0xa912d3(0x1ea)]['addOnce'](()=>{this['computeDispatch'](_0x980495,_0x4dbb84,_0x10e14d,_0xc30d8e,_0x4d953c,_0x2a4be9,_0x2b1fbd);});else{const _0x419be5=_0x980495[_0xa912d3(0x2d0)],_0x3bcb9f=_0x4dbb84,_0x549afc=(_0x419be5[_0xa912d3(0xc09)]||(_0x419be5['computePipeline']=this['_device']['createComputePipeline']({'layout':_0x2a5a64['fu'][_0xa912d3(0x352)],'compute':_0x419be5['stage']})),this[_0xa912d3(0x4ba)]),_0x33a464=_0x549afc[_0xa912d3(0x697)]();_0x33a464['setPipeline'](_0x419be5[_0xa912d3(0xc09)]);var _0x4388ab=_0x3bcb9f[_0xa912d3(0xa32)](_0x10e14d,_0x419be5['computePipeline'],_0x2b1fbd);for(let _0x5afc47=0x0;_0x5afc47<_0x4388ab[_0xa912d3(0x3ef)];++_0x5afc47){var _0x48622b=_0x4388ab[_0x5afc47];_0x48622b&&_0x33a464[_0xa912d3(0xc77)](_0x5afc47,_0x48622b);}_0x33a464[_0xa912d3(0x590)](_0xc30d8e,_0x4d953c,_0x2a4be9),_0x33a464[_0xa912d3(0x1ca)]();}},_0x58a626['f'][_0x4b2aa0(0x9ed)]['releaseComputeEffects']=function(){var _0x42208a=_0x4b2aa0;for(const _0x421fd9 in this[_0x42208a(0x71a)]){var _0x5439c1=this[_0x42208a(0x71a)][_0x421fd9]['getPipelineContext']();this[_0x42208a(0x962)](_0x5439c1);}this['_compiledComputeEffects']={};},_0x58a626['f']['prototype'][_0x4b2aa0(0x5ad)]=function(_0x18bdb6,_0x3670f3,_0x3c3824,_0x5405a,_0x1dd360){var _0x524ebb=_0x4b2aa0;const _0x384d66=_0x18bdb6;this[_0x524ebb(0xa21)]&&(_0xa6cd09[_0x524ebb(0xb69)](_0x5405a),_0xa6cd09[_0x524ebb(0xb69)](_0x3670f3)),_0x384d66[_0x524ebb(0x2e7)]={'compute':_0x3670f3,'rawCompute':_0x3c3824},_0x384d66[_0x524ebb(0xd08)]=this[_0x524ebb(0xb0c)](_0x3670f3,_0x5405a,_0x1dd360);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0xadc)]=function(_0x3ee36d){var _0x11745d=_0x4b2aa0;this[_0x11745d(0x71a)][_0x3ee36d[_0x11745d(0x7ef)]]&&(delete this[_0x11745d(0x71a)][_0x3ee36d[_0x11745d(0x7ef)]],this[_0x11745d(0x962)](_0x3ee36d[_0x11745d(0xa6c)]()));},_0x58a626['f']['prototype'][_0x4b2aa0(0xb72)]=function(){var _0x440b36=_0x4b2aa0;for(const _0xe3db61 in this[_0x440b36(0x71a)]){const _0x2bd098=this['_compiledComputeEffects'][_0xe3db61];_0x2bd098[_0x440b36(0x2d0)]=null,_0x2bd098['_wasPreviouslyReady']=!0x1,_0x2bd098[_0x440b36(0x320)]();}},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x962)]=function(_0x4b118a){_0x4b118a&&_0x4b118a['dispose']();},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0xb0c)]=function(_0x1d65cc,_0x25f783,_0x4a62ce){var _0x508f2d=_0x4b2aa0;return _0x25f783=_0x25f783?'//'+_0x25f783[_0x508f2d(0x1f6)]('\x0a')[_0x508f2d(0x465)](_0x508f2d(0x50a))+'\x0a':'',{'module':this[_0x508f2d(0x7b4)][_0x508f2d(0x302)]({'code':_0x25f783+_0x1d65cc}),'entryPoint':_0x4a62ce};},_0x1578fd(0x25b1));_0x58a626['f'][_0x4b2aa0(0x9ed)]['_createDepthStencilCubeTexture']=function(_0x417bbe,_0x1dca0){var _0x43a5d3=_0x4b2aa0;const _0x79948f=new _0x140fc5['l'](this,_0x140fc5['S']['DepthStencil']);return _0x79948f[_0x43a5d3(0x144)]=!0x0,_0x1dca0=Object[_0x43a5d3(0x1ce)]({'bilinearFiltering':!0x1,'comparisonFunction':0x0,'generateStencil':!0x1,'samples':0x1},_0x1dca0),(_0x79948f[_0x43a5d3(0x808)]=_0x1dca0[_0x43a5d3(0x55a)]?_0x10a78d['g']['TEXTUREFORMAT_DEPTH24_STENCIL8']:_0x10a78d['g']['TEXTUREFORMAT_DEPTH32_FLOAT'],this[_0x43a5d3(0xc17)](_0x79948f,_0x417bbe,_0x1dca0[_0x43a5d3(0x55a)],_0x1dca0[_0x43a5d3(0x58c)],_0x1dca0[_0x43a5d3(0x186)],_0x1dca0[_0x43a5d3(0x993)]),this['_textureHelper'][_0x43a5d3(0x17d)](_0x79948f),this[_0x43a5d3(0x7d5)][_0x43a5d3(0x83f)](_0x79948f),_0x79948f);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x862)]=function(_0x4949dd,_0xe4eaa9,_0x119637,_0x2c6b1f,_0x116ea7=null,_0x5717f0=null,_0xebb9af,_0x1aba8f=null,_0x29de50=!0x1,_0x52ab2a=0x0,_0x38fb4d=0x0,_0x2886e4=null,_0x3bc6e3=!0x1){return this['createCubeTextureBase'](_0x4949dd,_0xe4eaa9,_0x119637,!!_0x2c6b1f,_0x116ea7,_0x5717f0,_0xebb9af,_0x1aba8f,_0x29de50,_0x52ab2a,_0x38fb4d,_0x2886e4,null,(_0xfe4a1d,_0x52debb)=>{var _0x30200e=a6_0x2304,_0x213155=_0x52debb[0x0][_0x30200e(0xca4)],_0x4d6f0e=_0x213155,_0x76dae8=(this['_setCubeMapTextureParams'](_0xfe4a1d,!_0x2c6b1f),_0xfe4a1d[_0x30200e(0x808)]=null!=_0xebb9af?_0xebb9af:-0x1,this['_textureHelper']['createGPUTextureForInternalTexture'](_0xfe4a1d,_0x213155,_0x4d6f0e));this[_0x30200e(0xc8b)][_0x30200e(0xa62)](_0x52debb,_0x76dae8[_0x30200e(0x57b)],_0x213155,_0x4d6f0e,_0x76dae8['format'],!0x1,!0x1,0x0,0x0),_0x2c6b1f||this[_0x30200e(0x7e0)](_0xfe4a1d,this[_0x30200e(0x673)]),_0xfe4a1d['isReady']=!0x0,_0xfe4a1d[_0x30200e(0x929)][_0x30200e(0xac3)](_0xfe4a1d),_0xfe4a1d['onLoadedObservable']['clear'](),_0x116ea7&&_0x116ea7();},!!_0x3bc6e3);},_0x58a626['f']['prototype'][_0x4b2aa0(0x2c1)]=function(_0x46f8c7,_0x53b4bb,_0x3ace81){var _0x3764ea=_0x4b2aa0;_0x46f8c7[_0x3764ea(0xcfe)]=_0x53b4bb?_0x10a78d['g']['TEXTURE_TRILINEAR_SAMPLINGMODE']:_0x10a78d['g']['TEXTURE_BILINEAR_SAMPLINGMODE'],_0x46f8c7[_0x3764ea(0xb9d)]=_0x10a78d['g'][_0x3764ea(0x3bd)],_0x46f8c7['_cachedWrapV']=_0x10a78d['g'][_0x3764ea(0x3bd)],_0x3ace81&&(_0x46f8c7[_0x3764ea(0x785)]=_0x3ace81);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x30b)]=function(_0x4b5e95,_0x159179){var _0x767a69=_0x4b2aa0;if(this[_0x767a69(0x887)][_0x767a69(0xc3f)]){if(0x0===_0x159179||0x1===_0x159179){const _0x5f30bd=0x0===_0x159179?this[_0x767a69(0x696)]:this[_0x767a69(0x4ba)];_0x5f30bd[_0x767a69(0x4c5)](_0x4b5e95);}else this[_0x767a69(0x492)]?this[_0x767a69(0x492)][_0x767a69(0x4c5)](_0x4b5e95):this[_0x767a69(0x443)][_0x767a69(0x83f)]([_0x767a69(0x83f),_0x4b5e95]);}},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x933)]=function(_0x608aa2){var _0x28fe5d=_0x4b2aa0;if(this[_0x28fe5d(0x887)][_0x28fe5d(0xc3f)]){if(0x0===_0x608aa2||0x1===_0x608aa2){const _0x419d9c=0x0===_0x608aa2?this[_0x28fe5d(0x696)]:this[_0x28fe5d(0x4ba)];_0x419d9c['popDebugGroup']();}else this['_currentRenderPass']?this[_0x28fe5d(0x492)][_0x28fe5d(0xbf4)]():this[_0x28fe5d(0x443)]['push']([_0x28fe5d(0xa03),null]);}},_0x58a626['f'][_0x4b2aa0(0x9ed)]['_debugInsertMarker']=function(_0x4c13f0,_0x63e8cd){var _0x2f4146=_0x4b2aa0;if(this[_0x2f4146(0x887)][_0x2f4146(0xc3f)]){if(0x0===_0x63e8cd||0x1===_0x63e8cd){const _0x1957d1=0x0===_0x63e8cd?this[_0x2f4146(0x696)]:this[_0x2f4146(0x4ba)];_0x1957d1[_0x2f4146(0x668)](_0x4c13f0);}else this['_currentRenderPass']?this[_0x2f4146(0x492)][_0x2f4146(0x668)](_0x4c13f0):this[_0x2f4146(0x443)]['push'](['insert',_0x4c13f0]);}},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0xc76)]=function(){var _0xe1539a=_0x4b2aa0;for(let _0x1441ee=0x0;_0x1441ee<this[_0xe1539a(0x443)][_0xe1539a(0x3ef)];++_0x1441ee){var [_0x307fdc,_0x1be665]=this[_0xe1539a(0x443)][_0x1441ee];switch(_0x307fdc){case _0xe1539a(0x83f):this[_0xe1539a(0x30b)](_0x1be665);break;case _0xe1539a(0xa03):this[_0xe1539a(0x933)]();break;case _0xe1539a(0x5ce):this[_0xe1539a(0x766)](_0x1be665);}}this[_0xe1539a(0x443)][_0xe1539a(0x3ef)]=0x0;},_0x58a626['f'][_0x4b2aa0(0x9ed)]['updateDynamicIndexBuffer']=function(_0x3eb698,_0xb9984d,_0x1e4b09=0x0){var _0x1a4ee3=_0x4b2aa0,_0xaae5=_0x3eb698,_0x3eb698=_0x3eb698[_0x1a4ee3(0x293)]?_0xb9984d instanceof Uint32Array?_0xb9984d:new Uint32Array(_0xb9984d):_0xb9984d instanceof Uint16Array?_0xb9984d:new Uint16Array(_0xb9984d);this[_0x1a4ee3(0x6bf)]['setSubData'](_0xaae5,_0x1e4b09,_0x3eb698);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x1ee)]=function(_0x5036a7,_0x4adec9,_0x503817,_0x578ac7){void 0x0===_0x503817&&(_0x503817=0x0);let _0x158411;void 0x0===_0x578ac7?_0x578ac7=(_0x158411=_0x4adec9 instanceof Array?new Float32Array(_0x4adec9):_0x4adec9 instanceof ArrayBuffer?new Uint8Array(_0x4adec9):_0x4adec9)['byteLength']:_0x158411=_0x4adec9 instanceof Array?new Float32Array(_0x4adec9):_0x4adec9 instanceof ArrayBuffer?new Uint8Array(_0x4adec9):_0x4adec9,this['_bufferManager']['setSubData'](_0x5036a7,_0x503817,_0x158411,0x0,_0x578ac7);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x31d)]=function(_0x496ea7,_0x427490,_0x2de1b2,_0x21ed5b=!0x1,_0x318661,_0x73cdf1,_0x429e47){var _0x4bb7a8=_0x4b2aa0,_0x26218e;if(_0x496ea7){var _0x593514=_0x427490[_0x4bb7a8(0xca4)],_0x4a4283=_0x427490[_0x4bb7a8(0x43d)];let _0x4fe5ca=_0x496ea7[_0x4bb7a8(0xaf0)];null!=(_0x26218e=_0x496ea7[_0x4bb7a8(0xaf0)])&&_0x26218e[_0x4bb7a8(0x57b)]||(_0x4fe5ca=this['_textureHelper']['createGPUTextureForInternalTexture'](_0x496ea7,_0x593514,_0x4a4283)),this[_0x4bb7a8(0xc8b)]['updateTexture'](_0x427490,_0x496ea7,_0x593514,_0x4a4283,_0x496ea7[_0x4bb7a8(0x4c3)],_0x4fe5ca[_0x4bb7a8(0x808)],0x0,0x0,_0x2de1b2,_0x21ed5b,0x0,0x0,_0x429e47),_0x496ea7[_0x4bb7a8(0x2c8)]&&this[_0x4bb7a8(0x7e0)](_0x496ea7,this['_uploadEncoder']),_0x496ea7[_0x4bb7a8(0x5ac)]=!0x0;}};class _0x182384 extends _0x1578fd(0x22dd)['x']{constructor(_0x11f685){super(_0x11f685);}}var _0x5db5a7=_0x1578fd(0xf75c),_0x2edbef=(_0x5db5a7['Q'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x97d)]=function(_0x54bedb,_0xbcd8e7){var _0x33fd41=_0x4b2aa0;this[_0x33fd41(0x397)][_0x33fd41(0x97d)](_0x54bedb,_0xbcd8e7);},_0x58a626['f']['prototype'][_0x4b2aa0(0x707)]=function(_0xa8efbd){return new _0x182384(_0xa8efbd);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x97d)]=function(_0x41130b,_0x27ba10){var _0x1f52d5=_0x4b2aa0;_0x27ba10?this[_0x1f52d5(0x4f9)](_0x41130b,_0x27ba10):this['_currentMaterialContext'][_0x1f52d5(0x205)](_0x41130b,null);},_0x58a626['f']['prototype'][_0x4b2aa0(0x788)]=function(_0x2fb4c4,_0x98e10f=!0x1,_0x41a105){var _0x35b3ca=_0x4b2aa0;_0x41a105&&_0x41a105();var _0x4eb23a=_0x2fb4c4['_attachments']['length'];this['_currentRenderPass']&&this['_currentRenderPass']!==this[_0x35b3ca(0xcc5)]['renderPass']&&this['_endRenderTargetRenderPass']();for(let _0x5112ff=0x0;_0x5112ff<_0x4eb23a;_0x5112ff++){var _0x349b04=_0x2fb4c4[_0x35b3ca(0x80a)][_0x5112ff];!_0x349b04[_0x35b3ca(0x2c8)]||_0x98e10f||_0x349b04['isCube']||this[_0x35b3ca(0x7e0)](_0x349b04);}this['_currentRenderTarget']=null,this[_0x35b3ca(0x6dd)]=[],this['_cacheRenderPipeline'][_0x35b3ca(0xbf8)]([]),this[_0x35b3ca(0x22d)][_0x35b3ca(0x223)](this[_0x35b3ca(0x6dd)]),this['_currentRenderPass']=this[_0x35b3ca(0xcc5)][_0x35b3ca(0xb70)],this['_setDepthTextureFormat'](this[_0x35b3ca(0xcc5)]),this[_0x35b3ca(0x9d7)](this['_mainRenderPassWrapper']);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x9d8)]=function(_0x1963e6,_0x456328,_0xd4d7a6){var _0x4fd62f=_0x4b2aa0,_0x25ea70;let _0x5bf2e7=!0x1,_0x3a5a95=!0x0,_0x1a1a05=!0x1,_0x5d5a46=!0x1,_0x1240b4=_0x10a78d['g']['TEXTUREFORMAT_DEPTH16'],_0x198cb1=0x1;var _0x44b920=_0x10a78d['g']['TEXTURETYPE_UNSIGNED_INT'],_0x4f3718=_0x10a78d['g'][_0x4fd62f(0xb6b)],_0x1cd6ab=_0x10a78d['g'][_0x4fd62f(0x86c)];let _0x2f100e=new Array(),_0x594eac=new Array(),_0x3ccc89=new Array(),_0xdb1d41=new Array();const _0x1dd979=this[_0x4fd62f(0xa7c)](!0x0,!0x1,_0x1963e6);void 0x0!==_0x456328&&(_0x5bf2e7=void 0x0!==_0x456328[_0x4fd62f(0x2c8)]&&_0x456328[_0x4fd62f(0x2c8)],_0x3a5a95=void 0x0===_0x456328[_0x4fd62f(0xbc3)]||_0x456328[_0x4fd62f(0xbc3)],_0x1a1a05=void 0x0!==_0x456328[_0x4fd62f(0xc3a)]&&_0x456328[_0x4fd62f(0xc3a)],_0x5d5a46=void 0x0!==_0x456328[_0x4fd62f(0x219)]&&_0x456328[_0x4fd62f(0x219)],_0x198cb1=_0x456328['textureCount']||0x1,_0x1240b4=null!=(_0x25ea70=_0x456328[_0x4fd62f(0x4d1)])?_0x25ea70:_0x10a78d['g'][_0x4fd62f(0xa44)],_0x456328['types']&&(_0x2f100e=_0x456328[_0x4fd62f(0x552)]),_0x456328[_0x4fd62f(0xc01)]&&(_0x594eac=_0x456328['samplingModes']),_0x456328[_0x4fd62f(0x184)]&&(_0x3ccc89=_0x456328[_0x4fd62f(0x184)]),_0x456328[_0x4fd62f(0x2b1)]&&(_0xdb1d41=_0x456328[_0x4fd62f(0x2b1)]));var _0x3727c8=_0x1963e6[_0x4fd62f(0xca4)]||_0x1963e6,_0x39d53e=_0x1963e6[_0x4fd62f(0x43d)]||_0x1963e6;let _0x13e6af=null;(_0x3a5a95||_0x1a1a05||_0x5d5a46)&&(_0x5d5a46||(_0x1240b4=_0x3a5a95&&_0x1a1a05?_0x10a78d['g'][_0x4fd62f(0xb99)]:_0x3a5a95?_0x10a78d['g']['TEXTUREFORMAT_DEPTH32_FLOAT']:_0x10a78d['g'][_0x4fd62f(0x4f8)]),_0x13e6af=_0x1dd979[_0x4fd62f(0x324)](0x0,!0x1,_0x1a1a05,0x1,_0x1240b4));const _0x2f6f9d=[],_0xe32f07=[],_0x57bc71=[];_0x1dd979[_0x4fd62f(0x1b6)]=_0x3a5a95,_0x1dd979[_0x4fd62f(0x713)]=_0x1a1a05,_0x1dd979[_0x4fd62f(0x878)]=_0xe32f07,_0x1dd979[_0x4fd62f(0xc81)]=_0x57bc71;for(let _0x4461b5=0x0;_0x4461b5<_0x198cb1;_0x4461b5++){let _0x56e28d=_0x594eac[_0x4461b5]||_0x4f3718,_0xa4fcb6=_0x2f100e[_0x4461b5]||_0x44b920;var _0x37e20b=_0x3ccc89[_0x4461b5]||!0x1,_0x103a7=_0xdb1d41[_0x4461b5]||_0x1cd6ab;(_0xa4fcb6===_0x10a78d['g'][_0x4fd62f(0x67a)]&&!this['_caps'][_0x4fd62f(0xb63)]||_0xa4fcb6===_0x10a78d['g'][_0x4fd62f(0x98a)]&&!this[_0x4fd62f(0x588)]['textureHalfFloatLinearFiltering'])&&(_0x56e28d=_0x10a78d['g']['TEXTURE_NEAREST_SAMPLINGMODE']),_0xa4fcb6!==_0x10a78d['g'][_0x4fd62f(0x67a)]||this[_0x4fd62f(0x588)][_0x4fd62f(0x5b8)]||(_0xa4fcb6=_0x10a78d['g'][_0x4fd62f(0xc79)],_0x334e8c['Y'][_0x4fd62f(0x636)](_0x4fd62f(0x2b4)));const _0x3ed3cf=new _0x140fc5['l'](this,_0x140fc5['S']['MultiRenderTarget']);_0x2f6f9d[_0x4fd62f(0x83f)](_0x3ed3cf),_0xe32f07[_0x4fd62f(0x83f)](_0x4461b5+0x1),_0x57bc71[_0x4fd62f(0x83f)](_0xd4d7a6?_0x4461b5+0x1:0x0===_0x4461b5?0x1:0x0),_0x3ed3cf['baseWidth']=_0x3727c8,_0x3ed3cf[_0x4fd62f(0x122)]=_0x39d53e,_0x3ed3cf[_0x4fd62f(0xca4)]=_0x3727c8,_0x3ed3cf['height']=_0x39d53e,_0x3ed3cf['isReady']=!0x0,_0x3ed3cf[_0x4fd62f(0x993)]=0x1,_0x3ed3cf['generateMipMaps']=_0x5bf2e7,_0x3ed3cf[_0x4fd62f(0xcfe)]=_0x56e28d,_0x3ed3cf['type']=_0xa4fcb6,_0x3ed3cf['_cachedWrapU']=_0x10a78d['g'][_0x4fd62f(0x3bd)],_0x3ed3cf[_0x4fd62f(0xa2e)]=_0x10a78d['g'][_0x4fd62f(0x3bd)],_0x3ed3cf['_useSRGBBuffer']=_0x37e20b,_0x3ed3cf[_0x4fd62f(0x808)]=_0x103a7,this[_0x4fd62f(0x7d5)][_0x4fd62f(0x83f)](_0x3ed3cf),this['_textureHelper']['createGPUTextureForInternalTexture'](_0x3ed3cf);}return _0x13e6af&&(_0x13e6af['incrementReferences'](),_0x2f6f9d[_0x4fd62f(0x83f)](_0x13e6af),this[_0x4fd62f(0x7d5)][_0x4fd62f(0x83f)](_0x13e6af)),_0x1dd979[_0x4fd62f(0x782)](_0x2f6f9d),_0x1dd979;},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0xd0d)]=function(_0x1d7010,_0x431d8a){var _0x501cbc=_0x4b2aa0;if(!_0x1d7010||!_0x1d7010[_0x501cbc(0x80a)]||_0x1d7010[_0x501cbc(0x80a)][0x0][_0x501cbc(0x993)]===_0x431d8a)return _0x431d8a;var _0x55e7de=_0x1d7010[_0x501cbc(0x80a)][_0x501cbc(0x3ef)];if(0x0===_0x55e7de)return 0x1;_0x431d8a=Math[_0x501cbc(0xbab)](_0x431d8a,this[_0x501cbc(0x33a)]()['maxMSAASamples']);for(let _0x62d33d=0x0;_0x62d33d<_0x55e7de;++_0x62d33d){const _0x17c802=_0x1d7010['textures'][_0x62d33d];this['_textureHelper'][_0x501cbc(0x8ad)](_0x17c802,_0x431d8a),_0x17c802['samples']=_0x431d8a;}return _0x1d7010[_0x501cbc(0x27d)]&&_0x1d7010['_depthStencilTexture']!==_0x1d7010[_0x501cbc(0x80a)][_0x1d7010['textures']['length']-0x1]&&(this[_0x501cbc(0xc8b)][_0x501cbc(0x8ad)](_0x1d7010[_0x501cbc(0x27d)],_0x431d8a),_0x1d7010[_0x501cbc(0x27d)][_0x501cbc(0x993)]=_0x431d8a),_0x431d8a;},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x55e)]=function(_0x1e3b9f){var _0x2cfc3f=_0x4b2aa0;0x0!==_0x1e3b9f[_0x2cfc3f(0x3ef)]&&this[_0x2cfc3f(0x2ce)]&&(this[_0x2cfc3f(0x6dd)]=_0x1e3b9f,this[_0x2cfc3f(0x492)]&&this[_0x2cfc3f(0x22d)][_0x2cfc3f(0x223)](_0x1e3b9f));},_0x58a626['f'][_0x4b2aa0(0x9ed)]['buildTextureLayout']=function(_0x2e5fbc){var _0x4d2e7e=_0x4b2aa0;const _0x4999df=[];for(let _0x3f5c1b=0x0;_0x3f5c1b<_0x2e5fbc['length'];_0x3f5c1b++)_0x2e5fbc[_0x3f5c1b]?_0x4999df[_0x4d2e7e(0x83f)](_0x3f5c1b+0x1):_0x4999df['push'](0x0);return _0x4999df;},_0x58a626['f']['prototype'][_0x4b2aa0(0x8ce)]=function(){},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x7ea)]=function(){},_0x1578fd(0x742a));function _0xb57a18(_0x442aea,_0x323c12,_0x168f18,_0x5d4b78){var _0x40b4c1=_0x4b2aa0;let _0x114e06,_0x1fc9bc=0x1;_0x5d4b78===_0x10a78d['g'][_0x40b4c1(0x67a)]?_0x114e06=new Float32Array(_0x323c12*_0x168f18*0x4):_0x5d4b78===_0x10a78d['g']['TEXTURETYPE_HALF_FLOAT']?(_0x114e06=new Uint16Array(_0x323c12*_0x168f18*0x4),_0x1fc9bc=0x3c00):_0x114e06=new(_0x5d4b78===_0x10a78d['g'][(_0x40b4c1(0x480))]?Uint32Array:Uint8Array)(_0x323c12*_0x168f18*0x4);for(let _0x52d488=0x0;_0x52d488<_0x323c12;_0x52d488++)for(let _0x37f729=0x0;_0x37f729<_0x168f18;_0x37f729++){var _0x2bdca5=0x3*(_0x37f729*_0x323c12+_0x52d488),_0x53cb3e=0x4*(_0x37f729*_0x323c12+_0x52d488);_0x114e06[0x0+_0x53cb3e]=_0x442aea[0x0+_0x2bdca5],_0x114e06[0x1+_0x53cb3e]=_0x442aea[0x1+_0x2bdca5],_0x114e06[0x2+_0x53cb3e]=_0x442aea[0x2+_0x2bdca5],_0x114e06[0x3+_0x53cb3e]=_0x1fc9bc;}return _0x114e06;}_0x58a626['f']['prototype'][_0x4b2aa0(0xc5f)]=function(){var _0x5bb813=_0x4b2aa0;return this[_0x5bb813(0x979)][_0x5bb813(0x85b)];},_0x58a626['f'][_0x4b2aa0(0x9ed)]['captureGPUFrameTime']=function(_0x2e688b){var _0x4ef8be=_0x4b2aa0;this[_0x4ef8be(0x979)]['enable']=_0x2e688b&&!!this['_caps']['timerQuery'];},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x5bd)]=function(){return this['_occlusionQuery']['createQuery']();},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x403)]=function(_0x5a9a37){var _0x1da1ee=_0x4b2aa0;return this[_0x1da1ee(0x89e)]['deleteQuery'](_0x5a9a37),this;},_0x58a626['f'][_0x4b2aa0(0x9ed)]['isQueryResultAvailable']=function(_0x357b64){var _0x3fd15e=_0x4b2aa0;return this['_occlusionQuery'][_0x3fd15e(0x664)](_0x357b64);},_0x58a626['f']['prototype']['getQueryResult']=function(_0x33ba62){var _0x24b32b=_0x4b2aa0;return this[_0x24b32b(0x89e)]['getQueryResult'](_0x33ba62);},_0x58a626['f']['prototype'][_0x4b2aa0(0x5dc)]=function(_0x10312d,_0x1151b8){var _0x471228=_0x4b2aa0,_0x39e7f7;if(this[_0x471228(0xac1)])return!!this[_0x471228(0x89e)][_0x471228(0x9be)]&&(null!=(_0x39e7f7=this[_0x471228(0x492)])&&_0x39e7f7[_0x471228(0x5dc)](_0x1151b8),!0x0);{const _0x3f757f=0x0===this['_getCurrentRenderPassIndex']()?this[_0x471228(0x4ef)]:this[_0x471228(0x64d)];return _0x3f757f[_0x471228(0xb97)](new _0x2edbef['GB'](_0x1151b8)),!0x0;}},_0x58a626['f']['prototype']['endOcclusionQuery']=function(){var _0x1f2c1e=_0x4b2aa0,_0x3c6875;if(this[_0x1f2c1e(0xac1)])null!=(_0x3c6875=this[_0x1f2c1e(0x492)])&&_0x3c6875[_0x1f2c1e(0x3df)]();else{const _0x3c5fe7=0x0===this[_0x1f2c1e(0xce9)]()?this[_0x1f2c1e(0x4ef)]:this[_0x1f2c1e(0x64d)];_0x3c5fe7[_0x1f2c1e(0xb97)](new _0x2edbef['fw']());}return this;},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x413)]=function(_0x100345,_0x8297d0,_0x4bc7db,_0x88f1a8,_0x475062,_0x87a573,_0x16e8f5,_0x20d9be=null,_0x89ca5=_0x10a78d['g']['TEXTURETYPE_UNSIGNED_INT'],_0x26f60f=0x0,_0x2ab6de=!0x1){var _0x37475e=_0x4b2aa0;const _0x558da0=new _0x140fc5['l'](this,_0x140fc5['S']['Raw']);return _0x558da0[_0x37475e(0x863)]=_0x8297d0,_0x558da0[_0x37475e(0x122)]=_0x4bc7db,_0x558da0['width']=_0x8297d0,_0x558da0['height']=_0x4bc7db,_0x558da0['format']=_0x88f1a8,_0x558da0[_0x37475e(0x2c8)]=_0x475062,_0x558da0[_0x37475e(0xcfe)]=_0x16e8f5,_0x558da0[_0x37475e(0xb9a)]=_0x87a573,_0x558da0['_compression']=_0x20d9be,_0x558da0[_0x37475e(0x5da)]=_0x89ca5,_0x558da0['_useSRGBBuffer']=_0x2ab6de,this[_0x37475e(0x37c)]||(_0x558da0[_0x37475e(0x985)]=_0x100345),this['_textureHelper'][_0x37475e(0x17d)](_0x558da0,_0x8297d0,_0x4bc7db,void 0x0,_0x26f60f),this[_0x37475e(0x348)](_0x558da0,_0x100345,_0x88f1a8,_0x87a573,_0x20d9be,_0x89ca5,_0x2ab6de),this[_0x37475e(0x7d5)][_0x37475e(0x83f)](_0x558da0),_0x558da0;},_0x58a626['f']['prototype'][_0x4b2aa0(0x348)]=function(_0x13f4f2,_0x336fe7,_0x44f46a,_0x4ba9f,_0x55429d=null,_0x7951f1=_0x10a78d['g'][_0x4b2aa0(0xc79)],_0x1874a1=!0x1){var _0x4dbe83=_0x4b2aa0;_0x13f4f2&&(this['_doNotHandleContextLost']||(_0x13f4f2[_0x4dbe83(0x985)]=_0x336fe7,_0x13f4f2['invertY']=_0x4ba9f,_0x13f4f2[_0x4dbe83(0x992)]=_0x55429d,_0x13f4f2[_0x4dbe83(0x842)]=_0x1874a1),_0x336fe7&&(_0x55429d=_0x13f4f2[_0x4dbe83(0xaf0)],_0x44f46a===_0x10a78d['g']['TEXTUREFORMAT_RGB']&&(_0x336fe7=_0xb57a18(_0x336fe7,_0x13f4f2[_0x4dbe83(0xca4)],_0x13f4f2['height'],_0x7951f1)),_0x1874a1=new Uint8Array(_0x336fe7['buffer'],_0x336fe7[_0x4dbe83(0x52d)],_0x336fe7[_0x4dbe83(0x4d6)]),this[_0x4dbe83(0xc8b)]['updateTexture'](_0x1874a1,_0x13f4f2,_0x13f4f2[_0x4dbe83(0xca4)],_0x13f4f2[_0x4dbe83(0x43d)],_0x13f4f2[_0x4dbe83(0x4c3)],_0x55429d[_0x4dbe83(0x808)],0x0,0x0,_0x4ba9f,!0x1,0x0,0x0),_0x13f4f2[_0x4dbe83(0x2c8)]&&this[_0x4dbe83(0x7e0)](_0x13f4f2,this[_0x4dbe83(0x673)])),_0x13f4f2['isReady']=!0x0);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x72f)]=function(_0x51656f,_0x1e4ba9,_0x4f2584,_0x3f53db,_0x43fdd4,_0x39a255,_0x187f0a,_0x4f7d6a=null){var _0x1453fd=_0x4b2aa0;const _0x2ab0b9=new _0x140fc5['l'](this,_0x140fc5['S'][_0x1453fd(0x678)]);return _0x3f53db!==_0x10a78d['g'][_0x1453fd(0x67a)]||this['_caps']['textureFloatLinearFiltering']?_0x3f53db!==_0x10a78d['g'][_0x1453fd(0x98a)]||this[_0x1453fd(0x588)][_0x1453fd(0x16b)]?_0x3f53db!==_0x10a78d['g'][_0x1453fd(0x67a)]||this[_0x1453fd(0x588)][_0x1453fd(0xc36)]?_0x3f53db!==_0x10a78d['g'][_0x1453fd(0x98a)]||this[_0x1453fd(0x588)][_0x1453fd(0x182)]||(_0x43fdd4=!0x1,_0x334e8c['Y'][_0x1453fd(0x636)](_0x1453fd(0xa97))):(_0x43fdd4=!0x1,_0x334e8c['Y'][_0x1453fd(0x636)](_0x1453fd(0xb5a))):(_0x43fdd4=!0x1,_0x187f0a=_0x10a78d['g'][_0x1453fd(0x8c6)],_0x334e8c['Y'][_0x1453fd(0x636)]('Half\x20float\x20texture\x20filtering\x20is\x20not\x20supported.\x20Mipmap\x20generation\x20and\x20sampling\x20mode\x20are\x20forced\x20to\x20false\x20and\x20TEXTURE_NEAREST_SAMPLINGMODE,\x20respectively.')):(_0x43fdd4=!0x1,_0x187f0a=_0x10a78d['g'][_0x1453fd(0x8c6)],_0x334e8c['Y'][_0x1453fd(0x636)](_0x1453fd(0x9d5))),_0x2ab0b9[_0x1453fd(0x144)]=!0x0,_0x2ab0b9[_0x1453fd(0x808)]=_0x4f2584===_0x10a78d['g'][_0x1453fd(0x6ff)]?_0x10a78d['g'][_0x1453fd(0x86c)]:_0x4f2584,_0x2ab0b9[_0x1453fd(0x5da)]=_0x3f53db,_0x2ab0b9[_0x1453fd(0x2c8)]=_0x43fdd4,_0x2ab0b9['width']=_0x1e4ba9,_0x2ab0b9['height']=_0x1e4ba9,_0x2ab0b9['samplingMode']=_0x187f0a,this['_doNotHandleContextLost']||(_0x2ab0b9['_bufferViewArray']=_0x51656f),_0x2ab0b9[_0x1453fd(0xb9a)]=_0x39a255,_0x2ab0b9[_0x1453fd(0x992)]=_0x4f7d6a,_0x2ab0b9['_cachedWrapU']=_0x10a78d['g'][_0x1453fd(0x3bd)],_0x2ab0b9[_0x1453fd(0xa2e)]=_0x10a78d['g'][_0x1453fd(0x3bd)],this['_textureHelper'][_0x1453fd(0x17d)](_0x2ab0b9),_0x51656f&&this[_0x1453fd(0xa45)](_0x2ab0b9,_0x51656f,_0x4f2584,_0x3f53db,_0x39a255,_0x4f7d6a),_0x2ab0b9[_0x1453fd(0x5ac)]=!0x0,_0x2ab0b9;},_0x58a626['f']['prototype'][_0x4b2aa0(0xa45)]=function(_0x215609,_0x515484,_0x182907,_0x5db993,_0x4cfe5f,_0x8c01b9=null){var _0x445d8e=_0x4b2aa0;_0x215609[_0x445d8e(0xb30)]=_0x515484,_0x215609[_0x445d8e(0xb9a)]=_0x4cfe5f,_0x215609[_0x445d8e(0x992)]=_0x8c01b9;var _0x8c01b9=_0x215609[_0x445d8e(0xaf0)],_0x44b7c6=_0x182907===_0x10a78d['g'][_0x445d8e(0x6ff)];const _0x1842ff=[];for(let _0xc5c3f3=0x0;_0xc5c3f3<_0x515484[_0x445d8e(0x3ef)];++_0xc5c3f3){let _0x441cdd=_0x515484[_0xc5c3f3];_0x44b7c6&&(_0x441cdd=_0xb57a18(_0x515484[_0xc5c3f3],_0x215609['width'],_0x215609['height'],_0x5db993)),_0x1842ff[_0x445d8e(0x83f)](new Uint8Array(_0x441cdd[_0x445d8e(0xc3e)],_0x441cdd[_0x445d8e(0x52d)],_0x441cdd['byteLength']));}this[_0x445d8e(0xc8b)]['updateCubeTextures'](_0x1842ff,_0x8c01b9[_0x445d8e(0x57b)],_0x215609['width'],_0x215609['height'],_0x8c01b9[_0x445d8e(0x808)],_0x4cfe5f,!0x1,0x0,0x0),_0x215609[_0x445d8e(0x2c8)]&&this[_0x445d8e(0x7e0)](_0x215609,this[_0x445d8e(0x673)]),_0x215609[_0x445d8e(0x5ac)]=!0x0;},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x9c9)]=function(_0x3a27dd,_0x3d1a26,_0x37d170,_0xa0408d,_0x1756a6,_0x1e9899,_0x2d5c91,_0x2fe94f,_0x2fcb1b=null,_0x3bd78c=null,_0x5c70fc=_0x10a78d['g'][_0x4b2aa0(0xb6b)],_0x429d17=!0x1){var _0xe39fa3=_0x4b2aa0;const _0xef660e=this[_0xe39fa3(0x72f)](null,_0x37d170,_0xa0408d,_0x1756a6,!_0x1e9899,_0x429d17,_0x5c70fc,null),_0xdea808=(null!=_0x3d1a26&&_0x3d1a26[_0xe39fa3(0xc23)](_0xef660e),_0xef660e[_0xe39fa3(0xbbc)]=_0x3a27dd,this[_0xe39fa3(0x7d5)][_0xe39fa3(0x83f)](_0xef660e),_0xb07b8c=>{var _0x3a35cd=_0xe39fa3,_0x5c47fc=_0xef660e[_0x3a35cd(0xca4)],_0x249e81=_0x2d5c91(_0xb07b8c);if(_0x249e81){var _0x1b63e8=[0x0,0x2,0x4,0x1,0x3,0x5];if(_0x2fe94f){var _0x57f0f9=_0xa0408d===_0x10a78d['g'][_0x3a35cd(0x6ff)],_0xb8e589=_0x2fe94f(_0x249e81),_0x208e02=_0xef660e['_hardwareTexture'];const _0x47a259=[0x0,0x1,0x2,0x3,0x4,0x5];for(let _0x6c639f=0x0;_0x6c639f<_0xb8e589[_0x3a35cd(0x3ef)];_0x6c639f++){var _0x32c38c=_0x5c47fc>>_0x6c639f;const _0x47c815=[];for(let _0x4cd2e1=0x0;_0x4cd2e1<0x6;_0x4cd2e1++){let _0x43f25c=_0xb8e589[_0x6c639f][_0x47a259[_0x4cd2e1]];_0x57f0f9&&(_0x43f25c=_0xb57a18(_0x43f25c,_0x32c38c,_0x32c38c,_0x1756a6)),_0x47c815[_0x3a35cd(0x83f)](new Uint8Array(_0x43f25c[_0x3a35cd(0xc3e)],_0x43f25c['byteOffset'],_0x43f25c[_0x3a35cd(0x4d6)]));}this[_0x3a35cd(0xc8b)][_0x3a35cd(0xa62)](_0x47c815,_0x208e02[_0x3a35cd(0x57b)],_0x32c38c,_0x32c38c,_0x208e02[_0x3a35cd(0x808)],_0x429d17,!0x1,0x0,0x0);}}else{const _0x285e8e=[];for(let _0x2058ef=0x0;_0x2058ef<0x6;_0x2058ef++)_0x285e8e[_0x3a35cd(0x83f)](_0x249e81[_0x1b63e8[_0x2058ef]]);this[_0x3a35cd(0xa45)](_0xef660e,_0x285e8e,_0xa0408d,_0x1756a6,_0x429d17);}_0xef660e[_0x3a35cd(0x5ac)]=!0x0,null!=_0x3d1a26&&_0x3d1a26[_0x3a35cd(0x1ed)](_0xef660e),_0x2fcb1b&&_0x2fcb1b();}});return this[_0xe39fa3(0x8d6)](_0x3a27dd,_0xb0e375=>{_0xdea808(_0xb0e375);},void 0x0,null==_0x3d1a26?void 0x0:_0x3d1a26[_0xe39fa3(0x1d3)],!0x0,(_0x23ec24,_0x50c220)=>{var _0x956317=_0xe39fa3;null!=_0x3d1a26&&_0x3d1a26[_0x956317(0x1ed)](_0xef660e),_0x3bd78c&&_0x23ec24&&_0x3bd78c(_0x23ec24[_0x956317(0xab2)]+'\x20'+_0x23ec24[_0x956317(0x953)],_0x50c220);}),_0xef660e;},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0xbb4)]=function(_0xbabbde,_0x263f81,_0xf3f0a5,_0x112550,_0x3bf96f,_0x410997,_0x1df952,_0x2f6145,_0x2c2843=null,_0x17c419=_0x10a78d['g']['TEXTURETYPE_UNSIGNED_INT'],_0x5df61f=0x0){var _0x68c589=_0x4b2aa0,_0x618575=_0x140fc5['S'][_0x68c589(0xc00)];const _0x44bde7=new _0x140fc5['l'](this,_0x618575);return _0x44bde7[_0x68c589(0x863)]=_0x263f81,_0x44bde7['baseHeight']=_0xf3f0a5,_0x44bde7[_0x68c589(0x892)]=_0x112550,_0x44bde7[_0x68c589(0xca4)]=_0x263f81,_0x44bde7['height']=_0xf3f0a5,_0x44bde7[_0x68c589(0x4c3)]=_0x112550,_0x44bde7[_0x68c589(0x808)]=_0x3bf96f,_0x44bde7[_0x68c589(0x5da)]=_0x17c419,_0x44bde7[_0x68c589(0x2c8)]=_0x410997,_0x44bde7[_0x68c589(0xcfe)]=_0x2f6145,_0x44bde7[_0x68c589(0x566)]=!0x0,this[_0x68c589(0x37c)]||(_0x44bde7['_bufferView']=_0xbabbde),this[_0x68c589(0xc8b)][_0x68c589(0x17d)](_0x44bde7,_0x263f81,_0xf3f0a5,void 0x0,_0x5df61f),this[_0x68c589(0x15c)](_0x44bde7,_0xbabbde,_0x3bf96f,_0x1df952,_0x2c2843,_0x17c419),this['_internalTexturesCache'][_0x68c589(0x83f)](_0x44bde7),_0x44bde7;},_0x58a626['f'][_0x4b2aa0(0x9ed)]['updateRawTexture3D']=function(_0x39ab42,_0x44ac8b,_0x1040d4,_0xad11bc,_0xa90fe0=null,_0x475bd0=_0x10a78d['g'][_0x4b2aa0(0xc79)]){var _0x197b66=_0x4b2aa0;this[_0x197b66(0x37c)]||(_0x39ab42['_bufferView']=_0x44ac8b,_0x39ab42[_0x197b66(0x808)]=_0x1040d4,_0x39ab42[_0x197b66(0xb9a)]=_0xad11bc,_0x39ab42[_0x197b66(0x992)]=_0xa90fe0),_0x44ac8b&&(_0xa90fe0=_0x39ab42['_hardwareTexture'],_0x1040d4===_0x10a78d['g'][_0x197b66(0x6ff)]&&(_0x44ac8b=_0xb57a18(_0x44ac8b,_0x39ab42[_0x197b66(0xca4)],_0x39ab42[_0x197b66(0x43d)],_0x475bd0)),_0x1040d4=new Uint8Array(_0x44ac8b[_0x197b66(0xc3e)],_0x44ac8b[_0x197b66(0x52d)],_0x44ac8b[_0x197b66(0x4d6)]),this[_0x197b66(0xc8b)][_0x197b66(0x8ae)](_0x1040d4,_0x39ab42,_0x39ab42[_0x197b66(0xca4)],_0x39ab42[_0x197b66(0x43d)],_0x39ab42['depth'],_0xa90fe0[_0x197b66(0x808)],0x0,0x0,_0xad11bc,!0x1,0x0,0x0),_0x39ab42[_0x197b66(0x2c8)]&&this['_generateMipmaps'](_0x39ab42,this['_uploadEncoder'])),_0x39ab42[_0x197b66(0x5ac)]=!0x0;},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x89c)]=function(_0x43223e,_0x4d9c50,_0x56cc79,_0x1f9522,_0x27c123,_0x41a28b,_0x2d5d93,_0x5ceaa2,_0x2a9319=null,_0x1cef4d=_0x10a78d['g'][_0x4b2aa0(0xc79)],_0x267cdd=0x0){var _0x30f435=_0x4b2aa0,_0x91a4d=_0x140fc5['S'][_0x30f435(0x5b6)];const _0x44d48c=new _0x140fc5['l'](this,_0x91a4d);return _0x44d48c[_0x30f435(0x863)]=_0x4d9c50,_0x44d48c[_0x30f435(0x122)]=_0x56cc79,_0x44d48c['baseDepth']=_0x1f9522,_0x44d48c[_0x30f435(0xca4)]=_0x4d9c50,_0x44d48c[_0x30f435(0x43d)]=_0x56cc79,_0x44d48c['depth']=_0x1f9522,_0x44d48c['format']=_0x27c123,_0x44d48c[_0x30f435(0x5da)]=_0x1cef4d,_0x44d48c[_0x30f435(0x2c8)]=_0x41a28b,_0x44d48c['samplingMode']=_0x5ceaa2,_0x44d48c['is2DArray']=!0x0,this['_doNotHandleContextLost']||(_0x44d48c['_bufferView']=_0x43223e),this[_0x30f435(0xc8b)]['createGPUTextureForInternalTexture'](_0x44d48c,_0x4d9c50,_0x56cc79,_0x1f9522,_0x267cdd),this[_0x30f435(0xb57)](_0x44d48c,_0x43223e,_0x27c123,_0x2d5d93,_0x2a9319,_0x1cef4d),this['_internalTexturesCache'][_0x30f435(0x83f)](_0x44d48c),_0x44d48c;},_0x58a626['f']['prototype'][_0x4b2aa0(0xb57)]=function(_0x5311cb,_0x89b0b8,_0x1f619e,_0x271f08,_0x31226a=null,_0x5aa5b1=_0x10a78d['g'][_0x4b2aa0(0xc79)]){var _0x2e59a3=_0x4b2aa0;this[_0x2e59a3(0x37c)]||(_0x5311cb[_0x2e59a3(0x985)]=_0x89b0b8,_0x5311cb[_0x2e59a3(0x808)]=_0x1f619e,_0x5311cb[_0x2e59a3(0xb9a)]=_0x271f08,_0x5311cb[_0x2e59a3(0x992)]=_0x31226a),_0x89b0b8&&(_0x31226a=_0x5311cb[_0x2e59a3(0xaf0)],_0x1f619e===_0x10a78d['g'][_0x2e59a3(0x6ff)]&&(_0x89b0b8=_0xb57a18(_0x89b0b8,_0x5311cb[_0x2e59a3(0xca4)],_0x5311cb[_0x2e59a3(0x43d)],_0x5aa5b1)),_0x1f619e=new Uint8Array(_0x89b0b8[_0x2e59a3(0xc3e)],_0x89b0b8[_0x2e59a3(0x52d)],_0x89b0b8['byteLength']),this[_0x2e59a3(0xc8b)][_0x2e59a3(0x8ae)](_0x1f619e,_0x5311cb,_0x5311cb[_0x2e59a3(0xca4)],_0x5311cb[_0x2e59a3(0x43d)],_0x5311cb[_0x2e59a3(0x4c3)],_0x31226a[_0x2e59a3(0x808)],0x0,0x0,_0x271f08,!0x1,0x0,0x0),_0x5311cb[_0x2e59a3(0x2c8)]&&this[_0x2e59a3(0x7e0)](_0x5311cb,this['_uploadEncoder'])),_0x5311cb[_0x2e59a3(0x5ac)]=!0x0;},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x848)]=function(_0x70af2a,_0x47d559,_0x560b83,_0x3b7bed=-0x1,_0x56ed9a=0x0,_0x36a9b2=null,_0x5600db=!0x0,_0x5276ff=!0x1,_0x2cfa9a=0x0,_0x2e40b3=0x0){var _0x4b8b8d=_0x4b2aa0;return _0x70af2a=_0x70af2a[_0x4b8b8d(0xaf0)],(_0x5600db&&this['flushFramebuffer'](),this['_textureHelper'][_0x4b8b8d(0xaa4)](_0x70af2a[_0x4b8b8d(0x57b)],_0x2cfa9a,_0x2e40b3,_0x47d559,_0x560b83,_0x70af2a[_0x4b8b8d(0x808)],_0x3b7bed,_0x56ed9a,_0x36a9b2,_0x5276ff));},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x8f8)]=function(){throw'_readTexturePixelsSync\x20is\x20unsupported\x20in\x20WebGPU!';};class _0x465e46 extends _0x1578fd(0x758)['r']{}_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0xa7c)]=function(_0xc1b865,_0x3c97bd,_0x7380a2){var _0x8644f8=_0x4b2aa0;return _0xc1b865=new _0x465e46(_0xc1b865,_0x3c97bd,_0x7380a2,this),(this[_0x8644f8(0x513)][_0x8644f8(0x83f)](_0xc1b865),_0xc1b865);},_0x58a626['f'][_0x4b2aa0(0x9ed)]['createRenderTargetTexture']=function(_0x302956,_0x2c0d4d){var _0x3eb21f=_0x4b2aa0,_0x59773e;const _0x479b07=this[_0x3eb21f(0xa7c)](!0x1,!0x1,_0x302956),_0x1226ac={},_0x4a315f=(void 0x0!==_0x2c0d4d&&'object'==typeof _0x2c0d4d?(_0x1226ac['generateMipMaps']=_0x2c0d4d[_0x3eb21f(0x2c8)],_0x1226ac[_0x3eb21f(0xbc3)]=void 0x0===_0x2c0d4d['generateDepthBuffer']||_0x2c0d4d[_0x3eb21f(0xbc3)],_0x1226ac[_0x3eb21f(0xc3a)]=_0x1226ac[_0x3eb21f(0xbc3)]&&_0x2c0d4d['generateStencilBuffer'],_0x1226ac[_0x3eb21f(0xcfe)]=void 0x0===_0x2c0d4d[_0x3eb21f(0xcfe)]?_0x10a78d['g'][_0x3eb21f(0xb6b)]:_0x2c0d4d[_0x3eb21f(0xcfe)],_0x1226ac['creationFlags']=null!=(_0x59773e=_0x2c0d4d['creationFlags'])?_0x59773e:0x0,_0x1226ac[_0x3eb21f(0x527)]=!!_0x2c0d4d[_0x3eb21f(0x527)],_0x1226ac[_0x3eb21f(0x993)]=_0x2c0d4d[_0x3eb21f(0x993)],_0x1226ac[_0x3eb21f(0x382)]=_0x2c0d4d[_0x3eb21f(0x382)]):(_0x1226ac['generateMipMaps']=_0x2c0d4d,_0x1226ac['generateDepthBuffer']=!0x0,_0x1226ac[_0x3eb21f(0xc3a)]=!0x1,_0x1226ac[_0x3eb21f(0xcfe)]=_0x10a78d['g'][_0x3eb21f(0xb6b)],_0x1226ac[_0x3eb21f(0xb78)]=0x0,_0x1226ac[_0x3eb21f(0x527)]=!0x1),_0x1226ac[_0x3eb21f(0x527)]?null:this[_0x3eb21f(0xac7)](_0x302956,_0x2c0d4d,!0x0,_0x140fc5['S'][_0x3eb21f(0x26d)]));return _0x479b07[_0x3eb21f(0xd2e)]=null!=(_0x59773e=_0x1226ac[_0x3eb21f(0x993)])?_0x59773e:0x1,_0x479b07[_0x3eb21f(0x1b6)]=_0x1226ac[_0x3eb21f(0xbc3)],_0x479b07[_0x3eb21f(0x713)]=!!_0x1226ac[_0x3eb21f(0xc3a)],_0x479b07[_0x3eb21f(0x782)](_0x4a315f),(_0x479b07[_0x3eb21f(0x1b6)]||_0x479b07[_0x3eb21f(0x713)])&&_0x479b07['createDepthStencilTexture'](0x0,this['_caps'][_0x3eb21f(0xb63)]&&(void 0x0===_0x1226ac[_0x3eb21f(0xcfe)]||_0x1226ac[_0x3eb21f(0xcfe)]===_0x10a78d['g'][_0x3eb21f(0xa82)]||_0x1226ac[_0x3eb21f(0xcfe)]===_0x10a78d['g'][_0x3eb21f(0xb7b)]||_0x1226ac[_0x3eb21f(0xcfe)]===_0x10a78d['g'][_0x3eb21f(0xb6b)]||_0x1226ac['samplingMode']===_0x10a78d['g'][_0x3eb21f(0x444)]||_0x1226ac[_0x3eb21f(0xcfe)]===_0x10a78d['g'][_0x3eb21f(0xb29)]||_0x1226ac[_0x3eb21f(0xcfe)]===_0x10a78d['g']['TEXTURE_NEAREST_LINEAR_MIPLINEAR']||_0x1226ac[_0x3eb21f(0xcfe)]===_0x10a78d['g'][_0x3eb21f(0xac6)]||_0x1226ac[_0x3eb21f(0xcfe)]===_0x10a78d['g'][_0x3eb21f(0x620)]),_0x479b07[_0x3eb21f(0x713)],_0x479b07[_0x3eb21f(0x993)],_0x1226ac[_0x3eb21f(0xc3a)]?_0x10a78d['g'][_0x3eb21f(0xb99)]:_0x10a78d['g'][_0x3eb21f(0x47b)],_0x1226ac['label']?_0x1226ac[_0x3eb21f(0x382)]+_0x3eb21f(0xbc9):void 0x0),_0x4a315f&&(void 0x0!==_0x2c0d4d&&'object'==typeof _0x2c0d4d&&_0x2c0d4d['createMipMaps']&&!_0x1226ac['generateMipMaps']&&(_0x4a315f['generateMipMaps']=!0x0),this['_textureHelper']['createGPUTextureForInternalTexture'](_0x4a315f,void 0x0,void 0x0,void 0x0,_0x1226ac['creationFlags']),void 0x0!==_0x2c0d4d&&_0x3eb21f(0x91c)==typeof _0x2c0d4d&&_0x2c0d4d[_0x3eb21f(0x7e3)]&&!_0x1226ac[_0x3eb21f(0x2c8)]&&(_0x4a315f[_0x3eb21f(0x2c8)]=!0x1)),_0x479b07;},_0x58a626['f'][_0x4b2aa0(0x9ed)]['_createDepthStencilTexture']=function(_0x24c6a2,_0x4fca81){var _0x382c68=_0x4b2aa0;const _0x1b3da2=new _0x140fc5['l'](this,_0x140fc5['S']['DepthStencil']);return _0x1b3da2[_0x382c68(0x382)]=_0x4fca81[_0x382c68(0x382)],_0x4fca81=Object[_0x382c68(0x1ce)]({'bilinearFiltering':!0x1,'comparisonFunction':0x0,'generateStencil':!0x1,'samples':0x1,'depthTextureFormat':_0x4fca81[_0x382c68(0x55a)]?_0x10a78d['g'][_0x382c68(0xb99)]:_0x10a78d['g'][_0x382c68(0x47b)]},_0x4fca81),(_0x1b3da2[_0x382c68(0x808)]=_0x4fca81['depthTextureFormat'],this[_0x382c68(0xc17)](_0x1b3da2,_0x24c6a2,_0x4fca81['generateStencil'],_0x4fca81[_0x382c68(0x58c)],_0x4fca81[_0x382c68(0x186)],_0x4fca81['samples']),this[_0x382c68(0xc8b)][_0x382c68(0x17d)](_0x1b3da2),this[_0x382c68(0x7d5)][_0x382c68(0x83f)](_0x1b3da2),_0x1b3da2);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0xc17)]=function(_0x1253c9,_0x363ba4,_0x44ce18,_0x14289e,_0x37f4d3,_0x3043df=0x1){var _0x13e556=_0x4b2aa0,_0x43ee9c=_0x363ba4['width']||_0x363ba4,_0x5cb490=_0x363ba4[_0x13e556(0x43d)]||_0x363ba4,_0x363ba4=_0x363ba4[_0x13e556(0xa73)]||0x0;_0x1253c9[_0x13e556(0x863)]=_0x43ee9c,_0x1253c9[_0x13e556(0x122)]=_0x5cb490,_0x1253c9[_0x13e556(0xca4)]=_0x43ee9c,_0x1253c9[_0x13e556(0x43d)]=_0x5cb490,_0x1253c9[_0x13e556(0x32b)]=0x0<_0x363ba4,_0x1253c9[_0x13e556(0x4c3)]=_0x363ba4,_0x1253c9['isReady']=!0x0,_0x1253c9[_0x13e556(0x993)]=_0x3043df,_0x1253c9[_0x13e556(0x2c8)]=!0x1,_0x1253c9[_0x13e556(0xcfe)]=_0x14289e?_0x10a78d['g'][_0x13e556(0xa82)]:_0x10a78d['g']['TEXTURE_NEAREST_SAMPLINGMODE'],_0x1253c9[_0x13e556(0x5da)]=_0x10a78d['g'][_0x13e556(0x67a)],_0x1253c9[_0x13e556(0x91f)]=_0x37f4d3,_0x1253c9[_0x13e556(0xb9d)]=_0x10a78d['g'][_0x13e556(0x3bd)],_0x1253c9[_0x13e556(0xa2e)]=_0x10a78d['g'][_0x13e556(0x3bd)];},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x877)]=function(_0x15c8e1,_0x3674e9){var _0x3f565b=_0x4b2aa0;return _0x15c8e1&&_0x15c8e1[_0x3f565b(0x6f7)]&&_0x15c8e1[_0x3f565b(0x993)]!==_0x3674e9?(_0x3674e9=Math[_0x3f565b(0xbab)](_0x3674e9,this[_0x3f565b(0x33a)]()[_0x3f565b(0x84e)]),this[_0x3f565b(0xc8b)][_0x3f565b(0x8ad)](_0x15c8e1[_0x3f565b(0x6f7)],_0x3674e9),_0x15c8e1['_depthStencilTexture']&&(this['_textureHelper'][_0x3f565b(0x8ad)](_0x15c8e1[_0x3f565b(0x27d)],_0x3674e9),_0x15c8e1[_0x3f565b(0x27d)][_0x3f565b(0x993)]=_0x3674e9),_0x15c8e1[_0x3f565b(0xd2e)]=_0x3674e9,_0x15c8e1[_0x3f565b(0x6f7)][_0x3f565b(0x993)]=_0x3674e9):_0x3674e9;},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0xc21)]=function(_0x5039b5,_0xa74473){var _0x4cb104=_0x4b2aa0;const _0x23ca21=this[_0x4cb104(0xa7c)](!0x1,!0x0,_0x5039b5),_0x10f4cb=Object[_0x4cb104(0x1ce)]({'generateMipMaps':!0x0,'generateDepthBuffer':!0x0,'generateStencilBuffer':!0x1,'type':_0x10a78d['g']['TEXTURETYPE_UNSIGNED_INT'],'samplingMode':_0x10a78d['g'][_0x4cb104(0xb6b)],'format':_0x10a78d['g'][_0x4cb104(0x86c)],'samples':0x1},_0xa74473),_0x476d=(_0x10f4cb['generateStencilBuffer']=_0x10f4cb[_0x4cb104(0xbc3)]&&_0x10f4cb[_0x4cb104(0xc3a)],_0x23ca21[_0x4cb104(0x1b6)]=_0x10f4cb[_0x4cb104(0xbc3)],_0x23ca21[_0x4cb104(0x713)]=_0x10f4cb[_0x4cb104(0xc3a)],new _0x140fc5['l'](this,_0x140fc5['S'][_0x4cb104(0x26d)]));return _0x476d[_0x4cb104(0xca4)]=_0x5039b5,_0x476d[_0x4cb104(0x43d)]=_0x5039b5,_0x476d[_0x4cb104(0x4c3)]=0x0,_0x476d[_0x4cb104(0x5ac)]=!0x0,_0x476d[_0x4cb104(0x144)]=!0x0,_0x476d['samples']=_0x10f4cb['samples'],_0x476d['generateMipMaps']=_0x10f4cb[_0x4cb104(0x2c8)],_0x476d[_0x4cb104(0xcfe)]=_0x10f4cb[_0x4cb104(0xcfe)],_0x476d[_0x4cb104(0x5da)]=_0x10f4cb[_0x4cb104(0x5da)],_0x476d[_0x4cb104(0x808)]=_0x10f4cb[_0x4cb104(0x808)],this['_internalTexturesCache']['push'](_0x476d),_0x23ca21[_0x4cb104(0x782)](_0x476d),(_0x23ca21[_0x4cb104(0x1b6)]||_0x23ca21['_generateStencilBuffer'])&&_0x23ca21['createDepthStencilTexture'](0x0,void 0x0===_0x10f4cb[_0x4cb104(0xcfe)]||_0x10f4cb[_0x4cb104(0xcfe)]===_0x10a78d['g'][_0x4cb104(0xa82)]||_0x10f4cb[_0x4cb104(0xcfe)]===_0x10a78d['g'][_0x4cb104(0xb7b)]||_0x10f4cb[_0x4cb104(0xcfe)]===_0x10a78d['g'][_0x4cb104(0xb6b)]||_0x10f4cb['samplingMode']===_0x10a78d['g'][_0x4cb104(0x444)]||_0x10f4cb[_0x4cb104(0xcfe)]===_0x10a78d['g']['TEXTURE_NEAREST_LINEAR_MIPNEAREST']||_0x10f4cb['samplingMode']===_0x10a78d['g'][_0x4cb104(0x226)]||_0x10f4cb['samplingMode']===_0x10a78d['g'][_0x4cb104(0xac6)]||_0x10f4cb[_0x4cb104(0xcfe)]===_0x10a78d['g']['TEXTURE_LINEAR_LINEAR_MIPNEAREST'],_0x23ca21[_0x4cb104(0x713)],_0x23ca21[_0x4cb104(0x993)]),_0xa74473&&_0xa74473[_0x4cb104(0x7e3)]&&!_0x10f4cb['generateMipMaps']&&(_0x476d[_0x4cb104(0x2c8)]=!0x0),this[_0x4cb104(0xc8b)][_0x4cb104(0x17d)](_0x476d),_0xa74473&&_0xa74473['createMipMaps']&&!_0x10f4cb[_0x4cb104(0x2c8)]&&(_0x476d[_0x4cb104(0x2c8)]=!0x1),_0x23ca21;},_0x5db5a7['Q'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x534)]=function(_0x2b075d,_0x2e209a){var _0x20dc63=_0x4b2aa0;this[_0x20dc63(0x397)][_0x20dc63(0x534)](_0x2b075d,_0x2e209a);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x534)]=function(_0xcb4ba5,_0x11ac92){var _0x16fcb2=_0x4b2aa0,_0x3caf7b;null!=(_0x3caf7b=this[_0x16fcb2(0xa7d)])&&_0x3caf7b[_0x16fcb2(0xd30)](_0xcb4ba5,_0x11ac92);},_0x5db5a7['Q'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x6fb)]=function(_0x1836ad,_0x22530e){var _0x15882d=_0x4b2aa0;this[_0x15882d(0x397)][_0x15882d(0x6fb)](_0x1836ad,_0x22530e);},_0x58a626['f']['prototype']['createStorageBuffer']=function(_0xe8d43f,_0x13f61d){var _0x126495=_0x4b2aa0;return this['_createBuffer'](_0xe8d43f,_0x13f61d|_0x10a78d['g'][_0x126495(0x4a8)]);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x26a)]=function(_0x51b55f,_0x4b0cce,_0x3dff06,_0x25502f){var _0x167421=_0x4b2aa0;void 0x0===_0x3dff06&&(_0x3dff06=0x0);let _0x118346;void 0x0===_0x25502f?_0x25502f=(_0x118346=_0x4b0cce instanceof Array?new Float32Array(_0x4b0cce):_0x4b0cce instanceof ArrayBuffer?new Uint8Array(_0x4b0cce):_0x4b0cce)['byteLength']:_0x118346=_0x4b0cce instanceof Array?new Float32Array(_0x4b0cce):_0x4b0cce instanceof ArrayBuffer?new Uint8Array(_0x4b0cce):_0x4b0cce,this['_bufferManager'][_0x167421(0x274)](_0x51b55f,_0x3dff06,_0x118346,0x0,_0x25502f);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0xa35)]=function(_0x148f1b,_0x59b750,_0x2cdadf,_0x252e34){var _0x7c1628=_0x4b2aa0;_0x2cdadf=_0x2cdadf||_0x148f1b[_0x7c1628(0x9ef)];const _0x258608=this['_bufferManager'][_0x7c1628(0x379)](_0x2cdadf,_0x2a5a64['FB']['MapRead']|_0x2a5a64['FB'][_0x7c1628(0x7c6)]);return this[_0x7c1628(0x4ba)][_0x7c1628(0x158)](_0x148f1b[_0x7c1628(0x57b)],null!=_0x59b750?_0x59b750:0x0,_0x258608,0x0,_0x2cdadf),new Promise((_0x1f6ed5,_0x4433bd)=>{var _0x1f61c1=_0x7c1628;this[_0x1f61c1(0x6bc)]['addOnce'](()=>{var _0x8f1701=_0x1f61c1;_0x258608['mapAsync'](_0x2a5a64['gc'][_0x8f1701(0x6f5)],0x0,_0x2cdadf)[_0x8f1701(0xbb3)](()=>{var _0x3b7723=_0x8f1701,_0xc001b7=_0x258608[_0x3b7723(0x988)](0x0,_0x2cdadf);let _0x20cb31=_0x252e34;if(void 0x0===_0x20cb31)(_0x20cb31=new Uint8Array(_0x2cdadf))[_0x3b7723(0x970)](new Uint8Array(_0xc001b7));else{const _0x55034e=_0x20cb31['constructor'];(_0x20cb31=new _0x55034e(_0x20cb31[_0x3b7723(0xc3e)]))[_0x3b7723(0x970)](new _0x55034e(_0xc001b7));}_0x258608[_0x3b7723(0x76f)](),this[_0x3b7723(0x6bf)][_0x3b7723(0x345)](_0x258608),_0x1f6ed5(_0x20cb31);},_0x19f7ad=>_0x4433bd(_0x19f7ad));});});},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x6fb)]=function(_0x573f9f,_0x4d615c){var _0x7778ba=_0x4b2aa0,_0x5a97ca;null!=(_0x5a97ca=this[_0x7778ba(0x9c1)])&&_0x5a97ca[_0x7778ba(0xc8d)](_0x573f9f,null!=(_0x5a97ca=null==_0x4d615c?void 0x0:_0x4d615c[_0x7778ba(0x36d)]())?_0x5a97ca:null);},_0x58a626['f']['prototype'][_0x4b2aa0(0xbc2)]=function(_0x4f6525){var _0x56a9fd=_0x4b2aa0;return _0x4f6525=_0x4f6525 instanceof Array?new Float32Array(_0x4f6525):_0x4f6525,this['_bufferManager'][_0x56a9fd(0x4b8)](_0x4f6525,_0x2a5a64['FB'][_0x56a9fd(0xa05)]|_0x2a5a64['FB'][_0x56a9fd(0x7c6)]);},_0x58a626['f'][_0x4b2aa0(0x9ed)]['createDynamicUniformBuffer']=function(_0x30dafb){return this['createUniformBuffer'](_0x30dafb);},_0x58a626['f']['prototype']['updateUniformBuffer']=function(_0x1dde5d,_0x3b0cfb,_0x1cbc1a,_0x221df2){var _0x30eb4a=_0x4b2aa0;void 0x0===_0x1cbc1a&&(_0x1cbc1a=0x0);let _0x12fa19;void 0x0===_0x221df2?_0x221df2=(_0x12fa19=_0x3b0cfb instanceof Float32Array?_0x3b0cfb:new Float32Array(_0x3b0cfb))['byteLength']:_0x12fa19=_0x3b0cfb instanceof Float32Array?_0x3b0cfb:new Float32Array(_0x3b0cfb),this[_0x30eb4a(0x6bf)][_0x30eb4a(0x274)](_0x1dde5d,_0x1cbc1a,_0x12fa19,0x0,_0x221df2);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x688)]=function(_0x49cc34,_0x2004d2,_0x15d14f){var _0x5a251d=_0x4b2aa0;this[_0x5a251d(0x9c1)][_0x5a251d(0xc8d)](_0x15d14f,_0x49cc34);},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x292)]=function(){},_0x58a626['f'][_0x4b2aa0(0x9ed)][_0x4b2aa0(0x5e1)]=function(_0x4bfd56,_0x15b956,_0x3145c6){var _0x3a96f1=_0x4b2aa0,_0xcbbd23;if(_0x4bfd56&&!_0x4bfd56[_0x3a96f1(0x8b0)]){void 0x0===this[_0x3a96f1(0x574)]&&(this[_0x3a96f1(0x574)]=!0x0);let _0x25fdd3=_0x4bfd56[_0x3a96f1(0xaf0)];null!=(_0xcbbd23=_0x4bfd56[_0x3a96f1(0xaf0)])&&_0xcbbd23[_0x3a96f1(0x57b)]||(_0x25fdd3=this[_0x3a96f1(0xc8b)][_0x3a96f1(0x17d)](_0x4bfd56)),_0x15b956&&void 0x0!==_0x15b956[_0x3a96f1(0x57b)]?(this['_textureHelper']['copyVideoToTexture'](_0x15b956,_0x4bfd56,_0x25fdd3['format'],!_0x3145c6),_0x4bfd56[_0x3a96f1(0x2c8)]&&this[_0x3a96f1(0x7e0)](_0x4bfd56,this[_0x3a96f1(0x673)]),_0x4bfd56[_0x3a96f1(0x5ac)]=!0x0):_0x15b956&&this[_0x3a96f1(0x885)](_0x15b956)['then'](_0x1784a1=>{var _0x4bd65e=_0x3a96f1;this[_0x4bd65e(0xc8b)]['updateTexture'](_0x1784a1,_0x4bfd56,_0x4bfd56[_0x4bd65e(0xca4)],_0x4bfd56[_0x4bd65e(0x43d)],_0x4bfd56[_0x4bd65e(0x4c3)],_0x25fdd3['format'],0x0,0x0,!_0x3145c6,!0x1,0x0,0x0),_0x4bfd56[_0x4bd65e(0x2c8)]&&this['_generateMipmaps'](_0x4bfd56,this[_0x4bd65e(0x673)]),_0x4bfd56[_0x4bd65e(0x5ac)]=!0x0;})[_0x3a96f1(0x6fd)](()=>{var _0x5320fc=_0x3a96f1;_0x4bfd56[_0x5320fc(0x5ac)]=!0x0;});}};},0x11376:(_0x550357,_0xbd3254,_0xca62c1)=>{var _0x29d8a3=a6_0x1e64fa;_0xca62c1['d'](_0xbd3254,{'V':()=>_0x190cf5});var _0x123bac=_0xca62c1(0x5e45),_0x2b00d5=_0xca62c1(0x13869),_0x454770=_0xca62c1(0x77a5),_0x4cf151=_0xca62c1(0x3c27),_0x2418b7=_0xca62c1(0x89a1);class _0x190cf5{constructor(_0x4e0811){var _0x2feb25=a6_0x2304;this[_0x2feb25(0x78f)]=[],this[_0x2feb25(0x7b4)]=_0x4e0811;}static[_0x29d8a3(0x56e)](_0x49b8f4){var _0x7bcada=_0x29d8a3;return void 0x0===_0x49b8f4[_0x7bcada(0x57b)];}[_0x29d8a3(0x379)](_0x8ec50b,_0x205d0d,_0x1aa856=!0x1){var _0x5c5973=_0x29d8a3;return _0x8ec50b=void 0x0!==_0x8ec50b['byteLength']?_0x8ec50b[_0x5c5973(0x4d6)]+0x3&-0x4:_0x8ec50b+0x3&-0x4,this['_device'][_0x5c5973(0x4b8)]({'mappedAtCreation':_0x1aa856,'size':_0x8ec50b,'usage':_0x205d0d});}[_0x29d8a3(0x4b8)](_0x283729,_0x3974bc){var _0x1daf82=_0x29d8a3,_0x2ade91=void 0x0!==_0x283729[_0x1daf82(0x4d6)],_0x3974bc=this['createRawBuffer'](_0x283729,_0x3974bc);const _0x22596c=new _0x123bac['C'](_0x3974bc);return _0x22596c['references']=0x1,_0x22596c[_0x1daf82(0x9ef)]=_0x2ade91?_0x283729[_0x1daf82(0x4d6)]:_0x283729,_0x2ade91&&this['setSubData'](_0x22596c,0x0,_0x283729),_0x22596c;}[_0x29d8a3(0x55d)](_0x13aa17,_0x59e88d,_0x4125f1,_0x8c59d1,_0x19b0d7){var _0x50c0e9=_0x29d8a3;this[_0x50c0e9(0x7b4)][_0x50c0e9(0x437)][_0x50c0e9(0xad9)](_0x13aa17,_0x59e88d,_0x4125f1['buffer'],_0x8c59d1,_0x19b0d7);}[_0x29d8a3(0x274)](_0x1040d6,_0x4fab7b,_0x3f49f8,_0x2b0e92=0x0,_0x10eae2=0x0){var _0x18f766=_0x29d8a3,_0x8e64c=_0x1040d6['underlyingResource'];_0x10eae2=_0x10eae2||_0x3f49f8[_0x18f766(0x4d6)],_0x10eae2=Math[_0x18f766(0xbab)](_0x10eae2,_0x1040d6[_0x18f766(0x9ef)]-_0x4fab7b);let _0x1da485=_0x3f49f8[_0x18f766(0x52d)]+_0x2b0e92,_0x4249c0=_0x1da485+_0x10eae2;var _0x415a4f,_0x1040d6=_0x10eae2+0x3&-0x4,_0x371c84=(_0x1040d6!==_0x10eae2&&(_0x415a4f=new Uint8Array(_0x3f49f8[_0x18f766(0xc3e)][_0x18f766(0x433)](_0x1da485,_0x4249c0)),(_0x3f49f8=new Uint8Array(_0x1040d6))['set'](_0x415a4f),_0x2b0e92=0x0,_0x1da485=0x0,_0x10eae2=_0x4249c0=_0x1040d6),0xf00000);let _0x2cfc68=0x0;for(;_0x4249c0-(_0x1da485+_0x2cfc68)>_0x371c84;)this[_0x18f766(0x7b4)]['queue'][_0x18f766(0xad9)](_0x8e64c,_0x4fab7b+_0x2cfc68,_0x3f49f8[_0x18f766(0xc3e)],_0x1da485+_0x2cfc68,_0x371c84),_0x2cfc68+=_0x371c84;this[_0x18f766(0x7b4)][_0x18f766(0x437)][_0x18f766(0xad9)](_0x8e64c,_0x4fab7b+_0x2cfc68,_0x3f49f8[_0x18f766(0xc3e)],_0x1da485+_0x2cfc68,_0x10eae2-_0x2cfc68);}[_0x29d8a3(0x4a5)](_0x5659ca,_0x3492fa,_0x277b86){_0x277b86=_0x277b86||new Float32Array(_0x5659ca);for(var _0x2cac74=new Uint16Array(_0x3492fa);_0x5659ca--;)_0x277b86[_0x5659ca]=(0x0,_0x2b00d5['qZ'])(_0x2cac74[_0x5659ca]);return _0x277b86;}[_0x29d8a3(0x170)](_0x56f2e9,_0x49633c,_0x15ca6c,_0x33b860,_0x292853,_0x57e55b,_0x4f223e=_0x454770['g']['TEXTURETYPE_UNSIGNED_BYTE'],_0x3f5cf2=0x0,_0x27db10=null,_0x4232f8=!0x0,_0x3994e0=!0x1){var _0x29f7db=_0x29d8a3;const _0x2c9e51=_0x4f223e===_0x454770['g'][_0x29f7db(0x67a)]?0x2:_0x4f223e===_0x454770['g']['TEXTURETYPE_HALF_FLOAT']?0x1:0x0;return new Promise((_0x5b3795,_0x5332f4)=>{var _0x5bf421=_0x29f7db;_0x56f2e9[_0x5bf421(0xce8)](_0x2418b7['gc']['Read'],_0x3f5cf2,_0x49633c)['then'](()=>{var _0x62d3d8=_0x5bf421,_0x11f45f=_0x56f2e9[_0x62d3d8(0x988)](_0x3f5cf2,_0x49633c);let _0x2bd9f2=_0x27db10;if(_0x3994e0)_0x2bd9f2=null===_0x2bd9f2?(0x0,_0x4cf151['A'])(_0x4f223e,_0x49633c,!0x0,_0x11f45f):(0x0,_0x4cf151['A'])(_0x4f223e,_0x2bd9f2[_0x62d3d8(0xc3e)],void 0x0,_0x11f45f);else{if(null===_0x2bd9f2)switch(_0x2c9e51){case 0x0:(_0x2bd9f2=new Uint8Array(_0x49633c))[_0x62d3d8(0x970)](new Uint8Array(_0x11f45f));break;case 0x1:_0x2bd9f2=this['_getHalfFloatAsFloatRGBAArrayBuffer'](_0x49633c/0x2,_0x11f45f);break;case 0x2:(_0x2bd9f2=new Float32Array(_0x49633c/0x4))['set'](new Float32Array(_0x11f45f));}else switch(_0x2c9e51){case 0x0:(_0x2bd9f2=new Uint8Array(_0x2bd9f2[_0x62d3d8(0xc3e)]))[_0x62d3d8(0x970)](new Uint8Array(_0x11f45f));break;case 0x1:_0x2bd9f2=this[_0x62d3d8(0x4a5)](_0x49633c/0x2,_0x11f45f,_0x27db10);break;case 0x2:(_0x2bd9f2=new Float32Array(_0x2bd9f2[_0x62d3d8(0xc3e)]))[_0x62d3d8(0x970)](new Float32Array(_0x11f45f));}}if(_0x292853!==_0x57e55b){0x1!=_0x2c9e51||_0x3994e0||(_0x292853*=0x2,_0x57e55b*=0x2);const _0x3a53e0=new Uint8Array(_0x2bd9f2['buffer']);let _0x1bc893=_0x292853,_0x49a339=0x0;for(let _0x494a39=0x1;_0x494a39<_0x33b860;++_0x494a39){_0x49a339=_0x494a39*_0x57e55b;for(let _0x4e0ad1=0x0;_0x4e0ad1<_0x292853;++_0x4e0ad1)_0x3a53e0[_0x1bc893++]=_0x3a53e0[_0x49a339++];}_0x2bd9f2=0x0==_0x2c9e51||_0x3994e0?new Uint8Array(_0x3a53e0[_0x62d3d8(0xc3e)],0x0,_0x1bc893):new Float32Array(_0x3a53e0['buffer'],0x0,_0x1bc893/0x4);}_0x56f2e9['unmap'](),_0x4232f8&&this[_0x62d3d8(0x345)](_0x56f2e9),_0x5b3795(_0x2bd9f2);},_0x369b6c=>_0x5332f4(_0x369b6c));});}['releaseBuffer'](_0x1e0da1){var _0x3a7c87=_0x29d8a3;return _0x190cf5[_0x3a7c87(0x56e)](_0x1e0da1)?(this[_0x3a7c87(0x78f)][_0x3a7c87(0x83f)](_0x1e0da1),!0x0):(_0x1e0da1['references']--,0x0===_0x1e0da1[_0x3a7c87(0x860)]&&(this[_0x3a7c87(0x78f)][_0x3a7c87(0x83f)](_0x1e0da1[_0x3a7c87(0x57b)]),!0x0));}['destroyDeferredBuffers'](){var _0x1a9869=_0x29d8a3;for(let _0x43827c=0x0;_0x43827c<this[_0x1a9869(0x78f)][_0x1a9869(0x3ef)];++_0x43827c)this['_deferredReleaseBuffers'][_0x43827c]['destroy']();this[_0x1a9869(0x78f)][_0x1a9869(0x3ef)]=0x0;}}},0x742a:(_0x3c592c,_0x58d4c8,_0xa6bb06)=>{var _0x30db91=a6_0x1e64fa;_0xa6bb06['d'](_0x58d4c8,{'GB':()=>_0x34038a,'fv':()=>_0x17c42c,'fw':()=>_0x523505,'kP':()=>_0x30c28d,'me':()=>_0x5bbdd1,'nt':()=>_0x3ac707,'vr':()=>_0x296cc8});class _0x17c42c{constructor(_0x47506c,_0x16d580,_0x2156ff,_0x450cfd){var _0x1c97eb=a6_0x2304;this['x']=Math[_0x1c97eb(0x6af)](_0x47506c),this['y']=Math['floor'](_0x16d580),this['w']=Math[_0x1c97eb(0x6af)](_0x2156ff),this['h']=Math[_0x1c97eb(0x6af)](_0x450cfd);}[_0x30db91(0x68a)](_0x4b0737){var _0x38eeba=_0x30db91;_0x4b0737[_0x38eeba(0xb3a)](this['x'],this['y'],this['w'],this['h'],0x0,0x1);}[_0x30db91(0x12a)](){return new _0x17c42c(this['x'],this['y'],this['w'],this['h']);}}class _0x5bbdd1{constructor(_0xdedb82,_0xa1b70c,_0xa5090d,_0x21f1c8){this['x']=_0xdedb82,this['y']=_0xa1b70c,this['w']=_0xa5090d,this['h']=_0x21f1c8;}['run'](_0x473437){var _0x31aa5e=_0x30db91;_0x473437[_0x31aa5e(0x4b5)](this['x'],this['y'],this['w'],this['h']);}['clone'](){return new _0x5bbdd1(this['x'],this['y'],this['w'],this['h']);}}class _0x296cc8{constructor(_0x537d12){this['ref']=_0x537d12;}[_0x30db91(0x68a)](_0x3bb4c0){var _0x2310fd=_0x30db91;_0x3bb4c0[_0x2310fd(0x9d1)](this[_0x2310fd(0xbaf)]);}[_0x30db91(0x12a)](){var _0x476a2b=_0x30db91;return new _0x296cc8(this[_0x476a2b(0xbaf)]);}}class _0x30c28d{constructor(_0x4e34ff){this['color']=_0x4e34ff;}[_0x30db91(0x68a)](_0x2fce0a){_0x2fce0a['setBlendConstant'](this['color']);}[_0x30db91(0x12a)](){var _0x3d1759=_0x30db91;return new _0x30c28d(this[_0x3d1759(0x84f)]);}}class _0x34038a{constructor(_0x5257dd){var _0x83c801=_0x30db91;this[_0x83c801(0xc22)]=_0x5257dd;}[_0x30db91(0x68a)](_0x256e14){var _0x2e1873=_0x30db91;_0x256e14[_0x2e1873(0x5dc)](this[_0x2e1873(0xc22)]);}['clone'](){var _0x7a2cd1=_0x30db91;return new _0x34038a(this[_0x7a2cd1(0xc22)]);}}class _0x523505{constructor(){}[_0x30db91(0x68a)](_0x4950f8){var _0x548115=_0x30db91;_0x4950f8[_0x548115(0x3df)]();}['clone'](){return new _0x523505();}}class _0x27f94c{constructor(){this['bundles']=[];}[_0x30db91(0x68a)](_0x585dcc){var _0x403a60=_0x30db91;_0x585dcc[_0x403a60(0x6b8)](this[_0x403a60(0x4c9)]);}['clone'](){var _0xad8b1d=_0x30db91;const _0x1a8c25=new _0x27f94c();return _0x1a8c25[_0xad8b1d(0x4c9)]=this['bundles'],_0x1a8c25;}}class _0x3ac707{constructor(_0xcb8f64){var _0x124051=_0x30db91;this[_0x124051(0x9f1)]=0x0,this['_device']=_0xcb8f64,this[_0x124051(0xb36)]=new Array(0xa),this[_0x124051(0x7dc)]=0x0;}[_0x30db91(0xa3b)](_0xe1ba4d){var _0x3bcdfb=_0x30db91,_0x37a73e;this[_0x3bcdfb(0xb38)]||(_0x37a73e=new _0x27f94c(),this[_0x3bcdfb(0xb36)][this['_listLength']++]=_0x37a73e,this[_0x3bcdfb(0xbec)]=_0x37a73e[_0x3bcdfb(0x4c9)],this[_0x3bcdfb(0xb38)]=!0x0),_0xe1ba4d&&this[_0x3bcdfb(0xbec)][_0x3bcdfb(0x83f)](_0xe1ba4d);}['_finishBundle'](){var _0xad2636=_0x30db91;this['_currentItemIsBundle']&&this[_0xad2636(0x3d5)]&&(this[_0xad2636(0xbec)]['push'](this[_0xad2636(0x3d5)]['finish']()),this[_0xad2636(0x3d5)]=void 0x0,this[_0xad2636(0xb38)]=!0x1);}[_0x30db91(0xb97)](_0x594918){var _0x2654d2=_0x30db91;this['_finishBundle'](),this[_0x2654d2(0xb36)][this[_0x2654d2(0x7dc)]++]=_0x594918,this[_0x2654d2(0xb38)]=!0x1;}['getBundleEncoder'](_0x351402,_0x450e36,_0x32de39){var _0xf02a29=_0x30db91;return this[_0xf02a29(0xb38)]||(this[_0xf02a29(0xa3b)](),this[_0xf02a29(0x3d5)]=this[_0xf02a29(0x7b4)]['createRenderBundleEncoder']({'colorFormats':_0x351402,'depthStencilFormat':_0x450e36,'sampleCount':_0x32de39})),this['_bundleEncoder'];}[_0x30db91(0x898)](){var _0x26d8ec=_0x30db91;this[_0x26d8ec(0x934)]();}[_0x30db91(0x68a)](_0x4b2c9e){var _0x1ef647=_0x30db91;this['close']();for(let _0x4ef5b1=0x0;_0x4ef5b1<this['_listLength'];++_0x4ef5b1)this[_0x1ef647(0xb36)][_0x4ef5b1][_0x1ef647(0x68a)](_0x4b2c9e);}['reset'](){var _0x45f80e=_0x30db91;this['_listLength']=0x0,this[_0x45f80e(0xb38)]=!0x1,this[_0x45f80e(0x9f1)]=0x0;}[_0x30db91(0x12a)](){var _0x40f545=_0x30db91;this[_0x40f545(0x898)]();const _0x2d2201=new _0x3ac707(this[_0x40f545(0x7b4)]);_0x2d2201[_0x40f545(0xb36)]=new Array(this[_0x40f545(0x7dc)]),_0x2d2201[_0x40f545(0x7dc)]=this['_listLength'],_0x2d2201[_0x40f545(0x9f1)]=this['numDrawCalls'];for(let _0x2d3a4b=0x0;_0x2d3a4b<this['_listLength'];++_0x2d3a4b)_0x2d2201['_list'][_0x2d3a4b]=this[_0x40f545(0xb36)][_0x2d3a4b][_0x40f545(0x12a)]();return _0x2d2201;}}},0xb194:(_0x490e09,_0x4421b,_0xb9ca5d)=>{var _0x5f139c=a6_0x1e64fa;_0xb9ca5d['d'](_0x4421b,{'T':()=>_0x2f14d9});var _0x1e4865=_0xb9ca5d(0x77a5),_0x2e710d=_0xb9ca5d(0x9683),_0x3181c4=_0xb9ca5d(0x1114f),_0x3d041b=_0xb9ca5d(0x59c6),_0x4421b=_0xb9ca5d(0x17a92);_0x4421b['v'][_0x5f139c(0xcd6)][_0x5f139c(0x313)]=_0x5f139c(0xb43),_0x4421b['v'][_0x5f139c(0xcd6)][_0x5f139c(0xcad)]='uniform\x20vec4\x20color;\x0avoid\x20main()\x20{\x0agl_FragColor=color;\x0a}\x0a';class _0x2f14d9{constructor(_0x3d0079,_0x5e5ce3,_0x2e85d4){var _0x416c80=_0x5f139c;this['_bindGroups']={},this[_0x416c80(0x579)]={},this[_0x416c80(0x47a)]=[],this[_0x416c80(0x7b4)]=_0x3d0079,this[_0x416c80(0x397)]=_0x5e5ce3,this['_cacheRenderPipeline']=new _0x2e710d['H'](this['_device'],_0x2e85d4,!_0x5e5ce3[_0x416c80(0x588)][_0x416c80(0xb63)]),this[_0x416c80(0x22d)]['setDepthTestEnabled'](!0x1),this[_0x416c80(0x22d)][_0x416c80(0x8da)](0xff),this[_0x416c80(0xb81)]=_0x5e5ce3[_0x416c80(0x310)](_0x416c80(0xc02),[],[_0x416c80(0x84f),_0x416c80(0x6b2)]);}[_0x5f139c(0x9f6)](_0x5b9860){var _0x21d1a3=_0x5f139c;this['_depthTextureFormat']=_0x5b9860,this[_0x21d1a3(0x22d)][_0x21d1a3(0x9f6)](_0x5b9860);}[_0x5f139c(0x342)](_0x112452){var _0x38ad48=_0x5f139c;this[_0x38ad48(0x22d)][_0x38ad48(0x342)](_0x112452);}['setMRTAttachments'](_0x1028b3,_0x73a87f,_0x41a159){var _0x50868c=_0x5f139c;this[_0x50868c(0x22d)][_0x50868c(0xbf8)](_0x73a87f,_0x41a159),this[_0x50868c(0x22d)][_0x50868c(0x223)](_0x1028b3);}[_0x5f139c(0x6de)](_0x57ea8e,_0x35cf04,_0xd655d5,_0x805ebc,_0x4cc7f5=0x1){var _0x561836=_0x5f139c,_0x3e241d;let _0x321535,_0xd87ad0=null,_0x1971da;var _0x208efb=!!this['_engine'][_0x561836(0x2ce)];if(_0x57ea8e)_0x321535=_0x57ea8e;else{let _0x54fe07=0x0;for(let _0x276939=this[_0x561836(0x47a)][_0x561836(0x3ef)]=0x0;_0x276939<this[_0x561836(0x22d)][_0x561836(0x9a4)][_0x561836(0x3ef)];++_0x276939)this[_0x561836(0x47a)][_0x54fe07++]=_0x3d041b['U'][null!=(_0x3e241d=this[_0x561836(0x22d)][_0x561836(0x9a4)][_0x276939])?_0x3e241d:''];var _0x2eccc5=_0x3d041b['U'][null!=(_0x2eccc5=this[_0x561836(0x66f)])?_0x2eccc5:0x0];if(this['_keyTemp'][_0x54fe07]=(_0x35cf04?_0x35cf04['r']+0x100*_0x35cf04['g']+0x100*_0x35cf04['b']*0x100+0x100*_0x35cf04['a']*0x100*0x100:0x0)+(_0xd655d5?Math[_0x561836(0x3b0)](0x2,0x20):0x0)+(_0x805ebc?Math[_0x561836(0x3b0)](0x2,0x21):0x0)+(this['_engine']['useReverseDepthBuffer']?Math[_0x561836(0x3b0)](0x2,0x22):0x0)+(_0x208efb?Math[_0x561836(0x3b0)](0x2,0x23):0x0)+(0x1<_0x4cc7f5?Math['pow'](0x2,0x24):0x0)+_0x2eccc5*Math['pow'](0x2,0x25),_0x1971da=this[_0x561836(0x47a)][_0x561836(0x465)]('_'),_0xd87ad0=this[_0x561836(0x579)][_0x1971da])return _0xd87ad0;_0x321535=this[_0x561836(0x7b4)]['createRenderBundleEncoder']({'colorFormats':this[_0x561836(0x22d)]['colorFormats'],'depthStencilFormat':this[_0x561836(0x66f)],'sampleCount':_0x4cc7f5});}this[_0x561836(0x22d)][_0x561836(0x421)](!!_0xd655d5),this['_cacheRenderPipeline'][_0x561836(0xcac)](!!_0x805ebc&&!!this[_0x561836(0x66f)]&&_0x3d041b['D'][_0x561836(0x9d9)](this[_0x561836(0x66f)])),this[_0x561836(0x22d)][_0x561836(0x6f3)](_0x805ebc?0xff:0x0),this[_0x561836(0x22d)][_0x561836(0x8ff)](_0x805ebc?_0x1e4865['g'][_0x561836(0x809)]:_0x1e4865['g'][_0x561836(0xa95)]),this[_0x561836(0x22d)][_0x561836(0x61a)](_0x805ebc?_0x1e4865['g'][_0x561836(0x9a6)]:_0x1e4865['g'][_0x561836(0x51a)]),this['_cacheRenderPipeline'][_0x561836(0x6f2)](_0x35cf04?0xf:0x0),_0x2eccc5=this[_0x561836(0x22d)][_0x561836(0xaea)](_0x1e4865['g'][_0x561836(0x1b1)],this[_0x561836(0xb81)],_0x4cc7f5);const _0x1dd5cd=this['_effect'][_0x561836(0x2d0)];_0x35cf04&&this['_effect'][_0x561836(0x9fd)](_0x561836(0x84f),_0x35cf04),this['_effect'][_0x561836(0x5f3)]('depthValue',this[_0x561836(0x397)][_0x561836(0x263)]?this[_0x561836(0x397)][_0x561836(0x833)]:this[_0x561836(0x397)][_0x561836(0x926)]),_0x1dd5cd['uniformBuffer']['update'](),(_0xd655d5=_0x208efb?this[_0x561836(0x397)]['_ubInvertY']:this['_engine'][_0x561836(0x376)],_0x805ebc=_0x1dd5cd[_0x561836(0xbee)][_0x561836(0x36d)](),_0x4cc7f5=_0x805ebc[_0x561836(0x155)]+'-'+_0xd655d5[_0x561836(0x155)]);let _0x467647=this['_bindGroups'][_0x4cc7f5];_0x467647||(_0x35cf04=_0x1dd5cd[_0x561836(0x88a)],(_0x467647=this['_bindGroups'][_0x4cc7f5]=[])[_0x561836(0x83f)](this[_0x561836(0x7b4)]['createBindGroup']({'layout':_0x35cf04[0x0],'entries':[]})),_0x3181c4['d']['_SimplifiedKnownBindings']||_0x467647[_0x561836(0x83f)](this[_0x561836(0x7b4)][_0x561836(0x5d8)]({'layout':_0x35cf04[0x1],'entries':[]})),_0x467647['push'](this[_0x561836(0x7b4)]['createBindGroup']({'layout':_0x35cf04[_0x3181c4['d']['_SimplifiedKnownBindings']?0x1:0x2],'entries':[{'binding':0x0,'resource':{'buffer':_0xd655d5['underlyingResource'],'size':_0xd655d5['capacity']}},{'binding':0x1,'resource':{'buffer':_0x805ebc[_0x561836(0x57b)],'size':_0x805ebc[_0x561836(0x9ef)]}}]}))),_0x321535[_0x561836(0x9ab)](_0x2eccc5);for(let _0x54399f=0x0;_0x54399f<_0x467647['length'];++_0x54399f)_0x321535[_0x561836(0xc77)](_0x54399f,_0x467647[_0x54399f]);return _0x321535['draw'](0x4,0x1,0x0,0x0),_0x57ea8e||(_0xd87ad0=_0x321535[_0x561836(0x7a6)](),this[_0x561836(0x579)][_0x1971da]=_0xd87ad0),_0xd87ad0;}}},0x2514:(_0x2911a7,_0x290bb4,_0x3474cf)=>{var _0x22e6da=a6_0x1e64fa;_0x3474cf['d'](_0x290bb4,{'K':()=>_0x290840});class _0x290840 extends _0x3474cf(0x12621)['k']{constructor(_0x5e3b85){var _0x574963=a6_0x2304;super(!0x1),this[_0x574963(0x9e9)]=_0x5e3b85,this[_0x574963(0x22b)]();}get[_0x22e6da(0xbbd)](){var _0x23c6da=_0x22e6da;return this[_0x23c6da(0x2e5)];}set[_0x22e6da(0xbbd)](_0xc16779){var _0x3664ea=_0x22e6da;this['_zOffset']!==_0xc16779&&(this['_zOffset']=_0xc16779,this[_0x3664ea(0x4b4)]=!0x0,this[_0x3664ea(0x9e9)]['setDepthBiasSlopeScale'](_0xc16779));}get[_0x22e6da(0xc4a)](){return this['_zOffsetUnits'];}set[_0x22e6da(0xc4a)](_0x224a3d){var _0x1cdde6=_0x22e6da;this[_0x1cdde6(0x812)]!==_0x224a3d&&(this[_0x1cdde6(0x812)]=_0x224a3d,this[_0x1cdde6(0x4b4)]=!0x0,this[_0x1cdde6(0x9e9)][_0x1cdde6(0x46f)](_0x224a3d));}get['cullFace'](){return this['_cullFace'];}set[_0x22e6da(0x4d7)](_0x1f24ba){var _0x5f5967=_0x22e6da;this[_0x5f5967(0xbd8)]!==_0x1f24ba&&(this[_0x5f5967(0xbd8)]=_0x1f24ba,this['_isCullFaceDirty']=!0x0,this[_0x5f5967(0x9e9)]['setCullFace'](null!=_0x1f24ba?_0x1f24ba:0x1));}get['cull'](){return this['_cull'];}set[_0x22e6da(0xb4b)](_0x1c3c76){var _0x44aa72=_0x22e6da;this[_0x44aa72(0x192)]!==_0x1c3c76&&(this[_0x44aa72(0x192)]=_0x1c3c76,this[_0x44aa72(0xc78)]=!0x0,this[_0x44aa72(0x9e9)][_0x44aa72(0x561)](!!_0x1c3c76));}get['depthFunc'](){var _0x46b2de=_0x22e6da;return this[_0x46b2de(0x679)];}set[_0x22e6da(0x3dd)](_0x3f1acc){var _0x5151cf=_0x22e6da;this['_depthFunc']!==_0x3f1acc&&(this[_0x5151cf(0x679)]=_0x3f1acc,this[_0x5151cf(0x815)]=!0x0,this[_0x5151cf(0x9e9)][_0x5151cf(0x4cd)](_0x3f1acc));}get[_0x22e6da(0x828)](){var _0x26526a=_0x22e6da;return this[_0x26526a(0xcf6)];}set[_0x22e6da(0x828)](_0xc7e3de){var _0x50e7e7=_0x22e6da;this[_0x50e7e7(0xcf6)]!==_0xc7e3de&&(this[_0x50e7e7(0xcf6)]=_0xc7e3de,this[_0x50e7e7(0x921)]=!0x0,this[_0x50e7e7(0x9e9)]['setDepthWriteEnabled'](_0xc7e3de));}get['depthTest'](){var _0x10b1c6=_0x22e6da;return this[_0x10b1c6(0x4d3)];}set['depthTest'](_0x2c7f15){var _0x55e190=_0x22e6da;this[_0x55e190(0x4d3)]!==_0x2c7f15&&(this[_0x55e190(0x4d3)]=_0x2c7f15,this[_0x55e190(0x7b2)]=!0x0,this[_0x55e190(0x9e9)][_0x55e190(0x494)](_0x2c7f15));}get[_0x22e6da(0x2ef)](){return this['_frontFace'];}set[_0x22e6da(0x2ef)](_0x595ca9){var _0x52979d=_0x22e6da;this[_0x52979d(0x7a5)]!==_0x595ca9&&(this[_0x52979d(0x7a5)]=_0x595ca9,this[_0x52979d(0x317)]=!0x0,this['_cache'][_0x52979d(0x8ec)](null!=_0x595ca9?_0x595ca9:0x2));}['reset'](){var _0x43fabd=_0x22e6da;super[_0x43fabd(0x22b)](),this[_0x43fabd(0x9e9)]['resetDepthCullingState']();}[_0x22e6da(0x7f9)](){}}},0x18215:(_0x4f9cde,_0xad78d5,_0x3cd0f1)=>{var _0xed206=a6_0x1e64fa;_0x3cd0f1['d'](_0xad78d5,{'Z':()=>_0x2a02ff});var _0x1d8073=_0x3cd0f1(0x25b1),_0x32da5c=_0x3cd0f1(0x1b5c),_0x1267ee=_0x3cd0f1(0x89a1);class _0x2a02ff{constructor(_0x2e7379=null){var _0x123870=a6_0x2304;this[_0x123870(0x808)]=_0x1267ee['EV'][_0x123870(0x504)],this[_0x123870(0x374)]=0x0,this[_0x123870(0x592)]=0x0,this[_0x123870(0x8f0)]=_0x2e7379,this[_0x123870(0x34a)]=null,this['view']=null,this['viewForWriting']=null;}get[_0xed206(0x57b)](){var _0x393058=_0xed206;return this[_0x393058(0x8f0)];}get[_0xed206(0xa79)](){var _0x37a9f8=_0xed206;return this[_0x37a9f8(0x34a)];}set[_0xed206(0xa79)](_0x16e581){var _0x45df08=_0xed206;this[_0x45df08(0x34a)]=_0x16e581;}[_0xed206(0x970)](_0x4af9a3){this['_webgpuTexture']=_0x4af9a3;}[_0xed206(0xd11)](_0x1efde4,_0x12bad9,_0x54b9b1,_0x1a5923,_0x1c84c3){var _0x40c96f=_0xed206;_0x12bad9=_0x1efde4!==_0x1d8073['S'][_0x40c96f(0x26d)]&&_0x12bad9,this['createView']({'format':this[_0x40c96f(0x808)],'dimension':_0x54b9b1?_0x1267ee['p_']['Cube']:_0x1267ee['p_'][_0x40c96f(0x338)],'mipLevelCount':_0x12bad9?_0x32da5c['R'][_0x40c96f(0x923)](Math[_0x40c96f(0x89f)](_0x1a5923,_0x1c84c3))+0x1:0x1,'baseArrayLayer':0x0,'baseMipLevel':0x0,'arrayLayerCount':_0x54b9b1?0x6:0x1,'aspect':_0x1267ee['H7'][_0x40c96f(0xd17)]});}[_0xed206(0xd22)](_0xd8faae,_0x1066de=!0x1){var _0x4f1050=_0xed206;this[_0x4f1050(0x481)]=this[_0x4f1050(0x8f0)][_0x4f1050(0xd22)](_0xd8faae),_0x1066de&&_0xd8faae&&(_0x1066de=_0xd8faae['mipLevelCount'],_0xd8faae[_0x4f1050(0x4f0)]=0x1,this[_0x4f1050(0xc9d)]=this[_0x4f1050(0x8f0)][_0x4f1050(0xd22)](_0xd8faae),_0xd8faae[_0x4f1050(0x4f0)]=_0x1066de);}[_0xed206(0x22b)](){var _0x1a3bca=_0xed206;this[_0x1a3bca(0x8f0)]=null,this[_0x1a3bca(0x34a)]=null,this[_0x1a3bca(0x481)]=null,this[_0x1a3bca(0xc9d)]=null;}[_0xed206(0xc74)](){var _0x24c176=_0xed206,_0x1dea3a;null!=(_0x1dea3a=this[_0x24c176(0x8f0)])&&_0x1dea3a[_0x24c176(0x238)](),null!=(_0x1dea3a=this['_webgpuMSAATexture'])&&_0x1dea3a['destroy'](),null!=(_0x1dea3a=this['_copyInvertYTempTexture'])&&_0x1dea3a[_0x24c176(0x238)](),this[_0x24c176(0x22b)]();}}},0x10431:(_0x48ea35,_0x4fd734,_0x12aa98)=>{var _0x4d07ac=a6_0x1e64fa;_0x12aa98['d'](_0x4fd734,{'D':()=>_0x5b1b4a});var _0x413283=_0x12aa98(0x22dd),_0x2444a6=_0x12aa98(0x77a5),_0x1bd88f=_0x12aa98(0x14e86);class _0x5b1b4a{constructor(){var _0x39653e=a6_0x2304;this[_0x39653e(0x155)]=_0x5b1b4a[_0x39653e(0x9e3)]++,this[_0x39653e(0x215)]=0x0,this[_0x39653e(0x22b)]();}get[_0x4d07ac(0x73d)](){var _0x35e2af=_0x4d07ac;return 0x0<this[_0x35e2af(0x6ad)];}get[_0x4d07ac(0x1a2)](){var _0xcdd7be=_0x4d07ac;return 0x0<this[_0xcdd7be(0x3a4)];}[_0x4d07ac(0x22b)](){var _0x248d1a=_0x4d07ac;this[_0x248d1a(0x51b)]={},this[_0x248d1a(0x80a)]={},this[_0x248d1a(0x23f)]=!0x0,this[_0x248d1a(0x3a4)]=0x0,this[_0x248d1a(0x6ad)]=0x0;}[_0x4d07ac(0xd30)](_0x539827,_0x4c56f5){var _0x4b6604=_0x4d07ac;let _0x22a9ad=this['samplers'][_0x539827],_0x39ced4=-0x1;_0x22a9ad?_0x39ced4=_0x22a9ad[_0x4b6604(0x547)]:this[_0x4b6604(0x51b)][_0x539827]=_0x22a9ad={'sampler':_0x4c56f5,'hashCode':0x0},_0x22a9ad[_0x4b6604(0x67e)]=_0x4c56f5,_0x22a9ad[_0x4b6604(0x547)]=_0x4c56f5?_0x1bd88f['W'][_0x4b6604(0x341)](_0x4c56f5):0x0,_0x539827=_0x39ced4!==_0x22a9ad[_0x4b6604(0x547)],(_0x539827&&this[_0x4b6604(0x215)]++,this[_0x4b6604(0x23f)]||(this[_0x4b6604(0x23f)]=_0x539827));}[_0x4d07ac(0x205)](_0x121906,_0x5e86f4){var _0x3bcf2d=_0x4d07ac,_0x1bb89f;let _0x1e6521=this[_0x3bcf2d(0x80a)][_0x121906],_0x381c80=-0x1;_0x1e6521?_0x381c80=null!=(_0x1bb89f=null==(_0x1bb89f=_0x1e6521['texture'])?void 0x0:_0x1bb89f[_0x3bcf2d(0x155)])?_0x1bb89f:-0x1:this[_0x3bcf2d(0x80a)][_0x121906]=_0x1e6521={'texture':_0x5e86f4,'isFloatTexture':!0x1,'isExternalTexture':!0x1},_0x1e6521[_0x3bcf2d(0xc28)]&&this[_0x3bcf2d(0x6ad)]--,_0x1e6521[_0x3bcf2d(0xc1f)]&&this[_0x3bcf2d(0x3a4)]--,_0x5e86f4?(_0x1e6521[_0x3bcf2d(0xc1f)]=_0x5e86f4[_0x3bcf2d(0x5da)]===_0x2444a6['g'][_0x3bcf2d(0x67a)],_0x1e6521[_0x3bcf2d(0xc28)]=_0x413283['x'][_0x3bcf2d(0x7fa)](_0x5e86f4),_0x1e6521[_0x3bcf2d(0xc1f)]&&this[_0x3bcf2d(0x3a4)]++,_0x1e6521[_0x3bcf2d(0xc28)]&&this[_0x3bcf2d(0x6ad)]++):(_0x1e6521[_0x3bcf2d(0xc1f)]=!0x1,_0x1e6521[_0x3bcf2d(0xc28)]=!0x1),_0x1e6521[_0x3bcf2d(0x6f7)]=_0x5e86f4,_0x121906=_0x381c80!==(null!=(_0x1bb89f=null==_0x5e86f4?void 0x0:_0x5e86f4[_0x3bcf2d(0x155)])?_0x1bb89f:-0x1),(_0x121906&&this[_0x3bcf2d(0x215)]++,this[_0x3bcf2d(0x23f)]||(this[_0x3bcf2d(0x23f)]=_0x121906));}}_0x5b1b4a[_0x4d07ac(0x9e3)]=0x0;},0x12546:(_0x4aebdd,_0x316af5,_0x19e317)=>{var _0x3b821c=a6_0x1e64fa;_0x19e317['d'](_0x316af5,{'D':()=>_0x233f34});var _0x3604fa=_0x19e317(0x89a1),_0x5a994b=_0x19e317(0x16268);class _0x233f34{constructor(_0x55a392,_0x46f158,_0x191f6a,_0x4ca436=0x32,_0x2184d2=0x64){var _0x166a57=a6_0x2304;this[_0x166a57(0x349)]=[],this[_0x166a57(0x397)]=_0x55a392,this[_0x166a57(0x7b4)]=_0x46f158,this['_bufferManager']=_0x191f6a,this[_0x166a57(0x6e7)]=-0x1,this[_0x166a57(0x16c)]=0x0,this[_0x166a57(0x916)]=_0x2184d2,this[_0x166a57(0x84d)](_0x4ca436);}get[_0x3b821c(0xd00)](){var _0x5b4e43=_0x3b821c;return this[_0x5b4e43(0x15f)]['querySet'];}get['hasQueries'](){var _0x2bd142=_0x3b821c;return this['_currentTotalIndices']!==this[_0x2bd142(0x349)][_0x2bd142(0x3ef)];}get[_0x3b821c(0x9be)](){var _0x1907c7=_0x3b821c;switch(this[_0x1907c7(0x397)][_0x1907c7(0xce9)]()){case 0x0:return void 0x0!==this['_engine'][_0x1907c7(0xcc5)][_0x1907c7(0x9aa)][_0x1907c7(0x97e)];case 0x1:return void 0x0!==this['_engine'][_0x1907c7(0x572)][_0x1907c7(0x9aa)][_0x1907c7(0x97e)];}return!0x1;}[_0x3b821c(0x5bd)](){var _0x286b6c=_0x3b821c;0x0===this['_availableIndices'][_0x286b6c(0x3ef)]&&this[_0x286b6c(0x84d)]();var _0x1d7ecc=this['_availableIndices'][this['_availableIndices'][_0x286b6c(0x3ef)]-0x1];return this[_0x286b6c(0x349)][_0x286b6c(0x3ef)]--,_0x1d7ecc;}[_0x3b821c(0x403)](_0x42d788){var _0x23e70a=_0x3b821c;this['_availableIndices'][this[_0x23e70a(0x349)][_0x23e70a(0x3ef)]-0x1]=_0x42d788;}[_0x3b821c(0x664)](_0x588513){var _0x57b0a8=_0x3b821c;return this[_0x57b0a8(0xbf1)](),!!this[_0x57b0a8(0x76c)]&&_0x588513<this[_0x57b0a8(0x76c)]['length'];}['getQueryResult'](_0x2722b5){var _0x3fb7ee=_0x3b821c,_0x4dccec;return Number(null!=(_0x4dccec=null==(_0x4dccec=this[_0x3fb7ee(0x76c)])?void 0x0:_0x4dccec[_0x2722b5])?_0x4dccec:-0x1);}[_0x3b821c(0xbf1)](){var _0xae2edc=_0x3b821c;this['_lastBuffer']&&this[_0xae2edc(0x6e7)]===this['_engine'][_0xae2edc(0x365)]||this[_0xae2edc(0x6e7)]!==this['_engine'][_0xae2edc(0x365)]&&(this[_0xae2edc(0x6e7)]=this[_0xae2edc(0x397)][_0xae2edc(0x365)],this[_0xae2edc(0x15f)][_0xae2edc(0xb01)](0x0,this[_0xae2edc(0x16c)])[_0xae2edc(0xbb3)](_0x1b82a7=>{var _0x1c2b0d=_0xae2edc;this[_0x1c2b0d(0x76c)]=_0x1b82a7;}));}[_0x3b821c(0x84d)](_0x16e713){var _0x36d986=_0x3b821c;_0x16e713=null!=_0x16e713?_0x16e713:this[_0x36d986(0x916)],this['_delayQuerySetDispose']();for(let _0x38037f=0x0;_0x38037f<_0x16e713;++_0x38037f)this[_0x36d986(0x349)]['push'](this['_currentTotalIndices']+_0x38037f);this['_currentTotalIndices']+=_0x16e713,this['_querySet']=new _0x5a994b['t'](this[_0x36d986(0x16c)],_0x3604fa['xL'][_0x36d986(0x476)],this[_0x36d986(0x7b4)],this['_bufferManager'],!0x1);}[_0x3b821c(0xb8a)](){var _0xfbf920=_0x3b821c;const _0x6b52c1=this[_0xfbf920(0x15f)];_0x6b52c1&&setTimeout(()=>_0x6b52c1[_0xfbf920(0x431)],0x3e8);}[_0x3b821c(0x431)](){var _0x1fde61=_0x3b821c,_0x534999;null!=(_0x534999=this[_0x1fde61(0x15f)])&&_0x534999[_0x1fde61(0x431)](),this[_0x1fde61(0x349)][_0x1fde61(0x3ef)]=0x0;}}},0xf715:(_0x41c6d9,_0x251b3d,_0x26be36)=>{var _0xe3ab5=a6_0x1e64fa;_0x26be36['d'](_0x251b3d,{'$':()=>_0x52ca16});var _0x20b65d=_0x26be36(0x149c5),_0x4baa5e=_0x26be36(0xe83b);class _0x52ca16{constructor(_0x32d06c,_0x18ed7e){var _0x4758d4=a6_0x2304;this[_0x4758d4(0x856)]='unnamed',this[_0x4758d4(0x1f9)]=_0x32d06c,this[_0x4758d4(0x57f)]={},this['engine']=_0x18ed7e;}get['isAsync'](){return!0x1;}get['isReady'](){var _0x32b8ed=a6_0x2304;return!!this[_0x32b8ed(0xc64)];}[_0xe3ab5(0x838)](){}[_0xe3ab5(0xb9f)](_0x454f59,_0x37ff0c,_0x26d0cd,_0x2561a0,_0x59b2ab,_0x2882bc,_0x2f9cf3,_0x436450){var _0x26d59c=_0xe3ab5;const _0x377817=this[_0x26d59c(0xc62)];_0x454f59[_0x26d59c(0xbae)]='',_0x454f59[_0x26d59c(0x1ef)]='';var _0x2ae853=this['shaderProcessingContext'][_0x26d59c(0xb28)];let _0x159121;for(_0x159121=0x0;_0x159121<_0x59b2ab[_0x26d59c(0x3ef)];_0x159121++){var _0x1b90f7=_0x59b2ab[_0x159121];null==_0x2ae853[_0x59b2ab[_0x159121]]?(_0x59b2ab['splice'](_0x159121,0x1),_0x159121--):_0x2882bc[_0x1b90f7]=_0x159121;}for(const _0x554e28 of _0x377817[_0x26d59c(0xb7e)](this,_0x2f9cf3))_0x436450[_0x26d59c(0x83f)](_0x554e28);this[_0x26d59c(0xcd1)]();const _0x4c9178=[],_0x5a9597=[];for(_0x159121=0x0;_0x159121<_0x2f9cf3[_0x26d59c(0x3ef)];_0x159121++){var _0x3b9900=_0x436450[_0x159121];0x0<=_0x3b9900&&(_0x4c9178['push'](_0x2f9cf3[_0x159121]),_0x5a9597[_0x26d59c(0x83f)](_0x3b9900));}this[_0x26d59c(0x1f9)][_0x26d59c(0x7ae)]=_0x4c9178,this[_0x26d59c(0x1f9)]['attributeLocationsFromEffect']=_0x5a9597;}[_0xe3ab5(0xcd1)](){var _0x26c0c3=_0xe3ab5;if(this[_0x26c0c3(0x1f9)][_0x26c0c3(0xb23)][_0x26c0c3(0x3ef)]){this[_0x26c0c3(0xbee)]=new _0x20b65d['M'](this[_0x26c0c3(0xc62)],void 0x0,void 0x0,_0x26c0c3(0x77a)+this[_0x26c0c3(0x856)]);for(const _0x1f5c1e of this[_0x26c0c3(0x1f9)]['leftOverUniforms']){var _0x393c27=_0x1f5c1e[_0x26c0c3(0x5da)]['replace'](/^(.*?)(<.*>)?$/,'$1'),_0x393c27=_0x4baa5e['e'][_0x26c0c3(0x29e)][_0x393c27];this[_0x26c0c3(0xbee)]['addUniform'](_0x1f5c1e[_0x26c0c3(0x4b3)],_0x393c27,_0x1f5c1e[_0x26c0c3(0x3ef)]),this[_0x26c0c3(0x57f)][_0x1f5c1e[_0x26c0c3(0x4b3)]]=_0x1f5c1e[_0x26c0c3(0x5da)];}this[_0x26c0c3(0xbee)][_0x26c0c3(0x5e9)]();}}['dispose'](){var _0x24bde3=_0xe3ab5;this['uniformBuffer']&&this[_0x24bde3(0xbee)]['dispose']();}[_0xe3ab5(0x3a8)](_0x454cec,_0x563efc){this['uniformBuffer']&&this['_leftOverUniformsByName'][_0x454cec]&&this['uniformBuffer']['updateInt'](_0x454cec,_0x563efc);}['setInt2'](_0x419ceb,_0x96dbb3,_0x8ec5db){var _0x4382ed=_0xe3ab5;this[_0x4382ed(0xbee)]&&this[_0x4382ed(0x57f)][_0x419ceb]&&this[_0x4382ed(0xbee)][_0x4382ed(0xc4e)](_0x419ceb,_0x96dbb3,_0x8ec5db);}[_0xe3ab5(0x719)](_0x1936b0,_0x2b3d25,_0xf6ab9d,_0x53cd1f){var _0x4eb808=_0xe3ab5;this[_0x4eb808(0xbee)]&&this[_0x4eb808(0x57f)][_0x1936b0]&&this[_0x4eb808(0xbee)][_0x4eb808(0x813)](_0x1936b0,_0x2b3d25,_0xf6ab9d,_0x53cd1f);}[_0xe3ab5(0x530)](_0x163a9a,_0x3ac797,_0x49c5d8,_0x4df613,_0x17999c){var _0xd4b280=_0xe3ab5;this[_0xd4b280(0xbee)]&&this[_0xd4b280(0x57f)][_0x163a9a]&&this[_0xd4b280(0xbee)]['updateInt4'](_0x163a9a,_0x3ac797,_0x49c5d8,_0x4df613,_0x17999c);}[_0xe3ab5(0xa61)](_0x5062bd,_0x122fc1){var _0x4e721a=_0xe3ab5;this[_0x4e721a(0xbee)]&&this[_0x4e721a(0x57f)][_0x5062bd]&&this[_0x4e721a(0xbee)][_0x4e721a(0x2b8)](_0x5062bd,_0x122fc1);}[_0xe3ab5(0x14a)](_0x171819,_0x5d8c86){var _0x40688b=_0xe3ab5;this[_0x40688b(0xa61)](_0x171819,_0x5d8c86);}[_0xe3ab5(0x744)](_0x3c0799,_0x502f51){var _0x1d3231=_0xe3ab5;this[_0x1d3231(0xa61)](_0x3c0799,_0x502f51);}['setIntArray4'](_0x1c84f1,_0x330d67){var _0x963d8c=_0xe3ab5;this[_0x963d8c(0xa61)](_0x1c84f1,_0x330d67);}[_0xe3ab5(0x8dc)](_0x995a99,_0x8f4e1a){var _0x17a6d0=_0xe3ab5;this['uniformBuffer']&&this[_0x17a6d0(0x57f)][_0x995a99]&&this['uniformBuffer'][_0x17a6d0(0xbe1)](_0x995a99,_0x8f4e1a);}[_0xe3ab5(0x6ec)](_0x4b1906,_0x32daa5,_0x44564){var _0x3420bb=_0xe3ab5;this['uniformBuffer']&&this['_leftOverUniformsByName'][_0x4b1906]&&this[_0x3420bb(0xbee)][_0x3420bb(0x792)](_0x4b1906,_0x32daa5,_0x44564);}[_0xe3ab5(0x1a5)](_0x4d22ef,_0x10e10e,_0x129d84,_0x27187a){var _0x4e6240=_0xe3ab5;this[_0x4e6240(0xbee)]&&this[_0x4e6240(0x57f)][_0x4d22ef]&&this[_0x4e6240(0xbee)][_0x4e6240(0xc66)](_0x4d22ef,_0x10e10e,_0x129d84,_0x27187a);}[_0xe3ab5(0x629)](_0x2aac5a,_0x1b0e31,_0x49d043,_0xe71a83,_0x30917d){var _0x5006eb=_0xe3ab5;this[_0x5006eb(0xbee)]&&this['_leftOverUniformsByName'][_0x2aac5a]&&this['uniformBuffer'][_0x5006eb(0x4f2)](_0x2aac5a,_0x1b0e31,_0x49d043,_0xe71a83,_0x30917d);}[_0xe3ab5(0x439)](_0x552b75,_0x571037){var _0x403d3d=_0xe3ab5;this[_0x403d3d(0xbee)]&&this[_0x403d3d(0x57f)][_0x552b75]&&this['uniformBuffer']['updateUIntArray'](_0x552b75,_0x571037);}[_0xe3ab5(0x643)](_0x450fc4,_0x21e431){var _0x33e78b=_0xe3ab5;this[_0x33e78b(0x439)](_0x450fc4,_0x21e431);}['setUIntArray3'](_0x2b62a2,_0x1c8ed1){var _0x3e99e6=_0xe3ab5;this[_0x3e99e6(0x439)](_0x2b62a2,_0x1c8ed1);}[_0xe3ab5(0x733)](_0x59993c,_0x2115a0){var _0x1619be=_0xe3ab5;this[_0x1619be(0x439)](_0x59993c,_0x2115a0);}[_0xe3ab5(0x8ab)](_0x33f40f,_0x4e08d2){var _0x4cac8b=_0xe3ab5;this[_0x4cac8b(0xbee)]&&this[_0x4cac8b(0x57f)][_0x33f40f]&&this[_0x4cac8b(0xbee)][_0x4cac8b(0xd20)](_0x33f40f,_0x4e08d2);}[_0xe3ab5(0x57a)](_0x1d1209,_0x28e69b){var _0xc57ca0=_0xe3ab5;this[_0xc57ca0(0x8ab)](_0x1d1209,_0x28e69b);}[_0xe3ab5(0xc99)](_0x10b94d,_0xe9ccf){var _0x3938e8=_0xe3ab5;this[_0x3938e8(0x8ab)](_0x10b94d,_0xe9ccf);}['setArray4'](_0x111a16,_0x2f0c60){var _0x466127=_0xe3ab5;this[_0x466127(0x8ab)](_0x111a16,_0x2f0c60);}[_0xe3ab5(0x7f3)](_0x4639be,_0x5323fc){var _0x3d60a0=_0xe3ab5;this[_0x3d60a0(0xbee)]&&this['_leftOverUniformsByName'][_0x4639be]&&this[_0x3d60a0(0xbee)][_0x3d60a0(0x599)](_0x4639be,_0x5323fc);}[_0xe3ab5(0x44c)](_0x2a249f,_0x231329){var _0x41f319=_0xe3ab5;this[_0x41f319(0xbee)]&&this[_0x41f319(0x57f)][_0x2a249f]&&this[_0x41f319(0xbee)][_0x41f319(0x45c)](_0x2a249f,_0x231329);}[_0xe3ab5(0x409)](_0x2f108c,_0x589614){var _0x173ffa=_0xe3ab5;this['uniformBuffer']&&this[_0x173ffa(0x57f)][_0x2f108c]&&this[_0x173ffa(0xbee)][_0x173ffa(0x91a)](_0x2f108c,_0x589614);}['setMatrix2x2'](_0x3f5bb3,_0x5c631e){var _0x515097=_0xe3ab5;this[_0x515097(0xbee)]&&this[_0x515097(0x57f)][_0x3f5bb3]&&this[_0x515097(0xbee)][_0x515097(0x19f)](_0x3f5bb3,_0x5c631e);}[_0xe3ab5(0x5f3)](_0x3207a8,_0x590bb1){var _0x3b3913=_0xe3ab5;this[_0x3b3913(0xbee)]&&this['_leftOverUniformsByName'][_0x3207a8]&&this['uniformBuffer'][_0x3b3913(0x7da)](_0x3207a8,_0x590bb1);}[_0xe3ab5(0x3a6)](_0x41acc1,_0x174f48){this['setFloat2'](_0x41acc1,_0x174f48['x'],_0x174f48['y']);}[_0xe3ab5(0x796)](_0x138ec1,_0x446d5f,_0x58e93e){var _0x1d30ea=_0xe3ab5;this['uniformBuffer']&&this[_0x1d30ea(0x57f)][_0x138ec1]&&this['uniformBuffer'][_0x1d30ea(0x5c9)](_0x138ec1,_0x446d5f,_0x58e93e);}[_0xe3ab5(0x5fc)](_0x1542c3,_0x132889){var _0x5e4bae=_0xe3ab5;this[_0x5e4bae(0xa4c)](_0x1542c3,_0x132889['x'],_0x132889['y'],_0x132889['z']);}[_0xe3ab5(0xa4c)](_0x4edc91,_0x1cae12,_0x3b11f9,_0x2fce47){var _0x34802b=_0xe3ab5;this[_0x34802b(0xbee)]&&this['_leftOverUniformsByName'][_0x4edc91]&&this['uniformBuffer'][_0x34802b(0x45b)](_0x4edc91,_0x1cae12,_0x3b11f9,_0x2fce47);}[_0xe3ab5(0x4af)](_0x562218,_0x45b0d0){var _0x1bea0b=_0xe3ab5;this[_0x1bea0b(0xaee)](_0x562218,_0x45b0d0['x'],_0x45b0d0['y'],_0x45b0d0['z'],_0x45b0d0['w']);}[_0xe3ab5(0xc90)](_0x45e836,_0x5c02e8){var _0x376cc9=_0xe3ab5;this[_0x376cc9(0xaee)](_0x45e836,_0x5c02e8['x'],_0x5c02e8['y'],_0x5c02e8['z'],_0x5c02e8['w']);}[_0xe3ab5(0xaee)](_0x1b011b,_0x4ac8fc,_0x50f3e9,_0x570769,_0x5dd68d){var _0x3ddd65=_0xe3ab5;this[_0x3ddd65(0xbee)]&&this[_0x3ddd65(0x57f)][_0x1b011b]&&this[_0x3ddd65(0xbee)][_0x3ddd65(0xc2d)](_0x1b011b,_0x4ac8fc,_0x50f3e9,_0x570769,_0x5dd68d);}[_0xe3ab5(0x325)](_0x344889,_0x62bedc){var _0x1ffe0c=_0xe3ab5;this[_0x1ffe0c(0xa4c)](_0x344889,_0x62bedc['r'],_0x62bedc['g'],_0x62bedc['b']);}[_0xe3ab5(0xb8d)](_0x22ceb8,_0x50a877,_0x592c18){this['setFloat4'](_0x22ceb8,_0x50a877['r'],_0x50a877['g'],_0x50a877['b'],_0x592c18);}['setDirectColor4'](_0x1efa10,_0x1c6edd){var _0x13657e=_0xe3ab5;this[_0x13657e(0xaee)](_0x1efa10,_0x1c6edd['r'],_0x1c6edd['g'],_0x1c6edd['b'],_0x1c6edd['a']);}[_0xe3ab5(0x78c)](){var _0x472753=_0xe3ab5,_0x1654b6;return null==(_0x1654b6=this['sources'])?void 0x0:_0x1654b6[_0x472753(0x4a2)];}['_getFragmentShaderCode'](){var _0x4b3d7e=_0xe3ab5,_0x352de9;return null==(_0x352de9=this[_0x4b3d7e(0x2e7)])?void 0x0:_0x352de9['fragment'];}}},0x16268:(_0x1197cc,_0x3dc58b,_0x55f28a)=>{var _0x16d114=a6_0x1e64fa;_0x55f28a['d'](_0x3dc58b,{'t':()=>_0x42777b});function _0x13d912(_0x212d20,_0xa324ac,_0x5446ea,_0x32d43f){return new(_0x5446ea=_0x5446ea||Promise)(function(_0x1c35dd,_0xb1098b){var _0x570a35=a6_0x2304;function _0x59cd6f(_0x24be4d){var _0x58e584=a6_0x2304;try{_0x440e5d(_0x32d43f[_0x58e584(0x54b)](_0x24be4d));}catch(_0x5d397e){_0xb1098b(_0x5d397e);}}function _0x48e952(_0x241b40){try{_0x440e5d(_0x32d43f['throw'](_0x241b40));}catch(_0xea9269){_0xb1098b(_0xea9269);}}function _0x440e5d(_0x3749cc){var _0x4685f8=a6_0x2304,_0x3cc8ff;_0x3749cc[_0x4685f8(0x7ed)]?_0x1c35dd(_0x3749cc[_0x4685f8(0x5c5)]):((_0x3cc8ff=_0x3749cc['value'])instanceof _0x5446ea?_0x3cc8ff:new _0x5446ea(function(_0xa9a7ff){_0xa9a7ff(_0x3cc8ff);}))[_0x4685f8(0xbb3)](_0x59cd6f,_0x48e952);}_0x440e5d((_0x32d43f=_0x32d43f[_0x570a35(0x7f9)](_0x212d20,_0xa324ac||[]))['next']());});}var _0x15cbac=_0x55f28a(0x89a1);class _0x42777b{constructor(_0x40fe1c,_0x284f6c,_0x1625e7,_0x3c6c59,_0x5a9f0f=!0x0){var _0x354e95=a6_0x2304;this[_0x354e95(0xbe9)]=[],this[_0x354e95(0x7b4)]=_0x1625e7,this['_bufferManager']=_0x3c6c59,this[_0x354e95(0x869)]=_0x40fe1c,this[_0x354e95(0x669)]=_0x5a9f0f,this[_0x354e95(0x15f)]=_0x1625e7[_0x354e95(0x951)]({'type':_0x284f6c,'count':_0x40fe1c}),this[_0x354e95(0x742)]=_0x3c6c59[_0x354e95(0x379)](0x8*_0x40fe1c,_0x15cbac['FB']['QueryResolve']|_0x15cbac['FB'][_0x354e95(0x780)]),_0x5a9f0f||this[_0x354e95(0xbe9)][_0x354e95(0x83f)](this[_0x354e95(0x6bf)][_0x354e95(0x379)](0x8*this[_0x354e95(0x869)],_0x15cbac['FB'][_0x354e95(0x257)]|_0x15cbac['FB'][_0x354e95(0x7c6)]));}get[_0x16d114(0xd00)](){var _0xfddec2=_0x16d114;return this[_0xfddec2(0x15f)];}['_getBuffer'](_0xd0c6ed,_0x2683e6){var _0x272739=_0x16d114;if(!this['_canUseMultipleBuffers']&&0x0===this['_dstBuffers']['length'])return null;const _0x1b1d9a=this['_device']['createCommandEncoder']();let _0x273354;return 0x0===this[_0x272739(0xbe9)][_0x272739(0x3ef)]?_0x273354=this[_0x272739(0x6bf)][_0x272739(0x379)](0x8*this[_0x272739(0x869)],_0x15cbac['FB'][_0x272739(0x257)]|_0x15cbac['FB'][_0x272739(0x7c6)]):(_0x273354=this['_dstBuffers'][this[_0x272739(0xbe9)][_0x272739(0x3ef)]-0x1],this[_0x272739(0xbe9)][_0x272739(0x3ef)]--),_0x1b1d9a['resolveQuerySet'](this['_querySet'],_0xd0c6ed,_0x2683e6,this[_0x272739(0x742)],0x0),_0x1b1d9a[_0x272739(0x158)](this[_0x272739(0x742)],0x0,_0x273354,0x0,0x8*_0x2683e6),this[_0x272739(0x7b4)][_0x272739(0x437)]['submit']([_0x1b1d9a[_0x272739(0x7a6)]()]),_0x273354;}[_0x16d114(0xb01)](_0x37bd43=0x0,_0x5af10f=0x1){return _0x13d912(this,void 0x0,void 0x0,function*(){var _0x217ff3=a6_0x2304;const _0x16175d=this['_getBuffer'](_0x37bd43,_0x5af10f);if(null===_0x16175d)return null;yield _0x16175d[_0x217ff3(0xce8)](_0x15cbac['gc']['Read']);var _0x1bc3dc=new BigUint64Array(_0x16175d[_0x217ff3(0x988)]())[_0x217ff3(0x433)]();return _0x16175d[_0x217ff3(0x76f)](),this[_0x217ff3(0xbe9)][this[_0x217ff3(0xbe9)]['length']]=_0x16175d,_0x1bc3dc;});}[_0x16d114(0x7cd)](_0x2ee9c1=0x0){return _0x13d912(this,void 0x0,void 0x0,function*(){var _0x79288c=a6_0x2304;const _0x5018da=this[_0x79288c(0x7ad)](_0x2ee9c1,0x1);if(null===_0x5018da)return null;yield _0x5018da[_0x79288c(0xce8)](_0x15cbac['gc'][_0x79288c(0x6f5)]);var _0x48ff88=new BigUint64Array(_0x5018da['getMappedRange']()),_0x48ff88=Number(_0x48ff88[0x0]);return _0x5018da[_0x79288c(0x76f)](),this[_0x79288c(0xbe9)][this['_dstBuffers'][_0x79288c(0x3ef)]]=_0x5018da,_0x48ff88;});}['readTwoValuesAndSubtract'](_0x27cf96=0x0){return _0x13d912(this,void 0x0,void 0x0,function*(){var _0x1a4a91=a6_0x2304;const _0x27259f=this[_0x1a4a91(0x7ad)](_0x27cf96,0x2);if(null===_0x27259f)return null;yield _0x27259f['mapAsync'](_0x15cbac['gc'][_0x1a4a91(0x6f5)]);var _0x585139=new BigUint64Array(_0x27259f['getMappedRange']()),_0x585139=Number(_0x585139[0x1]-_0x585139[0x0]);return _0x27259f['unmap'](),this['_dstBuffers'][this[_0x1a4a91(0xbe9)][_0x1a4a91(0x3ef)]]=_0x27259f,_0x585139;});}[_0x16d114(0x431)](){var _0x1206a1=_0x16d114;this[_0x1206a1(0x15f)][_0x1206a1(0x238)](),this['_bufferManager']['releaseBuffer'](this[_0x1206a1(0x742)]);for(let _0xb9cbcc=0x0;_0xb9cbcc<this['_dstBuffers'][_0x1206a1(0x3ef)];++_0xb9cbcc)this['_bufferManager'][_0x1206a1(0x345)](this['_dstBuffers'][_0xb9cbcc]);}}},0x7d48:(_0x31fd62,_0xd98533,_0x134c54)=>{var _0x1aa3a7=a6_0x1e64fa;_0x134c54['d'](_0xd98533,{'B':()=>_0x264091});class _0x264091{constructor(){var _0x3fd585=a6_0x2304;this[_0x3fd585(0x693)]=[],this[_0x3fd585(0x22b)]();}[_0x1aa3a7(0x22b)](_0xc1879d=!0x1){var _0x30437e=_0x1aa3a7;this[_0x30437e(0xb70)]=null,_0xc1879d&&(this[_0x30437e(0x9aa)]=null,this['colorAttachmentViewDescriptor']=null,this[_0x30437e(0x544)]=null,this[_0x30437e(0x693)]=[],this[_0x30437e(0x4d1)]=void 0x0);}}},0x1114f:(_0x579c30,_0x125ab9,_0x17ae41)=>{var _0x37bdb9=a6_0x1e64fa;_0x17ae41['d'](_0x125ab9,{'d':()=>_0xa9818b});const _0x3c79f0={'mat2':0x2,'mat3':0x3,'mat4':0x4,'mat2x2':0x2,'mat3x3':0x3,'mat4x4':0x4};class _0xa9818b{constructor(_0x5b982a){var _0x4b6d8d=a6_0x2304;this[_0x4b6d8d(0x538)]=_0x5b982a,this[_0x4b6d8d(0x3e8)]=0x0,this[_0x4b6d8d(0xa26)]=0x0,this['freeGroupIndex']=0x0,this[_0x4b6d8d(0x9de)]=0x0,this['availableVaryings']={},this[_0x4b6d8d(0x7f7)]={},this[_0x4b6d8d(0x7f2)]={},this[_0x4b6d8d(0xb28)]={},this['availableSamplers']={},this['orderedAttributes']=[],this[_0x4b6d8d(0x27f)]=[],this[_0x4b6d8d(0xa52)]=[],this['bindGroupEntries']=[],this[_0x4b6d8d(0xb0f)]=[],this[_0x4b6d8d(0xa55)]=[],this[_0x4b6d8d(0xcf5)]=[],this['leftOverUniforms']=[],this['_findStartingGroupBinding']();}static get[_0x37bdb9(0x2fd)](){var _0x3ead8a=_0x37bdb9;return _0xa9818b['_SimplifiedKnownBindings']?_0xa9818b[_0x3ead8a(0x394)]:_0xa9818b[_0x3ead8a(0x2db)];}[_0x37bdb9(0x956)](){var _0x573705=_0x37bdb9,_0x1477bd=_0xa9818b['KnownUBOs'];const _0xf5dea9=[];for(const _0x2160d1 in _0x1477bd){var _0x363c8c=_0x1477bd[_0x2160d1][_0x573705(0x49d)];-0x1!==_0x363c8c['groupIndex']&&(void 0x0===_0xf5dea9[_0x363c8c['groupIndex']]?_0xf5dea9[_0x363c8c[_0x573705(0x3fa)]]=_0x363c8c[_0x573705(0xbaa)]:_0xf5dea9[_0x363c8c[_0x573705(0x3fa)]]=Math[_0x573705(0x89f)](_0xf5dea9[_0x363c8c[_0x573705(0x3fa)]],_0x363c8c[_0x573705(0xbaa)]));}this[_0x573705(0x3c1)]=_0xf5dea9['length']-0x1,0x0===this[_0x573705(0x3c1)]?(this['freeGroupIndex']++,this[_0x573705(0x9de)]=0x0):this[_0x573705(0x9de)]=_0xf5dea9[_0xf5dea9[_0x573705(0x3ef)]-0x1]+0x1;}[_0x37bdb9(0x2e2)](_0x395177,_0x29a75b=0x0){var _0x2da9c7=_0x37bdb9,_0x1b4a07=this[_0x2da9c7(0x3e8)];return this[_0x2da9c7(0x3e8)]+=(null!=(_0x395177=_0x3c79f0[_0x395177])?_0x395177:0x1)*(_0x29a75b||0x1),_0x1b4a07;}['getVaryingNextLocation'](_0x48c7c0,_0x4c4025=0x0){var _0x4f59d3=_0x37bdb9,_0x3d7fad=this[_0x4f59d3(0xa26)];return this[_0x4f59d3(0xa26)]+=(null!=(_0x48c7c0=_0x3c79f0[_0x48c7c0])?_0x48c7c0:0x1)*(_0x4c4025||0x1),_0x3d7fad;}[_0x37bdb9(0xb42)](){var _0x38ecc3=_0x37bdb9;return this[_0x38ecc3(0xc84)](0x1);}[_0x37bdb9(0xc84)](_0x493bd6){var _0x5ef6f3=_0x37bdb9;if(this[_0x5ef6f3(0x9de)]>0x10000-_0x493bd6&&(this['freeGroupIndex']++,this[_0x5ef6f3(0x9de)]=0x0),0x4===this['freeGroupIndex'])throw _0x5ef6f3(0x858);var _0xc1bdb8={'groupIndex':this[_0x5ef6f3(0x3c1)],'bindingIndex':this[_0x5ef6f3(0x9de)]};return this[_0x5ef6f3(0x9de)]+=_0x493bd6,_0xc1bdb8;}}_0xa9818b[_0x37bdb9(0x1e0)]=!0x0,_0xa9818b[_0x37bdb9(0x394)]={'Scene':{'binding':{'groupIndex':0x0,'bindingIndex':0x0}},'Light0':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light1':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light2':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light3':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light4':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light5':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light6':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light7':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light8':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light9':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light10':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light11':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light12':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light13':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light14':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light15':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light16':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light17':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light18':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light19':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light20':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light21':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light22':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light23':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light24':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light25':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light26':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light27':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light28':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light29':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light30':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Light31':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Material':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Mesh':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}},'Internals':{'binding':{'groupIndex':-0x1,'bindingIndex':-0x1}}},_0xa9818b[_0x37bdb9(0x2db)]={'Scene':{'binding':{'groupIndex':0x0,'bindingIndex':0x0}},'Light0':{'binding':{'groupIndex':0x1,'bindingIndex':0x0}},'Light1':{'binding':{'groupIndex':0x1,'bindingIndex':0x1}},'Light2':{'binding':{'groupIndex':0x1,'bindingIndex':0x2}},'Light3':{'binding':{'groupIndex':0x1,'bindingIndex':0x3}},'Light4':{'binding':{'groupIndex':0x1,'bindingIndex':0x4}},'Light5':{'binding':{'groupIndex':0x1,'bindingIndex':0x5}},'Light6':{'binding':{'groupIndex':0x1,'bindingIndex':0x6}},'Light7':{'binding':{'groupIndex':0x1,'bindingIndex':0x7}},'Light8':{'binding':{'groupIndex':0x1,'bindingIndex':0x8}},'Light9':{'binding':{'groupIndex':0x1,'bindingIndex':0x9}},'Light10':{'binding':{'groupIndex':0x1,'bindingIndex':0xa}},'Light11':{'binding':{'groupIndex':0x1,'bindingIndex':0xb}},'Light12':{'binding':{'groupIndex':0x1,'bindingIndex':0xc}},'Light13':{'binding':{'groupIndex':0x1,'bindingIndex':0xd}},'Light14':{'binding':{'groupIndex':0x1,'bindingIndex':0xe}},'Light15':{'binding':{'groupIndex':0x1,'bindingIndex':0xf}},'Light16':{'binding':{'groupIndex':0x1,'bindingIndex':0x10}},'Light17':{'binding':{'groupIndex':0x1,'bindingIndex':0x11}},'Light18':{'binding':{'groupIndex':0x1,'bindingIndex':0x12}},'Light19':{'binding':{'groupIndex':0x1,'bindingIndex':0x13}},'Light20':{'binding':{'groupIndex':0x1,'bindingIndex':0x14}},'Light21':{'binding':{'groupIndex':0x1,'bindingIndex':0x15}},'Light22':{'binding':{'groupIndex':0x1,'bindingIndex':0x16}},'Light23':{'binding':{'groupIndex':0x1,'bindingIndex':0x17}},'Light24':{'binding':{'groupIndex':0x1,'bindingIndex':0x18}},'Light25':{'binding':{'groupIndex':0x1,'bindingIndex':0x19}},'Light26':{'binding':{'groupIndex':0x1,'bindingIndex':0x1a}},'Light27':{'binding':{'groupIndex':0x1,'bindingIndex':0x1b}},'Light28':{'binding':{'groupIndex':0x1,'bindingIndex':0x1c}},'Light29':{'binding':{'groupIndex':0x1,'bindingIndex':0x1d}},'Light30':{'binding':{'groupIndex':0x1,'bindingIndex':0x1e}},'Light31':{'binding':{'groupIndex':0x1,'bindingIndex':0x1f}},'Material':{'binding':{'groupIndex':0x2,'bindingIndex':0x0}},'Mesh':{'binding':{'groupIndex':0x2,'bindingIndex':0x1}},'Internals':{'binding':{'groupIndex':0x2,'bindingIndex':0x2}}};},0xe83b:(_0x3d16fa,_0x4cfdf5,_0x283650)=>{var _0x230196=a6_0x1e64fa;_0x283650['d'](_0x4cfdf5,{'e':()=>_0x43dad5});var _0x190ec0=_0x283650(0x11722),_0x2aa4f4=_0x283650(0x89a1),_0x526e2b=_0x283650(0x6214);class _0x43dad5{constructor(){var _0x44aea0=a6_0x2304;this[_0x44aea0(0x538)]=_0x190ec0['x']['GLSL'];}[_0x230196(0xba3)](_0x799a67,_0x3bb4db,_0x5dff0b){var _0x4e3486=_0x230196,_0x32b4dc=0x0;[_0x799a67,_0x3bb4db,_0x32b4dc]=this[_0x4e3486(0x986)](_0x799a67,_0x3bb4db,_0x5dff0b);for(let _0x41113c=0x0;_0x41113c<this['_webgpuProcessingContext']['leftOverUniforms'][_0x4e3486(0x3ef)];_0x41113c++)if(this['_webgpuProcessingContext']['leftOverUniforms'][_0x41113c][_0x4e3486(0x4b3)]===_0x799a67)return;this[_0x4e3486(0x62a)][_0x4e3486(0xb23)]['push']({'name':_0x799a67,'type':_0x3bb4db,'length':_0x32b4dc});}[_0x230196(0xb02)](){var _0x3c0627=_0x230196;if(!this[_0x3c0627(0x62a)]['leftOverUniforms']['length'])return'';var _0x18a535=_0x43dad5[_0x3c0627(0xcf7)];let _0x537a05=this['_webgpuProcessingContext'][_0x3c0627(0x7f2)][_0x18a535];return _0x537a05||(_0x537a05={'binding':this[_0x3c0627(0x62a)]['getNextFreeUBOBinding']()},this[_0x3c0627(0x62a)]['availableBuffers'][_0x18a535]=_0x537a05,this['_addBufferBindingDescription'](_0x18a535,_0x537a05,_0x2aa4f4['Rs'][_0x3c0627(0xa05)],!0x0),this[_0x3c0627(0x20a)](_0x18a535,_0x537a05,_0x2aa4f4['Rs'][_0x3c0627(0xa05)],!0x1)),this[_0x3c0627(0xa18)](_0x18a535,_0x537a05);}[_0x230196(0x94d)](){var _0x519407=_0x230196;for(let _0x1db2f9=0x0;_0x1db2f9<this['_webgpuProcessingContext'][_0x519407(0x27f)][_0x519407(0x3ef)];_0x1db2f9++){var _0xaa3ae3=this[_0x519407(0x62a)][_0x519407(0x27f)][_0x1db2f9];if(void 0x0===_0xaa3ae3)this[_0x519407(0x62a)][_0x519407(0x27f)][_0x1db2f9]=[];else for(let _0x27e0a5=0x0;_0x27e0a5<_0xaa3ae3[_0x519407(0x3ef)];_0x27e0a5++){var _0x4c1693=this[_0x519407(0x62a)]['bindGroupLayoutEntries'][_0x1db2f9][_0x27e0a5],_0x5c40d6=this[_0x519407(0x62a)]['bindGroupLayoutEntryInfo'][_0x1db2f9][_0x4c1693['binding']][_0x519407(0x4b3)],_0x5f91c3=this[_0x519407(0x62a)]['bindGroupLayoutEntryInfo'][_0x1db2f9][_0x4c1693[_0x519407(0x49d)]]['nameInArrayOfTexture'];_0x4c1693&&(_0x4c1693[_0x519407(0x6f7)]||_0x4c1693[_0x519407(0x59d)]||_0x4c1693[_0x519407(0x51f)]?this[_0x519407(0x62a)][_0x519407(0xa55)][_0x519407(0x83f)](_0x5f91c3):_0x4c1693[_0x519407(0x67e)]?this[_0x519407(0x62a)][_0x519407(0xcf5)]['push'](_0x5c40d6):_0x4c1693[_0x519407(0xc3e)]&&this[_0x519407(0x62a)][_0x519407(0xb0f)][_0x519407(0x83f)](_0x5c40d6));}}}[_0x230196(0x778)](){var _0x339b61=_0x230196;const _0x2fcfd3=this[_0x339b61(0x62a)]['bindGroupEntries'];for(let _0x252196=0x0;_0x252196<this[_0x339b61(0x62a)][_0x339b61(0x27f)][_0x339b61(0x3ef)];_0x252196++){var _0x103bd6=this['_webgpuProcessingContext'][_0x339b61(0x27f)][_0x252196];const _0xb8e8d8=[];for(let _0xc1955f=0x0;_0xc1955f<_0x103bd6['length'];_0xc1955f++){var _0x59219e=this[_0x339b61(0x62a)][_0x339b61(0x27f)][_0x252196][_0xc1955f];_0x59219e[_0x339b61(0x67e)]||_0x59219e[_0x339b61(0x6f7)]||_0x59219e['storageTexture']||_0x59219e['externalTexture']?_0xb8e8d8[_0x339b61(0x83f)]({'binding':_0x59219e[_0x339b61(0x49d)],'resource':void 0x0}):_0x59219e[_0x339b61(0xc3e)]&&_0xb8e8d8[_0x339b61(0x83f)]({'binding':_0x59219e['binding'],'resource':{'buffer':void 0x0,'offset':0x0,'size':0x0}});}_0x2fcfd3[_0x252196]=_0xb8e8d8;}}[_0x230196(0x166)](_0x11e638,_0x3d0d82,_0xc27458,_0xb5985c,_0x3f12d2,_0x4a1760){var _0x123e31=_0x230196;let {groupIndex:_0x3c6f79,bindingIndex:_0x1e4e8f}=_0x3d0d82[_0x123e31(0x80a)][_0xc27458];this[_0x123e31(0x62a)][_0x123e31(0x27f)][_0x3c6f79]||(this[_0x123e31(0x62a)]['bindGroupLayoutEntries'][_0x3c6f79]=[],this[_0x123e31(0x62a)]['bindGroupLayoutEntryInfo'][_0x3c6f79]=[]),this[_0x123e31(0x62a)][_0x123e31(0xa52)][_0x3c6f79][_0x1e4e8f]||(_0x3f12d2=null===_0xb5985c?this['_webgpuProcessingContext']['bindGroupLayoutEntries'][_0x3c6f79][_0x123e31(0x83f)]({'binding':_0x1e4e8f,'visibility':0x0,'externalTexture':{}}):_0x3f12d2?this[_0x123e31(0x62a)][_0x123e31(0x27f)][_0x3c6f79][_0x123e31(0x83f)]({'binding':_0x1e4e8f,'visibility':0x0,'storageTexture':{'access':_0x2aa4f4['Gt'][_0x123e31(0x289)],'format':_0x3f12d2,'viewDimension':_0xb5985c}}):this[_0x123e31(0x62a)]['bindGroupLayoutEntries'][_0x3c6f79][_0x123e31(0x83f)]({'binding':_0x1e4e8f,'visibility':0x0,'texture':{'sampleType':_0x3d0d82['sampleType'],'viewDimension':_0xb5985c,'multisampled':!0x1}}),_0xb5985c=_0x3d0d82[_0x123e31(0x99c)]?_0x11e638+_0xc27458:_0x11e638,this[_0x123e31(0x62a)]['bindGroupLayoutEntryInfo'][_0x3c6f79][_0x1e4e8f]={'name':_0x11e638,'index':_0x3f12d2-0x1,'nameInArrayOfTexture':_0xb5985c}),_0x1e4e8f=this['_webgpuProcessingContext']['bindGroupLayoutEntryInfo'][_0x3c6f79][_0x1e4e8f][_0x123e31(0xc6b)],this[_0x123e31(0x62a)][_0x123e31(0x27f)][_0x3c6f79][_0x1e4e8f][_0x123e31(0x657)]|=_0x4a1760?_0x2aa4f4['$X'][_0x123e31(0xcd2)]:_0x2aa4f4['$X'][_0x123e31(0x935)];}[_0x230196(0xbfa)](_0x4e00bd,_0x40693d,_0x1e84db){var _0x3c0e7a=_0x230196;let {groupIndex:_0x4fd9dc,bindingIndex:_0x445046}=_0x40693d[_0x3c0e7a(0x49d)];this[_0x3c0e7a(0x62a)][_0x3c0e7a(0x27f)][_0x4fd9dc]||(this[_0x3c0e7a(0x62a)][_0x3c0e7a(0x27f)][_0x4fd9dc]=[],this[_0x3c0e7a(0x62a)]['bindGroupLayoutEntryInfo'][_0x4fd9dc]=[]),this[_0x3c0e7a(0x62a)][_0x3c0e7a(0xa52)][_0x4fd9dc][_0x445046]||(_0x40693d=this[_0x3c0e7a(0x62a)]['bindGroupLayoutEntries'][_0x4fd9dc][_0x3c0e7a(0x83f)]({'binding':_0x445046,'visibility':0x0,'sampler':{'type':_0x40693d['type']}}),this[_0x3c0e7a(0x62a)][_0x3c0e7a(0xa52)][_0x4fd9dc][_0x445046]={'name':_0x4e00bd,'index':_0x40693d-0x1}),_0x445046=this[_0x3c0e7a(0x62a)][_0x3c0e7a(0xa52)][_0x4fd9dc][_0x445046][_0x3c0e7a(0xc6b)],this['_webgpuProcessingContext'][_0x3c0e7a(0x27f)][_0x4fd9dc][_0x445046][_0x3c0e7a(0x657)]|=_0x1e84db?_0x2aa4f4['$X'][_0x3c0e7a(0xcd2)]:_0x2aa4f4['$X'][_0x3c0e7a(0x935)];}[_0x230196(0x20a)](_0x2c9ba0,_0xf7c711,_0x53614d,_0x2274b5){var _0xa40bfa=_0x230196;let {groupIndex:_0xbb99a5,bindingIndex:_0x217299}=_0xf7c711[_0xa40bfa(0x49d)];this[_0xa40bfa(0x62a)][_0xa40bfa(0x27f)][_0xbb99a5]||(this[_0xa40bfa(0x62a)][_0xa40bfa(0x27f)][_0xbb99a5]=[],this[_0xa40bfa(0x62a)]['bindGroupLayoutEntryInfo'][_0xbb99a5]=[]),this[_0xa40bfa(0x62a)][_0xa40bfa(0xa52)][_0xbb99a5][_0x217299]||(_0xf7c711=this[_0xa40bfa(0x62a)][_0xa40bfa(0x27f)][_0xbb99a5][_0xa40bfa(0x83f)]({'binding':_0x217299,'visibility':0x0,'buffer':{'type':_0x53614d}}),this[_0xa40bfa(0x62a)][_0xa40bfa(0xa52)][_0xbb99a5][_0x217299]={'name':_0x2c9ba0,'index':_0xf7c711-0x1}),_0x217299=this['_webgpuProcessingContext'][_0xa40bfa(0xa52)][_0xbb99a5][_0x217299][_0xa40bfa(0xc6b)],this['_webgpuProcessingContext'][_0xa40bfa(0x27f)][_0xbb99a5][_0x217299][_0xa40bfa(0x657)]|=_0x2274b5?_0x2aa4f4['$X'][_0xa40bfa(0xcd2)]:_0x2aa4f4['$X'][_0xa40bfa(0x935)];}[_0x230196(0x34f)](_0x113fa2,_0x17c8f3,_0x3fe03e,_0x3e23cf){var _0x4f1e33=_0x230196;let _0x456d5f=_0x113fa2[_0x4f1e33(0x9e0)](_0x17c8f3);if(_0x456d5f<0x0)return _0x526e2b[_0x4f1e33(0x27a)](_0x4f1e33(0x9dd)),_0x113fa2;if(_0x3fe03e){for(;_0x456d5f++<_0x113fa2[_0x4f1e33(0x3ef)]&&'{'!=_0x113fa2['charAt'](_0x456d5f););_0x456d5f<_0x113fa2['length']&&(_0x113fa2=_0x113fa2[_0x4f1e33(0x6a1)](0x0,_0x456d5f+0x1)+_0x3fe03e+_0x113fa2[_0x4f1e33(0x6a1)](_0x456d5f+0x1));}return _0x3e23cf&&(_0x17c8f3=_0x113fa2['lastIndexOf']('}'),_0x113fa2=_0x113fa2[_0x4f1e33(0x6a1)](0x0,_0x17c8f3),_0x113fa2+=_0x3e23cf+'\x0a}'),_0x113fa2;}}_0x43dad5[_0x230196(0xcf1)]=_0x230196(0x126),_0x43dad5['LeftOvertUBOName']=_0x230196(0x347),_0x43dad5[_0x230196(0xc75)]=_0x230196(0x153),_0x43dad5[_0x230196(0x29e)]={'bool':0x1,'int':0x1,'float':0x1,'vec2':0x2,'ivec2':0x2,'vec3':0x3,'ivec3':0x3,'vec4':0x4,'ivec4':0x4,'mat2':0x4,'mat3':0xc,'mat4':0x10,'i32':0x1,'u32':0x1,'f32':0x1,'mat2x2':0x4,'mat3x3':0xc,'mat4x4':0x10},_0x43dad5[_0x230196(0xb61)]={'sampler2D':_0x230196(0x7fc),'sampler2DArray':_0x230196(0x190),'sampler2DShadow':_0x230196(0x163),'sampler2DArrayShadow':_0x230196(0xc14),'samplerCube':_0x230196(0x826),'sampler3D':_0x230196(0x564)},_0x43dad5[_0x230196(0x555)]={'sampler2D':_0x230196(0x734),'sampler2DArray':_0x230196(0x7c1),'sampler2DShadow':'texture2D','sampler2DArrayShadow':_0x230196(0x7c1),'samplerCube':_0x230196(0xa2a),'samplerCubeArray':_0x230196(0x781),'sampler3D':_0x230196(0x67f)},_0x43dad5[_0x230196(0xd19)]={'textureCube':_0x2aa4f4['p_'][_0x230196(0x5d9)],'textureCubeArray':_0x2aa4f4['p_']['CubeArray'],'texture2D':_0x2aa4f4['p_'][_0x230196(0x338)],'texture2DArray':_0x2aa4f4['p_'][_0x230196(0x29b)],'texture3D':_0x2aa4f4['p_'][_0x230196(0x92c)]},_0x43dad5[_0x230196(0x4b9)]={'sampler2DShadow':_0x230196(0x71b),'sampler2DArrayShadow':_0x230196(0x71b)},_0x43dad5['_IsComparisonSamplerByWebGPUSamplerType']={'samplerShadow':!0x0,'samplerArrayShadow':!0x0,'sampler':!0x1};},0x3a2d:(_0xe843e0,_0x18d328,_0x58a3ca)=>{var _0xad4211=a6_0x1e64fa;_0x58a3ca['d'](_0x18d328,{'s':()=>_0x54186d});var _0x284c76=_0x58a3ca(0x1114f),_0x5bdaed=_0x58a3ca(0x89a1),_0x540a84=_0x58a3ca(0x10ea4),_0x35fc8e=_0x58a3ca(0xe83b),_0x5a1b2e=_0x58a3ca(0x11722);class _0x54186d extends _0x35fc8e['e']{constructor(){var _0x40158e=a6_0x2304;super(...arguments),this[_0x40158e(0x4ae)]=[],this[_0x40158e(0x1cc)]=[],this[_0x40158e(0x5b2)]=!0x1,this['_fragmentIsGLES3']=!0x1,this[_0x40158e(0x538)]=_0x5a1b2e['x']['GLSL'],this[_0x40158e(0x9ae)]=!0x0;}['_getArraySize'](_0xdc98da,_0x23cfaf,_0x5f3c98){var _0xd3078a=a6_0x2304;let _0xd8f22d=0x0;var _0x271aaf=_0xdc98da[_0xd3078a(0x9e0)]('['),_0x191c13=_0xdc98da[_0xd3078a(0x9e0)](']');if(0x0<_0x271aaf&&0x0<_0x191c13){const _0x3cadd0=_0xdc98da[_0xd3078a(0x6a1)](_0x271aaf+0x1,_0x191c13);_0xd8f22d=+_0x3cadd0,isNaN(_0xd8f22d)&&(_0xd8f22d=+_0x5f3c98[_0x3cadd0['trim']()]),_0xdc98da=_0xdc98da[_0xd3078a(0x6f1)](0x0,_0x271aaf);}return[_0xdc98da,_0x23cfaf,_0xd8f22d];}['initializeShaders'](_0x252ff8){var _0x57834c=a6_0x2304;this[_0x57834c(0x62a)]=_0x252ff8,this[_0x57834c(0x4ae)]['length']=0x0,this[_0x57834c(0x1cc)][_0x57834c(0x3ef)]=0x0,this[_0x57834c(0x558)]=void 0x0,this['varyingVertexKeywordName']=void 0x0,this[_0x57834c(0x225)]=void 0x0;}[_0xad4211(0xacd)](_0x9070b2,_0x4e1fa){var _0x56f343=_0xad4211,_0x4778eb=_0x56f343(0xb52)+_0x35fc8e['e'][_0x56f343(0xc75)]+'\x20{\x0afloat\x20yFactor_;\x0afloat\x20textureOutputHeight_;\x0a};\x0a',_0x2f547b=-0x1!==_0x9070b2[_0x56f343(0x9e0)](_0x56f343(0x769));return _0x4e1fa?(this[_0x56f343(0x68b)]=-0x1!==_0x9070b2[_0x56f343(0x9e0)]('#version\x203'),this[_0x56f343(0x68b)]&&(this[_0x56f343(0x225)]='in'),_0x2f547b?_0x9070b2:_0x4778eb+_0x56f343(0x218)+_0x9070b2):(this[_0x56f343(0x5b2)]=-0x1!==_0x9070b2[_0x56f343(0x9e0)](_0x56f343(0xc6c)),this[_0x56f343(0x5b2)]&&(this[_0x56f343(0x558)]='in',this[_0x56f343(0x42d)]=_0x56f343(0x5dd)),_0x2f547b?_0x9070b2:_0x4778eb+_0x9070b2);}[_0xad4211(0x362)](_0x2b3033,_0x2f4a7f,_0x550fff){var _0xd41222=_0xad4211;this[_0xd41222(0xd13)]=_0x550fff;const _0x5c325d=_0x2f4a7f&&this[_0xd41222(0x68b)]?/\s*in\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm:!_0x2f4a7f&&this[_0xd41222(0x5b2)]?/\s*out\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm:/\s*varying\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm;var _0x55f6a1=_0x5c325d['exec'](_0x2b3033);if(null!==_0x55f6a1){var _0x36905f=_0x55f6a1[0x1],_0x578afc=_0x55f6a1[0x2];let _0x40a8c0;_0x2f4a7f?(_0x40a8c0=this[_0xd41222(0x62a)][_0xd41222(0x578)][_0x578afc],this[_0xd41222(0x4ae)][_0x40a8c0]='',void 0x0===_0x40a8c0&&_0x540a84['Y'][_0xd41222(0x636)](_0xd41222(0x346)+_0x578afc+_0xd41222(0x8f2))):(_0x40a8c0=this['_webgpuProcessingContext'][_0xd41222(0x447)](_0x36905f,this[_0xd41222(0x986)](_0x578afc,_0x36905f,_0x550fff)[0x2]),this['_webgpuProcessingContext'][_0xd41222(0x578)][_0x578afc]=_0x40a8c0,this[_0xd41222(0x4ae)][_0x40a8c0]=_0xd41222(0xb40)+_0x40a8c0+')\x20in\x20'+_0x36905f+'\x20'+_0x578afc+';'),_0x2b3033=_0x2b3033['replace'](_0x55f6a1[0x0],void 0x0===_0x40a8c0?'':_0xd41222(0xb40)+_0x40a8c0+')\x20'+(_0x2f4a7f?'in':_0xd41222(0x5dd))+'\x20'+_0x36905f+'\x20'+_0x578afc+';');}return _0x2b3033;}[_0xad4211(0x6c7)](_0x1880d2,_0x365693){var _0x315ad2=_0xad4211;this['_preProcessors']=_0x365693;const _0x42b887=this['_vertexIsGLES3']?/\s*in\s+(\S+)\s+(\S+)\s*;/gm:/\s*attribute\s+(\S+)\s+(\S+)\s*;/gm;var _0x2e4bcf,_0x5b4902,_0x2a8cc0=_0x42b887[_0x315ad2(0xd07)](_0x1880d2);return null!==_0x2a8cc0&&(_0x2e4bcf=_0x2a8cc0[0x1],_0x5b4902=_0x2a8cc0[0x2],_0x365693=this['_webgpuProcessingContext'][_0x315ad2(0x2e2)](_0x2e4bcf,this['_getArraySize'](_0x5b4902,_0x2e4bcf,_0x365693)[0x2]),this['_webgpuProcessingContext'][_0x315ad2(0x7f7)][_0x5b4902]=_0x365693,this[_0x315ad2(0x62a)]['orderedAttributes'][_0x365693]=_0x5b4902,_0x1880d2=_0x1880d2[_0x315ad2(0x3cd)](_0x2a8cc0[0x0],_0x315ad2(0xb40)+_0x365693+_0x315ad2(0x708)+_0x2e4bcf+'\x20'+_0x5b4902+';')),_0x1880d2;}[_0xad4211(0xab7)](_0x56fa2f,_0x524c78,_0x4fd37c){var _0x15b986=_0xad4211;this[_0x15b986(0xd13)]=_0x4fd37c;var _0x398c74=/\s*uniform\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s+(\S+)\s*;/gm[_0x15b986(0xd07)](_0x56fa2f);if(null!==_0x398c74){let _0x4be402=_0x398c74[0x1],_0x26da67=_0x398c74[0x2];if(0x0===_0x4be402[_0x15b986(0x9e0)](_0x15b986(0x67e))||0x1===_0x4be402['indexOf']('sampler')){let _0x5099a2=0x0,_0x42c81c=([_0x26da67,_0x4be402,_0x5099a2]=this[_0x15b986(0x986)](_0x26da67,_0x4be402,_0x4fd37c),this[_0x15b986(0x62a)]['availableTextures'][_0x26da67]);if(!_0x42c81c){_0x42c81c={'autoBindSampler':!0x0,'isTextureArray':0x0<_0x5099a2,'isStorageTexture':!0x1,'textures':[],'sampleType':_0x5bdaed['oD']['Float']};for(let _0x3484b5=0x0;_0x3484b5<(_0x5099a2||0x1);++_0x3484b5)_0x42c81c[_0x15b986(0x80a)][_0x15b986(0x83f)](this[_0x15b986(0x62a)][_0x15b986(0xb42)]());}var _0x398c74=null!=(_0x398c74=_0x35fc8e['e']['_SamplerTypeByWebGLSamplerType'][_0x4be402])?_0x398c74:_0x15b986(0x67e),_0x2ae377=!!_0x35fc8e['e'][_0x15b986(0x151)][_0x398c74],_0x3876dc=_0x2ae377?_0x5bdaed['dV'][_0x15b986(0x65f)]:_0x5bdaed['dV'][_0x15b986(0x6a6)],_0x49c7fb=_0x26da67+_0x35fc8e['e']['AutoSamplerSuffix'],_0x3876dc=this[_0x15b986(0x62a)][_0x15b986(0xa49)][_0x49c7fb]||{'binding':this[_0x15b986(0x62a)]['getNextFreeUBOBinding'](),'type':_0x3876dc},_0x16df8f='u'===_0x4be402['charAt'](0x0)?'u':'i'===_0x4be402[_0x15b986(0x306)](0x0)?'i':'',_0x2ae377=(_0x16df8f&&(_0x4be402=_0x4be402[_0x15b986(0x6f1)](0x1)),_0x2ae377?_0x5bdaed['oD']['Depth']:'u'==_0x16df8f?_0x5bdaed['oD']['Uint']:'i'==_0x16df8f?_0x5bdaed['oD'][_0x15b986(0xb3d)]:_0x5bdaed['oD']['Float']),_0x2ae377=(_0x42c81c[_0x15b986(0x3c2)]=_0x2ae377,0x0<_0x5099a2),_0xdf2e99=_0x3876dc[_0x15b986(0x49d)][_0x15b986(0x3fa)],_0x1e1459=_0x3876dc[_0x15b986(0x49d)][_0x15b986(0xbaa)],_0x4a4d10=_0x35fc8e['e']['_SamplerFunctionByWebGLSamplerType'][_0x4be402],_0x212618=_0x35fc8e['e'][_0x15b986(0x555)][_0x4be402],_0x4b53d5=_0x35fc8e['e']['_GpuTextureViewDimensionByWebGPUTextureType'][_0x212618];if(_0x2ae377){const _0x2ef871=[];_0x2ef871[_0x15b986(0x83f)](_0x15b986(0xbd5)+_0xdf2e99+',\x20binding\x20=\x20'+_0x1e1459+_0x15b986(0x6f8)+_0x16df8f+_0x398c74+'\x20'+_0x49c7fb+';'),_0x56fa2f='\x0d\x0a';for(let _0xd8a2f5=0x0;_0xd8a2f5<_0x5099a2;++_0xd8a2f5){var _0x347412=_0x42c81c['textures'][_0xd8a2f5][_0x15b986(0x3fa)],_0x5a1186=_0x42c81c[_0x15b986(0x80a)][_0xd8a2f5][_0x15b986(0xbaa)];_0x2ef871[_0x15b986(0x83f)](_0x15b986(0xbd5)+_0x347412+',\x20binding\x20=\x20'+_0x5a1186+_0x15b986(0x6f8)+_0x212618+'\x20'+_0x26da67+'Texture'+_0xd8a2f5+';'),_0x56fa2f+=(0x0<_0xd8a2f5?'\x0d\x0a':'')+_0x15b986(0x40c)+_0x26da67+_0xd8a2f5+'\x20'+_0x16df8f+_0x4a4d10+'('+_0x26da67+'Texture'+_0xd8a2f5+',\x20'+_0x49c7fb+')';}_0x56fa2f=_0x2ef871[_0x15b986(0x465)]('\x0d\x0a')+_0x56fa2f,this[_0x15b986(0x1cc)][_0x15b986(0x83f)](_0x26da67);}else _0x5099a2=0x1,_0x56fa2f=_0x15b986(0xbd5)+_0xdf2e99+_0x15b986(0x4f5)+_0x1e1459+_0x15b986(0x6f8)+_0x16df8f+_0x398c74+'\x20'+_0x49c7fb+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20layout(set\x20=\x20'+_0x42c81c[_0x15b986(0x80a)][0x0][_0x15b986(0x3fa)]+_0x15b986(0x4f5)+_0x42c81c['textures'][0x0]['bindingIndex']+_0x15b986(0x6f8)+_0x212618+'\x20'+_0x26da67+_0x15b986(0x3eb)+_0x26da67+'\x20'+_0x16df8f+_0x4a4d10+'('+_0x26da67+_0x15b986(0x268)+_0x49c7fb+')';this[_0x15b986(0x62a)][_0x15b986(0xb28)][_0x26da67]=_0x42c81c,this[_0x15b986(0x62a)][_0x15b986(0xa49)][_0x49c7fb]=_0x3876dc,this[_0x15b986(0xbfa)](_0x49c7fb,_0x3876dc,!_0x524c78);for(let _0x15a6d4=0x0;_0x15a6d4<_0x5099a2;++_0x15a6d4)this['_addTextureBindingDescription'](_0x26da67,_0x42c81c,_0x15a6d4,_0x4b53d5,null,!_0x524c78);}else this['_addUniformToLeftOverUBO'](_0x26da67,_0x4be402,_0x4fd37c),_0x56fa2f='';}return _0x56fa2f;}[_0xad4211(0x5b1)](_0x153d80,_0x27863f){var _0x3ff0cf=_0xad4211,_0x5291cf=/uniform\s+(\w+)/gm[_0x3ff0cf(0xd07)](_0x153d80);if(null!==_0x5291cf){var _0xfc2d95,_0x5291cf=_0x5291cf[0x1];let _0x43d9dc=this['_webgpuProcessingContext'][_0x3ff0cf(0x7f2)][_0x5291cf];_0x43d9dc||(_0xfc2d95=(_0xfc2d95=_0x284c76['d'][_0x3ff0cf(0x2fd)][_0x5291cf])&&-0x1!==_0xfc2d95[_0x3ff0cf(0x49d)][_0x3ff0cf(0x3fa)]?_0xfc2d95[_0x3ff0cf(0x49d)]:this[_0x3ff0cf(0x62a)][_0x3ff0cf(0xb42)](),_0x43d9dc={'binding':_0xfc2d95},this[_0x3ff0cf(0x62a)]['availableBuffers'][_0x5291cf]=_0x43d9dc),this['_addBufferBindingDescription'](_0x5291cf,_0x43d9dc,_0x5bdaed['Rs'][_0x3ff0cf(0xa05)],!_0x27863f),_0x153d80=_0x153d80['replace']('uniform',_0x3ff0cf(0xbd5)+_0x43d9dc[_0x3ff0cf(0x49d)][_0x3ff0cf(0x3fa)]+_0x3ff0cf(0x4f5)+_0x43d9dc[_0x3ff0cf(0x49d)][_0x3ff0cf(0xbaa)]+_0x3ff0cf(0x2c6));}return _0x153d80;}['postProcessor'](_0x22cd93,_0x575728,_0x1312f7,_0x1ca53b,_0x250604){var _0x5de905=_0xad4211,_0xf37055=-0x1!==_0x22cd93[_0x5de905(0x20b)](/#extension.+GL_EXT_draw_buffers.+require/);if(_0x22cd93=(_0x22cd93=_0x22cd93[_0x5de905(0x3cd)](/#extension.+(GL_OVR_multiview2|GL_OES_standard_derivatives|GL_EXT_shader_texture_lod|GL_EXT_frag_depth|GL_EXT_draw_buffers).+(enable|require)/g,''))[_0x5de905(0x3cd)](/texture2D\s*\(/g,_0x5de905(0x99f)),_0x1312f7){var _0x119e38,_0x404a5b=0x0<=_0x22cd93[_0x5de905(0x9e0)]('gl_FragCoord'),_0x2bda96=_0x404a5b?_0x5de905(0x3cb):'';_0x22cd93=(_0x22cd93=(_0x22cd93=(_0x22cd93=(_0x22cd93=(_0x22cd93=(_0x22cd93=_0x22cd93[_0x5de905(0x3cd)](/texture2DLodEXT\s*\(/g,_0x5de905(0x156)))['replace'](/textureCubeLodEXT\s*\(/g,_0x5de905(0x156)))[_0x5de905(0x3cd)](/textureCube\s*\(/g,_0x5de905(0x99f)))[_0x5de905(0x3cd)](/gl_FragDepthEXT/g,'gl_FragDepth'))[_0x5de905(0x3cd)](/gl_FragColor/g,'glFragColor'))[_0x5de905(0x3cd)](/gl_FragData/g,_0x5de905(0xd2f)))[_0x5de905(0x3cd)](/gl_FragCoord/g,_0x5de905(0x63c)),this[_0x5de905(0x68b)]?null!==(_0x119e38=/^\s*out\s+\S+\s+\S+\s*;/gm[_0x5de905(0xd07)](_0x22cd93))&&(_0x22cd93=_0x22cd93[_0x5de905(0x6a1)](0x0,_0x119e38[_0x5de905(0xc6b)])+_0x5de905(0x356)+_0x22cd93['substring'](_0x119e38['index'])):_0x22cd93=_0x22cd93[_0x5de905(0x3cd)](/void\s+?main\s*\(/g,(_0xf37055?'':'layout(location\x20=\x200)\x20out\x20vec4\x20glFragColor;\x0a')+_0x5de905(0x64f)),_0x22cd93=(_0x22cd93=_0x22cd93[_0x5de905(0x3cd)](/dFdy/g,_0x5de905(0xa22)))['replace'](_0x5de905(0x751),_0x2bda96),_0x404a5b&&(_0x22cd93=this[_0x5de905(0x34f)](_0x22cd93,'void\x20main','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20glFragCoord_\x20=\x20gl_FragCoord;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20if\x20(yFactor_\x20==\x201.)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20glFragCoord_.y\x20=\x20textureOutputHeight_\x20-\x20glFragCoord_.y;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'));}else{if(_0x22cd93=(_0x22cd93=_0x22cd93['replace'](/gl_InstanceID/g,_0x5de905(0x17a)))[_0x5de905(0x3cd)](/gl_VertexID/g,_0x5de905(0x8c3)),-0x1!==_0x575728[_0x5de905(0x9e0)](_0x5de905(0x490)))return'#extension\x20GL_OVR_multiview2\x20:\x20require\x0alayout\x20(num_views\x20=\x202)\x20in;\x0a'+_0x22cd93;}return _0x1312f7||(_0x119e38=_0x22cd93['lastIndexOf']('}'),_0x22cd93=_0x22cd93['substring'](0x0,_0x119e38),_0x22cd93+=_0x5de905(0x5de),_0x250604[_0x5de905(0x38a)]||(_0x22cd93+=_0x5de905(0x426)),_0x22cd93+='}'),_0x22cd93;}['_applyTextureArrayProcessing'](_0x55ee1a,_0x5400f3){var _0x481dc8=_0xad4211;const _0x579989=new RegExp(_0x5400f3+_0x481dc8(0x8bb),'gm');let _0x5f2ab2=_0x579989[_0x481dc8(0xd07)](_0x55ee1a);for(;null!==_0x5f2ab2;){const _0x410026=_0x5f2ab2[0x1];let _0x30b76b=+_0x410026;this[_0x481dc8(0xd13)]&&isNaN(_0x30b76b)&&(_0x30b76b=+this[_0x481dc8(0xd13)][_0x410026['trim']()]),_0x55ee1a=_0x55ee1a[_0x481dc8(0x3cd)](_0x5f2ab2[0x0],_0x5400f3+_0x30b76b),_0x5f2ab2=_0x579989[_0x481dc8(0xd07)](_0x55ee1a);}return _0x55ee1a;}[_0xad4211(0xa18)](_0x38f3c6,_0x348692){var _0x33a2d6=_0xad4211;let _0x1359c2=_0x33a2d6(0xbd5)+_0x348692[_0x33a2d6(0x49d)][_0x33a2d6(0x3fa)]+',\x20binding\x20=\x20'+_0x348692['binding'][_0x33a2d6(0xbaa)]+_0x33a2d6(0x6f8)+_0x38f3c6+_0x33a2d6(0x68e);for(const _0x53c573 of this[_0x33a2d6(0x62a)][_0x33a2d6(0xb23)])0x0<_0x53c573['length']?_0x1359c2+=_0x33a2d6(0x3ae)+_0x53c573[_0x33a2d6(0x5da)]+'\x20'+_0x53c573[_0x33a2d6(0x4b3)]+'['+_0x53c573['length']+_0x33a2d6(0xc82):_0x1359c2+='\x20\x20\x20\x20'+_0x53c573['type']+'\x20'+_0x53c573['name']+';\x0a';return _0x1359c2+='};\x0a\x0a';}[_0xad4211(0x93f)](_0x4a6dbc,_0x145279){var _0x5bceee=_0xad4211;for(let _0x516498=0x0;_0x516498<this[_0x5bceee(0x1cc)][_0x5bceee(0x3ef)];++_0x516498){var _0x5618d2=this[_0x5bceee(0x1cc)][_0x516498];_0x4a6dbc=this[_0x5bceee(0x727)](_0x4a6dbc,_0x5618d2),_0x145279=this[_0x5bceee(0x727)](_0x145279,_0x5618d2);}for(let _0x72d846=0x0;_0x72d846<this[_0x5bceee(0x4ae)]['length'];++_0x72d846){var _0x52a8a0=this['_missingVaryings'][_0x72d846];_0x52a8a0&&0x0<_0x52a8a0['length']&&(_0x145279=_0x52a8a0+'\x0a'+_0x145279);}var _0x3557d7=this[_0x5bceee(0xb02)]();return _0x4a6dbc=_0x3557d7+_0x4a6dbc,_0x145279=_0x3557d7+_0x145279,this['_collectBindingNames'](),this[_0x5bceee(0x778)](),this['_preProcessors']=null,{'vertexCode':_0x4a6dbc,'fragmentCode':_0x145279};}}},0x1577e:(_0x319cd9,_0x135e7a,_0x57b393)=>{var _0x2b979e=a6_0x1e64fa;_0x57b393['d'](_0x135e7a,{'o':()=>_0x3cbb8d});var _0x1f83cd=_0x57b393(0x1114f),_0x1099ce=_0x57b393(0x89a1),_0x26ed1b=_0x57b393(0x10ea4),_0x597028=_0x57b393(0xe83b),_0x2bb064=_0x57b393(0x75be),_0x135e7a=_0x57b393(0x17a92),_0x573591=(_0x135e7a['v'][_0x2b979e(0xcd8)][_0x2b979e(0xd04)]=_0x2b979e(0x191),_0x135e7a['v']['IncludesShadersStoreWGSL']['bonesVertex']='#ifndef\x20BAKED_VERTEX_ANIMATION_TEXTURE\x0a#if\x20NUM_BONE_INFLUENCERS>0\x0avar\x20influence\x20:\x20mat4x4<f32>;\x0a#ifdef\x20BONETEXTURE\x0ainfluence=readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[0])*vertexInputs.matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[1])*vertexInputs.matricesWeights[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[2])*vertexInputs.matricesWeights[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndices[3])*vertexInputs.matricesWeights[3];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[0])*vertexInputs.matricesWeightsExtra[0];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[1])*vertexInputs.matricesWeightsExtra[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[2])*vertexInputs.matricesWeightsExtra[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0ainfluence=influence+readMatrixFromRawSampler(boneSampler,vertexInputs.matricesIndicesExtra[3])*vertexInputs.matricesWeightsExtra[3];\x0a#endif\x20\x0a#else\x20\x0ainfluence=uniforms.mBones[int(vertexInputs.matricesIndices[0])]*vertexInputs.matricesWeights[0];\x0a#if\x20NUM_BONE_INFLUENCERS>1\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[1])]*vertexInputs.matricesWeights[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>2\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[2])]*vertexInputs.matricesWeights[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>3\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndices[3])]*vertexInputs.matricesWeights[3];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>4\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[0])]*vertexInputs.matricesWeightsExtra[0];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>5\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[1])]*vertexInputs.matricesWeightsExtra[1];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>6\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[2])]*vertexInputs.matricesWeightsExtra[2];\x0a#endif\x20\x0a#if\x20NUM_BONE_INFLUENCERS>7\x0ainfluence=influence+uniforms.mBones[int(vertexInputs.matricesIndicesExtra[3])]*vertexInputs.matricesWeightsExtra[3];\x0a#endif\x20\x0a#endif\x0afinalWorld=finalWorld*influence;\x0a#endif\x0a#endif\x0a',_0x135e7a['v'][_0x2b979e(0xcd8)][_0x2b979e(0x8c2)]=_0x2b979e(0x9b3),_0x135e7a['v']['IncludesShadersStoreWGSL'][_0x2b979e(0xa10)]=_0x2b979e(0x6d6),_0x135e7a['v']['IncludesShadersStoreWGSL'][_0x2b979e(0xad4)]=_0x2b979e(0xbd9),_0x135e7a['v'][_0x2b979e(0xcd8)][_0x2b979e(0xa40)]=_0x2b979e(0xa5f),_0x135e7a['v']['IncludesShadersStoreWGSL'][_0x2b979e(0x398)]=_0x2b979e(0xaff),_0x135e7a['v'][_0x2b979e(0xcd8)][_0x2b979e(0x5d7)]='#ifdef\x20CLIPPLANE\x0auniform\x20vClipPlane:\x20vec4<f32>;\x0avarying\x20fClipDistance:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0auniform\x20vClipPlane2:\x20vec4<f32>;\x0avarying\x20fClipDistance2:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0auniform\x20vClipPlane3:\x20vec4<f32>;\x0avarying\x20fClipDistance3:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0auniform\x20vClipPlane4:\x20vec4<f32>;\x0avarying\x20fClipDistance4:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0auniform\x20vClipPlane5:\x20vec4<f32>;\x0avarying\x20fClipDistance5:\x20f32;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0auniform\x20vClipPlane6:\x20vec4<f32>;\x0avarying\x20fClipDistance6:\x20f32;\x0a#endif\x0a',_0x135e7a['v']['IncludesShadersStoreWGSL']['instancesDeclaration']=_0x2b979e(0x661),_0x135e7a['v'][_0x2b979e(0xcd8)][_0x2b979e(0x606)]='#ifdef\x20INSTANCES\x0avar\x20finalWorld=mat4x4<f32>(vertexInputs.world0,vertexInputs.world1,vertexInputs.world2,vertexInputs.world3);\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0avar\x20finalPreviousWorld=mat4x4<f32>(previousWorld0,previousWorld1,previousWorld2,previousWorld3);\x0a#endif\x0a#ifdef\x20THIN_INSTANCES\x0a#if\x20!defined(WORLD_UBO)\x0afinalWorld=uniforms.world*finalWorld;\x0a#else\x0afinalWorld=mesh.world*finalWorld;\x0a#endif\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0afinalPreviousWorld=previousWorld*finalPreviousWorld;\x0a#endif\x0a#endif\x0a#else\x0a#if\x20!defined(WORLD_UBO)\x0avar\x20finalWorld=uniforms.world;\x0a#else\x0avar\x20finalWorld=mesh.world;\x0a#endif\x0a#if\x20defined(PREPASS_VELOCITY)\x20||\x20defined(VELOCITY)\x0avar\x20finalPreviousWorld=previousWorld;\x0a#endif\x0a#endif\x0a',_0x135e7a['v'][_0x2b979e(0xcd8)][_0x2b979e(0xce1)]=_0x2b979e(0x400),_0x135e7a['v']['IncludesShadersStoreWGSL']['morphTargetsVertex']=_0x2b979e(0x748),_0x135e7a['v'][_0x2b979e(0xcd8)]['morphTargetsVertexDeclaration']=_0x2b979e(0x65c),_0x135e7a['v']['IncludesShadersStoreWGSL'][_0x2b979e(0xc11)]=_0x2b979e(0x4f3),_0x135e7a['v'][_0x2b979e(0xcd8)]['morphTargetsVertexGlobalDeclaration']=_0x2b979e(0x799),_0x135e7a['v'][_0x2b979e(0xcd8)][_0x2b979e(0xd12)]=_0x2b979e(0x335),_0x57b393(0x11722));const _0x136d13=_0x2b979e(0x22c),_0x3a4dfd={'texture_1d':_0x1099ce['p_'][_0x2b979e(0xa6d)],'texture_2d':_0x1099ce['p_'][_0x2b979e(0x338)],'texture_2d_array':_0x1099ce['p_']['E2dArray'],'texture_3d':_0x1099ce['p_']['E3d'],'texture_cube':_0x1099ce['p_'][_0x2b979e(0x5d9)],'texture_cube_array':_0x1099ce['p_'][_0x2b979e(0x9ec)],'texture_multisampled_2d':_0x1099ce['p_'][_0x2b979e(0x338)],'texture_depth_2d':_0x1099ce['p_'][_0x2b979e(0x338)],'texture_depth_2d_array':_0x1099ce['p_'][_0x2b979e(0x29b)],'texture_depth_cube':_0x1099ce['p_'][_0x2b979e(0x5d9)],'texture_depth_cube_array':_0x1099ce['p_'][_0x2b979e(0x9ec)],'texture_depth_multisampled_2d':_0x1099ce['p_'][_0x2b979e(0x338)],'texture_storage_1d':_0x1099ce['p_'][_0x2b979e(0xa6d)],'texture_storage_2d':_0x1099ce['p_'][_0x2b979e(0x338)],'texture_storage_2d_array':_0x1099ce['p_'][_0x2b979e(0x29b)],'texture_storage_3d':_0x1099ce['p_'][_0x2b979e(0x92c)],'texture_external':null};class _0x3cbb8d extends _0x597028['e']{constructor(){var _0x30a7b9=_0x2b979e;super(...arguments),this[_0x30a7b9(0x538)]=_0x573591['x'][_0x30a7b9(0x9a0)],this['uniformRegexp']=/uniform\s+(\w+)\s*:\s*(.+)\s*;/,this[_0x30a7b9(0xaec)]=/var\s+(\w+)\s*:\s*((array<\s*)?(texture_\w+)\s*(<\s*(.+)\s*>)?\s*(,\s*\w+\s*>\s*)?);/,this[_0x30a7b9(0x932)]=!0x0;}[_0x2b979e(0x986)](_0x1d1960,_0x1d591c,_0x40ea67){var _0x40c8ec=_0x2b979e;let _0x5d8e39=0x0;var _0x269053=_0x1d591c[_0x40c8ec(0x6ac)]('>');if(0x0<=_0x1d591c[_0x40c8ec(0x9e0)](_0x40c8ec(0x455))&&0x0<_0x269053){let _0x36a604=_0x269053;for(;0x0<_0x36a604&&'\x20'!==_0x1d591c[_0x40c8ec(0x306)](_0x36a604)&&','!==_0x1d591c[_0x40c8ec(0x306)](_0x36a604);)_0x36a604--;const _0x3bc308=_0x1d591c[_0x40c8ec(0x6a1)](_0x36a604+0x1,_0x269053);for(_0x5d8e39=+_0x3bc308,isNaN(_0x5d8e39)&&(_0x5d8e39=+_0x40ea67[_0x3bc308['trim']()]);0x0<_0x36a604&&('\x20'===_0x1d591c[_0x40c8ec(0x306)](_0x36a604)||','===_0x1d591c[_0x40c8ec(0x306)](_0x36a604));)_0x36a604--;_0x1d591c=_0x1d591c[_0x40c8ec(0x6a1)](_0x1d591c[_0x40c8ec(0x9e0)]('<')+0x1,_0x36a604+0x1);}return[_0x1d1960,_0x1d591c,_0x5d8e39];}[_0x2b979e(0xaf7)](_0x268416){var _0x24c21d=_0x2b979e;this[_0x24c21d(0x62a)]=_0x268416,this[_0x24c21d(0x311)]=[],this['_varyingsWGSL']=[],this[_0x24c21d(0x73b)]=[],this[_0x24c21d(0xb82)]=[];}[_0x2b979e(0xacd)](_0x43ed30){var _0x9a2388=_0x2b979e;return _0x9a2388(0x82c)+_0x597028['e'][_0x9a2388(0xc75)]+_0x9a2388(0xa8a)+_0x597028['e']['InternalsUBOName']+';\x0a'+(0x0,_0x2bb064['Kt'])(_0x43ed30);}['varyingProcessor'](_0x38cebe,_0x2d7a6c,_0x1747a1){var _0x50e18e=_0x2b979e,_0x4527d3=/\s*varying\s+(?:(?:highp)?|(?:lowp)?)\s*(\S+)\s*:\s*(.+)\s*;/gm[_0x50e18e(0xd07)](_0x38cebe);if(null!==_0x4527d3){var _0x46398d=_0x4527d3[0x2],_0x4527d3=_0x4527d3[0x1];let _0x2d4092;_0x2d7a6c?void 0x0===(_0x2d4092=this[_0x50e18e(0x62a)][_0x50e18e(0x578)][_0x4527d3])&&_0x26ed1b['Y'][_0x50e18e(0x636)](_0x50e18e(0x346)+_0x4527d3+_0x50e18e(0x8f2)):(_0x2d4092=this['_webgpuProcessingContext']['getVaryingNextLocation'](_0x46398d,this[_0x50e18e(0x986)](_0x4527d3,_0x46398d,_0x1747a1)[0x2]),this['_webgpuProcessingContext'][_0x50e18e(0x578)][_0x4527d3]=_0x2d4092,this['_varyingsWGSL'][_0x50e18e(0x83f)](_0x50e18e(0xc18)+_0x2d4092+')\x20'+_0x4527d3+_0x50e18e(0x4da)+_0x46398d+','),this['_varyingNamesWGSL'][_0x50e18e(0x83f)](_0x4527d3)),_0x38cebe='';}return _0x38cebe;}['attributeProcessor'](_0x56ab80,_0x1a2762){var _0x5c5166=_0x2b979e,_0x5639dd,_0x3aa89b=/\s*attribute\s+(\S+)\s*:\s*(.+)\s*;/gm[_0x5c5166(0xd07)](_0x56ab80);return null!==_0x3aa89b&&(_0x5639dd=_0x3aa89b[0x2],_0x3aa89b=_0x3aa89b[0x1],_0x1a2762=this[_0x5c5166(0x62a)][_0x5c5166(0x2e2)](_0x5639dd,this['_getArraySize'](_0x3aa89b,_0x5639dd,_0x1a2762)[0x2]),this[_0x5c5166(0x62a)]['availableAttributes'][_0x3aa89b]=_0x1a2762,this[_0x5c5166(0x62a)][_0x5c5166(0x855)][_0x1a2762]=_0x3aa89b,this[_0x5c5166(0x311)][_0x5c5166(0x83f)]('@location('+_0x1a2762+')\x20'+_0x3aa89b+_0x5c5166(0x4da)+_0x5639dd+','),_0x56ab80=''),_0x56ab80;}[_0x2b979e(0xab7)](_0x7e111a,_0xa888a,_0x1f3154){var _0x2f050d=_0x2b979e,_0x3938d6,_0x3a8ecc=this[_0x2f050d(0x378)]['exec'](_0x7e111a);return null!==_0x3a8ecc&&(_0x3938d6=_0x3a8ecc[0x2],_0x3a8ecc=_0x3a8ecc[0x1],this[_0x2f050d(0xba3)](_0x3a8ecc,_0x3938d6,_0x1f3154),_0x7e111a=''),_0x7e111a;}[_0x2b979e(0x6ba)](_0x5de3f9,_0x3b6fe0,_0x340707){var _0x4a0996=_0x2b979e,_0x3a7066=this[_0x4a0996(0xaec)]['exec'](_0x5de3f9);if(null!==_0x3a7066){var _0x3c4839=_0x3a7066[0x1],_0x4b1626=_0x3a7066[0x2],_0x428500=!!_0x3a7066[0x3];const _0x3c4dd4=_0x3a7066[0x4];var _0x3779eb=0x0<_0x3c4dd4[_0x4a0996(0x9e0)](_0x4a0996(0x5fb));const _0x10b169=_0x3a7066[0x6];var _0x545aaf=_0x3779eb?_0x10b169[_0x4a0996(0x6a1)](0x0,_0x10b169[_0x4a0996(0x9e0)](','))['trim']():null;let _0x56c30f=_0x428500?this['_getArraySize'](_0x3c4839,_0x4b1626,_0x340707)[0x2]:0x0,_0x5aeb11=this[_0x4a0996(0x62a)][_0x4a0996(0xb28)][_0x3c4839];if(_0x5aeb11)_0x56c30f=_0x5aeb11[_0x4a0996(0x80a)][_0x4a0996(0x3ef)];else{_0x5aeb11={'isTextureArray':0x0<_0x56c30f,'isStorageTexture':_0x3779eb,'textures':[],'sampleType':_0x1099ce['oD'][_0x4a0996(0x20d)]},_0x56c30f=_0x56c30f||0x1;for(let _0x42288b=0x0;_0x42288b<_0x56c30f;++_0x42288b)_0x5aeb11[_0x4a0996(0x80a)][_0x4a0996(0x83f)](this[_0x4a0996(0x62a)][_0x4a0996(0xb42)]());}this[_0x4a0996(0x62a)][_0x4a0996(0xb28)][_0x3c4839]=_0x5aeb11;var _0x3a7066=0x0<_0x3c4dd4[_0x4a0996(0x9e0)](_0x4a0996(0x4c3)),_0x2ae3c7=_0x3a4dfd[_0x3c4dd4],_0x428500=_0x3a7066?_0x1099ce['oD'][_0x4a0996(0x93e)]:'u32'===_0x10b169?_0x1099ce['oD'][_0x4a0996(0xa1a)]:'i32'===_0x10b169?_0x1099ce['oD']['Sint']:_0x1099ce['oD']['Float'];if(_0x5aeb11[_0x4a0996(0x3c2)]=_0x428500,void 0x0===_0x2ae3c7)throw _0x4a0996(0x9a3)+_0x3c4dd4+'\x22!';for(let _0x4ae379=0x0;_0x4ae379<_0x56c30f;++_0x4ae379){var {groupIndex:_0x11b986,bindingIndex:_0x428e21}=_0x5aeb11['textures'][_0x4ae379];0x0===_0x4ae379&&(_0x5de3f9='@group('+_0x11b986+_0x4a0996(0x556)+_0x428e21+')\x20'+_0x5de3f9),this[_0x4a0996(0x166)](_0x3c4839,_0x5aeb11,_0x4ae379,_0x2ae3c7,_0x545aaf,!_0x3b6fe0);}}return _0x5de3f9;}['postProcessor'](_0x31c45f){return _0x31c45f;}[_0x2b979e(0x93f)](_0x4a06f5,_0x3e285c){var _0x5370db=_0x2b979e,_0x2f2bed=0x0<=_0x3e285c[_0x5370db(0x9e0)](_0x5370db(0xc65))?_0x5370db(0x698):'',_0x565d46=(_0x4a06f5=this[_0x5370db(0xce4)](_0x4a06f5,!0x0),_0x3e285c=this[_0x5370db(0xce4)](_0x3e285c,!0x1),_0x4a06f5=this['_processCustomBuffers'](_0x4a06f5,!0x0),_0x3e285c=this[_0x5370db(0xa09)](_0x3e285c,!0x1),this[_0x5370db(0xb02)]());_0x3e285c=_0x565d46+_0x3e285c,_0x4a06f5=(_0x4a06f5=_0x565d46+_0x4a06f5)['replace'](/#define /g,_0x5370db(0x839)),_0x4a06f5=this[_0x5370db(0x9e2)](_0x4a06f5);let _0x26f89f='struct\x20VertexInputs\x20{\x0a\x20\x20@builtin(vertex_index)\x20vertexIndex\x20:\x20u32,\x0a\x20\x20@builtin(instance_index)\x20instanceIndex\x20:\x20u32,\x0a',_0x3cd211=(0x0<this['_attributesWGSL'][_0x5370db(0x3ef)]&&(_0x26f89f+=this[_0x5370db(0x311)][_0x5370db(0x465)]('\x0a')),_0x26f89f+=_0x5370db(0x4ee),'struct\x20FragmentInputs\x20{\x0a\x20\x20@builtin(position)\x20position\x20:\x20vec4<f32>,\x0a'),_0x1e6b2a=(0x0<this['_varyingsWGSL'][_0x5370db(0x3ef)]&&(_0x3cd211+=this[_0x5370db(0x88d)][_0x5370db(0x465)]('\x0a')),_0x3cd211+=_0x5370db(0xbda),_0x4a06f5=_0x26f89f+_0x3cd211+_0x4a06f5,_0x4a06f5=this[_0x5370db(0x34f)](_0x4a06f5,_0x5370db(0x7d6),'\x0a\x20\x20vertexInputs\x20=\x20input;\x0a',_0x5370db(0xc51)),_0x3e285c=_0x3e285c[_0x5370db(0x3cd)](/#define /g,_0x5370db(0x839)),_0x3e285c=(_0x3e285c=this[_0x5370db(0x9e2)](_0x3e285c))[_0x5370db(0x3cd)](/dpdy/g,_0x5370db(0x49a)),_0x5370db(0xa6e)),_0x48e74e=(0x0<this[_0x5370db(0x88d)][_0x5370db(0x3ef)]&&(_0x1e6b2a+=this[_0x5370db(0x88d)][_0x5370db(0x465)]('\x0a')),_0x1e6b2a+='\x0a};\x0avar<private>\x20fragmentInputs\x20:\x20FragmentInputs;\x0a',_0x5370db(0x667)),_0x47ba09=!0x1,_0x47013a=0x0;for(;!(_0x47ba09||(_0x47013a=_0x3e285c['indexOf'](_0x136d13,_0x47013a))<0x0);){var _0x5c1bca=_0x47013a;for(_0x47ba09=!0x0;0x1<_0x47013a&&'\x0a'!==_0x3e285c[_0x5370db(0x306)](_0x47013a);){if('/'===_0x3e285c['charAt'](_0x47013a)&&'/'===_0x3e285c[_0x5370db(0x306)](_0x47013a-0x1)){_0x47ba09=!0x1;break;}_0x47013a--;}_0x47013a=_0x5c1bca+_0x136d13[_0x5370db(0x3ef)];}return _0x47ba09&&(_0x48e74e+='\x20\x20@builtin(frag_depth)\x20fragDepth:\x20f32,\x0a'),_0x48e74e+=_0x5370db(0x96d),_0x3e285c=_0x1e6b2a+_0x48e74e+_0x3e285c,_0x3e285c=this[_0x5370db(0x34f)](_0x3e285c,_0x5370db(0x7d6),_0x5370db(0x334)+_0x2f2bed,'\x20\x20return\x20fragmentOutputs;'),this['_collectBindingNames'](),this[_0x5370db(0x778)](),{'vertexCode':_0x4a06f5,'fragmentCode':_0x3e285c};}['_generateLeftOverUBOCode'](_0x331372,_0x3657a7){var _0x284e93=_0x2b979e;let _0x1dfa26='',_0x35d566=_0x284e93(0x82c)+_0x331372+_0x284e93(0x8d4);for(const _0x5723e1 of this['_webgpuProcessingContext'][_0x284e93(0xb23)]){var _0x3b26c0=_0x5723e1[_0x284e93(0x5da)][_0x284e93(0x3cd)](/^(.*?)(<.*>)?$/,'$1'),_0x2604f1=_0x597028['e'][_0x284e93(0x29e)][_0x3b26c0];0x0<_0x5723e1[_0x284e93(0x3ef)]?_0x2604f1<=0x2?(_0x2604f1=_0x331372+'_'+this[_0x284e93(0xb82)][_0x284e93(0x3ef)]+'_strided_arr',_0x1dfa26+=_0x284e93(0x82c)+_0x2604f1+'\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@size(16)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20el:\x20'+_0x3b26c0+_0x284e93(0xc10),this['_stridedUniformArrays'][_0x284e93(0x83f)](_0x5723e1[_0x284e93(0x4b3)]),_0x35d566+=_0x284e93(0x86b)+_0x5723e1[_0x284e93(0x4b3)]+_0x284e93(0x82d)+_0x2604f1+',\x20'+_0x5723e1[_0x284e93(0x3ef)]+_0x284e93(0x93d)):_0x35d566+='\x20'+_0x5723e1[_0x284e93(0x4b3)]+_0x284e93(0x82d)+_0x5723e1[_0x284e93(0x5da)]+',\x20'+_0x5723e1['length']+_0x284e93(0x93d):_0x35d566+='\x20\x20'+_0x5723e1['name']+'\x20:\x20'+_0x5723e1['type']+',\x0a';}return _0x35d566+=_0x284e93(0x9ad),_0x35d566=_0x1dfa26+'\x0a'+_0x35d566,_0x35d566+=_0x284e93(0x254)+_0x3657a7['binding'][_0x284e93(0x3fa)]+_0x284e93(0x556)+_0x3657a7[_0x284e93(0x49d)][_0x284e93(0xbaa)]+_0x284e93(0x715)+_0x331372+';\x0a';}['_processSamplers'](_0x46935d,_0x5d8f85){var _0x467e57=_0x2b979e;const _0x1e219d=/var\s+(\w+Sampler)\s*:\s*(sampler|sampler_comparison)\s*;/gm;for(;;){var _0x5910c6=_0x1e219d[_0x467e57(0xd07)](_0x46935d);if(null===_0x5910c6)break;const _0x20e054=_0x5910c6[0x1];var _0x5a9e9d=_0x5910c6[0x2],_0x3c0fdd=_0x20e054['indexOf'](_0x597028['e'][_0x467e57(0xcf1)])===_0x20e054[_0x467e57(0x3ef)]-_0x597028['e']['AutoSamplerSuffix'][_0x467e57(0x3ef)]?_0x20e054['substring'](0x0,_0x20e054['indexOf'](_0x597028['e'][_0x467e57(0xcf1)])):null,_0x5a9e9d=_0x467e57(0x29d)===_0x5a9e9d?_0x1099ce['dV'][_0x467e57(0x65f)]:_0x1099ce['dV']['Filtering'];if(_0x3c0fdd){const _0x3435ab=this[_0x467e57(0x62a)][_0x467e57(0xb28)][_0x3c0fdd];_0x3435ab&&(_0x3435ab[_0x467e57(0x58e)]=!0x0);}let _0x214417=this[_0x467e57(0x62a)][_0x467e57(0xa49)][_0x20e054];_0x214417||(_0x214417={'binding':this[_0x467e57(0x62a)][_0x467e57(0xb42)](),'type':_0x5a9e9d},this[_0x467e57(0x62a)]['availableSamplers'][_0x20e054]=_0x214417),this[_0x467e57(0xbfa)](_0x20e054,_0x214417,_0x5d8f85),(_0x3c0fdd=_0x46935d[_0x467e57(0x6a1)](0x0,_0x5910c6[_0x467e57(0xc6b)]),_0x5a9e9d=_0x467e57(0x254)+_0x214417[_0x467e57(0x49d)][_0x467e57(0x3fa)]+_0x467e57(0x556)+_0x214417[_0x467e57(0x49d)][_0x467e57(0xbaa)]+')\x20'),(_0x46935d=_0x3c0fdd+_0x5a9e9d+_0x46935d[_0x467e57(0x6a1)](_0x5910c6['index']),_0x1e219d[_0x467e57(0x1cf)]+=_0x5a9e9d[_0x467e57(0x3ef)]);}return _0x46935d;}[_0x2b979e(0xa09)](_0xeaf6dd,_0x368ef5){var _0x59d3e3=_0x2b979e;const _0xa6fb39=/var<\s*(uniform|storage)\s*(,\s*(read|read_write)\s*)?>\s+(\S+)\s*:\s*(\S+)\s*;/gm;for(;;){var _0x1e7fc8=_0xa6fb39[_0x59d3e3(0xd07)](_0xeaf6dd);if(null===_0x1e7fc8)break;var _0x1b03eb=_0x1e7fc8[0x1],_0x3d6500=_0x1e7fc8[0x3];let _0x55fe14=_0x1e7fc8[0x4];var _0x28ede7=_0x1e7fc8[0x5];let _0x4fd590=this['_webgpuProcessingContext'][_0x59d3e3(0x7f2)][_0x55fe14];if(!_0x4fd590){var _0x5dfb12='uniform'===_0x1b03eb?_0x1f83cd['d']['KnownUBOs'][_0x28ede7]:null;let _0x53606c;_0x5dfb12?(_0x55fe14=_0x28ede7,-0x1===(_0x53606c=_0x5dfb12[_0x59d3e3(0x49d)])[_0x59d3e3(0x3fa)]&&(_0x53606c=this[_0x59d3e3(0x62a)][_0x59d3e3(0xb42)]())):_0x53606c=this[_0x59d3e3(0x62a)][_0x59d3e3(0xb42)](),_0x4fd590={'binding':_0x53606c},this[_0x59d3e3(0x62a)][_0x59d3e3(0x7f2)][_0x55fe14]=_0x4fd590;}this[_0x59d3e3(0x20a)](_0x55fe14,this['_webgpuProcessingContext'][_0x59d3e3(0x7f2)][_0x55fe14],_0x59d3e3(0x41d)===_0x3d6500?_0x1099ce['Rs'][_0x59d3e3(0x2f8)]:_0x59d3e3(0x5fb)===_0x1b03eb?_0x1099ce['Rs'][_0x59d3e3(0xc6d)]:_0x1099ce['Rs'][_0x59d3e3(0xa05)],_0x368ef5),_0x28ede7=_0x59d3e3(0x254)+_0x4fd590[_0x59d3e3(0x49d)][_0x59d3e3(0x3fa)]+_0x59d3e3(0x556)+_0x4fd590[_0x59d3e3(0x49d)][_0x59d3e3(0xbaa)]+')\x20',(_0xeaf6dd=_0xeaf6dd['substring'](0x0,_0x1e7fc8[_0x59d3e3(0xc6b)])+_0x28ede7+_0xeaf6dd[_0x59d3e3(0x6a1)](_0x1e7fc8[_0x59d3e3(0xc6b)]),_0xa6fb39[_0x59d3e3(0x1cf)]+=_0x28ede7['length']);}return _0xeaf6dd;}[_0x2b979e(0x9e2)](_0x595049){var _0x356494=_0x2b979e;for(const _0x3d2643 of this[_0x356494(0xb82)])_0x595049=_0x595049[_0x356494(0x3cd)](new RegExp(_0x3d2643+_0x356494(0x5f5),'g'),_0x3d2643+_0x356494(0x5eb));return _0x595049;}}},0x99e2:(_0x321f12,_0x41b2dd,_0x56f8cb)=>{var _0x14b1a4=a6_0x1e64fa;_0x56f8cb['d'](_0x41b2dd,{'w':()=>_0x2e1ead});var _0x175a68=_0x56f8cb(0x77a5);class _0x2e1ead{constructor(_0x51541e,_0x1eb5ed,_0xd47e69,_0xfbed29){var _0x7c47f2=a6_0x2304;this[_0x7c47f2(0x171)]=!0x1,this[_0x7c47f2(0xa84)]=!0x1,this[_0x7c47f2(0xbcb)]=[],this[_0x7c47f2(0x747)]=!0x1,this[_0x7c47f2(0x397)]=_0x51541e,this['_mode']=_0x1eb5ed,this[_0x7c47f2(0x4ef)]=_0xd47e69,this[_0x7c47f2(0x64d)]=_0xfbed29;}get['enabled'](){var _0x1c60f4=a6_0x2304;return this[_0x1c60f4(0x747)];}get[_0x14b1a4(0x8cf)](){return this['_play'];}get[_0x14b1a4(0xa42)](){var _0x11cc0f=_0x14b1a4;return this[_0x11cc0f(0x171)];}set[_0x14b1a4(0x4d2)](_0x34fe50){var _0x205688=_0x14b1a4;this['_mainPassBundleList']['length']=0x0,this['_record']=this[_0x205688(0x747)]=_0x34fe50,this['_play']=!0x1,_0x34fe50&&(this['_modeSaved']=this[_0x205688(0xa81)],this[_0x205688(0xa81)]=_0x175a68['g'][_0x205688(0x2b3)]);}get['mode'](){return this['_mode'];}set['mode'](_0x15b047){var _0x5200b2=_0x14b1a4;this['_record']?this[_0x5200b2(0x7d4)]=_0x15b047:this[_0x5200b2(0xa81)]=_0x15b047;}['endMainRenderPass'](){var _0x2befaa=_0x14b1a4;this['_record']&&this[_0x2befaa(0xbcb)][_0x2befaa(0x83f)](this['_bundleList'][_0x2befaa(0x12a)]());}[_0x14b1a4(0xc08)](_0x58500f,_0x1c99fc){var _0x173fae=_0x14b1a4,_0x4bfee4;if(this[_0x173fae(0xa84)])null!=(_0x4bfee4=null==(_0x4bfee4=_0x1c99fc[_0x173fae(0xc0a)])?void 0x0:_0x4bfee4[_0x1c99fc[_0x173fae(0x9d3)]])&&_0x4bfee4['run'](_0x58500f),this['_mode']===_0x175a68['g']['SNAPSHOTRENDERING_FAST']&&this[_0x173fae(0x397)][_0x173fae(0x918)](null==(_0x4bfee4=null==(_0x4bfee4=_0x1c99fc[_0x173fae(0xc0a)])?void 0x0:_0x4bfee4[_0x1c99fc[_0x173fae(0x9d3)]])?void 0x0:_0x4bfee4[_0x173fae(0x9f1)]);else{if(!this[_0x173fae(0x171)])return!0x1;_0x1c99fc[_0x173fae(0xc0a)]||(_0x1c99fc[_0x173fae(0xc0a)]=[]),_0x1c99fc[_0x173fae(0xc0a)][_0x1c99fc[_0x173fae(0x9d3)]]=this['_bundleListRenderTarget'][_0x173fae(0x12a)](),_0x1c99fc['_bundleLists'][_0x1c99fc[_0x173fae(0x9d3)]][_0x173fae(0x68a)](_0x58500f),this[_0x173fae(0x64d)][_0x173fae(0x22b)]();}return!0x0;}['endFrame'](_0x2e63d5){var _0x505f46=_0x14b1a4;if(this[_0x505f46(0x171)]&&(this[_0x505f46(0xbcb)][_0x505f46(0x83f)](this[_0x505f46(0x4ef)][_0x505f46(0x12a)]()),this[_0x505f46(0x171)]=!0x1,this[_0x505f46(0xa84)]=!0x0,this[_0x505f46(0xa81)]=this[_0x505f46(0x7d4)]),null!==_0x2e63d5&&this['_play']){for(let _0x177a77=0x0;_0x177a77<this[_0x505f46(0xbcb)]['length'];++_0x177a77)this[_0x505f46(0xbcb)][_0x177a77]['run'](_0x2e63d5),this[_0x505f46(0xa81)]===_0x175a68['g']['SNAPSHOTRENDERING_FAST']&&this[_0x505f46(0x397)][_0x505f46(0x918)](this['_mainPassBundleList'][_0x177a77]['numDrawCalls']);}}['reset'](){var _0x4ae966=_0x14b1a4;this['enabled']=!0x1,this[_0x4ae966(0x4d2)]=!0x0;}}},0x6c74:(_0x510df0,_0x8915ed,_0x1e0d79)=>{var _0x24e2cc=a6_0x1e64fa;_0x1e0d79['d'](_0x8915ed,{'F':()=>_0x4493f8});class _0x4493f8 extends _0x1e0d79(0x2902)['C']{constructor(_0x33e871){var _0x8e30a7=a6_0x2304;super(!0x1),this[_0x8e30a7(0x9e9)]=_0x33e871,this[_0x8e30a7(0x22b)]();}get[_0x24e2cc(0xb06)](){var _0x1624f6=_0x24e2cc;return this[_0x1624f6(0x6f6)];}set[_0x24e2cc(0xb06)](_0x391187){var _0x323288=_0x24e2cc;this[_0x323288(0x6f6)]!==_0x391187&&(this['_func']=_0x391187,this[_0x323288(0x9e9)][_0x323288(0x8ff)](_0x391187));}get[_0x24e2cc(0x851)](){var _0x1969b6=_0x24e2cc;return this[_0x1969b6(0x823)];}set[_0x24e2cc(0x851)](_0x2436c4){var _0x3aa8c6=_0x24e2cc;this['_funcMask']!==_0x2436c4&&(this[_0x3aa8c6(0x823)]=_0x2436c4,this['_cache']['setStencilReadMask'](_0x2436c4));}get[_0x24e2cc(0x1d1)](){var _0x2765ab=_0x24e2cc;return this[_0x2765ab(0x665)];}set[_0x24e2cc(0x1d1)](_0x37921c){var _0x5e4269=_0x24e2cc;this['_opStencilFail']!==_0x37921c&&(this[_0x5e4269(0x665)]=_0x37921c,this[_0x5e4269(0x9e9)][_0x5e4269(0xb6d)](_0x37921c));}get[_0x24e2cc(0xc3b)](){var _0x431466=_0x24e2cc;return this[_0x431466(0x252)];}set[_0x24e2cc(0xc3b)](_0x57bd62){var _0x2be4ee=_0x24e2cc;this['_opDepthFail']!==_0x57bd62&&(this[_0x2be4ee(0x252)]=_0x57bd62,this[_0x2be4ee(0x9e9)]['setStencilDepthFailOp'](_0x57bd62));}get['opStencilDepthPass'](){var _0x3d0c90=_0x24e2cc;return this[_0x3d0c90(0xcfb)];}set[_0x24e2cc(0x724)](_0x5802ae){var _0x1e94b0=_0x24e2cc;this[_0x1e94b0(0xcfb)]!==_0x5802ae&&(this[_0x1e94b0(0xcfb)]=_0x5802ae,this[_0x1e94b0(0x9e9)][_0x1e94b0(0x61a)](_0x5802ae));}get[_0x24e2cc(0xc5e)](){var _0x3ec2c7=_0x24e2cc;return this[_0x3ec2c7(0x22e)];}set[_0x24e2cc(0xc5e)](_0x2d5eff){var _0x13699d=_0x24e2cc;this[_0x13699d(0x22e)]!==_0x2d5eff&&(this['_mask']=_0x2d5eff,this['_cache'][_0x13699d(0x6f3)](_0x2d5eff));}get[_0x24e2cc(0x4d2)](){var _0x28fe16=_0x24e2cc;return this[_0x28fe16(0x747)];}set[_0x24e2cc(0x4d2)](_0x14ef62){var _0x1351e=_0x24e2cc;this[_0x1351e(0x747)]!==_0x14ef62&&(this[_0x1351e(0x747)]=_0x14ef62,this[_0x1351e(0x9e9)][_0x1351e(0xcac)](_0x14ef62));}[_0x24e2cc(0x22b)](){var _0x486e36=_0x24e2cc;super[_0x486e36(0x22b)](),this[_0x486e36(0x9e9)][_0x486e36(0x8fb)]();}[_0x24e2cc(0x7f9)](){var _0x3d28fc=_0x24e2cc,_0x5a40ba=null==(_0x5a40ba=this[_0x3d28fc(0x2c4)])?void 0x0:_0x5a40ba['enabled'];this[_0x3d28fc(0x4d2)]=(_0x5a40ba?this[_0x3d28fc(0x2c4)]:this['stencilGlobal'])[_0x3d28fc(0x4d2)],this[_0x3d28fc(0x4d2)]&&(this[_0x3d28fc(0xb06)]=(_0x5a40ba?this[_0x3d28fc(0x2c4)]:this[_0x3d28fc(0x1c6)])['func'],this[_0x3d28fc(0x7c5)]=(_0x5a40ba?this[_0x3d28fc(0x2c4)]:this[_0x3d28fc(0x1c6)])[_0x3d28fc(0x7c5)],this[_0x3d28fc(0x851)]=(_0x5a40ba?this[_0x3d28fc(0x2c4)]:this[_0x3d28fc(0x1c6)])[_0x3d28fc(0x851)],this[_0x3d28fc(0x1d1)]=(_0x5a40ba?this[_0x3d28fc(0x2c4)]:this[_0x3d28fc(0x1c6)])[_0x3d28fc(0x1d1)],this[_0x3d28fc(0xc3b)]=(_0x5a40ba?this['stencilMaterial']:this[_0x3d28fc(0x1c6)])[_0x3d28fc(0xc3b)],this[_0x3d28fc(0x724)]=(_0x5a40ba?this['stencilMaterial']:this[_0x3d28fc(0x1c6)])['opStencilDepthPass'],this[_0x3d28fc(0xc5e)]=(_0x5a40ba?this['stencilMaterial']:this[_0x3d28fc(0x1c6)])['mask']);}}},0x59c6:(_0x1d76be,_0x2476fd,_0xb148f8)=>{var _0x3b57fe=a6_0x1e64fa;_0xb148f8['d'](_0x2476fd,{'D':()=>_0x3337e0,'U':()=>_0x511f05});var _0x24012f,_0x311161,_0x2ebbf9=_0xb148f8(0x89a1),_0xf01d42=_0xb148f8(0x1b5c),_0x398ce1=_0xb148f8(0x77a5),_0x450bec=_0xb148f8(0x25b1),_0x18731c=_0xb148f8(0x18215);_0x24012f={'MipMap':0x0,0x0:_0x3b57fe(0xab0),'InvertYPremultiplyAlpha':0x1,0x1:'InvertYPremultiplyAlpha','Clear':0x2,0x2:_0x3b57fe(0xc60),'InvertYPremultiplyAlphaWithOfst':0x3,0x3:_0x3b57fe(0x25d)},_0x311161={'DontInvertY':0x0,0x0:'DontInvertY','InvertY':0x1,0x1:'InvertY'};const _0x381394=[{'vertex':_0x3b57fe(0x120),'fragment':'\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x200)\x20uniform\x20sampler\x20imgSampler;\x0a\x20\x20\x20\x20layout(set\x20=\x200,\x20binding\x20=\x201)\x20uniform\x20texture2D\x20img;\x0a\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20in\x20vec2\x20vTex;\x0a\x20\x20\x20\x20layout(location\x20=\x200)\x20out\x20vec4\x20outColor;\x0a\x0a\x20\x20\x20\x20void\x20main()\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20outColor\x20=\x20texture(sampler2D(img,\x20imgSampler),\x20vTex);\x0a\x20\x20\x20\x20}\x0a\x20\x20\x20\x20'},{'vertex':_0x3b57fe(0x865),'fragment':_0x3b57fe(0x230)},{'vertex':_0x3b57fe(0x59c),'fragment':_0x3b57fe(0x500)},{'vertex':_0x3b57fe(0x865),'fragment':_0x3b57fe(0xa11)}],_0x511f05={'':0x0,'r8unorm':0x1,'r8uint':0x2,'r8sint':0x3,'r16uint':0x4,'r16sint':0x5,'r16float':0x6,'rg8unorm':0x7,'rg8uint':0x8,'rg8sint':0x9,'r32uint':0xa,'r32sint':0xb,'r32float':0xc,'rg16uint':0xd,'rg16sint':0xe,'rg16float':0xf,'rgba8unorm':0x10,'rgba8unorm-srgb':0x11,'rgba8uint':0x12,'rgba8sint':0x13,'bgra8unorm':0x14,'bgra8unorm-srgb':0x15,'rgb10a2unorm':0x16,'rg32uint':0x17,'rg32sint':0x18,'rg32float':0x19,'rgba16uint':0x1a,'rgba16sint':0x1b,'rgba16float':0x1c,'rgba32uint':0x1d,'rgba32sint':0x1e,'rgba32float':0x1f,'stencil8':0x20,'depth16unorm':0x21,'depth24plus':0x22,'depth24plus-stencil8':0x23,'depth32float':0x24,'depth24unorm-stencil8':0x25,'depth32float-stencil8':0x26};class _0x3337e0{constructor(_0x2f2acd,_0x855790,_0x1bc4e4,_0x157a0f){var _0x3c2345=_0x3b57fe;this[_0x3c2345(0x7dd)]={},this['_compiledShaders']=[],this[_0x3c2345(0x65b)]={},this[_0x3c2345(0x2f6)]=[],this[_0x3c2345(0x3b4)]=[],this[_0x3c2345(0x7b4)]=_0x2f2acd,this[_0x3c2345(0x3e3)]=_0x855790,this['_tintWASM']=_0x1bc4e4,this[_0x3c2345(0x6bf)]=_0x157a0f,this['_mipmapSampler']=_0x2f2acd[_0x3c2345(0x33e)]({'minFilter':_0x2ebbf9['X9'][_0x3c2345(0xc5a)]}),this[_0x3c2345(0x3d8)]=_0x2f2acd[_0x3c2345(0x33e)]({'minFilter':_0x2ebbf9['X9']['Linear']}),this[_0x3c2345(0x70e)]=this[_0x3c2345(0x6bf)]['createBuffer'](0x10,_0x2ebbf9['FB']['Uniform']|_0x2ebbf9['FB'][_0x3c2345(0x7c6)])[_0x3c2345(0x57b)],this['_getPipeline'](_0x2ebbf9['EV'][_0x3c2345(0x504)]),this[_0x3c2345(0x7b1)](_0x2ebbf9['EV']['RGBA8Unorm']);}static[_0x3b57fe(0xb5f)](_0x31e88c,_0x11f993){var _0x467939=_0x3b57fe;return _0xf01d42['R'][_0x467939(0x923)](Math['max'](_0x31e88c,_0x11f993))+0x1;}[_0x3b57fe(0x2aa)](_0x12928e,_0x421486=_0x24012f[_0x3b57fe(0xab0)],_0x40b310){var _0x5431cb=_0x3b57fe,_0x92f75c=_0x421486===_0x24012f[_0x5431cb(0xab0)]?0x1:_0x421486===_0x24012f[_0x5431cb(0x684)]?((_0x40b310[_0x5431cb(0xb9a)]?0x1:0x0)<<0x1)+((_0x40b310[_0x5431cb(0x23e)]?0x1:0x0)<<0x2):_0x421486===_0x24012f['Clear']?0x8:_0x421486===_0x24012f[_0x5431cb(0x25d)]?((_0x40b310[_0x5431cb(0xb9a)]?0x1:0x0)<<0x4)+((_0x40b310['premultiplyAlpha']?0x1:0x0)<<0x5):0x0;this[_0x5431cb(0x7dd)][_0x12928e]||(this['_pipelines'][_0x12928e]=[]);let _0x2dba6f=this[_0x5431cb(0x7dd)][_0x12928e][_0x92f75c];if(!_0x2dba6f){let _0x155fe5=_0x5431cb(0x3bc),_0x4748c4=(_0x421486!==_0x24012f['InvertYPremultiplyAlpha']&&_0x421486!==_0x24012f[_0x5431cb(0x25d)]||(_0x40b310[_0x5431cb(0xb9a)]&&(_0x155fe5+='#define\x20INVERTY\x0d\x0a'),_0x40b310[_0x5431cb(0x23e)]&&(_0x155fe5+=_0x5431cb(0x4c4))),this[_0x5431cb(0x524)][_0x92f75c]);if(!_0x4748c4){let _0x26f7f8=this[_0x5431cb(0x3e3)][_0x5431cb(0x60c)](_0x155fe5+_0x381394[_0x421486][_0x5431cb(0x4a2)],_0x5431cb(0x4a2)),_0x27c2c0=this['_glslang'][_0x5431cb(0x60c)](_0x155fe5+_0x381394[_0x421486][_0x5431cb(0x7d3)],_0x5431cb(0x7d3));this[_0x5431cb(0x2ad)]&&(_0x26f7f8=this['_tintWASM'][_0x5431cb(0x208)](_0x26f7f8),_0x27c2c0=this[_0x5431cb(0x2ad)]['convertSpirV2WGSL'](_0x27c2c0)),(_0x40b310=this[_0x5431cb(0x7b4)][_0x5431cb(0x302)]({'code':_0x26f7f8}),_0x421486=this[_0x5431cb(0x7b4)][_0x5431cb(0x302)]({'code':_0x27c2c0})),_0x4748c4=this[_0x5431cb(0x524)][_0x92f75c]=[_0x40b310,_0x421486];}const _0x23e1f2=this[_0x5431cb(0x7b4)]['createRenderPipeline']({'layout':_0x2ebbf9['fu'][_0x5431cb(0x352)],'vertex':{'module':_0x4748c4[0x0],'entryPoint':'main'},'fragment':{'module':_0x4748c4[0x1],'entryPoint':_0x5431cb(0xca1),'targets':[{'format':_0x12928e}]},'primitive':{'topology':_0x2ebbf9['YV'][_0x5431cb(0x7e5)],'stripIndexFormat':_0x2ebbf9['iD'][_0x5431cb(0xb79)]}});_0x2dba6f=this[_0x5431cb(0x7dd)][_0x12928e][_0x92f75c]=[_0x23e1f2,_0x23e1f2['getBindGroupLayout'](0x0)];}return _0x2dba6f;}[_0x3b57fe(0x7b1)](_0x3fccda,_0x4f5896=_0x311161[_0x3b57fe(0x8e9)]){var _0x38cf96=_0x3b57fe,_0x4b8e44,_0x156454,_0x4f5896=_0x4f5896===_0x311161['InvertY']?0x1:0x0;this['_videoPipelines'][_0x3fccda]||(this[_0x38cf96(0x65b)][_0x3fccda]=[]);let _0x525622=this[_0x38cf96(0x65b)][_0x3fccda][_0x4f5896];if(!_0x525622){let _0x189c8a=this[_0x38cf96(0x2f6)][_0x4f5896];_0x189c8a||(_0x4b8e44=this[_0x38cf96(0x7b4)]['createShaderModule']({'code':_0x38cf96(0x66c)}),_0x156454=this[_0x38cf96(0x7b4)][_0x38cf96(0x302)]({'code':0x0==_0x4f5896?_0x38cf96(0xa39):_0x38cf96(0x21c)}),_0x189c8a=this[_0x38cf96(0x2f6)][_0x4f5896]=[_0x4b8e44,_0x156454]);const _0x215e54=this[_0x38cf96(0x7b4)][_0x38cf96(0x1ad)]({'label':_0x38cf96(0x866)+_0x3fccda+'_'+(0x0==_0x4f5896?_0x38cf96(0x8e9):_0x38cf96(0x63e)),'layout':_0x2ebbf9['fu']['Auto'],'vertex':{'module':_0x189c8a[0x0],'entryPoint':_0x38cf96(0xca1)},'fragment':{'module':_0x189c8a[0x1],'entryPoint':_0x38cf96(0xca1),'targets':[{'format':_0x3fccda}]},'primitive':{'topology':_0x2ebbf9['YV'][_0x38cf96(0x7e5)],'stripIndexFormat':_0x2ebbf9['iD'][_0x38cf96(0xb79)]}});_0x525622=this[_0x38cf96(0x65b)][_0x3fccda][_0x4f5896]=[_0x215e54,_0x215e54[_0x38cf96(0x429)](0x0)];}return _0x525622;}static[_0x3b57fe(0xb85)](_0xe1aafe){var _0x5c841e=_0x3b57fe;switch(_0xe1aafe){case _0x2ebbf9['EV']['R8Unorm']:case _0x2ebbf9['EV'][_0x5c841e(0x31b)]:case _0x2ebbf9['EV'][_0x5c841e(0x876)]:case _0x2ebbf9['EV'][_0x5c841e(0x7e2)]:case _0x2ebbf9['EV']['RG8Unorm']:case _0x2ebbf9['EV'][_0x5c841e(0xaf1)]:case _0x2ebbf9['EV'][_0x5c841e(0x33b)]:case _0x2ebbf9['EV'][_0x5c841e(0x593)]:case _0x2ebbf9['EV'][_0x5c841e(0x504)]:case _0x2ebbf9['EV'][_0x5c841e(0x8de)]:case _0x2ebbf9['EV']['RGBA8Snorm']:case _0x2ebbf9['EV'][_0x5c841e(0x3f7)]:case _0x2ebbf9['EV']['RGBA8Sint']:case _0x2ebbf9['EV'][_0x5c841e(0x57d)]:case _0x2ebbf9['EV'][_0x5c841e(0x453)]:case _0x2ebbf9['EV'][_0x5c841e(0x94c)]:case _0x2ebbf9['EV']['RGB9E5UFloat']:case _0x2ebbf9['EV'][_0x5c841e(0x589)]:case _0x2ebbf9['EV'][_0x5c841e(0x531)]:case _0x2ebbf9['EV'][_0x5c841e(0xba1)]:case _0x2ebbf9['EV']['BC7RGBAUnorm']:case _0x2ebbf9['EV']['BC7RGBAUnormSRGB']:case _0x2ebbf9['EV']['BC6HRGBUFloat']:case _0x2ebbf9['EV']['BC6HRGBFloat']:case _0x2ebbf9['EV'][_0x5c841e(0x92a)]:case _0x2ebbf9['EV'][_0x5c841e(0x601)]:case _0x2ebbf9['EV']['BC3RGBAUnorm']:case _0x2ebbf9['EV'][_0x5c841e(0x8ba)]:case _0x2ebbf9['EV'][_0x5c841e(0x746)]:case _0x2ebbf9['EV'][_0x5c841e(0x228)]:case _0x2ebbf9['EV'][_0x5c841e(0x414)]:case _0x2ebbf9['EV'][_0x5c841e(0xbf3)]:case _0x2ebbf9['EV'][_0x5c841e(0xbea)]:case _0x2ebbf9['EV']['BC1RGBAUnormSRGB']:case _0x2ebbf9['EV'][_0x5c841e(0xa19)]:case _0x2ebbf9['EV'][_0x5c841e(0x143)]:case _0x2ebbf9['EV'][_0x5c841e(0x9b2)]:case _0x2ebbf9['EV'][_0x5c841e(0xa1d)]:case _0x2ebbf9['EV'][_0x5c841e(0x6e9)]:case _0x2ebbf9['EV'][_0x5c841e(0x2c2)]:case _0x2ebbf9['EV'][_0x5c841e(0x127)]:case _0x2ebbf9['EV']['EACR11Snorm']:case _0x2ebbf9['EV'][_0x5c841e(0x8a3)]:case _0x2ebbf9['EV'][_0x5c841e(0xad3)]:case _0x2ebbf9['EV'][_0x5c841e(0x787)]:case _0x2ebbf9['EV'][_0x5c841e(0x62f)]:case _0x2ebbf9['EV'][_0x5c841e(0x2de)]:case _0x2ebbf9['EV'][_0x5c841e(0x80d)]:case _0x2ebbf9['EV'][_0x5c841e(0x210)]:case _0x2ebbf9['EV'][_0x5c841e(0xa7e)]:case _0x2ebbf9['EV'][_0x5c841e(0x846)]:case _0x2ebbf9['EV']['ASTC6x5UnormSRGB']:case _0x2ebbf9['EV'][_0x5c841e(0x16e)]:case _0x2ebbf9['EV']['ASTC6x6UnormSRGB']:case _0x2ebbf9['EV'][_0x5c841e(0xc45)]:case _0x2ebbf9['EV'][_0x5c841e(0x360)]:case _0x2ebbf9['EV']['ASTC8x6Unorm']:case _0x2ebbf9['EV'][_0x5c841e(0x68d)]:case _0x2ebbf9['EV'][_0x5c841e(0x419)]:case _0x2ebbf9['EV']['ASTC8x8UnormSRGB']:case _0x2ebbf9['EV'][_0x5c841e(0xab6)]:case _0x2ebbf9['EV'][_0x5c841e(0x525)]:case _0x2ebbf9['EV'][_0x5c841e(0xc2a)]:case _0x2ebbf9['EV'][_0x5c841e(0xb93)]:case _0x2ebbf9['EV']['ASTC10x8Unorm']:case _0x2ebbf9['EV'][_0x5c841e(0x867)]:case _0x2ebbf9['EV']['ASTC10x10Unorm']:case _0x2ebbf9['EV']['ASTC10x10UnormSRGB']:case _0x2ebbf9['EV']['ASTC12x10Unorm']:case _0x2ebbf9['EV'][_0x5c841e(0xa86)]:case _0x2ebbf9['EV'][_0x5c841e(0xad0)]:case _0x2ebbf9['EV'][_0x5c841e(0x314)]:return _0x398ce1['g'][_0x5c841e(0x157)];case _0x2ebbf9['EV'][_0x5c841e(0xcd5)]:case _0x2ebbf9['EV'][_0x5c841e(0x31e)]:case _0x2ebbf9['EV'][_0x5c841e(0x1c7)]:case _0x2ebbf9['EV']['RG16Sint']:case _0x2ebbf9['EV'][_0x5c841e(0x9e7)]:case _0x2ebbf9['EV'][_0x5c841e(0xa13)]:case _0x2ebbf9['EV'][_0x5c841e(0x4e2)]:return _0x398ce1['g'][_0x5c841e(0xbcd)];case _0x2ebbf9['EV'][_0x5c841e(0x967)]:case _0x2ebbf9['EV']['RG16Float']:case _0x2ebbf9['EV'][_0x5c841e(0xb2f)]:return _0x398ce1['g'][_0x5c841e(0x98a)];case _0x2ebbf9['EV']['R32Uint']:case _0x2ebbf9['EV'][_0x5c841e(0x814)]:case _0x2ebbf9['EV'][_0x5c841e(0xa8b)]:case _0x2ebbf9['EV'][_0x5c841e(0x8b9)]:case _0x2ebbf9['EV'][_0x5c841e(0x5f1)]:case _0x2ebbf9['EV'][_0x5c841e(0xaa0)]:return _0x398ce1['g'][_0x5c841e(0x480)];case _0x2ebbf9['EV'][_0x5c841e(0x40d)]:case _0x2ebbf9['EV']['RG32Float']:case _0x2ebbf9['EV'][_0x5c841e(0x438)]:case _0x2ebbf9['EV'][_0x5c841e(0x639)]:return _0x398ce1['g'][_0x5c841e(0x67a)];case _0x2ebbf9['EV'][_0x5c841e(0xaa1)]:throw'No\x20fixed\x20size\x20for\x20Stencil8\x20format!';case _0x2ebbf9['EV'][_0x5c841e(0x53b)]:throw _0x5c841e(0xc40);case _0x2ebbf9['EV'][_0x5c841e(0xbdd)]:throw _0x5c841e(0xd1c);}return _0x398ce1['g'][_0x5c841e(0x157)];}static[_0x3b57fe(0x699)](_0x8ead01){var _0x43e09a=_0x3b57fe;switch(_0x8ead01){case _0x2ebbf9['EV']['R8Unorm']:case _0x2ebbf9['EV']['R8Snorm']:case _0x2ebbf9['EV'][_0x43e09a(0x876)]:case _0x2ebbf9['EV'][_0x43e09a(0x7e2)]:return{'width':0x1,'height':0x1,'length':0x1};case _0x2ebbf9['EV'][_0x43e09a(0xcd5)]:case _0x2ebbf9['EV'][_0x43e09a(0x31e)]:case _0x2ebbf9['EV'][_0x43e09a(0x967)]:case _0x2ebbf9['EV'][_0x43e09a(0x613)]:case _0x2ebbf9['EV'][_0x43e09a(0xaf1)]:case _0x2ebbf9['EV']['RG8Uint']:case _0x2ebbf9['EV']['RG8Sint']:return{'width':0x1,'height':0x1,'length':0x2};case _0x2ebbf9['EV'][_0x43e09a(0xcb1)]:case _0x2ebbf9['EV']['R32Sint']:case _0x2ebbf9['EV'][_0x43e09a(0x40d)]:case _0x2ebbf9['EV'][_0x43e09a(0x1c7)]:case _0x2ebbf9['EV'][_0x43e09a(0x1e9)]:case _0x2ebbf9['EV']['RG16Float']:case _0x2ebbf9['EV'][_0x43e09a(0x504)]:case _0x2ebbf9['EV'][_0x43e09a(0x8de)]:case _0x2ebbf9['EV'][_0x43e09a(0x82e)]:case _0x2ebbf9['EV'][_0x43e09a(0x3f7)]:case _0x2ebbf9['EV'][_0x43e09a(0x396)]:case _0x2ebbf9['EV'][_0x43e09a(0x57d)]:case _0x2ebbf9['EV']['BGRA8UnormSRGB']:case _0x2ebbf9['EV']['RGB9E5UFloat']:case _0x2ebbf9['EV'][_0x43e09a(0x94c)]:case _0x2ebbf9['EV'][_0x43e09a(0x589)]:return{'width':0x1,'height':0x1,'length':0x4};case _0x2ebbf9['EV'][_0x43e09a(0xa8b)]:case _0x2ebbf9['EV'][_0x43e09a(0x8b9)]:case _0x2ebbf9['EV'][_0x43e09a(0x8d0)]:case _0x2ebbf9['EV'][_0x43e09a(0x9e7)]:case _0x2ebbf9['EV'][_0x43e09a(0xa13)]:case _0x2ebbf9['EV'][_0x43e09a(0xb2f)]:return{'width':0x1,'height':0x1,'length':0x8};case _0x2ebbf9['EV'][_0x43e09a(0x5f1)]:case _0x2ebbf9['EV'][_0x43e09a(0xaa0)]:case _0x2ebbf9['EV'][_0x43e09a(0x438)]:return{'width':0x1,'height':0x1,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0xaa1)]:throw _0x43e09a(0xba9);case _0x2ebbf9['EV'][_0x43e09a(0x4e2)]:return{'width':0x1,'height':0x1,'length':0x2};case _0x2ebbf9['EV'][_0x43e09a(0x53b)]:throw _0x43e09a(0xc40);case _0x2ebbf9['EV'][_0x43e09a(0xbdd)]:throw'No\x20fixed\x20size\x20for\x20Depth24PlusStencil8\x20format!';case _0x2ebbf9['EV'][_0x43e09a(0x639)]:case _0x2ebbf9['EV'][_0x43e09a(0x531)]:return{'width':0x1,'height':0x1,'length':0x4};case _0x2ebbf9['EV'][_0x43e09a(0xba1)]:return{'width':0x1,'height':0x1,'length':0x5};case _0x2ebbf9['EV']['BC7RGBAUnorm']:case _0x2ebbf9['EV'][_0x43e09a(0x213)]:case _0x2ebbf9['EV'][_0x43e09a(0x28c)]:case _0x2ebbf9['EV']['BC6HRGBFloat']:case _0x2ebbf9['EV'][_0x43e09a(0x92a)]:case _0x2ebbf9['EV'][_0x43e09a(0x601)]:case _0x2ebbf9['EV'][_0x43e09a(0x2e3)]:case _0x2ebbf9['EV'][_0x43e09a(0x8ba)]:case _0x2ebbf9['EV'][_0x43e09a(0x746)]:case _0x2ebbf9['EV'][_0x43e09a(0x228)]:return{'width':0x4,'height':0x4,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0x414)]:case _0x2ebbf9['EV'][_0x43e09a(0xbf3)]:case _0x2ebbf9['EV'][_0x43e09a(0xbea)]:case _0x2ebbf9['EV']['BC1RGBAUnormSRGB']:return{'width':0x4,'height':0x4,'length':0x8};case _0x2ebbf9['EV'][_0x43e09a(0xa19)]:case _0x2ebbf9['EV'][_0x43e09a(0x143)]:case _0x2ebbf9['EV'][_0x43e09a(0x9b2)]:case _0x2ebbf9['EV'][_0x43e09a(0xa1d)]:case _0x2ebbf9['EV'][_0x43e09a(0x127)]:case _0x2ebbf9['EV'][_0x43e09a(0xb37)]:return{'width':0x4,'height':0x4,'length':0x8};case _0x2ebbf9['EV'][_0x43e09a(0x6e9)]:case _0x2ebbf9['EV'][_0x43e09a(0x2c2)]:case _0x2ebbf9['EV']['EACRG11Unorm']:case _0x2ebbf9['EV'][_0x43e09a(0xad3)]:return{'width':0x4,'height':0x4,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0x787)]:case _0x2ebbf9['EV'][_0x43e09a(0x62f)]:return{'width':0x4,'height':0x4,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0x2de)]:case _0x2ebbf9['EV'][_0x43e09a(0x80d)]:return{'width':0x5,'height':0x4,'length':0x10};case _0x2ebbf9['EV']['ASTC5x5Unorm']:case _0x2ebbf9['EV'][_0x43e09a(0xa7e)]:return{'width':0x5,'height':0x5,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0x846)]:case _0x2ebbf9['EV']['ASTC6x5UnormSRGB']:return{'width':0x6,'height':0x5,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0x16e)]:case _0x2ebbf9['EV'][_0x43e09a(0x4ce)]:return{'width':0x6,'height':0x6,'length':0x10};case _0x2ebbf9['EV']['ASTC8x5Unorm']:case _0x2ebbf9['EV']['ASTC8x5UnormSRGB']:return{'width':0x8,'height':0x5,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0x1ac)]:case _0x2ebbf9['EV'][_0x43e09a(0x68d)]:return{'width':0x8,'height':0x6,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0x419)]:case _0x2ebbf9['EV'][_0x43e09a(0x910)]:return{'width':0x8,'height':0x8,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0xab6)]:case _0x2ebbf9['EV'][_0x43e09a(0x525)]:return{'width':0xa,'height':0x5,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0xc2a)]:case _0x2ebbf9['EV'][_0x43e09a(0xb93)]:return{'width':0xa,'height':0x6,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0x473)]:case _0x2ebbf9['EV'][_0x43e09a(0x867)]:return{'width':0xa,'height':0x8,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0xceb)]:case _0x2ebbf9['EV'][_0x43e09a(0x946)]:return{'width':0xa,'height':0xa,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0xc35)]:case _0x2ebbf9['EV'][_0x43e09a(0xa86)]:return{'width':0xc,'height':0xa,'length':0x10};case _0x2ebbf9['EV'][_0x43e09a(0xad0)]:case _0x2ebbf9['EV'][_0x43e09a(0x314)]:return{'width':0xc,'height':0xc,'length':0x10};}return{'width':0x1,'height':0x1,'length':0x4};}static[_0x3b57fe(0x637)](_0x423900){var _0x21bef5=_0x3b57fe;return!!_0x423900[_0x21bef5(0xc74)];}static[_0x3b57fe(0x8d1)](_0x2ddcc3){var _0x550af0=_0x3b57fe;return!!_0x2ddcc3[_0x550af0(0x431)];}static['IsImageBitmap'](_0x5527fa){var _0x2a314b=_0x3b57fe;return void 0x0!==_0x5527fa[_0x2a314b(0x898)];}static[_0x3b57fe(0x763)](_0x54e0b2){return Array['isArray'](_0x54e0b2)&&void 0x0!==_0x54e0b2[0x0]['close'];}[_0x3b57fe(0x3a1)](_0x241161){var _0x2d8474=_0x3b57fe;this[_0x2d8474(0x7bf)]=_0x241161;}static[_0x3b57fe(0x8d5)](_0x498651){var _0xd07520=_0x3b57fe;switch(_0x498651){case _0x2ebbf9['EV'][_0xd07520(0x213)]:case _0x2ebbf9['EV'][_0xd07520(0x37a)]:case _0x2ebbf9['EV'][_0xd07520(0x22a)]:case _0x2ebbf9['EV'][_0xd07520(0x28c)]:case _0x2ebbf9['EV']['BC5RGSnorm']:case _0x2ebbf9['EV'][_0xd07520(0x92a)]:case _0x2ebbf9['EV']['BC4RSnorm']:case _0x2ebbf9['EV'][_0xd07520(0x414)]:case _0x2ebbf9['EV'][_0xd07520(0x8ba)]:case _0x2ebbf9['EV'][_0xd07520(0x2e3)]:case _0x2ebbf9['EV'][_0xd07520(0x228)]:case _0x2ebbf9['EV'][_0xd07520(0x746)]:case _0x2ebbf9['EV']['BC1RGBAUnormSRGB']:case _0x2ebbf9['EV'][_0xd07520(0xbea)]:case _0x2ebbf9['EV']['ETC2RGB8Unorm']:case _0x2ebbf9['EV']['ETC2RGB8UnormSRGB']:case _0x2ebbf9['EV'][_0xd07520(0x9b2)]:case _0x2ebbf9['EV']['ETC2RGB8A1UnormSRGB']:case _0x2ebbf9['EV']['ETC2RGBA8Unorm']:case _0x2ebbf9['EV'][_0xd07520(0x2c2)]:case _0x2ebbf9['EV'][_0xd07520(0x127)]:case _0x2ebbf9['EV'][_0xd07520(0xb37)]:case _0x2ebbf9['EV'][_0xd07520(0x8a3)]:case _0x2ebbf9['EV'][_0xd07520(0xad3)]:case _0x2ebbf9['EV']['ASTC4x4Unorm']:case _0x2ebbf9['EV']['ASTC4x4UnormSRGB']:case _0x2ebbf9['EV'][_0xd07520(0x2de)]:case _0x2ebbf9['EV'][_0xd07520(0x80d)]:case _0x2ebbf9['EV'][_0xd07520(0x210)]:case _0x2ebbf9['EV']['ASTC5x5UnormSRGB']:case _0x2ebbf9['EV']['ASTC6x5Unorm']:case _0x2ebbf9['EV'][_0xd07520(0x3b7)]:case _0x2ebbf9['EV'][_0xd07520(0x16e)]:case _0x2ebbf9['EV'][_0xd07520(0x4ce)]:case _0x2ebbf9['EV'][_0xd07520(0xc45)]:case _0x2ebbf9['EV'][_0xd07520(0x360)]:case _0x2ebbf9['EV'][_0xd07520(0x1ac)]:case _0x2ebbf9['EV'][_0xd07520(0x68d)]:case _0x2ebbf9['EV']['ASTC8x8Unorm']:case _0x2ebbf9['EV'][_0xd07520(0x910)]:case _0x2ebbf9['EV'][_0xd07520(0xab6)]:case _0x2ebbf9['EV'][_0xd07520(0x525)]:case _0x2ebbf9['EV'][_0xd07520(0xc2a)]:case _0x2ebbf9['EV']['ASTC10x6UnormSRGB']:case _0x2ebbf9['EV'][_0xd07520(0x473)]:case _0x2ebbf9['EV'][_0xd07520(0x867)]:case _0x2ebbf9['EV']['ASTC10x10Unorm']:case _0x2ebbf9['EV'][_0xd07520(0x946)]:case _0x2ebbf9['EV']['ASTC12x10Unorm']:case _0x2ebbf9['EV'][_0xd07520(0xa86)]:case _0x2ebbf9['EV'][_0xd07520(0xad0)]:case _0x2ebbf9['EV'][_0xd07520(0x314)]:return!0x0;}return!0x1;}static[_0x3b57fe(0x6ef)](_0x11af37,_0x2bd438,_0x5d30ec=!0x1){var _0x5ba0f9=_0x3b57fe;switch(_0x2bd438){case _0x398ce1['g'][_0x5ba0f9(0xa44)]:return _0x2ebbf9['EV']['Depth16Unorm'];case _0x398ce1['g'][_0x5ba0f9(0x248)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x53b)];case _0x398ce1['g'][_0x5ba0f9(0xb99)]:return _0x2ebbf9['EV'][_0x5ba0f9(0xbdd)];case _0x398ce1['g'][_0x5ba0f9(0x47b)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x639)];case _0x398ce1['g'][_0x5ba0f9(0xd0a)]:return _0x2ebbf9['EV']['Depth24UnormStencil8'];case _0x398ce1['g'][_0x5ba0f9(0xb51)]:return _0x2ebbf9['EV'][_0x5ba0f9(0xba1)];case _0x398ce1['g']['TEXTUREFORMAT_STENCIL8']:return _0x2ebbf9['EV']['Stencil8'];case _0x398ce1['g'][_0x5ba0f9(0x463)]:return _0x5d30ec?_0x2ebbf9['EV'][_0x5ba0f9(0x213)]:_0x2ebbf9['EV']['BC7RGBAUnorm'];case _0x398ce1['g']['TEXTUREFORMAT_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT']:return _0x2ebbf9['EV'][_0x5ba0f9(0x28c)];case _0x398ce1['g'][_0x5ba0f9(0x417)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x22a)];case _0x398ce1['g'][_0x5ba0f9(0xbe2)]:return _0x5d30ec?_0x2ebbf9['EV'][_0x5ba0f9(0x8ba)]:_0x2ebbf9['EV'][_0x5ba0f9(0x2e3)];case _0x398ce1['g'][_0x5ba0f9(0x7fb)]:return _0x5d30ec?_0x2ebbf9['EV'][_0x5ba0f9(0x228)]:_0x2ebbf9['EV'][_0x5ba0f9(0x746)];case _0x398ce1['g'][_0x5ba0f9(0x7ca)]:case _0x398ce1['g']['TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1']:return _0x5d30ec?_0x2ebbf9['EV']['BC1RGBAUnormSRGB']:_0x2ebbf9['EV']['BC1RGBAUnorm'];case _0x398ce1['g'][_0x5ba0f9(0x64c)]:return _0x5d30ec?_0x2ebbf9['EV'][_0x5ba0f9(0x62f)]:_0x2ebbf9['EV']['ASTC4x4Unorm'];case _0x398ce1['g'][_0x5ba0f9(0xaa5)]:case _0x398ce1['g'][_0x5ba0f9(0xb84)]:return _0x5d30ec?_0x2ebbf9['EV'][_0x5ba0f9(0x143)]:_0x2ebbf9['EV'][_0x5ba0f9(0xa19)];case _0x398ce1['g'][_0x5ba0f9(0x7f4)]:return _0x5d30ec?_0x2ebbf9['EV'][_0x5ba0f9(0x2c2)]:_0x2ebbf9['EV'][_0x5ba0f9(0x6e9)];}switch(_0x11af37){case _0x398ce1['g'][_0x5ba0f9(0x7aa)]:switch(_0x2bd438){case _0x398ce1['g'][_0x5ba0f9(0x474)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x31b)];case _0x398ce1['g'][_0x5ba0f9(0x987)]:return _0x2ebbf9['EV'][_0x5ba0f9(0xaf1)];case _0x398ce1['g'][_0x5ba0f9(0x6ff)]:throw _0x5ba0f9(0x712);case _0x398ce1['g'][_0x5ba0f9(0x882)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x7e2)];case _0x398ce1['g']['TEXTUREFORMAT_RG_INTEGER']:return _0x2ebbf9['EV'][_0x5ba0f9(0x593)];case _0x398ce1['g'][_0x5ba0f9(0x35f)]:throw'RGB_INTEGER\x20format\x20not\x20supported\x20in\x20WebGPU';case _0x398ce1['g'][_0x5ba0f9(0x46b)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x396)];default:return _0x2ebbf9['EV'][_0x5ba0f9(0x82e)];}case _0x398ce1['g'][_0x5ba0f9(0x157)]:switch(_0x2bd438){case _0x398ce1['g'][_0x5ba0f9(0x474)]:return _0x2ebbf9['EV']['R8Unorm'];case _0x398ce1['g'][_0x5ba0f9(0x987)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x613)];case _0x398ce1['g']['TEXTUREFORMAT_RGB']:throw _0x5ba0f9(0x2dc);case _0x398ce1['g'][_0x5ba0f9(0x86c)]:return _0x5d30ec?_0x2ebbf9['EV']['RGBA8UnormSRGB']:_0x2ebbf9['EV'][_0x5ba0f9(0x504)];case _0x398ce1['g'][_0x5ba0f9(0x9ff)]:return _0x5d30ec?_0x2ebbf9['EV'][_0x5ba0f9(0x453)]:_0x2ebbf9['EV']['BGRA8Unorm'];case _0x398ce1['g']['TEXTUREFORMAT_RED_INTEGER']:return _0x2ebbf9['EV'][_0x5ba0f9(0x876)];case _0x398ce1['g'][_0x5ba0f9(0x580)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x33b)];case _0x398ce1['g']['TEXTUREFORMAT_RGB_INTEGER']:throw _0x5ba0f9(0x2bf);case _0x398ce1['g'][_0x5ba0f9(0x46b)]:return _0x2ebbf9['EV']['RGBA8Uint'];case _0x398ce1['g'][_0x5ba0f9(0xbfe)]:throw _0x5ba0f9(0x357);case _0x398ce1['g'][_0x5ba0f9(0x7ac)]:throw _0x5ba0f9(0x1fa);case _0x398ce1['g'][_0x5ba0f9(0x560)]:throw _0x5ba0f9(0x5ea);default:return _0x2ebbf9['EV'][_0x5ba0f9(0x504)];}case _0x398ce1['g'][_0x5ba0f9(0xc86)]:switch(_0x2bd438){case _0x398ce1['g']['TEXTUREFORMAT_RED_INTEGER']:return _0x2ebbf9['EV'][_0x5ba0f9(0x31e)];case _0x398ce1['g'][_0x5ba0f9(0x580)]:return _0x2ebbf9['EV']['RG16Sint'];case _0x398ce1['g']['TEXTUREFORMAT_RGB_INTEGER']:throw'TEXTUREFORMAT_RGB_INTEGER\x20format\x20not\x20supported\x20in\x20WebGPU';default:return _0x398ce1['g'][_0x5ba0f9(0x46b)],_0x2ebbf9['EV'][_0x5ba0f9(0xa13)];}case _0x398ce1['g'][_0x5ba0f9(0xbcd)]:switch(_0x2bd438){case _0x398ce1['g'][_0x5ba0f9(0x882)]:return _0x2ebbf9['EV']['R16Uint'];case _0x398ce1['g'][_0x5ba0f9(0x580)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x1c7)];case _0x398ce1['g'][_0x5ba0f9(0x35f)]:throw _0x5ba0f9(0x2d5);default:return _0x398ce1['g'][_0x5ba0f9(0x46b)],_0x2ebbf9['EV'][_0x5ba0f9(0x9e7)];}case _0x398ce1['g'][_0x5ba0f9(0x6b3)]:switch(_0x2bd438){case _0x398ce1['g'][_0x5ba0f9(0x882)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x814)];case _0x398ce1['g'][_0x5ba0f9(0x580)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x8b9)];case _0x398ce1['g'][_0x5ba0f9(0x35f)]:throw _0x5ba0f9(0x2d5);default:return _0x398ce1['g'][_0x5ba0f9(0x46b)],_0x2ebbf9['EV'][_0x5ba0f9(0xaa0)];}case _0x398ce1['g'][_0x5ba0f9(0x480)]:switch(_0x2bd438){case _0x398ce1['g'][_0x5ba0f9(0x882)]:return _0x2ebbf9['EV'][_0x5ba0f9(0xcb1)];case _0x398ce1['g']['TEXTUREFORMAT_RG_INTEGER']:return _0x2ebbf9['EV']['RG32Uint'];case _0x398ce1['g'][_0x5ba0f9(0x35f)]:throw _0x5ba0f9(0x2d5);default:return _0x398ce1['g']['TEXTUREFORMAT_RGBA_INTEGER'],_0x2ebbf9['EV'][_0x5ba0f9(0x5f1)];}case _0x398ce1['g'][_0x5ba0f9(0x67a)]:switch(_0x2bd438){case _0x398ce1['g'][_0x5ba0f9(0x474)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x40d)];case _0x398ce1['g'][_0x5ba0f9(0x987)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x8d0)];case _0x398ce1['g'][_0x5ba0f9(0x6ff)]:throw _0x5ba0f9(0x2dc);default:return _0x398ce1['g'][_0x5ba0f9(0x86c)],_0x2ebbf9['EV'][_0x5ba0f9(0x438)];}case _0x398ce1['g'][_0x5ba0f9(0x98a)]:switch(_0x2bd438){case _0x398ce1['g'][_0x5ba0f9(0x474)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x967)];case _0x398ce1['g']['TEXTUREFORMAT_RG']:return _0x2ebbf9['EV']['RG16Float'];case _0x398ce1['g'][_0x5ba0f9(0x6ff)]:throw _0x5ba0f9(0x2dc);default:return _0x398ce1['g']['TEXTUREFORMAT_RGBA'],_0x2ebbf9['EV']['RGBA16Float'];}case _0x398ce1['g'][_0x5ba0f9(0x77b)]:throw'TEXTURETYPE_UNSIGNED_SHORT_5_6_5\x20format\x20not\x20supported\x20in\x20WebGPU';case _0x398ce1['g'][_0x5ba0f9(0x9b5)]:throw _0x5ba0f9(0x56b);case _0x398ce1['g'][_0x5ba0f9(0xcbf)]:throw'TEXTURETYPE_UNSIGNED_INT_5_9_9_9_REV\x20format\x20not\x20supported\x20in\x20WebGPU';case _0x398ce1['g'][_0x5ba0f9(0x3b8)]:throw'TEXTURETYPE_UNSIGNED_SHORT_4_4_4_4\x20format\x20not\x20supported\x20in\x20WebGPU';case _0x398ce1['g'][_0x5ba0f9(0xb17)]:throw'TEXTURETYPE_UNSIGNED_SHORT_5_5_5_1\x20format\x20not\x20supported\x20in\x20WebGPU';case _0x398ce1['g'][_0x5ba0f9(0x7a0)]:switch(_0x2bd438){case _0x398ce1['g'][_0x5ba0f9(0x86c)]:return _0x2ebbf9['EV'][_0x5ba0f9(0x94c)];case _0x398ce1['g'][_0x5ba0f9(0x46b)]:throw'TEXTUREFORMAT_RGBA_INTEGER\x20format\x20not\x20supported\x20in\x20WebGPU\x20when\x20type\x20is\x20TEXTURETYPE_UNSIGNED_INT_2_10_10_10_REV';default:return _0x2ebbf9['EV'][_0x5ba0f9(0x94c)];}}return _0x5d30ec?_0x2ebbf9['EV']['RGBA8UnormSRGB']:_0x2ebbf9['EV'][_0x5ba0f9(0x504)];}static[_0x3b57fe(0x54c)](_0x2b0fa9){var _0x5379a4=_0x3b57fe;switch(_0x2b0fa9){case _0x2ebbf9['EV'][_0x5379a4(0x777)]:case _0x2ebbf9['EV']['R8Snorm']:case _0x2ebbf9['EV']['R8Uint']:case _0x2ebbf9['EV'][_0x5379a4(0x7e2)]:case _0x2ebbf9['EV'][_0x5379a4(0x414)]:case _0x2ebbf9['EV'][_0x5379a4(0xbf3)]:case _0x2ebbf9['EV'][_0x5379a4(0xcd5)]:case _0x2ebbf9['EV'][_0x5379a4(0x31e)]:case _0x2ebbf9['EV']['Depth16Unorm']:case _0x2ebbf9['EV'][_0x5379a4(0x967)]:case _0x2ebbf9['EV'][_0x5379a4(0xcb1)]:case _0x2ebbf9['EV'][_0x5379a4(0x814)]:case _0x2ebbf9['EV'][_0x5379a4(0x40d)]:case _0x2ebbf9['EV'][_0x5379a4(0x639)]:case _0x2ebbf9['EV'][_0x5379a4(0xaa1)]:case _0x2ebbf9['EV'][_0x5379a4(0x53b)]:case _0x2ebbf9['EV']['EACR11Unorm']:case _0x2ebbf9['EV']['EACR11Snorm']:return 0x1;case _0x2ebbf9['EV'][_0x5379a4(0x613)]:case _0x2ebbf9['EV'][_0x5379a4(0xaf1)]:case _0x2ebbf9['EV'][_0x5379a4(0x33b)]:case _0x2ebbf9['EV'][_0x5379a4(0x593)]:case _0x2ebbf9['EV'][_0x5379a4(0x531)]:case _0x2ebbf9['EV'][_0x5379a4(0xba1)]:case _0x2ebbf9['EV']['BC5RGUnorm']:case _0x2ebbf9['EV']['BC5RGSnorm']:case _0x2ebbf9['EV'][_0x5379a4(0x1c7)]:case _0x2ebbf9['EV'][_0x5379a4(0x1e9)]:case _0x2ebbf9['EV']['RG16Float']:case _0x2ebbf9['EV'][_0x5379a4(0xa8b)]:case _0x2ebbf9['EV'][_0x5379a4(0x8b9)]:case _0x2ebbf9['EV'][_0x5379a4(0x8d0)]:case _0x2ebbf9['EV']['Depth24PlusStencil8']:case _0x2ebbf9['EV'][_0x5379a4(0x8a3)]:case _0x2ebbf9['EV'][_0x5379a4(0xad3)]:return 0x2;case _0x2ebbf9['EV']['RGB9E5UFloat']:case _0x2ebbf9['EV'][_0x5379a4(0x589)]:case _0x2ebbf9['EV'][_0x5379a4(0x28c)]:case _0x2ebbf9['EV'][_0x5379a4(0x22a)]:case _0x2ebbf9['EV'][_0x5379a4(0xa19)]:case _0x2ebbf9['EV']['ETC2RGB8UnormSRGB']:return 0x3;case _0x2ebbf9['EV'][_0x5379a4(0x504)]:case _0x2ebbf9['EV']['RGBA8UnormSRGB']:case _0x2ebbf9['EV'][_0x5379a4(0x82e)]:case _0x2ebbf9['EV'][_0x5379a4(0x3f7)]:case _0x2ebbf9['EV'][_0x5379a4(0x396)]:case _0x2ebbf9['EV'][_0x5379a4(0x57d)]:case _0x2ebbf9['EV'][_0x5379a4(0x453)]:case _0x2ebbf9['EV']['RGB10A2Unorm']:case _0x2ebbf9['EV'][_0x5379a4(0x37a)]:case _0x2ebbf9['EV']['BC7RGBAUnormSRGB']:case _0x2ebbf9['EV'][_0x5379a4(0x2e3)]:case _0x2ebbf9['EV'][_0x5379a4(0x8ba)]:case _0x2ebbf9['EV'][_0x5379a4(0x746)]:case _0x2ebbf9['EV']['BC2RGBAUnormSRGB']:case _0x2ebbf9['EV'][_0x5379a4(0xbea)]:case _0x2ebbf9['EV']['BC1RGBAUnormSRGB']:case _0x2ebbf9['EV'][_0x5379a4(0x9e7)]:case _0x2ebbf9['EV']['RGBA16Sint']:case _0x2ebbf9['EV'][_0x5379a4(0xb2f)]:case _0x2ebbf9['EV'][_0x5379a4(0x5f1)]:case _0x2ebbf9['EV']['RGBA32Sint']:case _0x2ebbf9['EV'][_0x5379a4(0x438)]:case _0x2ebbf9['EV'][_0x5379a4(0x9b2)]:case _0x2ebbf9['EV'][_0x5379a4(0xa1d)]:case _0x2ebbf9['EV'][_0x5379a4(0x6e9)]:case _0x2ebbf9['EV'][_0x5379a4(0x2c2)]:case _0x2ebbf9['EV'][_0x5379a4(0x787)]:case _0x2ebbf9['EV'][_0x5379a4(0x62f)]:case _0x2ebbf9['EV']['ASTC5x4Unorm']:case _0x2ebbf9['EV']['ASTC5x4UnormSRGB']:case _0x2ebbf9['EV'][_0x5379a4(0x210)]:case _0x2ebbf9['EV'][_0x5379a4(0xa7e)]:case _0x2ebbf9['EV'][_0x5379a4(0x846)]:case _0x2ebbf9['EV'][_0x5379a4(0x3b7)]:case _0x2ebbf9['EV'][_0x5379a4(0x16e)]:case _0x2ebbf9['EV'][_0x5379a4(0x4ce)]:case _0x2ebbf9['EV'][_0x5379a4(0xc45)]:case _0x2ebbf9['EV'][_0x5379a4(0x360)]:case _0x2ebbf9['EV'][_0x5379a4(0x1ac)]:case _0x2ebbf9['EV'][_0x5379a4(0x68d)]:case _0x2ebbf9['EV'][_0x5379a4(0x419)]:case _0x2ebbf9['EV'][_0x5379a4(0x910)]:case _0x2ebbf9['EV'][_0x5379a4(0xab6)]:case _0x2ebbf9['EV'][_0x5379a4(0x525)]:case _0x2ebbf9['EV']['ASTC10x6Unorm']:case _0x2ebbf9['EV'][_0x5379a4(0xb93)]:case _0x2ebbf9['EV'][_0x5379a4(0x473)]:case _0x2ebbf9['EV'][_0x5379a4(0x867)]:case _0x2ebbf9['EV'][_0x5379a4(0xceb)]:case _0x2ebbf9['EV'][_0x5379a4(0x946)]:case _0x2ebbf9['EV'][_0x5379a4(0xc35)]:case _0x2ebbf9['EV']['ASTC12x10UnormSRGB']:case _0x2ebbf9['EV'][_0x5379a4(0xad0)]:case _0x2ebbf9['EV'][_0x5379a4(0x314)]:return 0x4;}throw _0x5379a4(0xb3e)+_0x2b0fa9+'!';}static[_0x3b57fe(0x9d9)](_0x5ce16c){var _0xa52eec=_0x3b57fe;switch(_0x5ce16c){case _0x2ebbf9['EV']['Stencil8']:case _0x2ebbf9['EV'][_0xa52eec(0x531)]:case _0x2ebbf9['EV'][_0xa52eec(0xba1)]:case _0x2ebbf9['EV'][_0xa52eec(0xbdd)]:return!0x0;}return!0x1;}static[_0x3b57fe(0x333)](_0x3088f8){var _0x2adc53=_0x3b57fe;switch(_0x3088f8){case _0x2ebbf9['EV'][_0x2adc53(0x531)]:case _0x2ebbf9['EV'][_0x2adc53(0xba1)]:case _0x2ebbf9['EV'][_0x2adc53(0xbdd)]:return!0x0;}return!0x1;}static[_0x3b57fe(0x51e)](_0x8433bb){var _0x27a6bb=_0x3b57fe;switch(_0x8433bb){case _0x2ebbf9['EV'][_0x27a6bb(0x4e2)]:return _0x2ebbf9['EV'][_0x27a6bb(0x4e2)];case _0x2ebbf9['EV'][_0x27a6bb(0x53b)]:case _0x2ebbf9['EV']['Depth24PlusStencil8']:case _0x2ebbf9['EV'][_0x27a6bb(0x531)]:return _0x2ebbf9['EV']['Depth24Plus'];case _0x2ebbf9['EV']['Depth32Float']:case _0x2ebbf9['EV'][_0x27a6bb(0xba1)]:return _0x2ebbf9['EV'][_0x27a6bb(0x639)];}return _0x8433bb;}['copyVideoToTexture'](_0x291b76,_0x5e8997,_0x45ef3f,_0x56a6a6=!0x1,_0x312865){var _0xe44fab=_0x3b57fe,_0x43bf27=void 0x0===_0x312865,[_0x384e85,_0x22faa4]=this['_getVideoPipeline'](_0x45ef3f,_0x56a6a6?_0x311161[_0xe44fab(0x63e)]:_0x311161[_0xe44fab(0x8e9)]);null!=(_0x47503b=(_0x5668e6=_0x312865=_0x43bf27?this[_0xe44fab(0x7b4)][_0xe44fab(0x545)]({}):_0x312865)['pushDebugGroup'])&&_0x47503b[_0xe44fab(0x1f8)](_0x5668e6,_0xe44fab(0x22f)+_0x56a6a6);const _0x33a9e7=_0x5e8997[_0xe44fab(0xaf0)];var _0x47503b={'colorAttachments':[{'view':_0x33a9e7[_0xe44fab(0x57b)][_0xe44fab(0xd22)]({'format':_0x45ef3f,'dimension':_0x2ebbf9['p_']['E2d'],'mipLevelCount':0x1,'baseArrayLayer':0x0,'baseMipLevel':0x0,'arrayLayerCount':0x1,'aspect':_0x2ebbf9['H7']['All']}),'loadOp':_0x2ebbf9['Ws']['Load'],'storeOp':_0x2ebbf9['EG'][_0xe44fab(0x61d)]}]};const _0x215884=_0x312865[_0xe44fab(0x854)](_0x47503b);var _0x5668e6={'layout':_0x22faa4,'entries':[{'binding':0x0,'resource':this['_videoSampler']},{'binding':0x1,'resource':this['_device'][_0xe44fab(0xd31)]({'source':_0x291b76['underlyingResource']})}]},_0x56a6a6=this[_0xe44fab(0x7b4)]['createBindGroup'](_0x5668e6);_0x215884[_0xe44fab(0x9ab)](_0x384e85),_0x215884[_0xe44fab(0xc77)](0x0,_0x56a6a6),_0x215884[_0xe44fab(0x8f6)](0x4,0x1,0x0,0x0),_0x215884[_0xe44fab(0x1ca)](),null!=(_0x45ef3f=(_0x5e8997=_0x312865)[_0xe44fab(0xbf4)])&&_0x45ef3f[_0xe44fab(0x1f8)](_0x5e8997),_0x43bf27&&this[_0xe44fab(0x7b4)][_0xe44fab(0x437)][_0xe44fab(0x189)]([_0x312865[_0xe44fab(0x7a6)]()]);}[_0x3b57fe(0x728)](_0x3e5a04,_0x12e6b3,_0x38f1d1,_0x2779ed,_0xf3ac43=!0x1,_0x141287=!0x1,_0xc6cf50=0x0,_0x328293=0x0,_0x28ae76=0x1,_0x407b69=0x0,_0x3af1c3=0x0,_0x422f21=0x0,_0x21da17=0x0,_0x3091ef,_0x20bc44){var _0x1dadf5=_0x3b57fe,_0x2c1612,_0x52fc61,_0x127305=0x0!==_0x422f21,_0x13baf1=void 0x0===_0x3091ef,[_0x1b6110,_0xd9daee]=this['_getPipeline'](_0x2779ed,_0x127305?_0x24012f[_0x1dadf5(0x25d)]:_0x24012f[_0x1dadf5(0x684)],{'invertY':_0xf3ac43,'premultiplyAlpha':_0x141287});_0xc6cf50=Math[_0x1dadf5(0x89f)](_0xc6cf50,0x0),null!=(_0x2c1612=(_0x52fc61=_0x3091ef=_0x13baf1?this[_0x1dadf5(0x7b4)][_0x1dadf5(0x545)]({}):_0x3091ef)['pushDebugGroup'])&&_0x2c1612[_0x1dadf5(0x1f8)](_0x52fc61,_0x1dadf5(0xc55)+_0xf3ac43+'\x20premultiplyAlpha='+_0x141287);let _0x4a35a1;if(_0x3337e0['_IsHardwareTexture'](_0x3e5a04)?(_0x4a35a1=_0x3e5a04[_0x1dadf5(0x57b)],_0xf3ac43&&!_0x141287&&0x1===_0x28ae76&&0x0===_0xc6cf50||(_0x3e5a04=void 0x0)):(_0x4a35a1=_0x3e5a04,_0x3e5a04=void 0x0),_0x4a35a1){_0x127305&&this[_0x1dadf5(0x6bf)][_0x1dadf5(0x55d)](this[_0x1dadf5(0x70e)],0x0,new Float32Array([_0x407b69,_0x3af1c3,_0x422f21,_0x21da17]),0x0,0x10);const _0x4f6ab5=_0x3e5a04,_0x1bda5d=null!=(_0x2c1612=null===_0x4f6ab5||void 0x0===_0x4f6ab5?void 0x0:_0x4f6ab5[_0x1dadf5(0xb80)])?_0x2c1612:this[_0x1dadf5(0x550)]({'width':_0x12e6b3,'height':_0x38f1d1,'layers':0x1},!0x1,!0x1,!0x1,!0x1,!0x1,_0x2779ed,0x1,_0x3091ef,_0x2ebbf9['v2'][_0x1dadf5(0x780)]|_0x2ebbf9['v2']['RenderAttachment']|_0x2ebbf9['v2'][_0x1dadf5(0x452)],void 0x0,_0x1dadf5(0x5c7));_0xf3ac43=null!=(_0x52fc61=null===_0x4f6ab5||void 0x0===_0x4f6ab5?void 0x0:_0x4f6ab5[_0x1dadf5(0x56f)])?_0x52fc61:{'colorAttachments':[{'view':_0x1bda5d[_0x1dadf5(0xd22)]({'format':_0x2779ed,'dimension':_0x2ebbf9['p_'][_0x1dadf5(0x338)],'baseMipLevel':0x0,'mipLevelCount':0x1,'arrayLayerCount':0x1,'baseArrayLayer':0x0}),'loadOp':_0x2ebbf9['Ws'][_0x1dadf5(0x896)],'storeOp':_0x2ebbf9['EG'][_0x1dadf5(0x61d)]}]};const _0x4e1bdb=_0x3091ef[_0x1dadf5(0x854)](_0xf3ac43);let _0x12ccc5=_0x127305?null===_0x4f6ab5||void 0x0===_0x4f6ab5?void 0x0:_0x4f6ab5[_0x1dadf5(0x7c4)]:null===_0x4f6ab5||void 0x0===_0x4f6ab5?void 0x0:_0x4f6ab5[_0x1dadf5(0xb74)];if(!_0x12ccc5){const _0x1d864d={'layout':_0xd9daee,'entries':[{'binding':0x0,'resource':_0x4a35a1['createView']({'format':_0x2779ed,'dimension':_0x2ebbf9['p_'][_0x1dadf5(0x338)],'baseMipLevel':_0x328293,'mipLevelCount':0x1,'arrayLayerCount':_0x28ae76,'baseArrayLayer':_0xc6cf50})}]};_0x127305&&_0x1d864d['entries'][_0x1dadf5(0x83f)]({'binding':0x1,'resource':{'buffer':this[_0x1dadf5(0x70e)]}}),_0x12ccc5=this[_0x1dadf5(0x7b4)][_0x1dadf5(0x5d8)](_0x1d864d);}_0x4e1bdb['setPipeline'](_0x1b6110),_0x4e1bdb[_0x1dadf5(0xc77)](0x0,_0x12ccc5),_0x4e1bdb['draw'](0x4,0x1,0x0,0x0),_0x4e1bdb[_0x1dadf5(0x1ca)](),_0x3091ef[_0x1dadf5(0x5ff)]({'texture':_0x1bda5d},{'texture':_0x4a35a1,'mipLevel':_0x328293,'origin':{'x':0x0,'y':0x0,'z':_0xc6cf50}},{'width':_0x12e6b3,'height':_0x38f1d1,'depthOrArrayLayers':0x1}),_0x4f6ab5?(_0x4f6ab5[_0x1dadf5(0xb80)]=_0x1bda5d,_0x4f6ab5[_0x1dadf5(0x56f)]=_0xf3ac43,_0x127305?_0x4f6ab5[_0x1dadf5(0x7c4)]=_0x12ccc5:_0x4f6ab5[_0x1dadf5(0xb74)]=_0x12ccc5):this[_0x1dadf5(0x3b4)][_0x1dadf5(0x83f)]([_0x1bda5d,null]),null!=(_0x407b69=(_0x141287=_0x3091ef)[_0x1dadf5(0xbf4)])&&_0x407b69[_0x1dadf5(0x1f8)](_0x141287),_0x13baf1&&this[_0x1dadf5(0x7b4)]['queue'][_0x1dadf5(0x189)]([_0x3091ef[_0x1dadf5(0x7a6)]()]);}}[_0x3b57fe(0x20f)](_0x1c4a27,_0x4d9229,_0xa0b093,_0x2c230a){var _0x55bdda=_0x3b57fe,_0x5ee5fe,_0x560ac8=void 0x0===_0x2c230a,[_0x4d9229,_0x202bc9]=this[_0x55bdda(0x2aa)](_0x4d9229,_0x24012f[_0x55bdda(0x684)],{'invertY':!0x0,'premultiplyAlpha':!0x1});null!=(_0x1f8f69=(_0x5ee5fe=_0x2c230a=_0x560ac8?this['_device']['createCommandEncoder']({}):_0x2c230a)[_0x55bdda(0x4c5)])&&_0x1f8f69[_0x55bdda(0x1f8)](_0x5ee5fe,_0x55bdda(0x42b));const _0x80b8cd=_0x2c230a[_0x55bdda(0x854)](_0xa0b093);var _0x1f8f69=this[_0x55bdda(0x7b4)]['createBindGroup']({'layout':_0x202bc9,'entries':[{'binding':0x0,'resource':_0x1c4a27}]});_0x80b8cd[_0x55bdda(0x9ab)](_0x4d9229),_0x80b8cd[_0x55bdda(0xc77)](0x0,_0x1f8f69),_0x80b8cd[_0x55bdda(0x8f6)](0x4,0x1,0x0,0x0),_0x80b8cd[_0x55bdda(0x1ca)](),null!=(_0xa0b093=(_0x5ee5fe=_0x2c230a)[_0x55bdda(0xbf4)])&&_0xa0b093[_0x55bdda(0x1f8)](_0x5ee5fe),_0x560ac8&&this[_0x55bdda(0x7b4)][_0x55bdda(0x437)][_0x55bdda(0x189)]([_0x2c230a[_0x55bdda(0x7a6)]()]);}[_0x3b57fe(0x550)](_0x3acb3a,_0x5e9f9f=!0x1,_0x29dd39=!0x1,_0xc1bc41=!0x1,_0x2ac55c=!0x1,_0x4e0fd3=!0x1,_0x344790=_0x2ebbf9['EV'][_0x3b57fe(0x504)],_0x1464b0=0x1,_0x5bdeb7,_0x268249=-0x1,_0x29b39a=0x0,_0x4ab3d0){var _0x8a7eae=_0x3b57fe;0x1<_0x1464b0&&(_0x1464b0=0x4);var _0x37b254=_0x3acb3a[_0x8a7eae(0xa73)]||0x1,_0x409438={'width':_0x3acb3a[_0x8a7eae(0xca4)],'height':_0x3acb3a['height'],'depthOrArrayLayers':_0x37b254},_0x5408c8=_0x3337e0[_0x8a7eae(0x8d5)](_0x344790),_0x370c05=_0x5e9f9f?_0x3337e0[_0x8a7eae(0xb5f)](_0x3acb3a[_0x8a7eae(0xca4)],_0x3acb3a[_0x8a7eae(0x43d)]):0x1,_0x268249=0x0<=_0x268249?_0x268249:_0x2ebbf9['v2'][_0x8a7eae(0x780)]|_0x2ebbf9['v2']['CopyDst']|_0x2ebbf9['v2'][_0x8a7eae(0x452)],_0x5408c8=(_0x29b39a|=_0x5e9f9f&&!_0x5408c8?_0x2ebbf9['v2']['CopySrc']|_0x2ebbf9['v2'][_0x8a7eae(0xa15)]:0x0,_0x5408c8||_0x4e0fd3||(_0x29b39a|=_0x2ebbf9['v2']['RenderAttachment']|_0x2ebbf9['v2'][_0x8a7eae(0x7c6)]),this[_0x8a7eae(0x7b4)][_0x8a7eae(0x550)]({'label':_0x8a7eae(0xb47)+(_0x4ab3d0?_0x4ab3d0+'_':'')+_0x409438['width']+'x'+_0x409438[_0x8a7eae(0x43d)]+'x'+_0x409438[_0x8a7eae(0x8a4)]+'_'+(_0x5e9f9f?'wmips':_0x8a7eae(0x5f4))+'_'+_0x344790+_0x8a7eae(0xd2e)+_0x1464b0,'size':_0x409438,'dimension':_0x4e0fd3?_0x2ebbf9['kd'][_0x8a7eae(0x92c)]:_0x2ebbf9['kd'][_0x8a7eae(0x338)],'format':_0x344790,'usage':_0x268249|_0x29b39a,'sampleCount':_0x1464b0,'mipLevelCount':_0x370c05}));return _0x3337e0[_0x8a7eae(0xa5d)](_0x3acb3a)&&(this['updateTexture'](_0x3acb3a,_0x5408c8,_0x3acb3a[_0x8a7eae(0xca4)],_0x3acb3a[_0x8a7eae(0x43d)],_0x37b254,_0x344790,0x0,0x0,_0xc1bc41,_0x2ac55c,0x0,0x0),_0x5e9f9f&&_0x29dd39&&this[_0x8a7eae(0x909)](_0x5408c8,_0x344790,_0x370c05,0x0,_0x5bdeb7)),_0x5408c8;}[_0x3b57fe(0x862)](_0x3319b8,_0x3cd24b=!0x1,_0x4a40fd=!0x1,_0x2e45da=!0x1,_0x3602a2=!0x1,_0x1adc47=_0x2ebbf9['EV']['RGBA8Unorm'],_0x53d76b=0x1,_0x3bea2a,_0x1ee4bc=-0x1,_0x9eb87a=0x0,_0x12e2b8){var _0x5942b7=_0x3b57fe;0x1<_0x53d76b&&(_0x53d76b=0x4);var _0x42416c=(_0x3337e0[_0x5942b7(0x763)](_0x3319b8)?_0x3319b8[0x0]:_0x3319b8)[_0x5942b7(0xca4)],_0x4cf825=(_0x3337e0[_0x5942b7(0x763)](_0x3319b8)?_0x3319b8[0x0]:_0x3319b8)['height'],_0x20c807=_0x3337e0[_0x5942b7(0x8d5)](_0x1adc47),_0x79cb59=_0x3cd24b?_0x3337e0['ComputeNumMipmapLevels'](_0x42416c,_0x4cf825):0x1,_0x1ee4bc=0x0<=_0x1ee4bc?_0x1ee4bc:_0x2ebbf9['v2'][_0x5942b7(0x780)]|_0x2ebbf9['v2'][_0x5942b7(0x7c6)]|_0x2ebbf9['v2'][_0x5942b7(0x452)],_0x20c807=(_0x9eb87a|=_0x3cd24b&&!_0x20c807?_0x2ebbf9['v2'][_0x5942b7(0x780)]|_0x2ebbf9['v2'][_0x5942b7(0xa15)]:0x0,_0x20c807||(_0x9eb87a|=_0x2ebbf9['v2'][_0x5942b7(0xa15)]|_0x2ebbf9['v2']['CopyDst']),this['_device'][_0x5942b7(0x550)]({'label':_0x5942b7(0xa8f)+(_0x12e2b8?_0x12e2b8+'_':'')+_0x42416c+'x'+_0x4cf825+'x6_'+(_0x3cd24b?_0x5942b7(0x487):'womips')+'_'+_0x1adc47+'_samples'+_0x53d76b,'size':{'width':_0x42416c,'height':_0x4cf825,'depthOrArrayLayers':0x6},'dimension':_0x2ebbf9['kd'][_0x5942b7(0x338)],'format':_0x1adc47,'usage':_0x1ee4bc|_0x9eb87a,'sampleCount':_0x53d76b,'mipLevelCount':_0x79cb59}));return _0x3337e0['IsImageBitmapArray'](_0x3319b8)&&(this[_0x5942b7(0xa62)](_0x3319b8,_0x20c807,_0x42416c,_0x4cf825,_0x1adc47,_0x2e45da,_0x3602a2,0x0,0x0),_0x3cd24b&&_0x4a40fd&&this[_0x5942b7(0x6cc)](_0x20c807,_0x1adc47,_0x79cb59,_0x3bea2a)),_0x20c807;}[_0x3b57fe(0x6cc)](_0x562d95,_0x592673,_0x45ce06,_0x53c230){var _0x14c45=_0x3b57fe,_0x419253,_0x41beae,_0x58087e=void 0x0===_0x53c230;null!=(_0x419253=(_0x41beae=_0x53c230=_0x58087e?this[_0x14c45(0x7b4)][_0x14c45(0x545)]({}):_0x53c230)[_0x14c45(0x4c5)])&&_0x419253['call'](_0x41beae,_0x14c45(0xd16)+_0x45ce06+_0x14c45(0xbbb));for(let _0x2aa812=0x0;_0x2aa812<0x6;++_0x2aa812)this[_0x14c45(0x909)](_0x562d95,_0x592673,_0x45ce06,_0x2aa812,_0x53c230);null!=(_0x41beae=(_0x419253=_0x53c230)[_0x14c45(0xbf4)])&&_0x41beae[_0x14c45(0x1f8)](_0x419253),_0x58087e&&this['_device'][_0x14c45(0x437)][_0x14c45(0x189)]([_0x53c230[_0x14c45(0x7a6)]()]);}['generateMipmaps'](_0x41ff07,_0x2e256f,_0xf7a72b,_0x18fa0a=0x0,_0x24a284){var _0x177507=_0x3b57fe,_0x274c9d,_0x4aac75,_0x2ca308=void 0x0===_0x24a284,[_0x238296,_0x293213]=this[_0x177507(0x2aa)](_0x2e256f);_0x18fa0a=Math[_0x177507(0x89f)](_0x18fa0a,0x0),null!=(_0x274c9d=(_0x4aac75=_0x24a284=_0x2ca308?this[_0x177507(0x7b4)][_0x177507(0x545)]({}):_0x24a284)[_0x177507(0x4c5)])&&_0x274c9d[_0x177507(0x1f8)](_0x4aac75,_0x177507(0xb59)+_0x18fa0a+_0x177507(0xc69)+_0xf7a72b+_0x177507(0xbbb));let _0x7e1158;if(_0x3337e0[_0x177507(0x637)](_0x41ff07)?(_0x7e1158=_0x41ff07[_0x177507(0x57b)],_0x41ff07['_mipmapGenRenderPassDescr']=_0x41ff07[_0x177507(0x61f)]||[],_0x41ff07[_0x177507(0x62e)]=_0x41ff07[_0x177507(0x62e)]||[]):(_0x7e1158=_0x41ff07,_0x41ff07=void 0x0),_0x7e1158){const _0x3d741e=_0x41ff07;for(let _0xba30b2=0x1;_0xba30b2<_0xf7a72b;++_0xba30b2){var _0x1f64c6=null!=(_0x1f64c6=null==(_0x1f64c6=null===_0x3d741e||void 0x0===_0x3d741e?void 0x0:_0x3d741e[_0x177507(0x61f)][_0x18fa0a])?void 0x0:_0x1f64c6[_0xba30b2-0x1])?_0x1f64c6:{'colorAttachments':[{'view':_0x7e1158['createView']({'format':_0x2e256f,'dimension':_0x2ebbf9['p_']['E2d'],'baseMipLevel':_0xba30b2,'mipLevelCount':0x1,'arrayLayerCount':0x1,'baseArrayLayer':_0x18fa0a}),'loadOp':_0x2ebbf9['Ws'][_0x177507(0x896)],'storeOp':_0x2ebbf9['EG'][_0x177507(0x61d)]}]};_0x3d741e&&(_0x3d741e[_0x177507(0x61f)][_0x18fa0a]=_0x3d741e[_0x177507(0x61f)][_0x18fa0a]||[],_0x3d741e[_0x177507(0x61f)][_0x18fa0a][_0xba30b2-0x1]=_0x1f64c6);const _0x18ed32=_0x24a284[_0x177507(0x854)](_0x1f64c6);_0x1f64c6=null!=(_0x1f64c6=null==(_0x1f64c6=null===_0x3d741e||void 0x0===_0x3d741e?void 0x0:_0x3d741e[_0x177507(0x62e)][_0x18fa0a])?void 0x0:_0x1f64c6[_0xba30b2-0x1])?_0x1f64c6:this[_0x177507(0x7b4)]['createBindGroup']({'layout':_0x293213,'entries':[{'binding':0x0,'resource':this['_mipmapSampler']},{'binding':0x1,'resource':_0x7e1158[_0x177507(0xd22)]({'format':_0x2e256f,'dimension':_0x2ebbf9['p_'][_0x177507(0x338)],'baseMipLevel':_0xba30b2-0x1,'mipLevelCount':0x1,'arrayLayerCount':0x1,'baseArrayLayer':_0x18fa0a})}]}),(_0x3d741e&&(_0x3d741e[_0x177507(0x62e)][_0x18fa0a]=_0x3d741e[_0x177507(0x62e)][_0x18fa0a]||[],_0x3d741e[_0x177507(0x62e)][_0x18fa0a][_0xba30b2-0x1]=_0x1f64c6),_0x18ed32[_0x177507(0x9ab)](_0x238296),_0x18ed32['setBindGroup'](0x0,_0x1f64c6),_0x18ed32[_0x177507(0x8f6)](0x4,0x1,0x0,0x0),_0x18ed32['end']());}null!=(_0x4aac75=(_0x274c9d=_0x24a284)[_0x177507(0xbf4)])&&_0x4aac75[_0x177507(0x1f8)](_0x274c9d),_0x2ca308&&this[_0x177507(0x7b4)][_0x177507(0x437)][_0x177507(0x189)]([_0x24a284['finish']()]);}}[_0x3b57fe(0x17d)](_0x5d03e5,_0x4c439a,_0xab2dcd,_0x435e40,_0x235d8d){var _0x309d84=_0x3b57fe;_0x5d03e5['_hardwareTexture']||(_0x5d03e5[_0x309d84(0xaf0)]=new _0x18731c['Z']()),void 0x0===_0x4c439a&&(_0x4c439a=_0x5d03e5[_0x309d84(0xca4)]),void 0x0===_0xab2dcd&&(_0xab2dcd=_0x5d03e5['height']),void 0x0===_0x435e40&&(_0x435e40=_0x5d03e5[_0x309d84(0x4c3)]);const _0x582601=_0x5d03e5[_0x309d84(0xaf0)];var _0x192873,_0x235d8d=0x0!=((null!=_0x235d8d?_0x235d8d:0x0)&_0x398ce1['g'][_0x309d84(0x5b5)]),_0x4665a1=(_0x582601['format']=_0x3337e0['GetWebGPUTextureFormat'](_0x5d03e5[_0x309d84(0x5da)],_0x5d03e5[_0x309d84(0x808)],_0x5d03e5[_0x309d84(0x842)]),_0x582601[_0x309d84(0x374)]=_0x5d03e5[_0x309d84(0xae0)]===_0x450bec['S'][_0x309d84(0x26d)]||_0x5d03e5['source']===_0x450bec['S']['MultiRenderTarget']?_0x2ebbf9['v2'][_0x309d84(0x452)]|_0x2ebbf9['v2'][_0x309d84(0x780)]|_0x2ebbf9['v2'][_0x309d84(0xa15)]:_0x5d03e5[_0x309d84(0xae0)]===_0x450bec['S'][_0x309d84(0x9f3)]?_0x2ebbf9['v2'][_0x309d84(0x452)]|_0x2ebbf9['v2'][_0x309d84(0xa15)]:-0x1,_0x582601[_0x309d84(0x592)]=_0x235d8d?_0x2ebbf9['v2'][_0x309d84(0x5a3)]:0x0,_0x5d03e5[_0x309d84(0x2c8)]),_0x20f573=_0x435e40||0x1,_0x4665a1=null!==_0x5d03e5['_maxLodLevel']?_0x5d03e5[_0x309d84(0x785)]:_0x4665a1?_0x3337e0[_0x309d84(0xb5f)](_0x4c439a,_0xab2dcd):0x1;return _0x5d03e5[_0x309d84(0x144)]?(_0x192873=this[_0x309d84(0x862)]({'width':_0x4c439a,'height':_0xab2dcd},_0x5d03e5[_0x309d84(0x2c8)],_0x5d03e5[_0x309d84(0x2c8)],_0x5d03e5[_0x309d84(0xb9a)],!0x1,_0x582601[_0x309d84(0x808)],0x1,this[_0x309d84(0x7bf)],_0x582601[_0x309d84(0x374)],_0x582601['textureAdditionalUsages'],_0x5d03e5[_0x309d84(0x382)]),_0x582601[_0x309d84(0x970)](_0x192873),_0x582601[_0x309d84(0xd22)]({'format':_0x3337e0[_0x309d84(0x51e)](_0x582601['format']),'dimension':_0x2ebbf9['p_'][_0x309d84(0x5d9)],'mipLevelCount':_0x4665a1,'baseArrayLayer':0x0,'baseMipLevel':0x0,'arrayLayerCount':0x6,'aspect':_0x3337e0[_0x309d84(0x333)](_0x582601[_0x309d84(0x808)])?_0x2ebbf9['H7'][_0x309d84(0x32d)]:_0x2ebbf9['H7']['All']},_0x235d8d)):(_0x192873=this['createTexture']({'width':_0x4c439a,'height':_0xab2dcd,'layers':_0x20f573},_0x5d03e5[_0x309d84(0x2c8)],_0x5d03e5[_0x309d84(0x2c8)],_0x5d03e5['invertY'],!0x1,_0x5d03e5['is3D'],_0x582601[_0x309d84(0x808)],0x1,this[_0x309d84(0x7bf)],_0x582601[_0x309d84(0x374)],_0x582601[_0x309d84(0x592)],_0x5d03e5['label']),_0x582601[_0x309d84(0x970)](_0x192873),_0x582601['createView']({'format':_0x3337e0[_0x309d84(0x51e)](_0x582601['format']),'dimension':_0x5d03e5['is2DArray']?_0x2ebbf9['p_'][_0x309d84(0x29b)]:_0x5d03e5[_0x309d84(0x566)]?_0x2ebbf9['kd'][_0x309d84(0x92c)]:_0x2ebbf9['p_'][_0x309d84(0x338)],'mipLevelCount':_0x4665a1,'baseArrayLayer':0x0,'baseMipLevel':0x0,'arrayLayerCount':_0x5d03e5[_0x309d84(0x566)]?0x1:_0x20f573,'aspect':_0x3337e0[_0x309d84(0x333)](_0x582601[_0x309d84(0x808)])?_0x2ebbf9['H7']['DepthOnly']:_0x2ebbf9['H7']['All']},_0x235d8d)),_0x5d03e5['width']=_0x5d03e5[_0x309d84(0x863)]=_0x4c439a,_0x5d03e5['height']=_0x5d03e5[_0x309d84(0x122)]=_0xab2dcd,_0x5d03e5[_0x309d84(0x4c3)]=_0x5d03e5[_0x309d84(0x892)]=_0x435e40,this[_0x309d84(0x8ad)](_0x5d03e5,_0x5d03e5[_0x309d84(0x993)]),_0x582601;}[_0x3b57fe(0x8ad)](_0x4a63c6,_0x6e2fc0){var _0x128141=_0x3b57fe;const _0x353907=_0x4a63c6[_0x128141(0xaf0)];var _0x4803b2,_0x582c35,_0x141b02,_0x2f047b;null!==_0x353907&&void 0x0!==_0x353907&&_0x353907['msaaTexture']&&(this['releaseTexture'](_0x353907['msaaTexture']),_0x353907[_0x128141(0xa79)]=null),!_0x353907||(null!=_0x6e2fc0?_0x6e2fc0:0x1)<=0x1||(_0x4803b2=_0x4a63c6[_0x128141(0xca4)],_0x582c35=_0x4a63c6[_0x128141(0x43d)],_0x141b02=_0x4a63c6[_0x128141(0x4c3)]||0x1,_0x4a63c6[_0x128141(0x144)]?(_0x2f047b=this[_0x128141(0x862)]({'width':_0x4803b2,'height':_0x582c35},!0x1,!0x1,_0x4a63c6['invertY'],!0x1,_0x353907[_0x128141(0x808)],_0x6e2fc0,this[_0x128141(0x7bf)],_0x353907['textureUsages'],_0x353907[_0x128141(0x592)],_0x4a63c6['label']?_0x128141(0xaa6)+_0x4a63c6['label']:void 0x0),_0x353907[_0x128141(0xa79)]=_0x2f047b):(_0x2f047b=this['createTexture']({'width':_0x4803b2,'height':_0x582c35,'layers':_0x141b02},!0x1,!0x1,_0x4a63c6[_0x128141(0xb9a)],!0x1,_0x4a63c6[_0x128141(0x566)],_0x353907[_0x128141(0x808)],_0x6e2fc0,this['_commandEncoderForCreation'],_0x353907[_0x128141(0x374)],_0x353907[_0x128141(0x592)],_0x4a63c6[_0x128141(0x382)]?_0x128141(0xaa6)+_0x4a63c6[_0x128141(0x382)]:void 0x0),_0x353907[_0x128141(0xa79)]=_0x2f047b));}[_0x3b57fe(0xa62)](_0xf528f1,_0x459d6f,_0x4de641,_0x1e55af,_0x9d13b3,_0x14c8d2=!0x1,_0x4c6fac=!0x1,_0x589ab4=0x0,_0xb8f573=0x0){var _0x552c8d=_0x3b57fe,_0x4013d9=[0x0,0x3,0x1,0x4,0x2,0x5];for(let _0x22be59=0x0;_0x22be59<_0x4013d9[_0x552c8d(0x3ef)];++_0x22be59){var _0x4717a3=_0xf528f1[_0x4013d9[_0x22be59]];this[_0x552c8d(0x8ae)](_0x4717a3,_0x459d6f,_0x4de641,_0x1e55af,0x1,_0x9d13b3,_0x22be59,0x0,_0x14c8d2,_0x4c6fac,_0x589ab4,_0xb8f573);}}['updateTexture'](_0x282da1,_0x4dc12f,_0x1582ba,_0x2febec,_0x2c4b94,_0x3fcd25,_0x1493bf=0x0,_0x5a72d1=0x0,_0x3a23a4=!0x1,_0x4acd6a=!0x1,_0x3ad934=0x0,_0x5c8397=0x0,_0x2499c6){var _0x441f4b=_0x3b57fe,_0x4ca7b0=_0x3337e0[_0x441f4b(0x8d1)](_0x4dc12f)?_0x4dc12f['_hardwareTexture'][_0x441f4b(0x57b)]:_0x4dc12f,_0xdbf5ef=_0x3337e0[_0x441f4b(0x699)](_0x3fcd25),_0x332ce5=_0x3337e0['_IsInternalTexture'](_0x4dc12f)?_0x4dc12f[_0x441f4b(0xaf0)]:_0x4dc12f;const _0x12d650={'texture':_0x4ca7b0,'origin':{'x':_0x3ad934,'y':_0x5c8397,'z':Math['max'](_0x1493bf,0x0)},'mipLevel':_0x5a72d1,'premultipliedAlpha':_0x4acd6a},_0x4efdba={'width':Math['ceil'](_0x1582ba/_0xdbf5ef[_0x441f4b(0xca4)])*_0xdbf5ef[_0x441f4b(0xca4)],'height':Math[_0x441f4b(0xb94)](_0x2febec/_0xdbf5ef['height'])*_0xdbf5ef['height'],'depthOrArrayLayers':_0x2c4b94||0x1};if(void 0x0!==_0x282da1[_0x441f4b(0x4d6)]){_0x4ca7b0=Math[_0x441f4b(0xb94)](_0x1582ba/_0xdbf5ef[_0x441f4b(0xca4)])*_0xdbf5ef[_0x441f4b(0x3ef)];if(0x100*Math[_0x441f4b(0xb94)](_0x4ca7b0/0x100)==_0x4ca7b0){const _0x485620=this['_device'][_0x441f4b(0x545)]({}),_0x22fda0=this[_0x441f4b(0x6bf)][_0x441f4b(0x379)](_0x282da1['byteLength'],_0x2ebbf9['FB']['MapWrite']|_0x2ebbf9['FB']['CopySrc'],!0x0);_0xdbf5ef=_0x22fda0[_0x441f4b(0x988)](),(new Uint8Array(_0xdbf5ef)[_0x441f4b(0x970)](_0x282da1),_0x22fda0[_0x441f4b(0x76f)](),_0x485620[_0x441f4b(0xc97)]({'buffer':_0x22fda0,'offset':0x0,'bytesPerRow':_0x4ca7b0,'rowsPerImage':_0x2febec},_0x12d650,_0x4efdba),this['_device'][_0x441f4b(0x437)][_0x441f4b(0x189)]([_0x485620[_0x441f4b(0x7a6)]()]),this[_0x441f4b(0x6bf)]['releaseBuffer'](_0x22fda0));}else this[_0x441f4b(0x7b4)][_0x441f4b(0x437)]['writeTexture'](_0x12d650,_0x282da1,{'offset':0x0,'bytesPerRow':_0x4ca7b0,'rowsPerImage':_0x2febec},_0x4efdba);if(_0x3a23a4||_0x4acd6a){if(!_0x3337e0[_0x441f4b(0x8d1)](_0x4dc12f))throw'updateTexture:\x20Can\x27t\x20process\x20the\x20texture\x20data\x20because\x20a\x20GPUTexture\x20was\x20provided\x20instead\x20of\x20an\x20InternalTexture!';_0xdbf5ef=0x0===_0x3ad934&&0x0===_0x5c8397&&_0x1582ba===_0x4dc12f['width']&&_0x2febec===_0x4dc12f[_0x441f4b(0x43d)],this[_0x441f4b(0x728)](_0x332ce5,_0x4dc12f[_0x441f4b(0xca4)],_0x4dc12f['height'],_0x3fcd25,_0x3a23a4,_0x4acd6a,_0x1493bf,_0x5a72d1,_0x2c4b94||0x1,_0x3ad934,_0x5c8397,_0xdbf5ef?0x0:_0x1582ba,_0xdbf5ef?0x0:_0x2febec,void 0x0,_0x2499c6);}}else{if(_0x3a23a4){if(_0x12d650[_0x441f4b(0x605)]=!0x1,_0x3337e0['_IsInternalTexture'](_0x4dc12f)&&0x0===_0x3ad934&&0x0===_0x5c8397&&_0x1582ba===_0x4dc12f[_0x441f4b(0xca4)]&&_0x2febec===_0x4dc12f['height'])this[_0x441f4b(0x7b4)]['queue'][_0x441f4b(0x83e)]({'source':_0x282da1},_0x12d650,_0x4efdba),this[_0x441f4b(0x728)](_0x332ce5,_0x1582ba,_0x2febec,_0x3fcd25,_0x3a23a4,_0x4acd6a,_0x1493bf,_0x5a72d1,_0x2c4b94||0x1,0x0,0x0,0x0,0x0,void 0x0,_0x2499c6);else{const _0x5ae8fb=this['_device'][_0x441f4b(0x545)]({});_0x4ca7b0=this['createTexture']({'width':_0x1582ba,'height':_0x2febec,'layers':0x1},!0x1,!0x1,!0x1,!0x1,!0x1,_0x3fcd25,0x1,_0x5ae8fb,_0x2ebbf9['v2']['CopySrc']|_0x2ebbf9['v2'][_0x441f4b(0x452)],void 0x0,'TempTextureForUpdateTexture'),(this[_0x441f4b(0x3b4)][_0x441f4b(0x83f)]([_0x4ca7b0,null]),_0x4efdba[_0x441f4b(0x8a4)]=0x1,this['_device'][_0x441f4b(0x437)][_0x441f4b(0x83e)]({'source':_0x282da1},{'texture':_0x4ca7b0},_0x4efdba),_0x4efdba[_0x441f4b(0x8a4)]=_0x2c4b94||0x1,this['invertYPreMultiplyAlpha'](_0x4ca7b0,_0x1582ba,_0x2febec,_0x3fcd25,_0x3a23a4,_0x4acd6a,_0x1493bf,_0x5a72d1,_0x2c4b94||0x1,0x0,0x0,0x0,0x0,_0x5ae8fb,_0x2499c6),_0x5ae8fb['copyTextureToTexture']({'texture':_0x4ca7b0},_0x12d650,_0x4efdba),this[_0x441f4b(0x7b4)][_0x441f4b(0x437)][_0x441f4b(0x189)]([_0x5ae8fb['finish']()]));}}else this[_0x441f4b(0x7b4)]['queue'][_0x441f4b(0x83e)]({'source':_0x282da1},_0x12d650,_0x4efdba);}}['readPixels'](_0x355d5e,_0x40639d,_0x38c250,_0x4d0a64,_0x43d3aa,_0x2ba8e0,_0x1969be=0x0,_0x5dd26e=0x0,_0x682c4=null,_0x3e9280=!0x1){var _0x23e1dc=_0x3b57fe,_0x5e4bbb=_0x3337e0['_GetBlockInformationFromFormat'](_0x2ba8e0),_0x5e4bbb=Math[_0x23e1dc(0xb94)](_0x4d0a64/_0x5e4bbb[_0x23e1dc(0xca4)])*_0x5e4bbb['length'],_0x5acda2=0x100*Math[_0x23e1dc(0xb94)](_0x5e4bbb/0x100),_0x4b7fde=_0x5acda2*_0x43d3aa,_0x5ebe48=this['_bufferManager'][_0x23e1dc(0x379)](_0x4b7fde,_0x2ebbf9['FB'][_0x23e1dc(0x257)]|_0x2ebbf9['FB'][_0x23e1dc(0x7c6)]);const _0x26e459=this[_0x23e1dc(0x7b4)]['createCommandEncoder']({});return _0x26e459[_0x23e1dc(0x462)]({'texture':_0x355d5e,'mipLevel':_0x5dd26e,'origin':{'x':_0x40639d,'y':_0x38c250,'z':Math[_0x23e1dc(0x89f)](_0x1969be,0x0)}},{'buffer':_0x5ebe48,'offset':0x0,'bytesPerRow':_0x5acda2},{'width':_0x4d0a64,'height':_0x43d3aa,'depthOrArrayLayers':0x1}),this[_0x23e1dc(0x7b4)][_0x23e1dc(0x437)]['submit']([_0x26e459[_0x23e1dc(0x7a6)]()]),this['_bufferManager'][_0x23e1dc(0x170)](_0x5ebe48,_0x4b7fde,_0x4d0a64,_0x43d3aa,_0x5e4bbb,_0x5acda2,_0x3337e0[_0x23e1dc(0xb85)](_0x2ba8e0),0x0,_0x682c4,!0x0,_0x3e9280);}[_0x3b57fe(0xafd)](_0x2e3dff){var _0x1d3b0a=_0x3b57fe,_0x516f15,_0x45ac33;_0x3337e0[_0x1d3b0a(0x8d1)](_0x2e3dff)?(_0x516f15=_0x2e3dff[_0x1d3b0a(0xaf0)],_0x45ac33=_0x2e3dff[_0x1d3b0a(0x4dd)],this[_0x1d3b0a(0x3b4)][_0x1d3b0a(0x83f)]([_0x516f15,_0x45ac33])):this['_deferredReleaseTextures'][_0x1d3b0a(0x83f)]([_0x2e3dff,null]);}[_0x3b57fe(0x8d9)](){var _0x1a1e72=_0x3b57fe;for(let _0x5b4e1a=0x0;_0x5b4e1a<this[_0x1a1e72(0x3b4)][_0x1a1e72(0x3ef)];++_0x5b4e1a){const [_0x841759,_0x225aea]=this[_0x1a1e72(0x3b4)][_0x5b4e1a];_0x841759&&(_0x3337e0['_IsHardwareTexture'](_0x841759)?_0x841759['release']():_0x841759[_0x1a1e72(0x238)]()),null!==_0x225aea&&void 0x0!==_0x225aea&&_0x225aea['dispose']();}this['_deferredReleaseTextures'][_0x1a1e72(0x3ef)]=0x0;}}},0x17bd:(_0x1409b1,_0x4964ae,_0x360699)=>{var _0x3f5d6e=a6_0x1e64fa;_0x360699['d'](_0x4964ae,{'b':()=>_0x59d6f5});var _0x22929d=_0x360699(0x89a1),_0x2449af=_0x360699(0x360b),_0x125f54=_0x360699(0x16268);class _0x59d6f5{constructor(_0xdf9027,_0x17bf71){var _0x46a033=a6_0x2304;this[_0x46a033(0x747)]=!0x1,this['_gpuFrameTimeCounter']=new _0x2449af['z'](),this[_0x46a033(0x512)]=0x0,this['_device']=_0xdf9027,this[_0x46a033(0x6bf)]=_0x17bf71;}get[_0x3f5d6e(0x85b)](){var _0x536d16=_0x3f5d6e;return this[_0x536d16(0x994)];}get[_0x3f5d6e(0x508)](){var _0x2f2f45=_0x3f5d6e;return this[_0x2f2f45(0x747)];}set[_0x3f5d6e(0x508)](_0x3f4871){var _0x1d112c=_0x3f5d6e;this[_0x1d112c(0x747)]!==_0x3f4871&&(this[_0x1d112c(0x747)]=_0x3f4871,this[_0x1d112c(0x512)]=0x0,_0x3f4871?this[_0x1d112c(0x6b1)]=new _0x123e47(this['_device'],this['_bufferManager']):this[_0x1d112c(0x6b1)][_0x1d112c(0x431)]());}[_0x3f5d6e(0x53e)](_0x42bee0){var _0x254d8e=_0x3f5d6e;this[_0x254d8e(0x747)]&&0x0===this['_measureDurationState']&&(this[_0x254d8e(0x6b1)][_0x254d8e(0xc70)](_0x42bee0),this[_0x254d8e(0x512)]=0x1);}[_0x3f5d6e(0xc95)](_0x4aab31){var _0x1e0dba=_0x3f5d6e;0x1===this[_0x1e0dba(0x512)]&&(this[_0x1e0dba(0x512)]=0x2,this['_measureDuration'][_0x1e0dba(0xd18)](_0x4aab31)['then'](_0x4a12d3=>{var _0x500d19=_0x1e0dba;null!==_0x4a12d3&&0x0<=_0x4a12d3&&(this[_0x500d19(0x994)][_0x500d19(0xb1f)](),this[_0x500d19(0x994)][_0x500d19(0xb1b)](_0x4a12d3,!0x0)),this[_0x500d19(0x512)]=0x0;}));}}class _0x123e47{constructor(_0x3cb933,_0x223ac8){var _0x5484a6=_0x3f5d6e;this[_0x5484a6(0x15f)]=new _0x125f54['t'](0x2,_0x22929d['xL']['Timestamp'],_0x3cb933,_0x223ac8);}[_0x3f5d6e(0xc70)](_0xac6d88){var _0x11de49=_0x3f5d6e;_0xac6d88[_0x11de49(0x1f4)](this[_0x11de49(0x15f)][_0x11de49(0xd00)],0x0);}[_0x3f5d6e(0xd18)](_0x532f60){return _0x56ff56=this,_0x56b08d=function*(){var _0x57e63e=a6_0x2304;return _0x532f60[_0x57e63e(0x1f4)](this[_0x57e63e(0x15f)][_0x57e63e(0xd00)],0x1),this[_0x57e63e(0x15f)]['readTwoValuesAndSubtract'](0x0);},new(_0xfd7ad2=(_0xfd7ad2=_0x31211d=void 0x0)||Promise)(function(_0x4fbc71,_0x204045){var _0x454229=a6_0x2304;function _0x2bbf9c(_0x2586c6){var _0x36ff85=a6_0x2304;try{_0x2ea90f(_0x56b08d[_0x36ff85(0x54b)](_0x2586c6));}catch(_0x3cbac0){_0x204045(_0x3cbac0);}}function _0x375d5f(_0x457aa9){var _0x250f24=a6_0x2304;try{_0x2ea90f(_0x56b08d[_0x250f24(0x168)](_0x457aa9));}catch(_0x21028f){_0x204045(_0x21028f);}}function _0x2ea90f(_0x5b3a9a){var _0x4f511a=a6_0x2304,_0x5ddd30;_0x5b3a9a[_0x4f511a(0x7ed)]?_0x4fbc71(_0x5b3a9a['value']):((_0x5ddd30=_0x5b3a9a[_0x4f511a(0x5c5)])instanceof _0xfd7ad2?_0x5ddd30:new _0xfd7ad2(function(_0x5c1457){_0x5c1457(_0x5ddd30);}))[_0x4f511a(0xbb3)](_0x2bbf9c,_0x375d5f);}_0x2ea90f((_0x56b08d=_0x56b08d[_0x454229(0x7f9)](_0x56ff56,_0x31211d||[]))[_0x454229(0x54b)]());});var _0x56ff56,_0x31211d,_0xfd7ad2,_0x56b08d;}[_0x3f5d6e(0x431)](){var _0x405776=_0x3f5d6e;this[_0x405776(0x15f)][_0x405776(0x431)]();}}},0x1181f:(_0x11d4ac,_0xf3203a,_0x188009)=>{var _0x552904=a6_0x1e64fa;_0x188009['d'](_0xf3203a,{'o':()=>_0x3b8822});var _0xf3203a=_0x188009(0xa838),_0x2a8fec=_0x188009(0x1dad),_0x5aa152=_0x188009(0xbac7),_0x3db79d=_0x188009(0x13708),_0x44302d=_0x188009(0x58b),_0xf50311=_0x188009(0xf96c),_0x3a1e2a=_0x188009(0x9fd1),_0x2884da=_0x188009(0x15857);class _0x3b8822 extends _0xf3203a['Y']{constructor(_0x6bade2,_0x1c4cd1,_0x58879a,_0x57135a,_0x4eb2b4=null){var _0x5818bf=a6_0x2304;super(_0x6bade2,_0x57135a),this[_0x5818bf(0x162)]=_0x4eb2b4,this['_halfDome']=!0x1,this[_0x5818bf(0x973)]=!0x1,this[_0x5818bf(0x996)]=!0x1,this['_textureMode']=_0x3b8822[_0x5818bf(0x4a1)],this[_0x5818bf(0x9ba)]=null,this[_0x5818bf(0x4a4)]=new _0xf50311['y$'](),this[_0x5818bf(0x5f6)]=new _0xf50311['y$'](),_0x57135a=this[_0x5818bf(0x9fa)](),_0x6bade2=_0x6bade2||_0x5818bf(0x49b),_0x58879a[_0x5818bf(0xb1a)]=0x0|Math[_0x5818bf(0x11e)](_0x58879a[_0x5818bf(0xb1a)])||0x20,_0x58879a[_0x5818bf(0xd1f)]=Boolean(_0x58879a[_0x5818bf(0xd1f)]),_0x58879a[_0x5818bf(0x89a)]=void 0x0===_0x58879a[_0x5818bf(0x89a)]||Boolean(_0x58879a[_0x5818bf(0x89a)]),_0x58879a['loop']=void 0x0===_0x58879a['loop']||Boolean(_0x58879a[_0x5818bf(0x784)]),_0x58879a[_0x5818bf(0xc68)]=Math[_0x5818bf(0x11e)](_0x58879a[_0x5818bf(0xc68)])||(_0x57135a['activeCamera']?0.48*_0x57135a[_0x5818bf(0x7a3)][_0x5818bf(0x721)]:0x3e8),void 0x0===_0x58879a[_0x5818bf(0x9cc)]?this[_0x5818bf(0x996)]=!0x0:this[_0x5818bf(0x996)]=_0x58879a[_0x5818bf(0x9cc)],void 0x0===_0x58879a[_0x5818bf(0x11d)]&&(_0x58879a[_0x5818bf(0x11d)]=!0x0),this[_0x5818bf(0x6e1)](!0x1),_0x58879a[_0x5818bf(0xb87)]?this[_0x5818bf(0xa71)]=_0x58879a['mesh']:this[_0x5818bf(0xa71)]=(0x0,_0x44302d['Qk'])(_0x6bade2+_0x5818bf(0xa71),{'segments':_0x58879a[_0x5818bf(0xb1a)],'diameter':_0x58879a[_0x5818bf(0xc68)],'updatable':!0x1,'sideOrientation':_0x2a8fec['Kj'][_0x5818bf(0x45d)]},_0x57135a);const _0x128ff2=this[_0x5818bf(0x9ac)]=new _0x3db79d['I'](_0x6bade2+_0x5818bf(0x9ac),_0x57135a);_0x128ff2[_0x5818bf(0xa48)]=!0x0,_0x128ff2[_0x5818bf(0x81b)]=0x1,_0x128ff2[_0x5818bf(0x6a7)]=!0x1,_0x4eb2b4=this[_0x5818bf(0x4bf)](_0x1c4cd1,_0x57135a,_0x58879a);if(this[_0x5818bf(0x6f7)]=_0x4eb2b4,this[_0x5818bf(0xa71)][_0x5818bf(0x221)]=_0x128ff2,(this[_0x5818bf(0xa71)][_0x5818bf(0xca8)]=this)[_0x5818bf(0x775)]=(0x0,_0x44302d['Qk'])('',{'slice':0.5,'diameter':0.98*_0x58879a['size'],'segments':0x2*_0x58879a[_0x5818bf(0xb1a)],'sideOrientation':_0x2a8fec['Kj'][_0x5818bf(0x45d)]},_0x57135a),this['_halfDomeMask'][_0x5818bf(0x9a7)](_0x2884da['RD']['X'],-Math['PI']/0x2),this[_0x5818bf(0x775)][_0x5818bf(0xca8)]=this['_mesh'],this[_0x5818bf(0x48b)]=!!_0x58879a[_0x5818bf(0xac0)],this[_0x5818bf(0x775)][_0x5818bf(0x38c)](this[_0x5818bf(0x48b)]),this[_0x5818bf(0x973)]=!!_0x58879a[_0x5818bf(0x591)],this[_0x5818bf(0xa37)][_0x5818bf(0x65e)]=0x1,this[_0x5818bf(0xa37)][_0x5818bf(0x5f6)][_0x5818bf(0x8a8)](()=>{var _0x145771=_0x5818bf;this[_0x145771(0x6e1)](!0x0);}),_0x58879a[_0x5818bf(0x11d)]&&_0x57135a[_0x5818bf(0x7a3)]){const _0xb6dc2d=_0x57135a[_0x5818bf(0x7a3)];_0x6bade2=_0x3a1e2a['P'][_0x5818bf(0xccd)]();const _0x740b2a=_0x3a1e2a['P'][_0x5818bf(0xb8f)](_0x6bade2,_0xb6dc2d[_0x5818bf(0x5a2)]());_0x740b2a[_0x5818bf(0x9e5)](),this[_0x5818bf(0xc07)]['y']=Math[_0x5818bf(0x2ee)](_0x3a1e2a['P'][_0x5818bf(0x2bb)](_0x6bade2,_0x740b2a));}this['_changeTextureMode'](this[_0x5818bf(0x563)]);}get[_0x552904(0x6f7)](){var _0x4ddba1=_0x552904;return this[_0x4ddba1(0xa37)];}set[_0x552904(0x6f7)](_0x3d4d55){var _0x322f6b=_0x552904;this[_0x322f6b(0xa37)]!==_0x3d4d55&&(this[_0x322f6b(0xa37)]=_0x3d4d55,this['_useDirectMapping']?(this[_0x322f6b(0xa37)][_0x322f6b(0x332)]=_0x5aa152['x'][_0x322f6b(0x231)],this[_0x322f6b(0xa37)][_0x322f6b(0xc56)]=_0x5aa152['x'][_0x322f6b(0x231)],this['_material'][_0x322f6b(0xad6)]=this['_texture']):(this['_texture'][_0x322f6b(0x573)]=_0x5aa152['x'][_0x322f6b(0x87d)],this['_texture'][_0x322f6b(0xc56)]=_0x5aa152['x']['CLAMP_ADDRESSMODE'],this['_material'][_0x322f6b(0x9b7)]=this[_0x322f6b(0xa37)]),this['_changeTextureMode'](this[_0x322f6b(0x563)]));}get[_0x552904(0xb87)](){var _0x16d6f6=_0x552904;return this[_0x16d6f6(0xa71)];}get[_0x552904(0x81b)](){var _0x229caf=_0x552904;return this[_0x229caf(0x9ac)][_0x229caf(0x81b)];}set[_0x552904(0x81b)](_0x5386df){var _0xdb549d=_0x552904;this[_0xdb549d(0x9ac)][_0xdb549d(0x81b)]=_0x5386df;}get[_0x552904(0xaac)](){var _0x1e28f6=_0x552904;return this[_0x1e28f6(0x563)];}set[_0x552904(0xaac)](_0x44e693){var _0x37b470=_0x552904;this[_0x37b470(0x563)]!==_0x44e693&&this['_changeTextureMode'](_0x44e693);}get['halfDome'](){var _0x46969e=_0x552904;return this[_0x46969e(0x48b)];}set[_0x552904(0x5d6)](_0x1a7019){var _0x33db5d=_0x552904;this[_0x33db5d(0x48b)]=_0x1a7019,this['_halfDomeMask'][_0x33db5d(0x38c)](_0x1a7019),this[_0x33db5d(0x9dc)](this[_0x33db5d(0x563)]);}set['crossEye'](_0x46fc2f){var _0xbb4b4a=_0x552904;this[_0xbb4b4a(0x973)]=_0x46fc2f,this['_changeTextureMode'](this['_textureMode']);}get['crossEye'](){var _0x166eca=_0x552904;return this[_0x166eca(0x973)];}get['material'](){var _0x514cef=_0x552904;return this[_0x514cef(0x9ac)];}[_0x552904(0x9dc)](_0x4a6ac0){var _0x10c8ab=_0x552904;switch(this['_scene'][_0x10c8ab(0x173)][_0x10c8ab(0x36a)](this[_0x10c8ab(0x9ba)]),this['_textureMode']=_0x4a6ac0,this[_0x10c8ab(0xa37)][_0x10c8ab(0x68c)]=0x1,this[_0x10c8ab(0xa37)][_0x10c8ab(0x1be)]=0x1,this[_0x10c8ab(0xa37)][_0x10c8ab(0x420)]=0x0,this[_0x10c8ab(0xa37)][_0x10c8ab(0x4a9)]=0x0,this[_0x10c8ab(0xa37)][_0x10c8ab(0x602)]=0x0,_0x4a6ac0){case _0x3b8822['MODE_MONOSCOPIC']:this[_0x10c8ab(0x48b)]&&(this['_texture']['uScale']=0x2,this['_texture'][_0x10c8ab(0x420)]=-0x1);break;case _0x3b8822['MODE_SIDEBYSIDE']:{this[_0x10c8ab(0xa37)][_0x10c8ab(0x68c)]=this[_0x10c8ab(0x48b)]?0.99999:0.5;const _0x35a51a=this[_0x10c8ab(0x48b)]?0x0:0.5,_0x5e5f7a=this['_halfDome']?-0.5:0x0;this[_0x10c8ab(0x9ba)]=this[_0x10c8ab(0x19a)]['onBeforeCameraRenderObservable'][_0x10c8ab(0x526)](_0x522610=>{var _0x33ca26=_0x10c8ab;let _0x229f17=_0x522610[_0x33ca26(0x8af)];(_0x229f17=this[_0x33ca26(0x973)]?!_0x229f17:_0x229f17)?this[_0x33ca26(0xa37)][_0x33ca26(0x420)]=_0x35a51a:this[_0x33ca26(0xa37)][_0x33ca26(0x420)]=_0x5e5f7a;});break;}case _0x3b8822['MODE_TOPBOTTOM']:this[_0x10c8ab(0xa37)][_0x10c8ab(0x1be)]=this[_0x10c8ab(0x48b)]?0.99999:0.5,this[_0x10c8ab(0x9ba)]=this[_0x10c8ab(0x19a)][_0x10c8ab(0x173)][_0x10c8ab(0x526)](_0x893a0c=>{var _0x1f1bec=_0x10c8ab;let _0x5dfc58=_0x893a0c[_0x1f1bec(0x8af)];this[_0x1f1bec(0x973)]&&(_0x5dfc58=!_0x5dfc58),this[_0x1f1bec(0xa37)]['vOffset']=_0x5dfc58?0.5:0x0;});}}[_0x552904(0x431)](_0x517cda,_0x174ce8=!0x1){var _0x53597b=_0x552904;this[_0x53597b(0xa37)][_0x53597b(0x431)](),this[_0x53597b(0xa71)][_0x53597b(0x431)](),this[_0x53597b(0x9ac)][_0x53597b(0x431)](),this[_0x53597b(0x19a)][_0x53597b(0x173)]['remove'](this[_0x53597b(0x9ba)]),this[_0x53597b(0x4a4)][_0x53597b(0x6de)](),this[_0x53597b(0x5f6)][_0x53597b(0x6de)](),super[_0x53597b(0x431)](_0x517cda,_0x174ce8);}}_0x3b8822['MODE_MONOSCOPIC']=0x0,_0x3b8822[_0x552904(0x3ff)]=0x1,_0x3b8822['MODE_SIDEBYSIDE']=0x2;},0x231f:(_0xc850e3,_0x416898,_0x1d4631)=>{var _0x1fb556=a6_0x1e64fa;_0x1d4631['d'](_0x416898,{'$':()=>_0x33e67a});var _0x3d6865=_0x1d4631(0x1272b),_0x5b68e8=_0x1d4631(0x9927),_0x5eba95=_0x1d4631(0x364b),_0x2990d5=_0x1d4631(0x9fd1),_0x54fa63=_0x1d4631(0x77a5),_0x436051=_0x1d4631(0x2b0),_0x34cf3d=_0x1d4631(0x93b9),_0x30232d=_0x1d4631(0x16067),_0x3994e9=_0x1d4631(0xda41),_0x31d4f4=_0x1d4631(0xf8c1);class _0x58cb2f{constructor(){var _0x803247=a6_0x2304;this[_0x803247(0xaaa)]=!0x1,this[_0x803247(0x96a)]=!0x1,this[_0x803247(0xae2)]=!0x1,this[_0x803247(0xd23)]=!0x1;}get['singleClick'](){return this['_singleClick'];}get['doubleClick'](){var _0x93a63f=a6_0x2304;return this[_0x93a63f(0x96a)];}get[_0x1fb556(0xb19)](){var _0x2f7af1=_0x1fb556;return this[_0x2f7af1(0xae2)];}get['ignore'](){var _0x19b027=_0x1fb556;return this[_0x19b027(0xd23)];}set[_0x1fb556(0xa29)](_0x2e44b3){this['_singleClick']=_0x2e44b3;}set[_0x1fb556(0xa93)](_0x518479){var _0x4b4b53=_0x1fb556;this[_0x4b4b53(0x96a)]=_0x518479;}set[_0x1fb556(0xb19)](_0x1b9034){var _0x3a0c99=_0x1fb556;this[_0x3a0c99(0xae2)]=_0x1b9034;}set[_0x1fb556(0x559)](_0x4ff71d){var _0x1069ce=_0x1fb556;this[_0x1069ce(0xd23)]=_0x4ff71d;}}class _0x33e67a{constructor(_0x2095b0){var _0x2e40ec=_0x1fb556;this[_0x2e40ec(0xb6c)]=!0x1,this['_meshPickProceed']=!0x1,this[_0x2e40ec(0x2ed)]=null,this[_0x2e40ec(0xb2d)]=null,this[_0x2e40ec(0x74f)]=0x0,this[_0x2e40ec(0x5c8)]=!0x1,this['_isSwiping']=!0x1,this[_0x2e40ec(0x34d)]=-0x1,this[_0x2e40ec(0xc94)]=!0x1,this[_0x2e40ec(0x17e)]=!0x1,this['_pointerX']=0x0,this[_0x2e40ec(0x8cb)]=0x0,this[_0x2e40ec(0x436)]=new _0x2990d5['FM'](0x0,0x0),this['_previousStartingPointerPosition']=new _0x2990d5['FM'](0x0,0x0),this[_0x2e40ec(0x44f)]=0x0,this[_0x2e40ec(0x546)]=0x0,this[_0x2e40ec(0x188)]={},this[_0x2e40ec(0x2f3)]={},this[_0x2e40ec(0x273)]=null,this[_0x2e40ec(0x1cd)]=0x0,this[_0x2e40ec(0x901)]=[null,null,null,null,null],this[_0x2e40ec(0xa0a)]=null,this['_scene']=_0x2095b0||_0x31d4f4['l'][_0x2e40ec(0x232)],this[_0x2e40ec(0x19a)];}get['meshUnderPointer'](){var _0x38f3e5=_0x1fb556;return this[_0x38f3e5(0x273)]&&(this[_0x38f3e5(0x273)][_0x38f3e5(0xb6e)](),this[_0x38f3e5(0x273)]=null),this[_0x38f3e5(0x39e)];}[_0x1fb556(0x79d)](_0x504bd6){var _0x47f671=_0x1fb556;return this[_0x47f671(0x2f3)][_0x504bd6]||null;}get[_0x1fb556(0x6eb)](){return new _0x2990d5['FM'](this['_unTranslatedPointerX'],this['_unTranslatedPointerY']);}get[_0x1fb556(0x74d)](){var _0x928523=_0x1fb556;return this[_0x928523(0xa25)];}set[_0x1fb556(0x74d)](_0x2d2572){var _0x7d0e2e=_0x1fb556;this[_0x7d0e2e(0xa25)]=_0x2d2572;}get[_0x1fb556(0x1c8)](){var _0x8149e0=_0x1fb556;return this[_0x8149e0(0x8cb)];}set[_0x1fb556(0x1c8)](_0x100e95){var _0x1f8140=_0x1fb556;this[_0x1f8140(0x8cb)]=_0x100e95;}[_0x1fb556(0xbfc)](_0x2ea034){var _0x29492c=_0x1fb556,_0x4c9062=this[_0x29492c(0x19a)][_0x29492c(0xcde)]()[_0x29492c(0xbff)]();_0x4c9062&&(this[_0x29492c(0xa25)]=_0x2ea034['clientX']-_0x4c9062[_0x29492c(0x471)],this['_pointerY']=_0x2ea034[_0x29492c(0x3c0)]-_0x4c9062[_0x29492c(0x990)],this[_0x29492c(0x3e0)]=this[_0x29492c(0xa25)],this[_0x29492c(0x645)]=this[_0x29492c(0x8cb)]);}[_0x1fb556(0xca6)](_0x175053,_0x2ccdd6){var _0x4f39bb=_0x1fb556;const _0x5d5f87=this[_0x4f39bb(0x19a)],_0x56420b=_0x5d5f87['getEngine'](),_0x496517=_0x56420b[_0x4f39bb(0xb58)]();_0x496517&&(_0x496517['tabIndex']=_0x56420b[_0x4f39bb(0xd26)],_0x5d5f87[_0x4f39bb(0xac2)]||(_0x496517[_0x4f39bb(0xad5)][_0x4f39bb(0x741)]=_0x5d5f87[_0x4f39bb(0x1f0)])),this['_setCursorAndPointerOverMesh'](_0x175053,_0x2ccdd6,_0x5d5f87);for(const _0x53bb58 of _0x5d5f87[_0x4f39bb(0x164)]){var _0x543ff5=!(null==_0x175053||!_0x175053[_0x4f39bb(0x1a1)]);_0x175053=_0x53bb58[_0x4f39bb(0x90f)](this[_0x4f39bb(0x3e0)],this['_unTranslatedPointerY'],_0x175053,_0x543ff5,_0x496517);}var _0x413c85=_0x2ccdd6[_0x4f39bb(0xb16)]>=_0x30232d['Fz'][_0x4f39bb(0x942)]&&_0x2ccdd6[_0x4f39bb(0xb16)]<=_0x30232d['Fz'][_0x4f39bb(0xc92)]?_0x3d6865['kD'][_0x4f39bb(0x318)]:_0x3d6865['kD']['POINTERMOVE'];_0x5d5f87[_0x4f39bb(0xb7c)]&&(_0x175053=_0x175053||this[_0x4f39bb(0x7a8)](_0x2ccdd6),_0x5d5f87[_0x4f39bb(0xb7c)](_0x2ccdd6,_0x175053,_0x413c85));let _0x4da4d8;_0x175053?(_0x4da4d8=new _0x3d6865['R5'](_0x413c85,_0x2ccdd6,_0x175053),this[_0x4f39bb(0x52c)](_0x175053,_0x2ccdd6)):(_0x4da4d8=new _0x3d6865['R5'](_0x413c85,_0x2ccdd6,null,this),this['_movePointerInfo']=_0x4da4d8),_0x5d5f87[_0x4f39bb(0xc44)][_0x4f39bb(0x445)]()&&_0x5d5f87[_0x4f39bb(0xc44)][_0x4f39bb(0xac3)](_0x4da4d8,_0x413c85);}[_0x1fb556(0x52c)](_0x39f87e,_0x2657a5){var _0x4aa05a=_0x1fb556;const _0x1a86c8=this[_0x4aa05a(0x19a)];_0x39f87e&&_0x1a86c8['_pickingAvailable']&&(_0x39f87e[_0x4aa05a(0x5cf)]||(_0x39f87e[_0x4aa05a(0x5cf)]=_0x1a86c8[_0x4aa05a(0x9b9)](_0x2657a5['offsetX'],_0x2657a5[_0x4aa05a(0x774)],_0x2990d5['y3']['Identity'](),_0x1a86c8[_0x4aa05a(0x7a3)])));}[_0x1fb556(0x683)](_0x633374,_0x442e2c){var _0x212c56=_0x1fb556;return this['_cameraObserverCount']++,this[_0x212c56(0x19a)][_0x212c56(0xc44)][_0x212c56(0x526)](_0x633374,_0x442e2c);}[_0x1fb556(0xcce)](_0x38cd6a){var _0x172246=_0x1fb556;return this[_0x172246(0x1cd)]--,this[_0x172246(0x19a)]['onPointerObservable'][_0x172246(0x36a)](_0x38cd6a);}[_0x1fb556(0x287)](){var _0x5a9f6e=_0x1fb556;return!!(this['_scene'][_0x5a9f6e(0xc44)]['observers'][_0x5a9f6e(0x3ef)]>this[_0x5a9f6e(0x1cd)]||this[_0x5a9f6e(0x19a)][_0x5a9f6e(0x5bf)]);}[_0x1fb556(0x749)](_0x2ad77e,_0x4bcfc7,_0x4b6461){var _0x42cc6b=_0x1fb556;const _0x3a54c7=this[_0x42cc6b(0x19a)],_0x278dee=new _0x3d6865['FV'](_0x4b6461,_0x4bcfc7,this['_unTranslatedPointerX'],this[_0x42cc6b(0x645)]);return _0x2ad77e&&(_0x278dee[_0x42cc6b(0xcfa)]=_0x2ad77e,_0x278dee[_0x42cc6b(0x5cf)]=_0x2ad77e[_0x42cc6b(0x5cf)],_0x2ad77e['originMesh']&&(_0x278dee['nearInteractionPickingInfo']=_0x2ad77e)),_0x3a54c7[_0x42cc6b(0x211)]['notifyObservers'](_0x278dee,_0x4b6461),!!_0x278dee[_0x42cc6b(0x88c)];}[_0x1fb556(0x7a8)](_0x39240f){var _0x4b6961=_0x1fb556;const _0x263253=this[_0x4b6961(0x19a)];var _0x411606=_0x263253[_0x4b6961(0xba2)](this['_unTranslatedPointerX'],this[_0x4b6961(0x645)],_0x263253[_0x4b6961(0x7c9)],!0x1,_0x263253[_0x4b6961(0xa02)],_0x263253['pointerMoveTrianglePredicate']);return this[_0x4b6961(0x47f)](_0x411606,_0x39240f,_0x263253),_0x411606;}['_setCursorAndPointerOverMesh'](_0x1eadf7,_0x35e02f,_0x3ff78f){var _0x517e02=_0x1fb556;const _0xacd162=_0x3ff78f[_0x517e02(0xcde)](),_0x1b0387=_0xacd162['getInputElement']();var _0xe1582c;null!=_0x1eadf7&&_0x1eadf7[_0x517e02(0x1a1)]?(this[_0x517e02(0x872)](_0x1eadf7[_0x517e02(0x1a1)],_0x35e02f['pointerId'],_0x1eadf7,_0x35e02f),!_0x3ff78f[_0x517e02(0xac2)]&&_0x1b0387&&this[_0x517e02(0x39e)]&&(_0xe1582c=this[_0x517e02(0x39e)][_0x517e02(0xa27)]())&&_0xe1582c[_0x517e02(0xc12)]&&(_0x1b0387['style'][_0x517e02(0x741)]=_0xe1582c[_0x517e02(0xbb6)]||_0x3ff78f[_0x517e02(0xbb6)])):this[_0x517e02(0x872)](null,_0x35e02f[_0x517e02(0xcef)],_0x1eadf7,_0x35e02f);}['simulatePointerMove'](_0x1945f0,_0x44c144){var _0x3822cb=_0x1fb556;const _0x3c2710=new PointerEvent(_0x3822cb(0xc25),_0x44c144);_0x3c2710[_0x3822cb(0xb16)]=_0x30232d['Fz']['Move'],this[_0x3822cb(0x749)](_0x1945f0,_0x3c2710,_0x3d6865['kD']['POINTERMOVE'])||this[_0x3822cb(0xca6)](_0x1945f0,_0x3c2710);}[_0x1fb556(0x99d)](_0x281509,_0x5024e1){var _0x106a88=_0x1fb556;const _0x3fd0c7=new PointerEvent('pointerdown',_0x5024e1);_0x3fd0c7[_0x106a88(0xb16)]=_0x3fd0c7['button']+0x2,this[_0x106a88(0x749)](_0x281509,_0x3fd0c7,_0x3d6865['kD'][_0x106a88(0x48e)])||this[_0x106a88(0xa08)](_0x281509,_0x3fd0c7);}[_0x1fb556(0xa08)](_0x1267d2,_0x5a5658){var _0x2cb2c8=_0x1fb556;const _0x2aed6c=this[_0x2cb2c8(0x19a)];if(null!=_0x1267d2&&_0x1267d2[_0x2cb2c8(0x1a1)]){this[_0x2cb2c8(0x383)]=_0x1267d2[_0x2cb2c8(0x1a1)];const _0x219b44=_0x1267d2[_0x2cb2c8(0x1a1)][_0x2cb2c8(0xa27)]();if(_0x219b44){if(_0x219b44[_0x2cb2c8(0xb25)])switch(_0x219b44[_0x2cb2c8(0x6ae)](_0x54fa63['g'][_0x2cb2c8(0x743)],_0x436051['V'][_0x2cb2c8(0xcdc)](_0x1267d2[_0x2cb2c8(0x1a1)],_0x5a5658)),_0x5a5658[_0x2cb2c8(0x14b)]){case 0x0:_0x219b44[_0x2cb2c8(0x6ae)](_0x54fa63['g'][_0x2cb2c8(0x2ae)],_0x436051['V'][_0x2cb2c8(0xcdc)](_0x1267d2['pickedMesh'],_0x5a5658));break;case 0x1:_0x219b44[_0x2cb2c8(0x6ae)](_0x54fa63['g']['ACTION_OnCenterPickTrigger'],_0x436051['V']['CreateNew'](_0x1267d2[_0x2cb2c8(0x1a1)],_0x5a5658));break;case 0x2:_0x219b44[_0x2cb2c8(0x6ae)](_0x54fa63['g'][_0x2cb2c8(0x5ee)],_0x436051['V'][_0x2cb2c8(0xcdc)](_0x1267d2['pickedMesh'],_0x5a5658));}_0x219b44[_0x2cb2c8(0x957)](_0x54fa63['g'][_0x2cb2c8(0x612)])&&window[_0x2cb2c8(0xb13)](()=>{var _0x332d5f=_0x2cb2c8,_0x216008=_0x2aed6c[_0x332d5f(0xba2)](this[_0x332d5f(0x3e0)],this['_unTranslatedPointerY'],_0x2a9544=>_0x2a9544['isPickable']&&_0x2a9544[_0x332d5f(0x2d1)]&&_0x2a9544[_0x332d5f(0x5ac)]()&&_0x2a9544[_0x332d5f(0xb4d)]&&_0x2a9544[_0x332d5f(0xb4d)][_0x332d5f(0x957)](_0x54fa63['g'][_0x332d5f(0x612)])&&_0x2a9544===this[_0x332d5f(0x383)],!0x1,_0x2aed6c[_0x332d5f(0xa02)]);null!=_0x216008&&_0x216008[_0x332d5f(0x1a1)]&&_0x219b44&&0x0!==this[_0x332d5f(0x74f)]&&Date[_0x332d5f(0xd0c)]()-this[_0x332d5f(0x44f)]>_0x33e67a[_0x332d5f(0xcc2)]&&!this[_0x332d5f(0x1bf)]()&&(this[_0x332d5f(0x44f)]=0x0,_0x219b44['processTrigger'](_0x54fa63['g']['ACTION_OnLongPressTrigger'],_0x436051['V']['CreateNew'](_0x216008[_0x332d5f(0x1a1)],_0x5a5658)));},_0x33e67a[_0x2cb2c8(0xcc2)]);}}else{for(const _0x27c980 of _0x2aed6c['_pointerDownStage'])_0x1267d2=_0x27c980['action'](this[_0x2cb2c8(0x3e0)],this[_0x2cb2c8(0x645)],_0x1267d2,_0x5a5658,!0x1);}let _0x5ee9b3;var _0x37c632=_0x3d6865['kD'][_0x2cb2c8(0x48e)];_0x1267d2?(_0x2aed6c[_0x2cb2c8(0x596)]&&_0x2aed6c[_0x2cb2c8(0x596)](_0x5a5658,_0x1267d2,_0x37c632),_0x5ee9b3=new _0x3d6865['R5'](_0x37c632,_0x5a5658,_0x1267d2),this[_0x2cb2c8(0x52c)](_0x1267d2,_0x5a5658)):_0x5ee9b3=new _0x3d6865['R5'](_0x37c632,_0x5a5658,null,this),_0x2aed6c[_0x2cb2c8(0xc44)][_0x2cb2c8(0x445)]()&&_0x2aed6c[_0x2cb2c8(0xc44)][_0x2cb2c8(0xac3)](_0x5ee9b3,_0x37c632);}[_0x1fb556(0x1bf)](){return this['_isSwiping'];}[_0x1fb556(0x703)](_0x4bbd1c,_0x5e24cb,_0x1a2a10){var _0x4ad50d=_0x1fb556;const _0x42a3e6=new PointerEvent(_0x4ad50d(0xb24),_0x5e24cb),_0x4ff2e5=(_0x42a3e6[_0x4ad50d(0xb16)]=_0x30232d['Fz'][_0x4ad50d(0xb4f)],new _0x58cb2f());_0x1a2a10?_0x4ff2e5['doubleClick']=!0x0:_0x4ff2e5['singleClick']=!0x0,this['_checkPrePointerObservable'](_0x4bbd1c,_0x42a3e6,_0x3d6865['kD'][_0x4ad50d(0x2c7)])||this[_0x4ad50d(0x7cf)](_0x4bbd1c,_0x42a3e6,_0x4ff2e5);}[_0x1fb556(0x7cf)](_0x115fff,_0x4b0daf,_0x543c1e){var _0x1961d9=_0x1fb556;const _0x57ccea=this[_0x1961d9(0x19a)];if(null!=_0x115fff&&_0x115fff[_0x1961d9(0x1a1)]){this[_0x1961d9(0xae6)]=_0x115fff['pickedMesh'],this[_0x1961d9(0x383)]===this[_0x1961d9(0xae6)]&&(_0x57ccea['onPointerPick']&&_0x57ccea['onPointerPick'](_0x4b0daf,_0x115fff),_0x543c1e[_0x1961d9(0xa29)]&&!_0x543c1e['ignore']&&_0x57ccea[_0x1961d9(0xc44)][_0x1961d9(0x7e8)][_0x1961d9(0x3ef)]>this[_0x1961d9(0x1cd)]&&(_0x689df7=_0x3d6865['kD'][_0x1961d9(0x705)],_0x40fbe7=new _0x3d6865['R5'](_0x689df7,_0x4b0daf,_0x115fff),this['_setRayOnPointerInfo'](_0x115fff,_0x4b0daf),_0x57ccea['onPointerObservable']['notifyObservers'](_0x40fbe7,_0x689df7)));const _0x545d50=_0x115fff[_0x1961d9(0x1a1)]['_getActionManagerForTrigger']();if(_0x545d50&&!_0x543c1e['ignore']){_0x545d50[_0x1961d9(0x6ae)](_0x54fa63['g'][_0x1961d9(0xae1)],_0x436051['V'][_0x1961d9(0xcdc)](_0x115fff[_0x1961d9(0x1a1)],_0x4b0daf,_0x115fff)),!_0x543c1e[_0x1961d9(0xb19)]&&_0x543c1e[_0x1961d9(0xa29)]&&_0x545d50[_0x1961d9(0x6ae)](_0x54fa63['g'][_0x1961d9(0x759)],_0x436051['V'][_0x1961d9(0xcdc)](_0x115fff[_0x1961d9(0x1a1)],_0x4b0daf,_0x115fff));const _0x237dfd=_0x115fff[_0x1961d9(0x1a1)][_0x1961d9(0xa27)](_0x54fa63['g'][_0x1961d9(0x5db)]);_0x543c1e[_0x1961d9(0xa93)]&&_0x237dfd&&_0x237dfd['processTrigger'](_0x54fa63['g'][_0x1961d9(0x5db)],_0x436051['V'][_0x1961d9(0xcdc)](_0x115fff[_0x1961d9(0x1a1)],_0x4b0daf,_0x115fff));}}else{if(!_0x543c1e[_0x1961d9(0x559)]){for(const _0x20ee35 of _0x57ccea['_pointerUpStage'])_0x115fff=_0x20ee35[_0x1961d9(0x90f)](this[_0x1961d9(0x3e0)],this['_unTranslatedPointerY'],_0x115fff,_0x4b0daf,_0x543c1e['doubleClick']);}}if(this[_0x1961d9(0x383)]&&this[_0x1961d9(0x383)]!==this[_0x1961d9(0xae6)]){const _0x30c706=this['_pickedDownMesh'][_0x1961d9(0xa27)](_0x54fa63['g'][_0x1961d9(0x3e4)]);_0x30c706&&_0x30c706[_0x1961d9(0x6ae)](_0x54fa63['g'][_0x1961d9(0x3e4)],_0x436051['V'][_0x1961d9(0xcdc)](this[_0x1961d9(0x383)],_0x4b0daf));}if(!_0x543c1e[_0x1961d9(0x559)]){var _0x689df7,_0x40fbe7=new _0x3d6865['R5'](_0x3d6865['kD']['POINTERUP'],_0x4b0daf,_0x115fff);if(this[_0x1961d9(0x52c)](_0x115fff,_0x4b0daf),_0x57ccea['onPointerObservable'][_0x1961d9(0xac3)](_0x40fbe7,_0x3d6865['kD']['POINTERUP']),_0x57ccea[_0x1961d9(0x425)]&&_0x57ccea[_0x1961d9(0x425)](_0x4b0daf,_0x115fff,_0x3d6865['kD'][_0x1961d9(0x2c7)]),!_0x543c1e[_0x1961d9(0xb19)]&&!this[_0x1961d9(0xc94)]&&!this[_0x1961d9(0x17e)]){let _0x2d7587=0x0;_0x543c1e[_0x1961d9(0xa29)]?_0x2d7587=_0x3d6865['kD']['POINTERTAP']:_0x543c1e[_0x1961d9(0xa93)]&&(_0x2d7587=_0x3d6865['kD'][_0x1961d9(0xa66)]),_0x2d7587&&(_0x689df7=new _0x3d6865['R5'](_0x2d7587,_0x4b0daf,_0x115fff),_0x57ccea[_0x1961d9(0xc44)][_0x1961d9(0x445)]()&&_0x57ccea[_0x1961d9(0xc44)][_0x1961d9(0x9c6)](_0x2d7587)&&_0x57ccea[_0x1961d9(0xc44)][_0x1961d9(0xac3)](_0x689df7,_0x2d7587));}}}[_0x1fb556(0x24c)](_0x4bb629=0x0){var _0x5a8f79=_0x1fb556;return this[_0x5a8f79(0x188)][_0x4bb629];}[_0x1fb556(0x905)](_0x9b4a83=!0x0,_0x1b6f5f=!0x0,_0x2124e5=!0x0,_0x45b5be=null){var _0xac1094=_0x1fb556;const _0x4ee6c6=this[_0xac1094(0x19a)],_0x3e10d4=_0x4ee6c6[_0xac1094(0xcde)]();_0x45b5be=_0x45b5be||_0x3e10d4[_0xac1094(0xb58)](),this[_0xac1094(0xb6c)]&&this[_0xac1094(0xa20)](),_0x45b5be&&(this[_0xac1094(0x9cb)]=_0x45b5be),this[_0xac1094(0xa0a)]=new _0x3994e9['U'](_0x3e10d4),this['_initActionManager']=_0x4e127f=>{var _0x5c3b1f=_0xac1094;if(!this[_0x5c3b1f(0x499)]){const _0x444a65=_0x4ee6c6[_0x5c3b1f(0x8b8)]||0x0===_0x4ee6c6['_registeredActions']&&!this[_0x5c3b1f(0x287)]()&&!_0x4ee6c6['onPointerUp']?null:_0x4ee6c6[_0x5c3b1f(0xba2)](this['_unTranslatedPointerX'],this['_unTranslatedPointerY'],_0x4ee6c6[_0x5c3b1f(0x3af)],!0x1,_0x4ee6c6['cameraToUseForPointers']);(this[_0x5c3b1f(0x2ed)]=_0x444a65)&&(_0x4e127f=_0x444a65[_0x5c3b1f(0x7a2)]&&_0x444a65[_0x5c3b1f(0x1a1)]?_0x444a65['pickedMesh'][_0x5c3b1f(0xa27)]():null),this[_0x5c3b1f(0x499)]=!0x0;}return _0x4e127f;},this[_0xac1094(0x33c)]=(_0x2261d8,_0x6729d9,_0x58c14e)=>{var _0x5a29b6=_0xac1094,_0x259323;(Date['now']()-this[_0x5a29b6(0x546)]>_0x33e67a['DoubleClickDelay']&&!this['_doubleClickOccured']||_0x2261d8!==this[_0x5a29b6(0x4b1)])&&(this[_0x5a29b6(0x5c8)]=!0x1,_0x6729d9[_0x5a29b6(0xa29)]=!0x0,_0x6729d9['ignore']=!0x1,this[_0x5a29b6(0x901)][_0x2261d8]&&(_0x6729d9=this[_0x5a29b6(0x901)][_0x2261d8]['evt'],_0x259323=_0x3d6865['kD'][_0x5a29b6(0x62d)],_0x6729d9=new _0x3d6865['R5'](_0x259323,_0x6729d9,this[_0x5a29b6(0x2ed)]),_0x4ee6c6['onPointerObservable'][_0x5a29b6(0x445)]()&&_0x4ee6c6[_0x5a29b6(0xc44)][_0x5a29b6(0x9c6)](_0x259323)&&_0x4ee6c6['onPointerObservable'][_0x5a29b6(0xac3)](_0x6729d9,_0x259323),this[_0x5a29b6(0x901)][_0x2261d8]=null));},this[_0xac1094(0xa57)]=(_0x31b19a,_0x6720b7,_0x5972a7,_0x1efa6a)=>{var _0x2fabfa=_0xac1094;const _0x22a9cc=new _0x58cb2f();let _0x545a4b=this[_0x2fabfa(0x2ed)]=null,_0x4c3f8c=_0x31b19a['hasSpecificMask'](_0x3d6865['kD'][_0x2fabfa(0x705)])||_0x6720b7['hasSpecificMask'](_0x3d6865['kD'][_0x2fabfa(0x705)])||_0x31b19a[_0x2fabfa(0x9c6)](_0x3d6865['kD'][_0x2fabfa(0x62d)])||_0x6720b7[_0x2fabfa(0x9c6)](_0x3d6865['kD']['POINTERTAP'])||_0x31b19a[_0x2fabfa(0x9c6)](_0x3d6865['kD'][_0x2fabfa(0xa66)])||_0x6720b7[_0x2fabfa(0x9c6)](_0x3d6865['kD']['POINTERDOUBLETAP']),_0x1eaeb0=!0x1;if(_0x4c3f8c=!_0x4c3f8c&&_0x5b68e8['O']&&(_0x545a4b=this['_initActionManager'](_0x545a4b,_0x22a9cc))?_0x545a4b['hasPickTriggers']:_0x4c3f8c){var _0xadbd24=_0x5972a7[_0x2fabfa(0x14b)];if(_0x22a9cc[_0x2fabfa(0xb19)]=this[_0x2fabfa(0x1bf)](),!_0x22a9cc[_0x2fabfa(0xb19)]){let _0x3886dd=!_0x33e67a[_0x2fabfa(0x3e9)],_0x12306b=(_0x3886dd||(_0x3886dd=!_0x31b19a[_0x2fabfa(0x9c6)](_0x3d6865['kD'][_0x2fabfa(0xa66)])&&!_0x6720b7[_0x2fabfa(0x9c6)](_0x3d6865['kD']['POINTERDOUBLETAP']))&&!_0x5b68e8['O']['HasSpecificTrigger'](_0x54fa63['g'][_0x2fabfa(0x5db)])&&(_0x545a4b=this[_0x2fabfa(0x1aa)](_0x545a4b,_0x22a9cc))&&(_0x3886dd=!_0x545a4b[_0x2fabfa(0x957)](_0x54fa63['g'][_0x2fabfa(0x5db)])),_0x3886dd?(Date[_0x2fabfa(0xd0c)]()-this[_0x2fabfa(0x546)]>_0x33e67a[_0x2fabfa(0x35b)]||_0xadbd24!==this[_0x2fabfa(0x4b1)])&&(_0x22a9cc[_0x2fabfa(0xa29)]=!0x0,_0x1efa6a(_0x22a9cc,this[_0x2fabfa(0x2ed)]),_0x1eaeb0=!0x0):(_0x5972a7={'evt':_0x5972a7,'clickInfo':_0x22a9cc,'timeoutId':window[_0x2fabfa(0xb13)](this[_0x2fabfa(0x33c)][_0x2fabfa(0x853)](this,_0xadbd24,_0x22a9cc,_0x1efa6a),_0x33e67a[_0x2fabfa(0x35b)])},this['_delayedClicks'][_0xadbd24]=_0x5972a7),_0x31b19a['hasSpecificMask'](_0x3d6865['kD'][_0x2fabfa(0xa66)])||_0x6720b7[_0x2fabfa(0x9c6)](_0x3d6865['kD']['POINTERDOUBLETAP']));(_0x12306b=!_0x12306b&&_0x5b68e8['O'][_0x2fabfa(0x3b5)](_0x54fa63['g']['ACTION_OnDoublePickTrigger'])&&(_0x545a4b=this[_0x2fabfa(0x1aa)](_0x545a4b,_0x22a9cc))?_0x545a4b[_0x2fabfa(0x957)](_0x54fa63['g'][_0x2fabfa(0x5db)]):_0x12306b)&&(_0xadbd24===this['_previousButtonPressed']&&Date['now']()-this[_0x2fabfa(0x546)]<_0x33e67a[_0x2fabfa(0x35b)]&&!this['_doubleClickOccured']?(_0x22a9cc[_0x2fabfa(0xb19)]||this[_0x2fabfa(0x1bf)]()?(this[_0x2fabfa(0x5c8)]=!0x1,this[_0x2fabfa(0x546)]=this['_startingPointerTime'],this[_0x2fabfa(0x2d4)]['x']=this[_0x2fabfa(0x436)]['x'],this[_0x2fabfa(0x2d4)]['y']=this[_0x2fabfa(0x436)]['y'],this[_0x2fabfa(0x4b1)]=_0xadbd24,_0x33e67a[_0x2fabfa(0x3e9)]?(this['_delayedClicks'][_0xadbd24]&&(clearTimeout(null==(_0x5972a7=this[_0x2fabfa(0x901)][_0xadbd24])?void 0x0:_0x5972a7[_0x2fabfa(0xa91)]),this[_0x2fabfa(0x901)][_0xadbd24]=null),_0x1efa6a(_0x22a9cc,this[_0x2fabfa(0xb2d)])):_0x1efa6a(_0x22a9cc,this[_0x2fabfa(0x2ed)])):(this[_0x2fabfa(0x546)]=0x0,this[_0x2fabfa(0x5c8)]=!0x0,_0x22a9cc[_0x2fabfa(0xa93)]=!0x0,_0x22a9cc[_0x2fabfa(0x559)]=!0x1,_0x33e67a[_0x2fabfa(0x3e9)]&&this[_0x2fabfa(0x901)][_0xadbd24]&&(clearTimeout(null==(_0x31b19a=this[_0x2fabfa(0x901)][_0xadbd24])?void 0x0:_0x31b19a[_0x2fabfa(0xa91)]),this[_0x2fabfa(0x901)][_0xadbd24]=null),_0x1efa6a(_0x22a9cc,this[_0x2fabfa(0x2ed)])),_0x1eaeb0=!0x0):(this['_doubleClickOccured']=!0x1,this[_0x2fabfa(0x546)]=this[_0x2fabfa(0x44f)],this[_0x2fabfa(0x2d4)]['x']=this[_0x2fabfa(0x436)]['x'],this['_previousStartingPointerPosition']['y']=this['_startingPointerPosition']['y'],this['_previousButtonPressed']=_0xadbd24));}}_0x1eaeb0||_0x1efa6a(_0x22a9cc,this['_currentPickResult']);},this[_0xac1094(0x803)]=_0x29114d=>{var _0x5e6f5a=_0xac1094,_0x5706b5;this[_0x5e6f5a(0xbfc)](_0x29114d),this[_0x5e6f5a(0x40f)]||-0x1===this[_0x5e6f5a(0x34d)]||(this[_0x5e6f5a(0x40f)]=Math[_0x5e6f5a(0x11e)](this[_0x5e6f5a(0x436)]['x']-this[_0x5e6f5a(0xa25)])>_0x33e67a[_0x5e6f5a(0x351)]||Math['abs'](this[_0x5e6f5a(0x436)]['y']-this[_0x5e6f5a(0x8cb)])>_0x33e67a['DragMovementThreshold']),_0x3e10d4['isPointerLock']&&_0x3e10d4[_0x5e6f5a(0x624)](),this[_0x5e6f5a(0x749)](null,_0x29114d,_0x29114d['inputIndex']>=_0x30232d['Fz']['MouseWheelX']&&_0x29114d['inputIndex']<=_0x30232d['Fz']['MouseWheelZ']?_0x3d6865['kD'][_0x5e6f5a(0x318)]:_0x3d6865['kD'][_0x5e6f5a(0xa06)])||(_0x4ee6c6[_0x5e6f5a(0xa02)]||_0x4ee6c6[_0x5e6f5a(0x7a3)])&&(_0x4ee6c6['skipPointerMovePicking']?this[_0x5e6f5a(0xca6)](new _0x5eba95['p'](),_0x29114d):(_0x4ee6c6['pointerMovePredicate']||(_0x4ee6c6[_0x5e6f5a(0x7c9)]=_0x1cc61a=>_0x1cc61a[_0x5e6f5a(0x14c)]&&_0x1cc61a[_0x5e6f5a(0x2d1)]&&_0x1cc61a['isReady']()&&_0x1cc61a[_0x5e6f5a(0xa9e)]()&&(_0x1cc61a['enablePointerMoveEvents']||_0x4ee6c6[_0x5e6f5a(0x9af)]||null!==_0x1cc61a['_getActionManagerForTrigger']())&&(!_0x4ee6c6['cameraToUseForPointers']||0x0!=(_0x4ee6c6[_0x5e6f5a(0xa02)]['layerMask']&_0x1cc61a['layerMask']))),_0x5706b5=0x0<_0x4ee6c6[_0x5e6f5a(0x567)]?this[_0x5e6f5a(0x7a8)](_0x29114d):null,this['_processPointerMove'](_0x5706b5,_0x29114d)));},this[_0xac1094(0x965)]=_0x20a511=>{var _0x2c9dfc=_0xac1094,_0x368cc0;if(this[_0x2c9dfc(0x74f)]++,this['_pickedDownMesh']=null,this[_0x2c9dfc(0x499)]=!0x1,_0x33e67a[_0x2c9dfc(0x3e9)]){for(let _0x1d1831=0x0;_0x1d1831<this[_0x2c9dfc(0x901)]['length'];_0x1d1831++)if(this[_0x2c9dfc(0x901)][_0x1d1831]){if(_0x20a511[_0x2c9dfc(0x14b)]===_0x1d1831)clearTimeout(null==(_0x1aabe4=this[_0x2c9dfc(0x901)][_0x1d1831])?void 0x0:_0x1aabe4[_0x2c9dfc(0xa91)]);else{const _0xbe5be6=this[_0x2c9dfc(0x901)][_0x1d1831][_0x2c9dfc(0x3f6)];this[_0x2c9dfc(0x5c8)]=!0x1,_0xbe5be6[_0x2c9dfc(0xa29)]=!0x0,_0xbe5be6['ignore']=!0x1;var _0x1aabe4=this[_0x2c9dfc(0x901)][_0x1d1831][_0x2c9dfc(0x7c7)],_0x6c18ab=_0x3d6865['kD'][_0x2c9dfc(0x62d)],_0x441cc0=new _0x3d6865['R5'](_0x6c18ab,_0x1aabe4,this[_0x2c9dfc(0x2ed)]);_0x4ee6c6[_0x2c9dfc(0xc44)][_0x2c9dfc(0x445)]()&&_0x4ee6c6[_0x2c9dfc(0xc44)][_0x2c9dfc(0x9c6)](_0x6c18ab)&&_0x4ee6c6['onPointerObservable'][_0x2c9dfc(0xac3)](_0x441cc0,_0x6c18ab),this[_0x2c9dfc(0x901)][_0x1d1831]=null;}}}this['_updatePointerPosition'](_0x20a511),-0x1===this[_0x2c9dfc(0x34d)]&&(this[_0x2c9dfc(0x34d)]=_0x20a511['button']),_0x4ee6c6[_0x2c9dfc(0x954)]&&_0x45b5be&&(_0x20a511[_0x2c9dfc(0xd15)](),_0x45b5be[_0x2c9dfc(0x767)]()),this[_0x2c9dfc(0x436)]['x']=this['_pointerX'],this[_0x2c9dfc(0x436)]['y']=this['_pointerY'],this['_startingPointerTime']=Date['now'](),this['_checkPrePointerObservable'](null,_0x20a511,_0x3d6865['kD']['POINTERDOWN'])||!_0x4ee6c6[_0x2c9dfc(0xa02)]&&!_0x4ee6c6['activeCamera']||(this[_0x2c9dfc(0x188)][_0x20a511['pointerId']]=!0x0,_0x4ee6c6[_0x2c9dfc(0x3fd)]||(_0x4ee6c6[_0x2c9dfc(0x3fd)]=_0x3f9e30=>_0x3f9e30['isPickable']&&_0x3f9e30['isVisible']&&_0x3f9e30['isReady']()&&_0x3f9e30[_0x2c9dfc(0xa9e)]()&&(!_0x4ee6c6[_0x2c9dfc(0xa02)]||0x0!=(_0x4ee6c6[_0x2c9dfc(0xa02)][_0x2c9dfc(0x34e)]&_0x3f9e30[_0x2c9dfc(0x34e)]))),this[_0x2c9dfc(0x383)]=null,_0x368cc0=_0x4ee6c6['skipPointerDownPicking']||0x0===_0x4ee6c6['_registeredActions']&&!this[_0x2c9dfc(0x287)]()&&!_0x4ee6c6[_0x2c9dfc(0x596)]?new _0x5eba95['p']():_0x4ee6c6[_0x2c9dfc(0xba2)](this[_0x2c9dfc(0x3e0)],this[_0x2c9dfc(0x645)],_0x4ee6c6[_0x2c9dfc(0x3fd)],!0x1,_0x4ee6c6[_0x2c9dfc(0xa02)]),this[_0x2c9dfc(0xa08)](_0x368cc0,_0x20a511));},this[_0xac1094(0xb39)]=_0x676523=>{var _0x44d408=_0xac1094;0x0!==this['_totalPointersPressed']&&(this[_0x44d408(0x74f)]--,this[_0x44d408(0xae6)]=null,this[_0x44d408(0x499)]=!0x1,this[_0x44d408(0xbfc)](_0x676523),_0x4ee6c6[_0x44d408(0x133)]&&_0x45b5be&&(_0x676523[_0x44d408(0xd15)](),_0x45b5be[_0x44d408(0x767)]()),this[_0x44d408(0xa57)](_0x4ee6c6[_0x44d408(0x211)],_0x4ee6c6[_0x44d408(0xc44)],_0x676523,(_0x3953ee,_0x210d82)=>{var _0x176c40=_0x44d408;if(_0x4ee6c6['onPrePointerObservable']['hasObservers']()&&(this['_skipPointerTap']=!0x1,!_0x3953ee[_0x176c40(0x559)])){if(this[_0x176c40(0x749)](null,_0x676523,_0x3d6865['kD'][_0x176c40(0x2c7)]))return void(this[_0x176c40(0x34d)]===_0x676523[_0x176c40(0x14b)]&&(this[_0x176c40(0x40f)]=!0x1,this[_0x176c40(0x34d)]=-0x1));_0x3953ee[_0x176c40(0xb19)]||(_0x3953ee[_0x176c40(0xa29)]&&_0x4ee6c6[_0x176c40(0x211)]['hasSpecificMask'](_0x3d6865['kD'][_0x176c40(0x62d)])&&this['_checkPrePointerObservable'](null,_0x676523,_0x3d6865['kD'][_0x176c40(0x62d)])&&(this[_0x176c40(0xc94)]=!0x0),_0x3953ee[_0x176c40(0xa93)]&&_0x4ee6c6['onPrePointerObservable'][_0x176c40(0x9c6)](_0x3d6865['kD'][_0x176c40(0xa66)])&&this[_0x176c40(0x749)](null,_0x676523,_0x3d6865['kD'][_0x176c40(0xa66)])&&(this[_0x176c40(0xc94)]=!0x0));}this[_0x176c40(0x188)][_0x676523[_0x176c40(0xcef)]]?(0x0===_0x676523['buttons']&&(this[_0x176c40(0x188)][_0x676523['pointerId']]=!0x1),(_0x4ee6c6['cameraToUseForPointers']||_0x4ee6c6[_0x176c40(0x7a3)])&&(_0x4ee6c6[_0x176c40(0x3af)]||(_0x4ee6c6[_0x176c40(0x3af)]=_0x18532c=>_0x18532c[_0x176c40(0x14c)]&&_0x18532c[_0x176c40(0x2d1)]&&_0x18532c[_0x176c40(0x5ac)]()&&_0x18532c['isEnabled']()&&(!_0x4ee6c6[_0x176c40(0xa02)]||0x0!=(_0x4ee6c6[_0x176c40(0xa02)][_0x176c40(0x34e)]&_0x18532c[_0x176c40(0x34e)]))),!this[_0x176c40(0x499)]&&(_0x5b68e8['O']&&_0x5b68e8['O'][_0x176c40(0x63d)]||this[_0x176c40(0x287)]()||_0x4ee6c6[_0x176c40(0x425)])&&this[_0x176c40(0x1aa)](null,_0x3953ee),_0x210d82=_0x210d82||this['_currentPickResult'],this[_0x176c40(0x7cf)](_0x210d82,_0x676523,_0x3953ee),this[_0x176c40(0xb2d)]=this[_0x176c40(0x2ed)],this[_0x176c40(0x34d)]===_0x676523[_0x176c40(0x14b)]&&(this[_0x176c40(0x40f)]=!0x1,this[_0x176c40(0x34d)]=-0x1))):this[_0x176c40(0x34d)]===_0x676523[_0x176c40(0x14b)]&&(this[_0x176c40(0x40f)]=!0x1,this[_0x176c40(0x34d)]=-0x1);}));},this['_onKeyDown']=_0x4a6cd7=>{var _0x3e9b4a=_0xac1094,_0x1d368d=_0x34cf3d['OG'][_0x3e9b4a(0xbf9)];if(_0x4ee6c6[_0x3e9b4a(0x4e8)][_0x3e9b4a(0x445)]()){var _0x6dcb2d=new _0x34cf3d['WZ'](_0x1d368d,_0x4a6cd7);if(_0x4ee6c6[_0x3e9b4a(0x4e8)][_0x3e9b4a(0xac3)](_0x6dcb2d,_0x1d368d),_0x6dcb2d['skipOnKeyboardObservable'])return;}_0x4ee6c6[_0x3e9b4a(0xb09)]['hasObservers']()&&(_0x6dcb2d=new _0x34cf3d['NG'](_0x1d368d,_0x4a6cd7),_0x4ee6c6[_0x3e9b4a(0xb09)][_0x3e9b4a(0xac3)](_0x6dcb2d,_0x1d368d)),_0x4ee6c6['actionManager']&&_0x4ee6c6[_0x3e9b4a(0xb4d)]['processTrigger'](_0x54fa63['g'][_0x3e9b4a(0x821)],_0x436051['V'][_0x3e9b4a(0x4d5)](_0x4ee6c6,_0x4a6cd7));},this[_0xac1094(0x1a3)]=_0x3d529a=>{var _0x4ffd32=_0xac1094,_0x3304c9=_0x34cf3d['OG']['KEYUP'];if(_0x4ee6c6[_0x4ffd32(0x4e8)][_0x4ffd32(0x445)]()){var _0x467f7c=new _0x34cf3d['WZ'](_0x3304c9,_0x3d529a);if(_0x4ee6c6[_0x4ffd32(0x4e8)][_0x4ffd32(0xac3)](_0x467f7c,_0x3304c9),_0x467f7c[_0x4ffd32(0x533)])return;}_0x4ee6c6[_0x4ffd32(0xb09)]['hasObservers']()&&(_0x467f7c=new _0x34cf3d['NG'](_0x3304c9,_0x3d529a),_0x4ee6c6['onKeyboardObservable'][_0x4ffd32(0xac3)](_0x467f7c,_0x3304c9)),_0x4ee6c6[_0x4ffd32(0xb4d)]&&_0x4ee6c6[_0x4ffd32(0xb4d)][_0x4ffd32(0x6ae)](_0x54fa63['g']['ACTION_OnKeyUpTrigger'],_0x436051['V']['CreateNewFromScene'](_0x4ee6c6,_0x3d529a));},this[_0xac1094(0xa0a)][_0xac1094(0x6d1)][_0xac1094(0x526)](_0x3631f2=>{var _0x745a2=_0xac1094;_0x3631f2['deviceType']===_0x30232d['Yi']['Mouse']?_0x3631f2[_0x745a2(0x60a)][_0x745a2(0x526)](_0x1d0f10=>{var _0x508400=_0x745a2;_0x1d0f10['inputIndex']===_0x30232d['Fz'][_0x508400(0xacf)]||_0x1d0f10[_0x508400(0xb16)]===_0x30232d['Fz'][_0x508400(0x11c)]||_0x1d0f10[_0x508400(0xb16)]===_0x30232d['Fz'][_0x508400(0x864)]||_0x1d0f10['inputIndex']===_0x30232d['Fz'][_0x508400(0x6cd)]||_0x1d0f10[_0x508400(0xb16)]===_0x30232d['Fz'][_0x508400(0x681)]?_0x1b6f5f&&0x1===_0x3631f2['getInput'](_0x1d0f10['inputIndex'])?this[_0x508400(0x965)](_0x1d0f10):_0x9b4a83&&0x0===_0x3631f2[_0x508400(0x8d2)](_0x1d0f10[_0x508400(0xb16)])&&this['_onPointerUp'](_0x1d0f10):!_0x2124e5||_0x1d0f10[_0x508400(0xb16)]!==_0x30232d['Fz'][_0x508400(0xb4f)]&&_0x1d0f10[_0x508400(0xb16)]!==_0x30232d['Fz']['MouseWheelX']&&_0x1d0f10[_0x508400(0xb16)]!==_0x30232d['Fz']['MouseWheelY']&&_0x1d0f10[_0x508400(0xb16)]!==_0x30232d['Fz'][_0x508400(0xc92)]||this['_onPointerMove'](_0x1d0f10);}):_0x3631f2['deviceType']===_0x30232d['Yi'][_0x745a2(0x38f)]?_0x3631f2[_0x745a2(0x60a)][_0x745a2(0x526)](_0x14b8d6=>{var _0x2f2708=_0x745a2;_0x14b8d6[_0x2f2708(0xb16)]===_0x30232d['Fz'][_0x2f2708(0xacf)]&&(_0x1b6f5f&&0x1===_0x3631f2[_0x2f2708(0x8d2)](_0x14b8d6['inputIndex'])?(this[_0x2f2708(0x965)](_0x14b8d6),0x1<this[_0x2f2708(0x74f)]&&(this['_isMultiTouchGesture']=!0x0)):_0x9b4a83&&0x0===_0x3631f2[_0x2f2708(0x8d2)](_0x14b8d6['inputIndex'])&&(this[_0x2f2708(0xb39)](_0x14b8d6),0x0===this['_totalPointersPressed']&&(this['_isMultiTouchGesture']=!0x1))),_0x2124e5&&_0x14b8d6[_0x2f2708(0xb16)]===_0x30232d['Fz']['Move']&&this[_0x2f2708(0x803)](_0x14b8d6);}):_0x3631f2['deviceType']===_0x30232d['Yi']['Keyboard']&&_0x3631f2[_0x745a2(0x60a)][_0x745a2(0x526)](_0x24b4a4=>{var _0x2967d2=_0x745a2;_0x2967d2(0x72e)===_0x24b4a4['type']?this[_0x2967d2(0x90e)](_0x24b4a4):'keyup'===_0x24b4a4[_0x2967d2(0x5da)]&&this[_0x2967d2(0x1a3)](_0x24b4a4);});}),this[_0xac1094(0xb6c)]=!0x0;}[_0x1fb556(0xa20)](){var _0x1b6523=_0x1fb556;this['_alreadyAttached']&&(this['_deviceSourceManager'][_0x1b6523(0x431)](),this['_deviceSourceManager']=null,this[_0x1b6523(0x9cb)]&&!this[_0x1b6523(0x19a)]['doNotHandleCursors']&&(this['_alreadyAttachedTo'][_0x1b6523(0xad5)]['cursor']=this[_0x1b6523(0x19a)][_0x1b6523(0x1f0)]),this[_0x1b6523(0xb6c)]=!0x1,this['_alreadyAttachedTo']=null);}[_0x1fb556(0x872)](_0x36536f,_0x259efe=0x0,_0x1d86ff,_0x350ec6){var _0x5e04a0=_0x1fb556;if(this[_0x5e04a0(0x2f3)][_0x259efe]!==_0x36536f||_0x36536f&&_0x36536f['_internalAbstractMeshDataInfo'][_0x5e04a0(0x167)]){const _0x55fd7a=this['_meshUnderPointerId'][_0x259efe];let _0x58a0ab;_0x55fd7a&&(_0x58a0ab=_0x55fd7a[_0x5e04a0(0xa27)](_0x54fa63['g']['ACTION_OnPointerOutTrigger']))&&_0x58a0ab[_0x5e04a0(0x6ae)](_0x54fa63['g']['ACTION_OnPointerOutTrigger'],_0x436051['V'][_0x5e04a0(0xcdc)](_0x55fd7a,_0x350ec6,{'pointerId':_0x259efe})),_0x36536f?(this[_0x5e04a0(0x2f3)][_0x259efe]=_0x36536f,this[_0x5e04a0(0x39e)]=_0x36536f,(_0x58a0ab=_0x36536f[_0x5e04a0(0xa27)](_0x54fa63['g'][_0x5e04a0(0x78b)]))&&_0x58a0ab[_0x5e04a0(0x6ae)](_0x54fa63['g'][_0x5e04a0(0x78b)],_0x436051['V']['CreateNew'](_0x36536f,_0x350ec6,{'pointerId':_0x259efe,'pickResult':_0x1d86ff}))):(delete this[_0x5e04a0(0x2f3)][_0x259efe],this['_pointerOverMesh']=null);}}[_0x1fb556(0xa0d)](){var _0x472df1=_0x1fb556;return this[_0x472df1(0xce3)];}[_0x1fb556(0x81c)](_0x31f659){var _0x4f150e=_0x1fb556;this['_pointerOverMesh']===_0x31f659&&(this[_0x4f150e(0x39e)]=null),this[_0x4f150e(0x383)]===_0x31f659&&(this[_0x4f150e(0x383)]=null),this['_pickedUpMesh']===_0x31f659&&(this[_0x4f150e(0xae6)]=null);for(const _0x141a69 in this[_0x4f150e(0x2f3)])this[_0x4f150e(0x2f3)][_0x141a69]===_0x31f659&&delete this[_0x4f150e(0x2f3)][_0x141a69];}}_0x33e67a[_0x1fb556(0x351)]=0xa,_0x33e67a[_0x1fb556(0xcc2)]=0x1f4,_0x33e67a['DoubleClickDelay']=0x12c,_0x33e67a['ExclusiveDoubleClickMode']=!0x1;},0x11fc5:(_0x37efbe,_0x339fea,_0x3a9d0f)=>{_0x3a9d0f['d'](_0x339fea,{'W':()=>_0x4e29b2});class _0x4e29b2{constructor(){var _0x216989=a6_0x2304;this[_0x216989(0x391)]=!0x1;}}},0x72fb:(_0x2fa892,_0x325130,_0x5b9600)=>{var _0x15339c=a6_0x1e64fa;_0x5b9600['d'](_0x325130,{'m':()=>_0x3be858});class _0x3be858{static[_0x15339c(0x88f)](_0x58bfae,_0x515e8f){var _0x102dad=_0x15339c;return _0x58bfae['shadowEnabled']!==_0x515e8f[_0x102dad(0x874)]?(_0x515e8f['shadowEnabled']?0x1:0x0)-(_0x58bfae['shadowEnabled']?0x1:0x0):_0x515e8f[_0x102dad(0xab5)]-_0x58bfae[_0x102dad(0xab5)];}}_0x3be858[_0x15339c(0x648)]=0x0,_0x3be858[_0x15339c(0x752)]=0x1,_0x3be858[_0x15339c(0x241)]=0x2,_0x3be858[_0x15339c(0x12b)]=0x3,_0x3be858[_0x15339c(0x85a)]=0x0,_0x3be858[_0x15339c(0x2a0)]=0x1,_0x3be858['LIGHTMAP_SHADOWSONLY']=0x2,_0x3be858[_0x15339c(0x7eb)]=0x0,_0x3be858[_0x15339c(0x868)]=0x1,_0x3be858['INTENSITYMODE_LUMINOUSINTENSITY']=0x2,_0x3be858['INTENSITYMODE_ILLUMINANCE']=0x3,_0x3be858[_0x15339c(0x5b0)]=0x4,_0x3be858['LIGHTTYPEID_POINTLIGHT']=0x0,_0x3be858[_0x15339c(0xd2a)]=0x1,_0x3be858[_0x15339c(0x6c6)]=0x2,_0x3be858[_0x15339c(0x38e)]=0x3;},0xdd81:(_0x1c3e88,_0x41802e,_0x25b73b)=>{var _0x3688b5=a6_0x1e64fa,_0x22bdf5=_0x25b73b(0x17a92);_0x25b73b(0x175b0),_0x25b73b(0xe6c7),_0x25b73b(0x15fb5),_0x25b73b(0x1f57),_0x25b73b(0x1f85),_0x25b73b(0xff1b),_0x25b73b(0x12a16),_0x25b73b(0x3328),_0x25b73b(0x6318),_0x25b73b(0xb0bc),_0x25b73b(0x10ef),_0x25b73b(0x17ef8),_0x22bdf5['v'][_0x3688b5(0xcd6)][_0x3688b5(0x5b4)]=_0x3688b5(0xb83);},0x6953:(_0x597ad9,_0x1b3641,_0x297868)=>{var _0x21cb0c=a6_0x1e64fa,_0xb99b48=_0x297868(0x17a92);_0x297868(0x13f9a),_0x297868(0x12929),_0x297868(0x12bc6),_0x297868(0x13216),_0x297868(0x6a99),_0x297868(0xe6c7),_0x297868(0x15fb5),_0x297868(0x733d),_0x297868(0xb434),_0x297868(0xdcea),_0x297868(0x6efd),_0x297868(0x9871),_0x297868(0x6e75),_0x297868(0xedb9),_0xb99b48['v'][_0x21cb0c(0xcd6)][_0x21cb0c(0x4bc)]='precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0auniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vDiffuseInfos.x==0.)\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));\x0a}\x0aelse\x0a{\x0avDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a';},0x2c85:(_0x20845f,_0x487d26,_0x3dd37d)=>{var _0x138fd8=a6_0x1e64fa,_0x51e50d=_0x3dd37d(0x17a92);_0x3dd37d(0xff1b),_0x3dd37d(0x12a16),_0x3dd37d(0x3328),_0x3dd37d(0x6318),_0x3dd37d(0x10ef),_0x3dd37d(0x17ef8),_0x51e50d['v'][_0x138fd8(0xcd6)][_0x138fd8(0x86d)]=_0x138fd8(0xa1c);},0x16f95:(_0x1a9532,_0x1b6854,_0x1ad0b5)=>{var _0x346228=a6_0x1e64fa,_0x22de85=_0x1ad0b5(0x17a92);_0x1ad0b5(0x13f9a),_0x1ad0b5(0x12929),_0x1ad0b5(0x12bc6),_0x1ad0b5(0x13216),_0x1ad0b5(0x6a99),_0x1ad0b5(0x733d),_0x1ad0b5(0xb434),_0x1ad0b5(0xdcea),_0x1ad0b5(0x6efd),_0x1ad0b5(0x9871),_0x1ad0b5(0xedb9),_0x22de85['v'][_0x346228(0xcd6)][_0x346228(0xd24)]=_0x346228(0x520);},0x10367:(_0x9eb75d,_0x2e83ab,_0x589862)=>{var _0x309f82=a6_0x1e64fa,_0x19811b=_0x589862(0x17a92);_0x589862(0x175b0),_0x589862(0xe6c7),_0x589862(0x15fb5),_0x589862(0x1f57),_0x589862(0x1f85),_0x589862(0x12a16),_0x589862(0xff1b),_0x589862(0x3328),_0x589862(0x6318),_0x589862(0xb0bc),_0x589862(0x10ef),_0x589862(0x17ef8),_0x19811b['v'][_0x309f82(0xcd6)]['furPixelShader']='precision\x20highp\x20float;uniform\x20vec4\x20vEyePosition;uniform\x20vec4\x20vDiffuseColor;uniform\x20vec4\x20furColor;uniform\x20float\x20furLength;varying\x20vec3\x20vPositionW;varying\x20float\x20vfur_length;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;uniform\x20sampler2D\x20diffuseSampler;uniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20HIGHLEVEL\x0auniform\x20float\x20furOffset;uniform\x20float\x20furOcclusion;uniform\x20sampler2D\x20furTexture;varying\x20vec2\x20vFurUV;\x0a#endif\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<fogFragmentDeclaration>\x0a#include<clipPlaneFragmentDeclaration>\x0afloat\x20Rand(vec3\x20rv)\x20{float\x20x=dot(rv,vec3(12.9898,78.233,24.65487));return\x20fract(sin(x)*43758.5453);}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4\x20baseColor=furColor;vec3\x20diffuseColor=vDiffuseColor.rgb;float\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20DIFFUSE\x0abaseColor*=texture2D(diffuseSampler,vDiffuseUV);\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20HIGHLEVEL\x0avec4\x20furTextureColor=texture2D(furTexture,vec2(vFurUV.x,vFurUV.y));if\x20(furTextureColor.a<=0.0\x20||\x20furTextureColor.g<furOffset)\x20{discard;}\x0afloat\x20occlusion=mix(0.0,furTextureColor.b*1.2,furOffset);baseColor=vec4(baseColor.xyz*max(occlusion,furOcclusion),1.1-furOffset);\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);lightingInfo\x20info;float\x20shadow=1.;float\x20glossiness=0.;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase.rgb*baseColor.rgb,0.0,1.0);\x0a#ifdef\x20HIGHLEVEL\x0avec4\x20color=vec4(finalDiffuse,alpha);\x0a#else\x0afloat\x20r=vfur_length/furLength*0.5;vec4\x20color=vec4(finalDiffuse*(0.5+r),alpha);\x0a#endif\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}';},0xe461:(_0x1af4bb,_0x453104,_0x39bb08)=>{var _0x3b3b3c=a6_0x1e64fa,_0x5247db=_0x39bb08(0x17a92);_0x39bb08(0x13f9a),_0x39bb08(0x12929),_0x39bb08(0x12bc6),_0x39bb08(0x13216),_0x39bb08(0x6a99),_0x39bb08(0xe6c7),_0x39bb08(0x15fb5),_0x39bb08(0x733d),_0x39bb08(0xb434),_0x39bb08(0xdcea),_0x39bb08(0x6efd),_0x39bb08(0x9871),_0x39bb08(0x6e75),_0x39bb08(0xedb9),_0x5247db['v'][_0x3b3b3c(0xcd6)][_0x3b3b3c(0xc5d)]='precision\x20highp\x20float;attribute\x20vec3\x20position;attribute\x20vec3\x20normal;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0auniform\x20float\x20furLength;uniform\x20float\x20furAngle;\x0a#ifdef\x20HIGHLEVEL\x0auniform\x20float\x20furOffset;uniform\x20vec3\x20furGravity;uniform\x20float\x20furTime;uniform\x20float\x20furSpacing;uniform\x20float\x20furDensity;\x0a#endif\x0a#ifdef\x20HEIGHTMAP\x0auniform\x20sampler2D\x20heightTexture;\x0a#endif\x0a#ifdef\x20HIGHLEVEL\x0avarying\x20vec2\x20vFurUV;\x0a#endif\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;uniform\x20mat4\x20diffuseMatrix;uniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0avarying\x20float\x20vfur_length;\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0afloat\x20Rand(vec3\x20rv)\x20{float\x20x=dot(rv,vec3(12.9898,78.233,24.65487));return\x20fract(sin(x)*43758.5453);}\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0afloat\x20r=Rand(position);\x0a#ifdef\x20HEIGHTMAP\x0a#if\x20__VERSION__>100\x0avfur_length=furLength*texture(heightTexture,uv).x;\x0a#else\x0avfur_length=furLength*texture2D(heightTexture,uv).r;\x0a#endif\x0a#else\x20\x0avfur_length=(furLength*r);\x0a#endif\x0avec3\x20tangent1=vec3(normal.y,-normal.x,0);vec3\x20tangent2=vec3(-normal.z,0,normal.x);r=Rand(tangent1*r);float\x20J=(2.0+4.0*r);r=Rand(tangent2*r);float\x20K=(2.0+2.0*r);tangent1=tangent1*J+tangent2*K;tangent1=normalize(tangent1);vec3\x20newPosition=position+normal*vfur_length*cos(furAngle)+tangent1*vfur_length*sin(furAngle);\x0a#ifdef\x20HIGHLEVEL\x0avec3\x20forceDirection=vec3(0.0,0.0,0.0);forceDirection.x=sin(furTime+position.x*0.05)*0.2;forceDirection.y=cos(furTime*0.7+position.y*0.04)*0.2;forceDirection.z=sin(furTime*0.7+position.z*0.04)*0.2;vec3\x20displacement=vec3(0.0,0.0,0.0);displacement=furGravity+forceDirection;float\x20displacementFactor=pow(furOffset,3.0);vec3\x20aNormal=normal;aNormal.xyz+=displacement*displacementFactor;newPosition=vec3(newPosition.x,newPosition.y,newPosition.z)+(normalize(aNormal)*furOffset*furSpacing);\x0a#endif\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0agl_Position=viewProjection*finalWorld*vec4(newPosition,1.0);vec4\x20worldPos=finalWorld*vec4(newPosition,1.0);vPositionW=vec3(worldPos);\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vDiffuseInfos.x==0.)\x0a{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}\x0aelse\x0a{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}\x0a#ifdef\x20HIGHLEVEL\x0avFurUV=vDiffuseUV*furDensity;\x0a#endif\x0a#else\x0a#ifdef\x20HIGHLEVEL\x0avFurUV=uv*furDensity;\x0a#endif\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a';},0xbd74:(_0x4fa077,_0x4e7fc9,_0x25d096)=>{var _0x4748f0=a6_0x1e64fa,_0x20e5f6=_0x25d096(0x17a92);_0x25d096(0x175b0),_0x25d096(0xe6c7),_0x25d096(0x15fb5),_0x25d096(0x1f57),_0x25d096(0x1f85),_0x25d096(0xff1b),_0x25d096(0x12a16),_0x25d096(0x3328),_0x25d096(0x6318),_0x25d096(0xb0bc),_0x25d096(0x10ef),_0x25d096(0x17ef8),_0x20e5f6['v'][_0x4748f0(0xcd6)][_0x4748f0(0xce2)]=_0x4748f0(0xba0);},0x4a05:(_0x4a91c1,_0x322510,_0x24dc6f)=>{var _0x3f23a6=_0x24dc6f(0x17a92);_0x24dc6f(0x13f9a),_0x24dc6f(0x12929),_0x24dc6f(0x12bc6),_0x24dc6f(0x13216),_0x24dc6f(0x6a99),_0x24dc6f(0xe6c7),_0x24dc6f(0x15fb5),_0x24dc6f(0x733d),_0x24dc6f(0xb434),_0x24dc6f(0xdcea),_0x24dc6f(0x6efd),_0x24dc6f(0x9871),_0x24dc6f(0x6e75),_0x24dc6f(0xedb9),_0x3f23a6['v']['ShadersStore']['gradientVertexShader']='precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0avarying\x20vec3\x20vPosition;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0agl_Position=viewProjection*worldPos;\x0avPositionW=vec3(worldPos);\x0avPosition=position;\x0a#ifdef\x20NORMAL\x0avNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}\x0a';},0x1072f:(_0x28b6ea,_0x5a2570,_0x19bfff)=>{var _0x38d4b6=a6_0x1e64fa,_0x55f02d=_0x19bfff(0x17a92);_0x19bfff(0x12a16),_0x19bfff(0x10ef),_0x19bfff(0x17ef8),_0x55f02d['v'][_0x38d4b6(0xcd6)][_0x38d4b6(0x950)]=_0x38d4b6(0x515);},0x5442:(_0x22e326,_0x9109ba,_0x5f029d)=>{var _0x3aa740=a6_0x1e64fa,_0x16c050=_0x5f029d(0x17a92);_0x5f029d(0x12bc6),_0x5f029d(0x6a99),_0x5f029d(0x733d),_0x5f029d(0x9871),_0x16c050['v'][_0x3aa740(0xcd6)][_0x3aa740(0xa4d)]='precision\x20highp\x20float;\x0aattribute\x20vec3\x20position;\x0aattribute\x20vec3\x20normal;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20projection;\x0auniform\x20mat4\x20view;\x0avarying\x20vec3\x20vPosition;\x0avarying\x20vec3\x20vNormal;\x0a#include<fogVertexDeclaration>\x0a#ifdef\x20OPACITY\x0avarying\x20vec2\x20vOpacityUV;\x0auniform\x20mat4\x20opacityMatrix;\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0a#include<fogVertex>\x0avec4\x20cameraSpacePosition=view*worldPos;\x0agl_Position=projection*cameraSpacePosition;\x0a#ifdef\x20OPACITY\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0aif\x20(vOpacityInfos.x==0.)\x0a{\x0avOpacityUV=vec2(opacityMatrix*vec4(uv,1.0,0.0));\x0a}\x0aelse\x0a{\x0avOpacityUV=vec2(opacityMatrix*vec4(uv2,1.0,0.0));\x0a}\x0a#endif\x20\x0avPosition=position;\x0avNormal=normal;\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}';},0x36d3:(_0x55674f,_0xf8231d,_0x21d6cc)=>{var _0x3bdba3=a6_0x1e64fa,_0x45e496=_0x21d6cc(0x17a92);_0x21d6cc(0x175b0),_0x21d6cc(0xe6c7),_0x21d6cc(0x15fb5),_0x21d6cc(0x1f57),_0x21d6cc(0x1f85),_0x21d6cc(0xff1b),_0x21d6cc(0x12a16),_0x21d6cc(0x3328),_0x21d6cc(0x6318),_0x21d6cc(0xb0bc),_0x21d6cc(0x10ef),_0x21d6cc(0x17ef8),_0x45e496['v'][_0x3bdba3(0xcd6)][_0x3bdba3(0x554)]='precision\x20highp\x20float;uniform\x20vec4\x20vEyePosition;uniform\x20vec4\x20vDiffuseColor;varying\x20vec3\x20vPositionW;uniform\x20float\x20time;uniform\x20float\x20speed;uniform\x20float\x20movingSpeed;uniform\x20vec3\x20fogColor;uniform\x20sampler2D\x20noiseTexture;uniform\x20float\x20fogDensity;varying\x20float\x20noise;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0]\x0a#include<__decl__lightFragment>[1]\x0a#include<__decl__lightFragment>[2]\x0a#include<__decl__lightFragment>[3]\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;uniform\x20sampler2D\x20diffuseSampler;uniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0afloat\x20random(\x20vec3\x20scale,float\x20seed\x20){return\x20fract(\x20sin(\x20dot(\x20gl_FragCoord.xyz+seed,scale\x20)\x20)*43758.5453+seed\x20)\x20;}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4\x20baseColor=vec4(1.,1.,1.,1.);vec3\x20diffuseColor=vDiffuseColor.rgb;float\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20DIFFUSE\x0avec4\x20noiseTex=texture2D(\x20noiseTexture,vDiffuseUV\x20);vec2\x20T1=vDiffuseUV+vec2(\x201.5,-1.5\x20)*time\x20*0.02;vec2\x20T2=vDiffuseUV+vec2(\x20-0.5,2.0\x20)*time*0.01*speed;T1.x+=noiseTex.x*2.0;T1.y+=noiseTex.y*2.0;T2.x-=noiseTex.y*0.2+time*0.001*movingSpeed;T2.y+=noiseTex.z*0.2+time*0.002*movingSpeed;float\x20p=texture2D(\x20noiseTexture,T1*3.0\x20).a;vec4\x20lavaColor=texture2D(\x20diffuseSampler,T2*4.0);vec4\x20temp=lavaColor*(\x20vec4(\x20p,p,p,p\x20)*2.\x20)+(\x20lavaColor*lavaColor-0.1\x20);baseColor=temp;float\x20depth=gl_FragCoord.z*4.0;const\x20float\x20LOG2=1.442695;float\x20fogFactor=exp2(-fogDensity*fogDensity*depth*depth*LOG2\x20);fogFactor=1.0-clamp(\x20fogFactor,0.0,1.0\x20);baseColor=mix(\x20baseColor,vec4(\x20fogColor,baseColor.w\x20),fogFactor\x20);diffuseColor=baseColor.rgb;\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0abaseColor.rgb*=vDiffuseInfos.y;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=normalize(vNormalW);\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20UNLIT\x0avec3\x20diffuseBase=vec3(1.,1.,1.);\x0a#else\x0avec3\x20diffuseBase=vec3(0.,0.,0.);lightingInfo\x20info;float\x20shadow=1.;float\x20glossiness=0.;\x0a#include<lightFragment>[0]\x0a#include<lightFragment>[1]\x0a#include<lightFragment>[2]\x0a#include<lightFragment>[3]\x0a#endif\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;vec4\x20color=vec4(finalDiffuse,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}';},0xbb43:(_0x14ee5d,_0x336bd4,_0x3d6f6b)=>{var _0xe596fb=a6_0x1e64fa,_0x14894b=_0x3d6f6b(0x17a92);_0x3d6f6b(0x13f9a),_0x3d6f6b(0x12929),_0x3d6f6b(0x12bc6),_0x3d6f6b(0x13216),_0x3d6f6b(0x6a99),_0x3d6f6b(0xe6c7),_0x3d6f6b(0x15fb5),_0x3d6f6b(0x733d),_0x3d6f6b(0xb434),_0x3d6f6b(0xdcea),_0x3d6f6b(0x6efd),_0x3d6f6b(0x9871),_0x3d6f6b(0x6e75),_0x3d6f6b(0xedb9),_0x14894b['v'][_0xe596fb(0xcd6)][_0xe596fb(0x464)]='precision\x20highp\x20float;uniform\x20float\x20time;uniform\x20float\x20lowFrequencySpeed;varying\x20float\x20noise;attribute\x20vec3\x20position;\x0a#ifdef\x20NORMAL\x0aattribute\x20vec3\x20normal;\x0a#endif\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20view;uniform\x20mat4\x20viewProjection;\x0a#ifdef\x20DIFFUSE\x0avarying\x20vec2\x20vDiffuseUV;uniform\x20mat4\x20diffuseMatrix;uniform\x20vec2\x20vDiffuseInfos;\x0a#endif\x0a#ifdef\x20POINTSIZE\x0auniform\x20float\x20pointSize;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#ifdef\x20NORMAL\x0avarying\x20vec3\x20vNormalW;\x0a#endif\x0a#ifdef\x20VERTEXCOLOR\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<clipPlaneVertexDeclaration>\x0a#include<fogVertexDeclaration>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a/*\x20NOISE\x20FUNCTIONS\x20*/\x0avec3\x20mod289(vec3\x20x)\x0a{return\x20x-floor(x*(1.0/289.0))*289.0;}\x0avec4\x20mod289(vec4\x20x)\x0a{return\x20x-floor(x*(1.0/289.0))*289.0;}\x0avec4\x20permute(vec4\x20x)\x0a{return\x20mod289(((x*34.0)+1.0)*x);}\x0avec4\x20taylorInvSqrt(vec4\x20r)\x0a{return\x201.79284291400159-0.85373472095314*r;}\x0avec3\x20fade(vec3\x20t)\x20{return\x20t*t*t*(t*(t*6.0-15.0)+10.0);}\x0afloat\x20pnoise(vec3\x20P,vec3\x20rep)\x0a{vec3\x20Pi0=mod(floor(P),rep);\x20\x0avec3\x20Pi1=mod(Pi0+vec3(1.0),rep);\x20\x0aPi0=mod289(Pi0);Pi1=mod289(Pi1);vec3\x20Pf0=fract(P);\x20\x0avec3\x20Pf1=Pf0-vec3(1.0);\x20\x0avec4\x20ix=vec4(Pi0.x,Pi1.x,Pi0.x,Pi1.x);vec4\x20iy=vec4(Pi0.yy,Pi1.yy);vec4\x20iz0=Pi0.zzzz;vec4\x20iz1=Pi1.zzzz;vec4\x20ixy=permute(permute(ix)+iy);vec4\x20ixy0=permute(ixy+iz0);vec4\x20ixy1=permute(ixy+iz1);vec4\x20gx0=ixy0*(1.0/7.0);vec4\x20gy0=fract(floor(gx0)*(1.0/7.0))-0.5;gx0=fract(gx0);vec4\x20gz0=vec4(0.5)-abs(gx0)-abs(gy0);vec4\x20sz0=step(gz0,vec4(0.0));gx0-=sz0*(step(0.0,gx0)-0.5);gy0-=sz0*(step(0.0,gy0)-0.5);vec4\x20gx1=ixy1*(1.0/7.0);vec4\x20gy1=fract(floor(gx1)*(1.0/7.0))-0.5;gx1=fract(gx1);vec4\x20gz1=vec4(0.5)-abs(gx1)-abs(gy1);vec4\x20sz1=step(gz1,vec4(0.0));gx1-=sz1*(step(0.0,gx1)-0.5);gy1-=sz1*(step(0.0,gy1)-0.5);vec3\x20g000=vec3(gx0.x,gy0.x,gz0.x);vec3\x20g100=vec3(gx0.y,gy0.y,gz0.y);vec3\x20g010=vec3(gx0.z,gy0.z,gz0.z);vec3\x20g110=vec3(gx0.w,gy0.w,gz0.w);vec3\x20g001=vec3(gx1.x,gy1.x,gz1.x);vec3\x20g101=vec3(gx1.y,gy1.y,gz1.y);vec3\x20g011=vec3(gx1.z,gy1.z,gz1.z);vec3\x20g111=vec3(gx1.w,gy1.w,gz1.w);vec4\x20norm0=taylorInvSqrt(vec4(dot(g000,g000),dot(g010,g010),dot(g100,g100),dot(g110,g110)));g000*=norm0.x;g010*=norm0.y;g100*=norm0.z;g110*=norm0.w;vec4\x20norm1=taylorInvSqrt(vec4(dot(g001,g001),dot(g011,g011),dot(g101,g101),dot(g111,g111)));g001*=norm1.x;g011*=norm1.y;g101*=norm1.z;g111*=norm1.w;float\x20n000=dot(g000,Pf0);float\x20n100=dot(g100,vec3(Pf1.x,Pf0.yz));float\x20n010=dot(g010,vec3(Pf0.x,Pf1.y,Pf0.z));float\x20n110=dot(g110,vec3(Pf1.xy,Pf0.z));float\x20n001=dot(g001,vec3(Pf0.xy,Pf1.z));float\x20n101=dot(g101,vec3(Pf1.x,Pf0.y,Pf1.z));float\x20n011=dot(g011,vec3(Pf0.x,Pf1.yz));float\x20n111=dot(g111,Pf1);vec3\x20fade_xyz=fade(Pf0);vec4\x20n_z=mix(vec4(n000,n100,n010,n110),vec4(n001,n101,n011,n111),fade_xyz.z);vec2\x20n_yz=mix(n_z.xy,n_z.zw,fade_xyz.y);float\x20n_xyz=mix(n_yz.x,n_yz.y,fade_xyz.x);return\x202.2*n_xyz;}\x0a/*\x20END\x20FUNCTION\x20*/\x0afloat\x20turbulence(\x20vec3\x20p\x20)\x20{float\x20w=100.0;float\x20t=-.5;for\x20(float\x20f=1.0\x20;\x20f<=10.0\x20;\x20f++\x20){float\x20power=pow(\x202.0,f\x20);t+=abs(\x20pnoise(\x20vec3(\x20power*p\x20),vec3(\x2010.0,10.0,10.0\x20)\x20)/power\x20);}\x0areturn\x20t;}\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0a#ifdef\x20NORMAL\x0anoise=10.0*\x20-.10*turbulence(\x20.5*normal+time*1.15\x20);float\x20b=lowFrequencySpeed*5.0*pnoise(\x200.05*position\x20+vec3(time*1.025),vec3(\x20100.0\x20)\x20);float\x20displacement=-\x201.5*noise+b;vec3\x20newPosition=position+normal*displacement;gl_Position=viewProjection*finalWorld*vec4(\x20newPosition,1.0\x20);vec4\x20worldPos=finalWorld*vec4(newPosition,1.0);vPositionW=vec3(worldPos);vNormalW=normalize(vec3(finalWorld*vec4(normal,0.0)));\x0a#endif\x0a#ifndef\x20UV1\x0avec2\x20uv=vec2(0.,0.);\x0a#endif\x0a#ifndef\x20UV2\x0avec2\x20uv2=vec2(0.,0.);\x0a#endif\x0a#ifdef\x20DIFFUSE\x0aif\x20(vDiffuseInfos.x==0.)\x0a{vDiffuseUV=vec2(diffuseMatrix*vec4(uv,1.0,0.0));}\x0aelse\x0a{vDiffuseUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));}\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<fogVertex>\x0a#include<shadowsVertex>[0..maxSimultaneousLights]\x0a#include<vertexColorMixing>\x0a#if\x20defined(POINTSIZE)\x20&&\x20!defined(WEBGPU)\x0agl_PointSize=pointSize;\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}';},0x1968:(_0x4e71cf,_0x11231a,_0x102282)=>{var _0x13367c=a6_0x1e64fa,_0x40ee82=_0x102282(0x17a92);_0x102282(0x175b0),_0x102282(0xe6c7),_0x102282(0x15fb5),_0x102282(0x1f57),_0x102282(0x1f85),_0x102282(0xff1b),_0x102282(0x12a16),_0x102282(0x3328),_0x102282(0x6318),_0x102282(0xb0bc),_0x102282(0x10ef),_0x102282(0x17ef8),_0x40ee82['v'][_0x13367c(0xcd6)][_0x13367c(0xb20)]=_0x13367c(0xb91);},0x7d18:(_0x3be937,_0x125dbc,_0x4ea418)=>{var _0x402b1e=a6_0x1e64fa,_0x343ea1=_0x4ea418(0x17a92);_0x4ea418(0x13f9a),_0x4ea418(0x12929),_0x4ea418(0x12bc6),_0x4ea418(0x13216),_0x4ea418(0x6a99),_0x4ea418(0xe6c7),_0x4ea418(0x15fb5),_0x4ea418(0x733d),_0x4ea418(0xb434),_0x4ea418(0xdcea),_0x4ea418(0x6efd),_0x4ea418(0x9871),_0x4ea418(0x6e75),_0x4ea418(0xedb9),_0x343ea1['v'][_0x402b1e(0xcd6)][_0x402b1e(0x37b)]=_0x402b1e(0x87e);},0xc97e:(_0x454590,_0x5bd35f,_0x267eca)=>{var _0x386843=a6_0x1e64fa,_0x5f142c=_0x267eca(0x17a92);_0x267eca(0x175b0),_0x267eca(0xe6c7),_0x267eca(0x15fb5),_0x267eca(0x1f57),_0x267eca(0x1f85),_0x267eca(0xff1b),_0x267eca(0x12a16),_0x267eca(0x3328),_0x267eca(0x6318),_0x267eca(0xb0bc),_0x267eca(0x10ef),_0x267eca(0x17ef8),_0x5f142c['v'][_0x386843(0xcd6)][_0x386843(0x6e6)]=_0x386843(0xaae);},0x8f3b:(_0xf31ae2,_0x3c2a24,_0x45588d)=>{var _0x468518=a6_0x1e64fa,_0xb8f6bc=_0x45588d(0x17a92);_0x45588d(0x13f9a),_0x45588d(0x12929),_0x45588d(0x12bc6),_0x45588d(0x13216),_0x45588d(0x6a99),_0x45588d(0xe6c7),_0x45588d(0x15fb5),_0x45588d(0x733d),_0x45588d(0xb434),_0x45588d(0xdcea),_0x45588d(0x6efd),_0x45588d(0x9871),_0x45588d(0x6e75),_0xb8f6bc['v'][_0x468518(0xcd6)][_0x468518(0x50b)]=_0x468518(0x95a);},0x15bd0:(_0x42f200,_0x1c4830,_0x2fabb3)=>{var _0x249b9d=a6_0x1e64fa,_0x59122e=_0x2fabb3(0x17a92);_0x2fabb3(0x175b0),_0x2fabb3(0xe6c7),_0x2fabb3(0x15fb5),_0x2fabb3(0x1f57),_0x2fabb3(0x1f85),_0x2fabb3(0xff1b),_0x2fabb3(0x12a16),_0x2fabb3(0x3328),_0x2fabb3(0xb0bc),_0x2fabb3(0x10ef),_0x2fabb3(0x17ef8),_0x59122e['v'][_0x249b9d(0xcd6)][_0x249b9d(0x260)]=_0x249b9d(0x267);},0x3e31:(_0x27a3e1,_0x5dcb33,_0xc0bfb)=>{var _0x520fc6=a6_0x1e64fa,_0x1a91e6=_0xc0bfb(0x17a92);_0xc0bfb(0x13f9a),_0xc0bfb(0x12929),_0xc0bfb(0x12bc6),_0xc0bfb(0x13216),_0xc0bfb(0x6a99),_0xc0bfb(0xe6c7),_0xc0bfb(0x15fb5),_0xc0bfb(0x733d),_0xc0bfb(0xb434),_0xc0bfb(0xdcea),_0xc0bfb(0x6efd),_0xc0bfb(0x9871),_0xc0bfb(0x6e75),_0x1a91e6['v']['ShadersStore'][_0x520fc6(0xbcf)]=_0x520fc6(0x56c);},0x1b5e:(_0x47fd83,_0x2122ea,_0x283a81)=>{var _0x138f8a=a6_0x1e64fa,_0x1a42ed=_0x283a81(0x17a92);_0x283a81(0x175b0),_0x283a81(0xe6c7),_0x283a81(0x15fb5),_0x283a81(0x1f57),_0x283a81(0x1f85),_0x283a81(0xff1b),_0x283a81(0x12a16),_0x283a81(0x3328),_0x283a81(0x6318),_0x283a81(0xb0bc),_0x283a81(0x10ef),_0x283a81(0x17ef8),_0x1a42ed['v'][_0x138f8a(0xcd6)][_0x138f8a(0x87a)]=_0x138f8a(0x5ec);},0xcd2d:(_0x2cc9b8,_0x5c4ba5,_0x3f70f2)=>{var _0x2a657d=a6_0x1e64fa,_0x2f13f3=_0x3f70f2(0x17a92);_0x3f70f2(0x13f9a),_0x3f70f2(0x12929),_0x3f70f2(0x12bc6),_0x3f70f2(0x13216),_0x3f70f2(0x6a99),_0x3f70f2(0xe6c7),_0x3f70f2(0x15fb5),_0x3f70f2(0x733d),_0x3f70f2(0xb434),_0x3f70f2(0xdcea),_0x3f70f2(0x6efd),_0x3f70f2(0x9871),_0x3f70f2(0x6e75),_0x3f70f2(0xedb9),_0x2f13f3['v'][_0x2a657d(0xcd6)]['simpleVertexShader']=_0x2a657d(0x704);},0x717d:(_0x49c91f,_0x23f047,_0x11b0f1)=>{var _0x49d967=a6_0x1e64fa,_0x4e80af=_0x11b0f1(0x17a92);_0x11b0f1(0xff1b),_0x11b0f1(0x12a16),_0x11b0f1(0x175b0),_0x11b0f1(0x3328),_0x11b0f1(0x10ef),_0x11b0f1(0x17ef8),_0x4e80af['v'][_0x49d967(0xcd6)][_0x49d967(0x3f9)]=_0x49d967(0x6a0);},0xa7:(_0x9d59d4,_0xee44b4,_0x2e8f23)=>{var _0xe10949=a6_0x1e64fa,_0x3aff5c=_0x2e8f23(0x17a92);_0x2e8f23(0x13216),_0x2e8f23(0x6a99),_0x2e8f23(0x6efd),_0x2e8f23(0x9871),_0x3aff5c['v'][_0xe10949(0xcd6)][_0xe10949(0x26c)]=_0xe10949(0x820);},0x1528a:(_0x52f910,_0x5546bb,_0x955a99)=>{var _0x439627=a6_0x1e64fa,_0x49c870=_0x955a99(0x17a92);_0x955a99(0x175b0),_0x955a99(0xe6c7),_0x955a99(0x15fb5),_0x955a99(0x1f57),_0x955a99(0x1f85),_0x955a99(0xff1b),_0x955a99(0x12a16),_0x955a99(0x3328),_0x955a99(0x6318),_0x955a99(0xb0bc),_0x955a99(0x10ef),_0x955a99(0x17ef8),_0x49c870['v'][_0x439627(0xcd6)][_0x439627(0x8ee)]=_0x439627(0xa14);},0x136e8:(_0x4a4bad,_0x3f51d0,_0x2dd48c)=>{var _0x5013a3=a6_0x1e64fa,_0x332103=_0x2dd48c(0x17a92);_0x2dd48c(0x13f9a),_0x2dd48c(0x12929),_0x2dd48c(0x12bc6),_0x2dd48c(0x13216),_0x2dd48c(0x6a99),_0x2dd48c(0xe6c7),_0x2dd48c(0x15fb5),_0x2dd48c(0x733d),_0x2dd48c(0xb434),_0x2dd48c(0xdcea),_0x2dd48c(0x6efd),_0x2dd48c(0x9871),_0x2dd48c(0x6e75),_0x2dd48c(0xedb9),_0x332103['v'][_0x5013a3(0xcd6)][_0x5013a3(0x5c1)]=_0x5013a3(0x536);},0x109eb:(_0x8e76e9,_0x34f28f,_0x41564f)=>{var _0x367791=_0x41564f(0x17a92);_0x41564f(0x175b0),_0x41564f(0xe6c7),_0x41564f(0x15fb5),_0x41564f(0x1f57),_0x41564f(0x1f85),_0x41564f(0xff1b),_0x41564f(0x12a16),_0x41564f(0x3328),_0x41564f(0x6318),_0x41564f(0xb0bc),_0x41564f(0x10ef),_0x41564f(0x17ef8),_0x367791['v']['ShadersStore']['triplanarPixelShader']='precision\x20highp\x20float;\x0auniform\x20vec4\x20vEyePosition;\x0auniform\x20vec4\x20vDiffuseColor;\x0a#ifdef\x20SPECULARTERM\x0auniform\x20vec4\x20vSpecularColor;\x0a#endif\x0avarying\x20vec3\x20vPositionW;\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0avarying\x20vec4\x20vColor;\x0a#endif\x0a#include<helperFunctions>\x0a#include<__decl__lightFragment>[0..maxSimultaneousLights]\x0a#ifdef\x20DIFFUSEX\x0avarying\x20vec2\x20vTextureUVX;\x0auniform\x20sampler2D\x20diffuseSamplerX;\x0a#ifdef\x20BUMPX\x0auniform\x20sampler2D\x20normalSamplerX;\x0a#endif\x0a#endif\x0a#ifdef\x20DIFFUSEY\x0avarying\x20vec2\x20vTextureUVY;\x0auniform\x20sampler2D\x20diffuseSamplerY;\x0a#ifdef\x20BUMPY\x0auniform\x20sampler2D\x20normalSamplerY;\x0a#endif\x0a#endif\x0a#ifdef\x20DIFFUSEZ\x0avarying\x20vec2\x20vTextureUVZ;\x0auniform\x20sampler2D\x20diffuseSamplerZ;\x0a#ifdef\x20BUMPZ\x0auniform\x20sampler2D\x20normalSamplerZ;\x0a#endif\x0a#endif\x0a#ifdef\x20NORMAL\x0avarying\x20mat3\x20tangentSpace;\x0a#endif\x0a#include<lightsFragmentFunctions>\x0a#include<shadowsFragmentFunctions>\x0a#include<clipPlaneFragmentDeclaration>\x0a#include<fogFragmentDeclaration>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_FRAGMENT_MAIN_BEGIN\x0a#include<clipPlaneFragment>\x0avec3\x20viewDirectionW=normalize(vEyePosition.xyz-vPositionW);\x0avec4\x20baseColor=vec4(0.,0.,0.,1.);\x0avec3\x20diffuseColor=vDiffuseColor.rgb;\x0afloat\x20alpha=vDiffuseColor.a;\x0a#ifdef\x20NORMAL\x0avec3\x20normalW=tangentSpace[2];\x0a#else\x0avec3\x20normalW=vec3(1.0,1.0,1.0);\x0a#endif\x0avec4\x20baseNormal=vec4(0.0,0.0,0.0,1.0);\x0anormalW*=normalW;\x0a#ifdef\x20DIFFUSEX\x0abaseColor+=texture2D(diffuseSamplerX,vTextureUVX)*normalW.x;\x0a#ifdef\x20BUMPX\x0abaseNormal+=texture2D(normalSamplerX,vTextureUVX)*normalW.x;\x0a#endif\x0a#endif\x0a#ifdef\x20DIFFUSEY\x0abaseColor+=texture2D(diffuseSamplerY,vTextureUVY)*normalW.y;\x0a#ifdef\x20BUMPY\x0abaseNormal+=texture2D(normalSamplerY,vTextureUVY)*normalW.y;\x0a#endif\x0a#endif\x0a#ifdef\x20DIFFUSEZ\x0abaseColor+=texture2D(diffuseSamplerZ,vTextureUVZ)*normalW.z;\x0a#ifdef\x20BUMPZ\x0abaseNormal+=texture2D(normalSamplerZ,vTextureUVZ)*normalW.z;\x0a#endif\x0a#endif\x0a#ifdef\x20NORMAL\x0anormalW=normalize((2.0*baseNormal.xyz-1.0)*tangentSpace);\x0a#endif\x0a#ifdef\x20ALPHATEST\x0aif\x20(baseColor.a<0.4)\x0adiscard;\x0a#endif\x0a#include<depthPrePass>\x0a#if\x20defined(VERTEXCOLOR)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0abaseColor.rgb*=vColor.rgb;\x0a#endif\x0avec3\x20diffuseBase=vec3(0.,0.,0.);\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x0a#ifdef\x20SPECULARTERM\x0afloat\x20glossiness=vSpecularColor.a;\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0avec3\x20specularColor=vSpecularColor.rgb;\x0a#else\x0afloat\x20glossiness=0.;\x0a#endif\x0a#include<lightFragment>[0..maxSimultaneousLights]\x0a#if\x20defined(VERTEXALPHA)\x20||\x20defined(INSTANCESCOLOR)\x20&&\x20defined(INSTANCES)\x0aalpha*=vColor.a;\x0a#endif\x0a#ifdef\x20SPECULARTERM\x0avec3\x20finalSpecular=specularBase*specularColor;\x0a#else\x0avec3\x20finalSpecular=vec3(0.0);\x0a#endif\x0avec3\x20finalDiffuse=clamp(diffuseBase*diffuseColor,0.0,1.0)*baseColor.rgb;\x0avec4\x20color=vec4(finalDiffuse+finalSpecular,alpha);\x0a#include<fogFragment>\x0agl_FragColor=color;\x0a#include<imageProcessingCompatibility>\x0a#define\x20CUSTOM_FRAGMENT_MAIN_END\x0a}\x0a';},0x1444:(_0x2b7295,_0x5cb36b,_0x3af119)=>{var _0x56def2=a6_0x1e64fa,_0x4b3afb=_0x3af119(0x17a92);_0x3af119(0x13f9a),_0x3af119(0x12929),_0x3af119(0x12bc6),_0x3af119(0x13216),_0x3af119(0x6a99),_0x3af119(0xe6c7),_0x3af119(0x15fb5),_0x3af119(0x733d),_0x3af119(0xb434),_0x3af119(0xdcea),_0x3af119(0x6efd),_0x3af119(0x9871),_0x3af119(0x6e75),_0x3af119(0xedb9),_0x4b3afb['v'][_0x56def2(0xcd6)]['triplanarVertexShader']=_0x56def2(0x9c5);},0x17ba7:(_0x59e243,_0x80b846,_0x2343f8)=>{var _0x3ccbc6=a6_0x1e64fa,_0x4b7dd4=_0x2343f8(0x17a92);_0x2343f8(0x175b0),_0x2343f8(0x16c11),_0x2343f8(0x119a9),_0x2343f8(0xe6c7),_0x2343f8(0x15fb5),_0x2343f8(0x1f57),_0x2343f8(0x1f85),_0x2343f8(0xff1b),_0x2343f8(0x17bd9),_0x2343f8(0x12a16),_0x2343f8(0x3328),_0x2343f8(0xb0bc),_0x2343f8(0x1445f),_0x2343f8(0x10ef),_0x4b7dd4['v'][_0x3ccbc6(0xcd6)][_0x3ccbc6(0x794)]=_0x3ccbc6(0xb0b);},0xf5bf:(_0x19d2cb,_0x44fda7,_0x35f63c)=>{var _0x2595a3=a6_0x1e64fa,_0x347f05=_0x35f63c(0x17a92);_0x35f63c(0x13f9a),_0x35f63c(0x12929),_0x35f63c(0x12bc6),_0x35f63c(0x13216),_0x35f63c(0x6a99),_0x35f63c(0xe6c7),_0x35f63c(0x15fb5),_0x35f63c(0x17bd9),_0x35f63c(0x733d),_0x35f63c(0xb434),_0x35f63c(0xdcea),_0x35f63c(0x6efd),_0x35f63c(0x9871),_0x35f63c(0x6e75),_0x35f63c(0xedb9),_0x35f63c(0x13da6),_0x347f05['v'][_0x2595a3(0xcd6)]['waterVertexShader']=_0x2595a3(0x9cd);},0xd482:(_0xd82eeb,_0x2c8782,_0x3f1fbf)=>{var _0x56d226=a6_0x1e64fa;_0x3f1fbf['d'](_0x2c8782,{'W':()=>_0x5b573d});var _0x2c8782=_0x3f1fbf(0x15a52),_0x1b9753=_0x3f1fbf(0x16ad5),_0x49ec81=_0x3f1fbf(0xe779),_0x15b0a6=_0x3f1fbf(0xe456),_0xf0919b=_0x3f1fbf(0x11c74),_0xec5e3b=_0x3f1fbf(0x13cd1),_0x20fb62=_0x3f1fbf(0x77a5),_0x39856b=(_0x3f1fbf(0x11645),_0x3f1fbf(0x2dc8)),_0x487738=_0x3f1fbf(0xbac7),_0x1c4975=_0x3f1fbf(0xf8c1),_0x3f1fbf=_0x3f1fbf(0x159af);class _0x5b573d extends _0x2c8782['k']{constructor(_0x3972af){var _0x4f8272=a6_0x2304;super(_0x3972af,_0x1b9753['u'][_0x4f8272(0x7b9)]),this[_0x4f8272(0x84a)]=!0x1;}get['texture'](){var _0x32fa3b=a6_0x2304;return this[_0x32fa3b(0xa37)];}set[_0x56d226(0x6f7)](_0x5f250b){var _0x5f3f71=_0x56d226,_0x1af53b;if(this[_0x5f3f71(0xa37)]!==_0x5f250b){const _0x2a2caf=null!=(_0x1af53b=null==_0x5f250b?void 0x0:_0x5f250b['getScene']())?_0x1af53b:_0x1c4975['l'][_0x5f3f71(0x232)];!_0x5f250b&&_0x2a2caf&&_0x2a2caf[_0x5f3f71(0x94f)](_0x20fb62['g'][_0x5f3f71(0x337)],_0x2bc00c=>_0x2bc00c[_0x5f3f71(0x94b)](this[_0x5f3f71(0xa37)])),(this[_0x5f3f71(0xa37)]=_0x5f250b)&&_0x2a2caf&&_0x2a2caf[_0x5f3f71(0x94f)](_0x20fb62['g'][_0x5f3f71(0x337)],_0x341003=>_0x341003[_0x5f3f71(0x94b)](_0x5f250b));}}static[_0x56d226(0x19c)](_0x28308f,_0x8f8423){var _0x106984=_0x56d226;const _0x242683=_0x28308f;return _0x242683[_0x106984(0x9db)]();}[_0x56d226(0x9db)](){var _0x272b8b=_0x56d226;return this[_0x272b8b(0x7bb)](),!0x0;}[_0x56d226(0x7bb)](){var _0x5e5d81=_0x56d226;this[_0x5e5d81(0x359)](this[_0x5e5d81(0x84a)]?_0x1b9753['u'][_0x5e5d81(0x935)]:_0x1b9753['u']['VertexAndFragment']);}[_0x56d226(0x4e7)](){return'ReflectionTextureBaseBlock';}['_getTexture'](){var _0x20bb42=_0x56d226;return this[_0x20bb42(0x6f7)];}[_0x56d226(0x19d)](_0x5a04b3){var _0x13a294=_0x56d226;if(!this[_0x13a294(0x3f5)][_0x13a294(0x2d2)]){let _0x3205b9=_0x5a04b3[_0x13a294(0x2d9)](_0x3e967f=>_0x3e967f[_0x13a294(0x169)]&&_0x13a294(0x3f5)===_0x3e967f[_0x13a294(0x4b3)]);_0x3205b9||(_0x3205b9=new _0xf0919b['S']('position'))[_0x13a294(0x74c)](),_0x3205b9['output'][_0x13a294(0x98e)](this[_0x13a294(0x3f5)]);}if(!this[_0x13a294(0xa28)][_0x13a294(0x2d2)]){let _0xfe2112=_0x5a04b3['getInputBlockByPredicate'](_0x29c02e=>_0x29c02e[_0x13a294(0x587)]===_0xec5e3b['$'][_0x13a294(0x1ba)]);_0xfe2112||(_0xfe2112=new _0xf0919b['S'](_0x13a294(0xa28)))[_0x13a294(0x7c0)](_0xec5e3b['$']['World']),_0xfe2112[_0x13a294(0x537)][_0x13a294(0x98e)](this['world']);}if(this[_0x13a294(0x481)]&&!this['view'][_0x13a294(0x2d2)]){let _0x16d1c7=_0x5a04b3[_0x13a294(0x2d9)](_0x5313e0=>_0x5313e0[_0x13a294(0x587)]===_0xec5e3b['$'][_0x13a294(0x92b)]);_0x16d1c7||(_0x16d1c7=new _0xf0919b['S'](_0x13a294(0x481)))[_0x13a294(0x7c0)](_0xec5e3b['$'][_0x13a294(0x92b)]),_0x16d1c7['output'][_0x13a294(0x98e)](this[_0x13a294(0x481)]);}}[_0x56d226(0xc05)](_0x1c2d5f,_0x3f1de6,_0x37d429){var _0x45cedc=_0x56d226,_0x413d16;_0x37d429['_areTexturesDirty']&&(_0x413d16=this['_getTexture']())&&_0x413d16[_0x45cedc(0x3ee)]&&(_0x37d429['setValue'](this[_0x45cedc(0x29a)],_0x413d16['isCube'],!0x0),_0x37d429[_0x45cedc(0xb45)](this[_0x45cedc(0x594)],!!_0x413d16['boundingBoxSize'],!0x0),_0x37d429[_0x45cedc(0xb45)](this[_0x45cedc(0x233)],_0x413d16[_0x45cedc(0x573)]===_0x20fb62['g'][_0x45cedc(0xcb8)],!0x0),_0x37d429[_0x45cedc(0xb45)](this[_0x45cedc(0x6be)],_0x413d16['coordinatesMode']===_0x20fb62['g'][_0x45cedc(0x762)],!0x0),_0x37d429[_0x45cedc(0xb45)](this[_0x45cedc(0xc73)],_0x413d16[_0x45cedc(0x573)]===_0x20fb62['g'][_0x45cedc(0x93b)]||_0x413d16[_0x45cedc(0x573)]===_0x20fb62['g']['TEXTURE_INVCUBIC_MODE'],!0x0),_0x37d429['setValue']('INVERTCUBICMAP',_0x413d16[_0x45cedc(0x573)]===_0x20fb62['g'][_0x45cedc(0xc04)],!0x0),_0x37d429[_0x45cedc(0xb45)](this[_0x45cedc(0xb88)],_0x413d16[_0x45cedc(0x573)]===_0x20fb62['g'][_0x45cedc(0x247)],!0x0),_0x37d429[_0x45cedc(0xb45)](this[_0x45cedc(0x47c)],_0x413d16[_0x45cedc(0x573)]===_0x20fb62['g'][_0x45cedc(0x597)],!0x0),_0x37d429[_0x45cedc(0xb45)](this[_0x45cedc(0x83a)],_0x413d16[_0x45cedc(0x573)]===_0x20fb62['g'][_0x45cedc(0x60b)],!0x0),_0x37d429[_0x45cedc(0xb45)](this['_defineEquirectangularName'],_0x413d16['coordinatesMode']===_0x20fb62['g']['TEXTURE_EQUIRECTANGULAR_MODE'],!0x0),_0x37d429[_0x45cedc(0xb45)](this['_defineEquirectangularFixedName'],_0x413d16[_0x45cedc(0x573)]===_0x20fb62['g']['TEXTURE_FIXED_EQUIRECTANGULAR_MODE'],!0x0),_0x37d429[_0x45cedc(0xb45)](this[_0x45cedc(0x390)],_0x413d16[_0x45cedc(0x573)]===_0x20fb62['g']['TEXTURE_FIXED_EQUIRECTANGULAR_MIRRORED_MODE'],!0x0));}[_0x56d226(0x5ac)](){var _0x4375c5=_0x56d226;const _0x5ca718=this[_0x4375c5(0x71d)]();return!(_0x5ca718&&!_0x5ca718['isReadyOrNotBlocking']());}['bind'](_0x2b2258,_0x578a9d,_0x178f96){var _0x4192af=_0x56d226;const _0x11ce8b=this[_0x4192af(0x71d)]();_0x178f96&&_0x11ce8b&&(_0x2b2258[_0x4192af(0x44c)](this[_0x4192af(0x7e4)],_0x11ce8b['getReflectionTextureMatrix']()),_0x11ce8b['isCube']?_0x2b2258[_0x4192af(0x205)](this[_0x4192af(0x618)],_0x11ce8b):_0x2b2258['setTexture'](this[_0x4192af(0x242)],_0x11ce8b),_0x11ce8b[_0x4192af(0x999)]&&(_0x178f96=_0x11ce8b,_0x2b2258['setVector3'](this[_0x4192af(0x371)],_0x178f96[_0x4192af(0x34c)]),_0x2b2258[_0x4192af(0x5fc)](this[_0x4192af(0x493)],_0x178f96[_0x4192af(0x999)])));}[_0x56d226(0x5e0)](_0x3fdbf2){var _0x8b1b8d=_0x56d226;if(this['generateOnlyFragmentCode']&&_0x3fdbf2[_0x8b1b8d(0x56d)]===_0x1b9753['u']['Vertex'])return'';this[_0x8b1b8d(0x29a)]=_0x3fdbf2[_0x8b1b8d(0x1b3)](_0x8b1b8d(0xa7f)),this[_0x8b1b8d(0xc73)]=_0x3fdbf2[_0x8b1b8d(0x1b3)]('REFLECTIONMAP_CUBIC'),this[_0x8b1b8d(0xb88)]=_0x3fdbf2[_0x8b1b8d(0x1b3)](_0x8b1b8d(0xa1e)),this[_0x8b1b8d(0x47c)]=_0x3fdbf2[_0x8b1b8d(0x1b3)](_0x8b1b8d(0x75a)),this[_0x8b1b8d(0x83a)]=_0x3fdbf2[_0x8b1b8d(0x1b3)](_0x8b1b8d(0x18d)),this[_0x8b1b8d(0x233)]=_0x3fdbf2[_0x8b1b8d(0x1b3)](_0x8b1b8d(0xc85)),this[_0x8b1b8d(0xc0f)]=_0x3fdbf2[_0x8b1b8d(0x1b3)](_0x8b1b8d(0x825)),this[_0x8b1b8d(0x594)]=_0x3fdbf2[_0x8b1b8d(0x1b3)](_0x8b1b8d(0x936)),this[_0x8b1b8d(0x390)]=_0x3fdbf2['_getFreeDefineName']('REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED'),this[_0x8b1b8d(0x9da)]=_0x3fdbf2[_0x8b1b8d(0x1b3)]('REFLECTIONMAP_EQUIRECTANGULAR_FIXED'),this[_0x8b1b8d(0x6be)]=_0x3fdbf2['_getFreeDefineName'](_0x8b1b8d(0x5f0)),this[_0x8b1b8d(0x99b)]=_0x3fdbf2[_0x8b1b8d(0x1b3)](_0x8b1b8d(0x543)),this['_reflectionMatrixName']=_0x3fdbf2['_getFreeVariableName']('reflectionMatrix'),_0x3fdbf2[_0x8b1b8d(0xb7f)](this[_0x8b1b8d(0x7e4)],_0x8b1b8d(0x366));let _0x17f3ae='';this[_0x8b1b8d(0x5a5)]=_0x3fdbf2[_0x8b1b8d(0x623)](_0x8b1b8d(0x1fc));var _0x51fd86=this[_0x8b1b8d(0x84a)]?this['_worldPositionNameInFragmentOnlyMode']:'v_'+this[_0x8b1b8d(0x1fc)][_0x8b1b8d(0x28b)];return(this[_0x8b1b8d(0x84a)]||_0x3fdbf2[_0x8b1b8d(0x6a8)](_0x51fd86,_0x8b1b8d(0xa2f)))&&(_0x17f3ae+=(this[_0x8b1b8d(0x84a)]?_0x8b1b8d(0x7b7):'')+_0x51fd86+('\x20=\x20'+this[_0x8b1b8d(0x1fc)]['associatedVariableName']+_0x8b1b8d(0x21f))),this[_0x8b1b8d(0x78a)]=_0x3fdbf2['_getFreeVariableName'](_0x8b1b8d(0xa5e)),this[_0x8b1b8d(0x8f3)]=_0x3fdbf2[_0x8b1b8d(0x623)](_0x8b1b8d(0x5cd)),(this[_0x8b1b8d(0x84a)]||_0x3fdbf2[_0x8b1b8d(0x6a8)](this[_0x8b1b8d(0x78a)],_0x8b1b8d(0x84c),this[_0x8b1b8d(0x6be)]))&&(_0x17f3ae=(_0x17f3ae+='#ifdef\x20'+this[_0x8b1b8d(0x6be)]+'\x0d\x0a')+(this['generateOnlyFragmentCode']?_0x8b1b8d(0x791):'')+this[_0x8b1b8d(0x78a)]+(_0x8b1b8d(0x899)+this[_0x8b1b8d(0x3f5)][_0x8b1b8d(0x28b)]+_0x8b1b8d(0x893))+_0x8b1b8d(0x7e7)),_0x17f3ae=this['generateOnlyFragmentCode']||_0x3fdbf2['_emitVaryingFromString'](this[_0x8b1b8d(0x8f3)],_0x8b1b8d(0x84c),_0x8b1b8d(0x980)+this[_0x8b1b8d(0x9da)]+_0x8b1b8d(0x95d)+this['_defineMirroredEquirectangularFixedName']+')')?(_0x17f3ae+=_0x8b1b8d(0x2f4)+this['_defineEquirectangularFixedName']+')\x20||\x20defined('+this['_defineMirroredEquirectangularFixedName']+_0x8b1b8d(0x405))+(this[_0x8b1b8d(0x84a)]?_0x8b1b8d(0x791):'')+this['_directionWName']+(_0x8b1b8d(0x45e)+this[_0x8b1b8d(0xa28)][_0x8b1b8d(0x28b)]+_0x8b1b8d(0xb32)+this[_0x8b1b8d(0x3f5)]['associatedVariableName']+_0x8b1b8d(0x4a7))+_0x8b1b8d(0x7e7):_0x17f3ae;}[_0x56d226(0x638)](_0x505e2d){var _0x304ccd=_0x56d226;_0x505e2d[_0x304ccd(0x44b)][_0x304ccd(0x2ba)][_0x304ccd(0x83f)](this),_0x505e2d['sharedData'][_0x304ccd(0x14d)][_0x304ccd(0x83f)](this),this[_0x304ccd(0x618)]=_0x505e2d[_0x304ccd(0x623)](this['name']+_0x304ccd(0xd1a)),_0x505e2d[_0x304ccd(0x51b)]['push'](this['_cubeSamplerName']),this['_2DSamplerName']=_0x505e2d[_0x304ccd(0x623)](this[_0x304ccd(0x4b3)]+_0x304ccd(0x8bc)),_0x505e2d[_0x304ccd(0x51b)][_0x304ccd(0x83f)](this[_0x304ccd(0x242)]),_0x505e2d[_0x304ccd(0x3d9)]+='#ifdef\x20'+this[_0x304ccd(0x29a)]+'\x0d\x0a',_0x505e2d[_0x304ccd(0x3d9)]+=_0x304ccd(0xcbe)+this[_0x304ccd(0x618)]+_0x304ccd(0x21f),_0x505e2d['_samplerDeclaration']+=_0x304ccd(0xa4a),_0x505e2d[_0x304ccd(0x3d9)]+=_0x304ccd(0x70f)+this[_0x304ccd(0x242)]+_0x304ccd(0x21f),_0x505e2d[_0x304ccd(0x3d9)]+=_0x304ccd(0x7e7),_0x505e2d['sharedData'][_0x304ccd(0xa5c)][_0x304ccd(0x83f)](this),_0x505e2d[_0x304ccd(0x44b)][_0x304ccd(0x5ab)]['push'](this);var _0x4dd0d8='//'+this[_0x304ccd(0x4b3)];_0x505e2d[_0x304ccd(0x1dc)](_0x304ccd(0x972),_0x304ccd(0x3c9),''),_0x505e2d[_0x304ccd(0xc37)](_0x304ccd(0x983),_0x4dd0d8),_0x505e2d['_emitFunctionFromInclude'](_0x304ccd(0x2cf),_0x4dd0d8,{'replaceStrings':[{'search':/vec3 computeReflectionCoords/g,'replace':_0x304ccd(0xb77)}]}),this[_0x304ccd(0x535)]=_0x505e2d['_getFreeVariableName']('reflectionColor'),this[_0x304ccd(0xccb)]=_0x505e2d['_getFreeVariableName'](_0x304ccd(0x6c1)),this[_0x304ccd(0x1e7)]=_0x505e2d[_0x304ccd(0x623)]('reflectionCoords'),this[_0x304ccd(0x371)]=_0x505e2d['_getFreeVariableName']('vReflectionPosition'),_0x505e2d[_0x304ccd(0xb7f)](this[_0x304ccd(0x371)],'vec3'),this[_0x304ccd(0x493)]=_0x505e2d[_0x304ccd(0x623)](_0x304ccd(0xb26)),_0x505e2d[_0x304ccd(0xb7f)](this['_reflectionSizeName'],_0x304ccd(0x84c));}['handleFragmentSideCodeReflectionCoords'](_0x4a4c89,_0x6cfc98,_0x1ddaba=!0x1,_0xb66f24=!0x1){var _0x2309b9=_0x56d226;_0x6cfc98=_0x6cfc98||(this[_0x2309b9(0x84a)]?this['_worldPositionNameInFragmentOnlyMode']:'v_'+this[_0x2309b9(0x1fc)][_0x2309b9(0x28b)]);var _0x549417=this['_reflectionMatrixName'],_0x5b1255='normalize('+this[_0x2309b9(0x8f3)]+')',_0x3965d1=''+this['_positionUVWName'],_0xfedae1=''+this[_0x2309b9(0x88e)][_0x2309b9(0x28b)],_0x2961f2=''+this[_0x2309b9(0x481)][_0x2309b9(0x28b)];let _0x1f8c74=_0x2309b9(0xa9f)+this[_0x2309b9(0x390)]+_0x2309b9(0x81f)+this[_0x2309b9(0xccb)]+_0x2309b9(0x758)+_0x6cfc98+',\x20'+(_0x4a4c89+='.xyz')+',\x20'+_0x5b1255+');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20'+this[_0x2309b9(0x9da)]+_0x2309b9(0x81f)+this[_0x2309b9(0xccb)]+_0x2309b9(0x502)+_0x6cfc98+',\x20'+_0x4a4c89+',\x20'+_0x5b1255+_0x2309b9(0x9fc)+this[_0x2309b9(0xc0f)]+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20'+this[_0x2309b9(0xccb)]+_0x2309b9(0xa0f)+_0x6cfc98+',\x20'+_0x4a4c89+',\x20'+_0xfedae1+'.xyz,\x20'+_0x549417+');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20'+this[_0x2309b9(0xb88)]+_0x2309b9(0x81f)+this[_0x2309b9(0xccb)]+'\x20=\x20computeSphericalCoords('+_0x6cfc98+',\x20'+_0x4a4c89+',\x20'+_0x2961f2+',\x20'+_0x549417+');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20'+this['_definePlanarName']+_0x2309b9(0x81f)+this[_0x2309b9(0xccb)]+_0x2309b9(0xabb)+_0x6cfc98+',\x20'+_0x4a4c89+',\x20'+_0xfedae1+_0x2309b9(0x790)+_0x549417+');\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20'+this['_defineCubicName']+_0x2309b9(0x69e)+this[_0x2309b9(0x594)]+_0x2309b9(0x8cd)+this[_0x2309b9(0xccb)]+_0x2309b9(0x772)+_0x6cfc98+',\x20'+_0x4a4c89+',\x20'+_0xfedae1+_0x2309b9(0x790)+_0x549417+',\x20'+this['_reflectionSizeName']+',\x20'+this['_reflectionPositionName']+_0x2309b9(0x37e)+this[_0x2309b9(0xccb)]+'\x20=\x20computeCubicCoords('+_0x6cfc98+',\x20'+_0x4a4c89+',\x20'+_0xfedae1+'.xyz,\x20'+_0x549417+_0x2309b9(0xbc0)+this['_defineProjectionName']+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20vec3\x20'+this[_0x2309b9(0xccb)]+_0x2309b9(0x9bc)+_0x6cfc98+',\x20'+_0x2961f2+',\x20'+_0x549417+_0x2309b9(0x9fc)+this[_0x2309b9(0x6be)]+_0x2309b9(0x81f)+this['_reflectionVectorName']+'\x20=\x20computeSkyBoxCoords('+_0x3965d1+',\x20'+_0x549417+_0x2309b9(0x9fc)+this[_0x2309b9(0x233)]+_0x2309b9(0x81f)+this['_reflectionVectorName']+_0x2309b9(0xaa2);return _0xb66f24||(_0x1f8c74+=_0x2309b9(0x737)+this[_0x2309b9(0x99b)]+_0x2309b9(0x755)+this[_0x2309b9(0xccb)]+_0x2309b9(0x692)),_0x1ddaba||(_0x1f8c74+='\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20'+this[_0x2309b9(0x29a)]+_0x2309b9(0x8cd)+this[_0x2309b9(0x1e7)]+_0x2309b9(0x899)+this['_reflectionVectorName']+_0x2309b9(0xc7f)+this[_0x2309b9(0x1e7)]+_0x2309b9(0x899)+this[_0x2309b9(0xccb)]+_0x2309b9(0x79b)+this[_0x2309b9(0x83a)]+_0x2309b9(0x45f)+this[_0x2309b9(0x1e7)]+_0x2309b9(0x644)+this[_0x2309b9(0xccb)]+'.z;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#endif\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+this[_0x2309b9(0x1e7)]+_0x2309b9(0x35a)+this['_reflectionCoordsName']+_0x2309b9(0x542)),_0x1f8c74;}['handleFragmentSideCodeReflectionColor'](_0x390ef9,_0x4d8a53=_0x56d226(0xc15)){var _0x21fd41=_0x56d226,_0x9e1082=_0x21fd41(0x58a)+(0x0===_0x4d8a53['length']?'4':_0x4d8a53[_0x21fd41(0x3ef)]-0x1)+('\x20'+this[_0x21fd41(0x535)]+';\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#ifdef\x20'+this[_0x21fd41(0x29a)]+'\x0d\x0a');return(_0x9e1082=_0x9e1082+(_0x390ef9?this[_0x21fd41(0x535)]+_0x21fd41(0x60f)+this[_0x21fd41(0x618)]+',\x20'+this['_reflectionVectorName']+',\x20'+_0x390ef9+')'+_0x4d8a53+';\x0d\x0a':this[_0x21fd41(0x535)]+_0x21fd41(0x12e)+this['_cubeSamplerName']+',\x20'+this[_0x21fd41(0xccb)]+')'+_0x4d8a53+_0x21fd41(0x21f))+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#else\x0d\x0a')+(_0x390ef9?this[_0x21fd41(0x535)]+_0x21fd41(0xba5)+this[_0x21fd41(0x242)]+',\x20'+this[_0x21fd41(0x1e7)]+',\x20'+_0x390ef9+')'+_0x4d8a53+_0x21fd41(0x21f):this[_0x21fd41(0x535)]+_0x21fd41(0x908)+this[_0x21fd41(0x242)]+',\x20'+this[_0x21fd41(0x1e7)]+')'+_0x4d8a53+';\x0d\x0a')+_0x21fd41(0x7e7);}['writeOutputs'](_0x4896c9,_0x40664f){var _0x19ce90=_0x56d226;let _0x1fad58='';if(_0x4896c9[_0x19ce90(0x56d)]===_0x1b9753['u'][_0x19ce90(0x935)]){for(const _0x7dd39d of this[_0x19ce90(0x484)])_0x7dd39d[_0x19ce90(0xd10)]&&(_0x1fad58+=this[_0x19ce90(0x2a2)](_0x7dd39d,_0x4896c9)+'\x20=\x20'+_0x40664f+'.'+_0x7dd39d[_0x19ce90(0x4b3)]+_0x19ce90(0x21f));}return _0x1fad58;}[_0x56d226(0x4f4)](_0x433773){var _0x4f6132=_0x56d226;return super[_0x4f6132(0x4f4)](_0x433773),this;}[_0x56d226(0x54e)](){var _0x33d9a8=_0x56d226;let _0x366253=super[_0x33d9a8(0x54e)]();return this[_0x33d9a8(0x6f7)]?(this[_0x33d9a8(0x6f7)][_0x33d9a8(0x144)]?(_0x542fc9=this['texture'][_0x33d9a8(0xd06)],_0x366253+=this[_0x33d9a8(0x5c6)]+_0x33d9a8(0x47e)+this[_0x33d9a8(0x6f7)]['name']+'\x22,\x20undefined,\x20undefined,\x20'+this[_0x33d9a8(0x6f7)]['noMipmap']+_0x33d9a8(0x528)+this[_0x33d9a8(0x6f7)][_0x33d9a8(0x280)]+',\x20'+(_0x542fc9?'\x22'+_0x542fc9+'\x22':_0x33d9a8(0x2a1))+_0x33d9a8(0x817)):_0x366253+=this[_0x33d9a8(0x5c6)]+_0x33d9a8(0xcc8)+this[_0x33d9a8(0x6f7)][_0x33d9a8(0x4b3)]+_0x33d9a8(0x947),_0x366253+=this['_codeVariableName']+_0x33d9a8(0x48d)+this[_0x33d9a8(0x6f7)]['coordinatesMode']+_0x33d9a8(0x21f)):_0x366253;var _0x542fc9;}[_0x56d226(0x6ee)](){var _0x5ec43e=_0x56d226;const _0x565a80=super[_0x5ec43e(0x6ee)]();return this[_0x5ec43e(0x6f7)]&&!this[_0x5ec43e(0x6f7)][_0x5ec43e(0xc2b)]&&(_0x565a80[_0x5ec43e(0x6f7)]=this[_0x5ec43e(0x6f7)][_0x5ec43e(0x6ee)]()),_0x565a80[_0x5ec43e(0x84a)]=this[_0x5ec43e(0x84a)],_0x565a80;}[_0x56d226(0x3e1)](_0x155202,_0x17488d,_0x24ccd0){var _0x591acb=_0x56d226;super[_0x591acb(0x3e1)](_0x155202,_0x17488d,_0x24ccd0),_0x155202[_0x591acb(0x6f7)]&&!_0x49ec81['O'][_0x591acb(0x91d)]&&(_0x24ccd0=0x0===_0x155202[_0x591acb(0x6f7)][_0x591acb(0xbbc)][_0x591acb(0x9e0)](_0x591acb(0x7af))?'':_0x24ccd0,_0x155202['texture'][_0x591acb(0x144)]?this[_0x591acb(0x6f7)]=_0x39856b['B'][_0x591acb(0x62c)](_0x155202[_0x591acb(0x6f7)],_0x17488d,_0x24ccd0):this[_0x591acb(0x6f7)]=_0x487738['x'][_0x591acb(0x62c)](_0x155202[_0x591acb(0x6f7)],_0x17488d,_0x24ccd0)),this[_0x591acb(0x84a)]=_0x155202[_0x591acb(0x84a)],this['_setTarget']();}}(function(_0x5cc4c4,_0x651e61,_0x39872b,_0x1ed056){var _0x2cdf58=_0x56d226,_0x362fd1,_0x1efc88=arguments[_0x2cdf58(0x3ef)],_0xbb279c=_0x1efc88<0x3?_0x651e61:null===_0x1ed056?_0x1ed056=Object[_0x2cdf58(0x265)](_0x651e61,_0x39872b):_0x1ed056;if(_0x2cdf58(0x91c)==typeof Reflect&&_0x2cdf58(0x97c)==typeof Reflect[_0x2cdf58(0x12d)])_0xbb279c=Reflect['decorate'](_0x5cc4c4,_0x651e61,_0x39872b,_0x1ed056);else{for(var _0x125abd=_0x5cc4c4['length']-0x1;0x0<=_0x125abd;_0x125abd--)(_0x362fd1=_0x5cc4c4[_0x125abd])&&(_0xbb279c=(_0x1efc88<0x3?_0x362fd1(_0xbb279c):0x3<_0x1efc88?_0x362fd1(_0x651e61,_0x39872b,_0xbb279c):_0x362fd1(_0x651e61,_0x39872b))||_0xbb279c);}0x3<_0x1efc88&&_0xbb279c&&Object[_0x2cdf58(0x41c)](_0x651e61,_0x39872b,_0xbb279c);}([(0x0,_0x3f1fbf['p'])(_0x56d226(0x1a8),_0x3f1fbf['U']['Boolean'],_0x56d226(0xa53),{'notifiers':{'rebuild':!0x0,'update':!0x0,'onValidation':_0x5b573d[_0x56d226(0x19c)]}})],_0x5b573d['prototype'],_0x56d226(0x84a),void 0x0),(0x0,_0x15b0a6['H'])(_0x56d226(0x614),_0x5b573d));},0x107c1:(_0x108e7d,_0x9183e9,_0x157508)=>{var _0x1b65ca=a6_0x1e64fa;_0x157508['d'](_0x9183e9,{'$':()=>_0x5834cf});var _0x9183e9=_0x157508(0x15a52),_0x8883b9=_0x157508(0x1137a),_0x2db24f=_0x157508(0xec3c),_0x5cdb86=_0x157508(0x16ad5),_0x58d1f8=_0x157508(0xe456),_0x317c08=_0x157508(0x11c74),_0x62ffed=_0x157508(0xd646),_0x3c737c=_0x157508(0xebd3);class _0x5834cf extends _0x9183e9['k']{constructor(_0x3b5228){var _0x159655=a6_0x2304;super(_0x3b5228,_0x5cdb86['u'][_0x159655(0x935)]),this[_0x159655(0xb1d)]=!0x0,this[_0x159655(0x1a4)](_0x159655(0x3ac),_0x8883b9['E'][_0x159655(0x20d)],!0x0,_0x5cdb86['u'][_0x159655(0x935)]),this[_0x159655(0x1a4)](_0x159655(0x460),_0x8883b9['E'][_0x159655(0x20d)],!0x0,_0x5cdb86['u'][_0x159655(0x935)]),this['registerInput'](_0x159655(0x297),_0x8883b9['E']['Float'],!0x0,_0x5cdb86['u'][_0x159655(0x935)]),this[_0x159655(0xc16)]('iridescence',_0x8883b9['E'][_0x159655(0xc4d)],_0x5cdb86['u'][_0x159655(0x935)],new _0x62ffed['C'](_0x159655(0x57e),this,_0x2db24f['Ab'][_0x159655(0x179)],_0x5834cf,_0x159655(0x2e8)));}['initialize'](_0x526664){var _0x510ab6=a6_0x2304;_0x526664[_0x510ab6(0x28d)]('iridescenceOut'),_0x526664[_0x510ab6(0x28d)](_0x510ab6(0x393));}[_0x1b65ca(0x4e7)](){var _0x479828=_0x1b65ca;return _0x479828(0x2e8);}get['intensity'](){var _0x1c8833=_0x1b65ca;return this[_0x1c8833(0x628)][0x0];}get[_0x1b65ca(0x460)](){var _0x495ecf=_0x1b65ca;return this[_0x495ecf(0x628)][0x1];}get[_0x1b65ca(0x297)](){var _0xcbc65f=_0x1b65ca;return this[_0xcbc65f(0x628)][0x2];}get['iridescence'](){return this['_outputs'][0x0];}[_0x1b65ca(0x19d)](){var _0x10c9ac=_0x1b65ca;if(!this['intensity'][_0x10c9ac(0x2d2)]){const _0x1c2efa=new _0x317c08['S'](_0x10c9ac(0x70d),_0x5cdb86['u']['Fragment'],_0x8883b9['E'][_0x10c9ac(0x20d)]),_0x3451ea=(_0x1c2efa[_0x10c9ac(0x5c5)]=0x1,_0x1c2efa['output']['connectTo'](this[_0x10c9ac(0x3ac)]),new _0x317c08['S'](_0x10c9ac(0xa58),_0x5cdb86['u'][_0x10c9ac(0x935)],_0x8883b9['E'][_0x10c9ac(0x20d)])),_0x5f330b=(_0x3451ea['value']=1.3,_0x3451ea['output'][_0x10c9ac(0x98e)](this[_0x10c9ac(0x460)]),new _0x317c08['S']('Iridescence\x20thickness',_0x5cdb86['u'][_0x10c9ac(0x935)],_0x8883b9['E']['Float']));_0x5f330b[_0x10c9ac(0x5c5)]=0x190,_0x5f330b[_0x10c9ac(0x537)]['connectTo'](this[_0x10c9ac(0x297)]);}}[_0x1b65ca(0xc05)](_0x53119a,_0x3ba65e,_0x3d4162){var _0x2f5594=_0x1b65ca;super[_0x2f5594(0xc05)](_0x53119a,_0x3ba65e,_0x3d4162),_0x3d4162[_0x2f5594(0xb45)](_0x2f5594(0x78d),!0x0,!0x0),_0x3d4162[_0x2f5594(0xb45)](_0x2f5594(0x15a),!0x1,!0x0),_0x3d4162[_0x2f5594(0xb45)](_0x2f5594(0x59e),!0x1,!0x0);}static[_0x1b65ca(0xbd4)](_0x1da337){var _0x58762c=_0x1b65ca;return''+(_0x58762c(0xb07)+(null!=_0x1da337&&_0x1da337[_0x58762c(0x3ac)][_0x58762c(0x2d2)]?_0x1da337[_0x58762c(0x3ac)][_0x58762c(0x28b)]:'1.')+',\x20'+(null!=_0x1da337&&_0x1da337['indexOfRefraction'][_0x58762c(0x2d2)]?_0x1da337[_0x58762c(0x460)]['associatedVariableName']:_0x3c737c['B'][_0x58762c(0x600)])+',\x201.,\x20'+(null!=_0x1da337&&_0x1da337['thickness'][_0x58762c(0x2d2)]?_0x1da337[_0x58762c(0x297)][_0x58762c(0x28b)]:_0x3c737c['B'][_0x58762c(0x1c3)])+_0x58762c(0x5b7));}[_0x1b65ca(0x4f4)](_0x26a2d5){var _0x4fad15=_0x1b65ca;return _0x26a2d5['target']===_0x5cdb86['u'][_0x4fad15(0x935)]&&(_0x26a2d5['sharedData'][_0x4fad15(0x5ab)][_0x4fad15(0x83f)](this),_0x26a2d5[_0x4fad15(0x44b)][_0x4fad15(0xa5c)][_0x4fad15(0x83f)](this)),this;}[_0x1b65ca(0x6ee)](){return super['serialize']();}['_deserialize'](_0x13ec2a,_0x510e6b,_0x574d21){var _0xa874fd=_0x1b65ca;super[_0xa874fd(0x3e1)](_0x13ec2a,_0x510e6b,_0x574d21);}}(0x0,_0x58d1f8['H'])(_0x1b65ca(0xb5e),_0x5834cf);},0x18495:(_0x452615,_0x4cd861,_0x2cf908)=>{var _0x2004dc=a6_0x1e64fa;_0x2cf908['d'](_0x4cd861,{'u':()=>_0x3f8c6f});var _0x241b67=_0x2cf908(0x1137a),_0x501912=_0x2cf908(0x16ad5),_0x2e07f8=_0x2cf908(0xf75c);class _0x3f8c6f{constructor(){var _0x29cf8e=a6_0x2304;this[_0x29cf8e(0x4fd)]=!0x1,this[_0x29cf8e(0x130)]=new Array(),this[_0x29cf8e(0x489)]=new Array(),this[_0x29cf8e(0x46e)]=new Array(),this[_0x29cf8e(0x51b)]=new Array(),this[_0x29cf8e(0x253)]={},this[_0x29cf8e(0x303)]={},this['counters']={},this['_attributeDeclaration']='',this[_0x29cf8e(0x7b0)]='',this[_0x29cf8e(0xb1c)]='',this['_samplerDeclaration']='',this[_0x29cf8e(0x69d)]='',this[_0x29cf8e(0x2bc)]='',this[_0x29cf8e(0x12c)]=0x0,this['_builtCompilationString']='',this[_0x29cf8e(0x4ac)]='';}[_0x2004dc(0x7c8)](_0x3cac09){var _0x33c89c=_0x2004dc,_0x3cac09=_0x3cac09[_0x33c89c(0x44b)][_0x33c89c(0x36c)],_0x5937bb=this[_0x33c89c(0x56d)]===_0x501912['u'][_0x33c89c(0x935)];this[_0x33c89c(0x4ac)]='\x0d\x0a'+(_0x3cac09?_0x33c89c(0x5be):'')+_0x33c89c(0x3de)+this[_0x33c89c(0x4ac)],this[_0x33c89c(0xb1c)]&&(this[_0x33c89c(0x4ac)]='\x0d\x0a'+(_0x3cac09?_0x33c89c(0x37d):'')+this[_0x33c89c(0xb1c)]+'\x0d\x0a'+this[_0x33c89c(0x4ac)]);let _0x2b0c2c='';for(const _0x2be396 in this[_0x33c89c(0x253)])_0x2b0c2c+=this['functions'][_0x2be396]+'\x0d\x0a';this[_0x33c89c(0x4ac)]='\x0d\x0a'+_0x2b0c2c+'\x0d\x0a'+this['compilationString'],!_0x5937bb&&this['_varyingTransfer']&&(this[_0x33c89c(0x4ac)]=this[_0x33c89c(0x4ac)]+'\x0d\x0a'+this[_0x33c89c(0x69d)]),this[_0x33c89c(0x2bc)]&&(this['compilationString']=this[_0x33c89c(0x4ac)]+'\x0d\x0a'+this[_0x33c89c(0x2bc)]),this[_0x33c89c(0x4ac)]=this['compilationString']+_0x33c89c(0x915),this[_0x33c89c(0x44b)][_0x33c89c(0x42a)]&&(this[_0x33c89c(0x4ac)]='\x0d\x0a'+(_0x3cac09?'//Varyings\x0d\x0a':'')+this['sharedData'][_0x33c89c(0x42a)]+'\x0d\x0a'+this[_0x33c89c(0x4ac)]),this[_0x33c89c(0x3d9)]&&(this[_0x33c89c(0x4ac)]='\x0d\x0a'+(_0x3cac09?_0x33c89c(0xa50):'')+this['_samplerDeclaration']+'\x0d\x0a'+this[_0x33c89c(0x4ac)]),this['_uniformDeclaration']&&(this['compilationString']='\x0d\x0a'+(_0x3cac09?_0x33c89c(0xc7d):'')+this['_uniformDeclaration']+'\x0d\x0a'+this[_0x33c89c(0x4ac)]),this[_0x33c89c(0xa0e)]&&!_0x5937bb&&(this[_0x33c89c(0x4ac)]='\x0d\x0a'+(_0x3cac09?_0x33c89c(0x1d0):'')+this[_0x33c89c(0xa0e)]+'\x0d\x0a'+this['compilationString']),this['compilationString']=_0x33c89c(0xc80)+this['compilationString'],this[_0x33c89c(0x4ac)]=_0x33c89c(0x275)+this['compilationString'];for(const _0x477489 in this[_0x33c89c(0x303)]){var _0xb55c36=this[_0x33c89c(0x303)][_0x477489];this[_0x33c89c(0x4ac)]='\x0d\x0a'+_0xb55c36+'\x0d\x0a'+this[_0x33c89c(0x4ac)];}this['_builtCompilationString']=this[_0x33c89c(0x4ac)];}get['_repeatableContentAnchor'](){var _0x2ba291=_0x2004dc;return _0x2ba291(0x982)+this['_repeatableContentAnchorIndex']++ +_0x2ba291(0x608);}[_0x2004dc(0x623)](_0x216851){var _0x47dd64=_0x2004dc;return _0x216851=_0x216851[_0x47dd64(0x3cd)](/[^a-zA-Z_]+/g,''),void 0x0===this[_0x47dd64(0x44b)][_0x47dd64(0xc5b)][_0x216851]?(this['sharedData']['variableNames'][_0x216851]=0x0,'output'===_0x216851||'texture'===_0x216851?_0x216851+this['sharedData'][_0x47dd64(0xc5b)][_0x216851]:_0x216851):(this[_0x47dd64(0x44b)]['variableNames'][_0x216851]++,_0x216851+this['sharedData'][_0x47dd64(0xc5b)][_0x216851]);}[_0x2004dc(0x1b3)](_0x2532f9){var _0x1a07e5=_0x2004dc;return void 0x0===this[_0x1a07e5(0x44b)][_0x1a07e5(0x80e)][_0x2532f9]?this[_0x1a07e5(0x44b)][_0x1a07e5(0x80e)][_0x2532f9]=0x0:this[_0x1a07e5(0x44b)][_0x1a07e5(0x80e)][_0x2532f9]++,_0x2532f9+this['sharedData'][_0x1a07e5(0x80e)][_0x2532f9];}['_excludeVariableName'](_0x67bbb8){var _0x47681a=_0x2004dc;this[_0x47681a(0x44b)]['variableNames'][_0x67bbb8]=0x0;}[_0x2004dc(0x659)](_0x4f5aea){var _0x107b70=_0x2004dc;this[_0x107b70(0x51b)][_0x107b70(0x9e0)](_0x4f5aea)<0x0&&(this[_0x107b70(0x3d9)]+=_0x107b70(0x70f)+_0x4f5aea+';\x0d\x0a',this[_0x107b70(0x51b)][_0x107b70(0x83f)](_0x4f5aea));}[_0x2004dc(0x5e7)](_0x1d8de2){var _0x58422f=_0x2004dc;this[_0x58422f(0x51b)][_0x58422f(0x9e0)](_0x1d8de2)<0x0&&(this[_0x58422f(0x3d9)]+=_0x58422f(0x83b)+_0x1d8de2+_0x58422f(0x21f),this[_0x58422f(0x51b)][_0x58422f(0x83f)](_0x1d8de2));}[_0x2004dc(0x845)](_0x47f0b7){var _0x2dbb3a=_0x2004dc;switch(_0x47f0b7){case _0x241b67['E'][_0x2dbb3a(0x20d)]:return _0x2dbb3a(0x6f0);case _0x241b67['E'][_0x2dbb3a(0x647)]:return _0x2dbb3a(0xb0e);case _0x241b67['E'][_0x2dbb3a(0x725)]:return'vec2';case _0x241b67['E'][_0x2dbb3a(0x1b5)]:case _0x241b67['E'][_0x2dbb3a(0x53c)]:return _0x2dbb3a(0x84c);case _0x241b67['E'][_0x2dbb3a(0x6c4)]:case _0x241b67['E'][_0x2dbb3a(0x2c0)]:return'vec4';case _0x241b67['E']['Matrix']:return _0x2dbb3a(0x366);}return'';}[_0x2004dc(0x906)](_0x199261,_0x104bbf,_0x2122ce=''){var _0x1fcf80=_0x2004dc;this[_0x1fcf80(0x303)][_0x199261]||(this[_0x1fcf80(0x303)][_0x199261]=_0x104bbf=_0x2122ce?_0x1fcf80(0xb2c)+_0x2122ce+'\x0d\x0a'+_0x104bbf+'\x0d\x0a#endif':_0x104bbf);}[_0x2004dc(0x1dc)](_0x147cd1,_0x21108d,_0x3aa079){var _0x30fd75=_0x2004dc;this['functions'][_0x147cd1]||(this['sharedData'][_0x30fd75(0x36c)]&&(_0x21108d=_0x3aa079+'\x0d\x0a'+_0x21108d),this['functions'][_0x147cd1]=_0x21108d);}[_0x2004dc(0x8dd)](_0x5eeff8,_0x323dee,_0x48fbb9){var _0x5af5ee=_0x2004dc;if(_0x48fbb9&&_0x48fbb9[_0x5af5ee(0x21a)])return'#include<'+_0x5eeff8+'>'+(_0x48fbb9['substitutionVars']?'('+_0x48fbb9[_0x5af5ee(0x145)]+')':'')+_0x5af5ee(0xb3b)+_0x48fbb9[_0x5af5ee(0x21a)]+_0x5af5ee(0x8f4);let _0x1f3e07=_0x2e07f8['Q']['IncludesShadersStore'][_0x5eeff8]+'\x0d\x0a';if(this[_0x5af5ee(0x44b)][_0x5af5ee(0x36c)]&&(_0x1f3e07=_0x323dee+'\x0d\x0a'+_0x1f3e07),!_0x48fbb9)return _0x1f3e07;if(_0x48fbb9[_0x5af5ee(0x852)])for(let _0x1d3ee7=0x0;_0x1d3ee7<_0x48fbb9[_0x5af5ee(0x852)][_0x5af5ee(0x3ef)];_0x1d3ee7++){var _0x46e845=_0x48fbb9[_0x5af5ee(0x852)][_0x1d3ee7];_0x1f3e07=_0x1f3e07['replace'](_0x46e845[_0x5af5ee(0x20b)],_0x46e845[_0x5af5ee(0x3cd)]);}return _0x1f3e07;}['_emitFunctionFromInclude'](_0x215be6,_0x5d9356,_0x48ce28,_0x4c4019=''){var _0x5efabb=_0x2004dc,_0x510e19=_0x215be6+_0x4c4019;if(!this[_0x5efabb(0x253)][_0x510e19]){if(!_0x48ce28||!(_0x48ce28[_0x5efabb(0x9eb)]||_0x48ce28[_0x5efabb(0x6c2)]||_0x48ce28[_0x5efabb(0x95e)]||_0x48ce28[_0x5efabb(0xab9)]||_0x48ce28['replaceStrings']))return _0x48ce28&&_0x48ce28[_0x5efabb(0x21a)]?this[_0x5efabb(0x253)][_0x510e19]=_0x5efabb(0x2e1)+_0x215be6+'>'+(_0x48ce28[_0x5efabb(0x145)]?'('+_0x48ce28['substitutionVars']+')':'')+'[0..'+_0x48ce28['repeatKey']+_0x5efabb(0x8f4):this[_0x5efabb(0x253)][_0x510e19]=_0x5efabb(0x2e1)+_0x215be6+'>'+(null!=_0x48ce28&&_0x48ce28[_0x5efabb(0x145)]?'('+(null==_0x48ce28?void 0x0:_0x48ce28[_0x5efabb(0x145)])+')':'')+'\x0d\x0a',void(this['sharedData'][_0x5efabb(0x36c)]&&(this['functions'][_0x510e19]=_0x5d9356+'\x0d\x0a'+this[_0x5efabb(0x253)][_0x510e19]));if(this['functions'][_0x510e19]=_0x2e07f8['Q'][_0x5efabb(0x7df)][_0x215be6],this[_0x5efabb(0x44b)][_0x5efabb(0x36c)]&&(this[_0x5efabb(0x253)][_0x510e19]=_0x5d9356+'\x0d\x0a'+this[_0x5efabb(0x253)][_0x510e19]),_0x48ce28[_0x5efabb(0xab9)]&&(this[_0x5efabb(0x253)][_0x510e19]=this[_0x5efabb(0x253)][_0x510e19]['replace'](/^\s*?#ifdef.+$/gm,''),this['functions'][_0x510e19]=this[_0x5efabb(0x253)][_0x510e19][_0x5efabb(0x3cd)](/^\s*?#endif.*$/gm,''),this['functions'][_0x510e19]=this[_0x5efabb(0x253)][_0x510e19][_0x5efabb(0x3cd)](/^\s*?#else.*$/gm,''),this[_0x5efabb(0x253)][_0x510e19]=this[_0x5efabb(0x253)][_0x510e19]['replace'](/^\s*?#elif.*$/gm,'')),_0x48ce28[_0x5efabb(0x9eb)]&&(this[_0x5efabb(0x253)][_0x510e19]=this[_0x5efabb(0x253)][_0x510e19][_0x5efabb(0x3cd)](/^\s*?attribute.+$/gm,'')),_0x48ce28[_0x5efabb(0x6c2)]&&(this[_0x5efabb(0x253)][_0x510e19]=this[_0x5efabb(0x253)][_0x510e19]['replace'](/^\s*?uniform.+$/gm,'')),_0x48ce28['removeVaryings']&&(this[_0x5efabb(0x253)][_0x510e19]=this[_0x5efabb(0x253)][_0x510e19][_0x5efabb(0x3cd)](/^\s*?varying.+$/gm,'')),_0x48ce28[_0x5efabb(0x852)])for(let _0x599019=0x0;_0x599019<_0x48ce28[_0x5efabb(0x852)][_0x5efabb(0x3ef)];_0x599019++){var _0x2ea519=_0x48ce28[_0x5efabb(0x852)][_0x599019];this['functions'][_0x510e19]=this[_0x5efabb(0x253)][_0x510e19][_0x5efabb(0x3cd)](_0x2ea519['search'],_0x2ea519[_0x5efabb(0x3cd)]);}}}[_0x2004dc(0x7f8)](_0x516bc4){var _0x124aca=_0x2004dc;return-0x1===this[_0x124aca(0x44b)]['temps'][_0x124aca(0x9e0)](_0x516bc4)&&(this['sharedData'][_0x124aca(0xc1b)][_0x124aca(0x83f)](_0x516bc4),!0x0);}[_0x2004dc(0x6a8)](_0x58c3b8,_0x2cfebd,_0x27fc4f='',_0x3d4fed=!0x1){var _0x4ac6bb=_0x2004dc;return-0x1===this[_0x4ac6bb(0x44b)]['varyings']['indexOf'](_0x58c3b8)&&(this[_0x4ac6bb(0x44b)]['varyings'][_0x4ac6bb(0x83f)](_0x58c3b8),_0x27fc4f&&(_0x27fc4f[_0x4ac6bb(0xc41)](_0x4ac6bb(0x980))?this['sharedData'][_0x4ac6bb(0x42a)]+=_0x4ac6bb(0xb2c)+_0x27fc4f+'\x0d\x0a':this[_0x4ac6bb(0x44b)][_0x4ac6bb(0x42a)]+=(_0x3d4fed?_0x4ac6bb(0x2ac):_0x4ac6bb(0x995))+('\x20'+_0x27fc4f+'\x0d\x0a')),this[_0x4ac6bb(0x44b)][_0x4ac6bb(0x42a)]+=_0x4ac6bb(0x55c)+_0x2cfebd+'\x20'+_0x58c3b8+_0x4ac6bb(0x21f),_0x27fc4f&&(this['sharedData'][_0x4ac6bb(0x42a)]+='#endif\x0d\x0a'),!0x0);}[_0x2004dc(0xb7f)](_0x4ad923,_0x45447d,_0x583505='',_0x1356d5=!0x1){var _0x248cad=_0x2004dc;-0x1===this['uniforms']['indexOf'](_0x4ad923)&&(this['uniforms']['push'](_0x4ad923),_0x583505&&(_0x583505[_0x248cad(0xc41)](_0x248cad(0x980))?this[_0x248cad(0x7b0)]+=_0x248cad(0xb2c)+_0x583505+'\x0d\x0a':this[_0x248cad(0x7b0)]+=(_0x1356d5?'#ifndef':_0x248cad(0x995))+('\x20'+_0x583505+'\x0d\x0a')),this[_0x248cad(0x7b0)]+=_0x248cad(0x85c)+_0x45447d+'\x20'+_0x4ad923+_0x248cad(0x21f),_0x583505&&(this[_0x248cad(0x7b0)]+=_0x248cad(0x7e7)));}['_emitFloat'](_0x546e41){return _0x546e41['toString']()===_0x546e41['toFixed'](0x0)?_0x546e41+'.0':_0x546e41['toString']();}}},0x13764:(_0x4fa51c,_0xbfff8a,_0x57093)=>{var _0x45fa9f=a6_0x1e64fa;_0x57093['d'](_0xbfff8a,{'U':()=>_0x13b405});class _0x13b405{constructor(){var _0xf4ecea=a6_0x2304;this[_0xf4ecea(0xc1b)]=new Array(),this[_0xf4ecea(0x939)]=new Array(),this[_0xf4ecea(0x42a)]='',this[_0xf4ecea(0x722)]=new Array(),this[_0xf4ecea(0x14d)]=new Array(),this[_0xf4ecea(0x5ab)]=new Array(),this['forcedBindableBlocks']=new Array(),this['blocksWithFallbacks']=new Array(),this[_0xf4ecea(0xa5c)]=new Array(),this[_0xf4ecea(0x15e)]=new Array(),this[_0xf4ecea(0x17c)]=new Array(),this['blockingBlocks']=new Array(),this['animatedInputs']=new Array(),this[_0xf4ecea(0xc5b)]={},this[_0xf4ecea(0x80e)]={},this['hints']={'needWorldViewMatrix':!0x1,'needWorldViewProjectionMatrix':!0x1,'needAlphaBlending':!0x1,'needAlphaTesting':!0x1},this[_0xf4ecea(0x24f)]={'emitVertex':!0x1,'emitFragment':!0x1,'notConnectedNonOptionalInputs':new Array()},this[_0xf4ecea(0x64e)]=!0x1,this['variableNames']['position']=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0xcaf)]=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0x2fc)]=0x0,this['variableNames']['uv']=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0x873)]=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0x3ce)]=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0x7bd)]=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0xc0b)]=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0x38b)]=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0x84f)]=0x0,this[_0xf4ecea(0xc5b)]['matricesIndices']=0x0,this[_0xf4ecea(0xc5b)]['matricesWeights']=0x0,this['variableNames'][_0xf4ecea(0x46c)]=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0x6c3)]=0x0,this[_0xf4ecea(0xc5b)]['diffuseBase']=0x0,this[_0xf4ecea(0xc5b)]['specularBase']=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0x5bc)]=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0x18f)]=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0x481)]=0x0,this[_0xf4ecea(0xc5b)][_0xf4ecea(0x81a)]=0x0,this['defineNames']['MAINUV0']=0x0,this[_0xf4ecea(0x80e)][_0xf4ecea(0xaa3)]=0x0,this[_0xf4ecea(0x80e)][_0xf4ecea(0x236)]=0x0,this[_0xf4ecea(0x80e)][_0xf4ecea(0xb2b)]=0x0,this[_0xf4ecea(0x80e)][_0xf4ecea(0xaca)]=0x0,this[_0xf4ecea(0x80e)][_0xf4ecea(0xbd7)]=0x0,this[_0xf4ecea(0x80e)][_0xf4ecea(0x23b)]=0x0,this[_0xf4ecea(0x80e)][_0xf4ecea(0x372)]=0x0;}[_0x45fa9f(0x611)](){var _0x8a21d0=_0x45fa9f;let _0x14d4d7='';this[_0x8a21d0(0x24f)][_0x8a21d0(0x18c)]||this['allowEmptyVertexProgram']||(_0x14d4d7+=_0x8a21d0(0xc39)),this[_0x8a21d0(0x24f)]['emitFragment']||(_0x14d4d7+=_0x8a21d0(0x271));for(const _0x184f95 of this[_0x8a21d0(0x24f)][_0x8a21d0(0x919)])_0x14d4d7+=_0x8a21d0(0x399)+_0x184f95['name']+_0x8a21d0(0x26e)+_0x184f95[_0x8a21d0(0x889)][_0x8a21d0(0x4b3)]+'['+_0x184f95[_0x8a21d0(0x889)][_0x8a21d0(0x4e7)]()+_0x8a21d0(0xa33);if(_0x14d4d7)throw'Build\x20of\x20NodeMaterial\x20failed:\x0d\x0a'+_0x14d4d7;}}},0x15556:(_0x3cf4f3,_0x521291,_0x26ae01)=>{var _0x223684=a6_0x1e64fa;_0x26ae01['d'](_0x521291,{'x':()=>_0x55e94c});var _0x521291=_0x26ae01(0x8af2),_0x5dfcb8=_0x26ae01(0x77a5);class _0x55e94c extends _0x521291['_']{set[_0x223684(0x993)](_0x25bdac){var _0x2070c8=_0x223684;this[_0x2070c8(0xd2e)]=_0x25bdac;}get[_0x223684(0x993)](){return this['_samples'];}constructor(_0x461fb5,_0x45da88=0x200){var _0x3b7bb2=_0x223684;super(_0x3b7bb2(0x5d5),_0x45da88,_0x461fb5,!0x1,!0x0,_0x5dfcb8['g']['TEXTURETYPE_UNSIGNED_INT'],!0x1,void 0x0,!0x1,!0x1,!0x0,void 0x0,!0x0),this[_0x3b7bb2(0xa46)]=this[_0x3b7bb2(0x9fa)]()['getEngine']()[_0x3b7bb2(0xbc6)](this[_0x3b7bb2(0x73a)](),this[_0x3b7bb2(0xc58)]()),this[_0x3b7bb2(0xa37)]=this[_0x3b7bb2(0xa46)][_0x3b7bb2(0x6f7)],this[_0x3b7bb2(0xa37)][_0x3b7bb2(0xc20)]=!0x0,this[_0x3b7bb2(0xa37)][_0x3b7bb2(0x808)]=_0x5dfcb8['g'][_0x3b7bb2(0x86c)],this[_0x3b7bb2(0x993)]=this[_0x3b7bb2(0x29c)]()['getCaps']()['maxSamples']||this[_0x3b7bb2(0x993)],this['_texture'][_0x3b7bb2(0x993)]=this[_0x3b7bb2(0xd2e)];}[_0x223684(0xb62)](){var _0x3f0ae1=_0x223684;this[_0x3f0ae1(0xa46)]&&this['getScene']()[_0x3f0ae1(0xcde)]()[_0x3f0ae1(0xa2c)](this['_renderTarget']);}[_0x223684(0x764)](){return 0x2;}}},0xb120:(_0x4a838c,_0x4e45d0,_0xb5cb72)=>{_0xb5cb72['d'](_0x4e45d0,{'p':()=>_0x2a4442});class _0x2a4442{constructor(_0x4bc282,_0x3afcb5,_0x17d6d2){var _0x4b572c=a6_0x2304;this['id']=_0x4bc282,this[_0x4b572c(0x7d8)]=_0x3afcb5,this['offset']=_0x17d6d2;}}},0x174f7:(_0x14bbc3,_0x9b2ef,_0x2c8256)=>{var _0x40bb3d=a6_0x1e64fa,_0x419286=_0x2c8256(0xe303),_0x2c8256=_0x2c8256(0x11929);_0x2c8256['V'][_0x40bb3d(0x9ed)][_0x40bb3d(0xa17)]=function(){var _0x20091f=_0x40bb3d;this[_0x20091f(0xa37)]&&(this[_0x20091f(0xa37)]['_sphericalPolynomial']=null,this[_0x20091f(0xa37)][_0x20091f(0x7ab)]=null,this[_0x20091f(0xa37)]['_sphericalPolynomialComputed']=!0x1);},Object['defineProperty'](_0x2c8256['V']['prototype'],_0x40bb3d(0xb41),{'get':function(){var _0x389d83=_0x40bb3d;if(this[_0x389d83(0xa37)]){if(this[_0x389d83(0xa37)][_0x389d83(0x159)]||this[_0x389d83(0xa37)][_0x389d83(0xbcc)])return this[_0x389d83(0xa37)][_0x389d83(0x159)];if(this['_texture'][_0x389d83(0x5ac)])return this[_0x389d83(0xa37)]['_sphericalPolynomialPromise']||(this[_0x389d83(0xa37)][_0x389d83(0x7ab)]=_0x419286['$'][_0x389d83(0x6cf)](this),null===this[_0x389d83(0xa37)][_0x389d83(0x7ab)]?this[_0x389d83(0xa37)][_0x389d83(0xbcc)]=!0x0:this[_0x389d83(0xa37)][_0x389d83(0x7ab)]['then'](_0x106e9b=>{var _0x42272e=_0x389d83;this[_0x42272e(0xa37)][_0x42272e(0x159)]=_0x106e9b,this[_0x42272e(0xa37)][_0x42272e(0xbcc)]=!0x0;})),null;}return null;},'set':function(_0x3fea49){var _0x5f0cc7=_0x40bb3d;this[_0x5f0cc7(0xa37)]&&(this[_0x5f0cc7(0xa37)][_0x5f0cc7(0x159)]=_0x3fea49);},'enumerable':!0x0,'configurable':!0x0});},0x16ea5:(_0x3b144c,_0x2b44f0,_0x30fdcf)=>{var _0x2d8e8c=a6_0x1e64fa;_0x30fdcf['d'](_0x2b44f0,{'N':()=>_0x2444aa});var _0x2b44f0=_0x30fdcf(0x163e6),_0x51b8cf=_0x30fdcf(0xc3ae);class _0x2444aa extends _0x2b44f0['K']{constructor(_0x4cb383,_0x462259,_0x344ec5,_0x3cd04e,_0x4e893d,_0x417c1e){var _0x107e2a=a6_0x2304;super(_0x4cb383,_0x344ec5,_0x3cd04e,_0x4e893d,_0x417c1e),this[_0x107e2a(0x410)]=[],this['_internalTextureDirty']=!0x1,this[_0x107e2a(0x4d2)]=!0x1,this['renderTargetTexture']=null,this[_0x107e2a(0xad2)]=_0x462259;}[_0x2d8e8c(0x3c5)](){var _0x347f1f=_0x2d8e8c;this['imageProcessingPostProcess']=new _0x51b8cf['z'](_0x347f1f(0x880),0x1,null,void 0x0,this['_engine']),this[_0x347f1f(0x5bb)]['_updateParameters']();}['_checkSize'](){var _0x325cba=_0x2d8e8c,_0xf4d160=this[_0x325cba(0x397)][_0x325cba(0x73a)](!0x0),_0x250288=this[_0x325cba(0x397)][_0x325cba(0xc58)](!0x0),_0x406714=this[_0x325cba(0x73a)](),_0x3c3d4d=this['getRenderHeight']();_0x406714===_0xf4d160&&_0x3c3d4d===_0x250288||(this['resize']({'width':_0xf4d160,'height':_0x250288}),this['_internalTextureDirty']=!0x0);}[_0x2d8e8c(0xa9c)](_0x4df96f,_0x559c29,_0x52731c){var _0x3d55d6=_0x2d8e8c;super[_0x3d55d6(0xa9c)](_0x4df96f,_0x559c29,_0x52731c),this[_0x3d55d6(0x840)]=!0x0;}[_0x2d8e8c(0x4ea)](){var _0x23e2a8=_0x2d8e8c;this['_beforeCompositionPostProcesses'][_0x23e2a8(0x3ef)]=0x0;}[_0x2d8e8c(0x431)](){var _0x183532=_0x2d8e8c;const _0x4eb31f=this[_0x183532(0x19a)];var _0x129ada;super[_0x183532(0x431)](),_0x4eb31f&&_0x4eb31f[_0x183532(0x475)]&&-0x1!==(_0x129ada=_0x4eb31f[_0x183532(0x475)]['renderTargets'][_0x183532(0x9e0)](this))&&_0x4eb31f[_0x183532(0x475)][_0x183532(0x8e7)]['splice'](_0x129ada,0x1),this[_0x183532(0x5bb)]&&this['imageProcessingPostProcess'][_0x183532(0x431)](),this[_0x183532(0xad2)]&&(this[_0x183532(0xad2)][_0x183532(0xae9)]=null),this[_0x183532(0x641)]&&(this[_0x183532(0x641)]['autoClear']=!0x0,this[_0x183532(0x641)][_0x183532(0x32a)]());}}},0x2088:(_0x40db56,_0x37237e,_0x2ae104)=>{function _0x129b61(_0x28ead8,_0x56f5bf,_0x303d0e){var _0x32c9e5=a6_0x2304;_0x303d0e&&_0x28ead8['setFloat4'](_0x56f5bf,_0x303d0e[_0x32c9e5(0xcaf)]['x'],_0x303d0e[_0x32c9e5(0xcaf)]['y'],_0x303d0e[_0x32c9e5(0xcaf)]['z'],_0x303d0e['d']);}_0x2ae104['d'](_0x37237e,{'AN':()=>function(_0x2946ba,_0x546c9e,_0x1235b9){var _0x58806b=a6_0x2304;let _0x4987a0=!0x1;var _0x5e0ecf=!!(null!=(_0x5e0ecf=_0x2946ba[_0x58806b(0x7d9)])?_0x5e0ecf:_0x546c9e['clipPlane']),_0xa459d5=!!(null!=(_0xa459d5=_0x2946ba['clipPlane2'])?_0xa459d5:_0x546c9e[_0x58806b(0x680)]),_0x5ad853=!!(null!=(_0x5ad853=_0x2946ba['clipPlane3'])?_0x5ad853:_0x546c9e[_0x58806b(0x7f6)]),_0x3dd380=!!(null!=(_0x3dd380=_0x2946ba[_0x58806b(0xcd9)])?_0x3dd380:_0x546c9e[_0x58806b(0xcd9)]),_0x1eecaa=!!(null!=(_0x1eecaa=_0x2946ba[_0x58806b(0x315)])?_0x1eecaa:_0x546c9e['clipPlane5']),_0x2946ba=!!(null!=(_0x2946ba=_0x2946ba[_0x58806b(0x277)])?_0x2946ba:_0x546c9e[_0x58806b(0x277)]);return _0x1235b9[_0x58806b(0x924)]!==_0x5e0ecf&&(_0x1235b9[_0x58806b(0x924)]=_0x5e0ecf,_0x4987a0=!0x0),_0x1235b9[_0x58806b(0x717)]!==_0xa459d5&&(_0x1235b9[_0x58806b(0x717)]=_0xa459d5,_0x4987a0=!0x0),_0x1235b9[_0x58806b(0x621)]!==_0x5ad853&&(_0x1235b9[_0x58806b(0x621)]=_0x5ad853,_0x4987a0=!0x0),_0x1235b9[_0x58806b(0xd14)]!==_0x3dd380&&(_0x1235b9['CLIPPLANE4']=_0x3dd380,_0x4987a0=!0x0),_0x1235b9[_0x58806b(0x1d2)]!==_0x1eecaa&&(_0x1235b9[_0x58806b(0x1d2)]=_0x1eecaa,_0x4987a0=!0x0),_0x1235b9[_0x58806b(0x53a)]!==_0x2946ba&&(_0x1235b9[_0x58806b(0x53a)]=_0x2946ba,_0x4987a0=!0x0),_0x4987a0;},'an':()=>function(_0x47d018,_0xf3921c,_0x3c7bb8){var _0x204b15=a6_0x2304,_0xdb4e1a;_0x129b61(_0x47d018,_0x204b15(0x95c),null!=(_0xdb4e1a=_0xf3921c[_0x204b15(0x7d9)])?_0xdb4e1a:_0x3c7bb8['clipPlane']),_0x129b61(_0x47d018,'vClipPlane2',null!=(_0xdb4e1a=_0xf3921c['clipPlane2'])?_0xdb4e1a:_0x3c7bb8['clipPlane2']),_0x129b61(_0x47d018,_0x204b15(0x295),null!=(_0xdb4e1a=_0xf3921c[_0x204b15(0x7f6)])?_0xdb4e1a:_0x3c7bb8['clipPlane3']),_0x129b61(_0x47d018,_0x204b15(0x3fc),null!=(_0xdb4e1a=_0xf3921c[_0x204b15(0xcd9)])?_0xdb4e1a:_0x3c7bb8[_0x204b15(0xcd9)]),_0x129b61(_0x47d018,_0x204b15(0x309),null!=(_0xdb4e1a=_0xf3921c[_0x204b15(0x315)])?_0xdb4e1a:_0x3c7bb8[_0x204b15(0x315)]),_0x129b61(_0x47d018,_0x204b15(0xbc1),null!=(_0xdb4e1a=_0xf3921c[_0x204b15(0x277)])?_0xdb4e1a:_0x3c7bb8[_0x204b15(0x277)]);},'lK':()=>function(_0x40b15a,_0x1553a9,_0x49b0a5){var _0x1dbbe1=a6_0x2304,_0x2b10d0=!!(null!=(_0x2b10d0=_0x40b15a[_0x1dbbe1(0x7d9)])?_0x2b10d0:_0x1553a9[_0x1dbbe1(0x7d9)]),_0x3792b7=!!(null!=(_0x3792b7=_0x40b15a['clipPlane2'])?_0x3792b7:_0x1553a9[_0x1dbbe1(0x680)]),_0x37fb22=!!(null!=(_0x37fb22=_0x40b15a[_0x1dbbe1(0x7f6)])?_0x37fb22:_0x1553a9[_0x1dbbe1(0x7f6)]),_0x55b640=!!(null!=(_0x55b640=_0x40b15a[_0x1dbbe1(0xcd9)])?_0x55b640:_0x1553a9[_0x1dbbe1(0xcd9)]),_0x5d721c=!!(null!=(_0x5d721c=_0x40b15a[_0x1dbbe1(0x315)])?_0x5d721c:_0x1553a9[_0x1dbbe1(0x315)]),_0x40b15a=!!(null!=(_0x40b15a=_0x40b15a[_0x1dbbe1(0x277)])?_0x40b15a:_0x1553a9[_0x1dbbe1(0x277)]);_0x2b10d0&&_0x49b0a5[_0x1dbbe1(0x83f)](_0x1dbbe1(0xd0b)),_0x3792b7&&_0x49b0a5[_0x1dbbe1(0x83f)]('#define\x20CLIPPLANE2'),_0x37fb22&&_0x49b0a5[_0x1dbbe1(0x83f)](_0x1dbbe1(0xba8)),_0x55b640&&_0x49b0a5[_0x1dbbe1(0x83f)](_0x1dbbe1(0x62b)),_0x5d721c&&_0x49b0a5[_0x1dbbe1(0x83f)]('#define\x20CLIPPLANE5'),_0x40b15a&&_0x49b0a5[_0x1dbbe1(0x83f)](_0x1dbbe1(0x890));},'qx':()=>function(_0x4d8ac7){var _0x1aa021=a6_0x2304;-0x1===_0x4d8ac7[_0x1aa021(0x9e0)](_0x1aa021(0x95c))&&_0x4d8ac7[_0x1aa021(0x83f)](_0x1aa021(0x95c)),-0x1===_0x4d8ac7[_0x1aa021(0x9e0)](_0x1aa021(0x1e4))&&_0x4d8ac7[_0x1aa021(0x83f)](_0x1aa021(0x1e4)),-0x1===_0x4d8ac7[_0x1aa021(0x9e0)]('vClipPlane3')&&_0x4d8ac7[_0x1aa021(0x83f)](_0x1aa021(0x295)),-0x1===_0x4d8ac7[_0x1aa021(0x9e0)](_0x1aa021(0x3fc))&&_0x4d8ac7[_0x1aa021(0x83f)]('vClipPlane4'),-0x1===_0x4d8ac7[_0x1aa021(0x9e0)](_0x1aa021(0x309))&&_0x4d8ac7[_0x1aa021(0x83f)](_0x1aa021(0x309)),-0x1===_0x4d8ac7[_0x1aa021(0x9e0)](_0x1aa021(0xbc1))&&_0x4d8ac7[_0x1aa021(0x83f)]('vClipPlane6');}});},0xcef:(_0x4e9320,_0x4c5dc6,_0x171604)=>{var _0x1c76ea=a6_0x1e64fa;_0x171604['d'](_0x4c5dc6,{'q':()=>_0x675b84});class _0x675b84{constructor(_0x48416e,_0x86ed7=!0x0){var _0x281443=a6_0x2304;this[_0x281443(0xcdf)]=null,this[_0x281443(0x532)]=null,this[_0x281443(0x85d)]=_0x48416e[_0x281443(0xad1)](),_0x86ed7&&(this[_0x281443(0xcb3)]=_0x48416e[_0x281443(0x9cf)]());}static[_0x1c76ea(0xbd0)](_0x484c87){return void 0x0===_0x484c87['getPipelineContext'];}static[_0x1c76ea(0xbca)](_0x685ff2){var _0x21f130=_0x1c76ea;return void 0x0===_0x685ff2['getPipelineContext']?_0x685ff2[_0x21f130(0xcdf)]:_0x685ff2;}[_0x1c76ea(0xa01)](_0x392b2b,_0x3346e8,_0x5a117e=!0x0){var _0x3b5f65=_0x1c76ea;this['effect']=_0x392b2b,void 0x0!==_0x3346e8&&(this[_0x3b5f65(0x532)]=_0x3346e8),_0x5a117e&&null!=(_0x392b2b=this['drawContext'])&&_0x392b2b['reset']();}['dispose'](){var _0x47f124=_0x1c76ea,_0x1d94e2;null!=(_0x1d94e2=this['drawContext'])&&_0x1d94e2[_0x47f124(0x431)]();}}},0x6421:(_0x1ead1b,_0x36a145,_0x1653e9)=>{var _0x27d447=a6_0x1e64fa;_0x1653e9['d'](_0x36a145,{'L':()=>_0x248523});class _0x248523{constructor(){var _0x2e2607=a6_0x2304;this['_defines']={},this[_0x2e2607(0x6d8)]=0x20,this[_0x2e2607(0xa64)]=-0x1,this['_mesh']=null;}[_0x27d447(0x922)](){var _0x5aae7e=_0x27d447;this[_0x5aae7e(0xa71)]=null;}[_0x27d447(0x857)](_0x46f772,_0x3caf94){var _0x25b3fd=_0x27d447;this[_0x25b3fd(0x570)][_0x46f772]||(_0x46f772<this['_currentRank']&&(this[_0x25b3fd(0x6d8)]=_0x46f772),_0x46f772>this[_0x25b3fd(0xa64)]&&(this[_0x25b3fd(0xa64)]=_0x46f772),this[_0x25b3fd(0x570)][_0x46f772]=new Array()),this[_0x25b3fd(0x570)][_0x46f772][_0x25b3fd(0x83f)](_0x3caf94);}[_0x27d447(0x829)](_0x238f87,_0x5e1dc0){var _0x442912=_0x27d447;this[_0x442912(0xa71)]=_0x5e1dc0,_0x238f87<this[_0x442912(0x6d8)]&&(this[_0x442912(0x6d8)]=_0x238f87),_0x238f87>this['_maxRank']&&(this[_0x442912(0xa64)]=_0x238f87);}get[_0x27d447(0x1f7)](){var _0x5241c9=_0x27d447;return this[_0x5241c9(0x6d8)]<=this[_0x5241c9(0xa64)];}['reduce'](_0xfae326,_0x3b4d48){var _0x5e9cb4=_0x27d447;if(this['_mesh']&&this['_mesh'][_0x5e9cb4(0x307)]&&0x0<this['_mesh']['numBoneInfluencers']){this[_0x5e9cb4(0xa71)][_0x5e9cb4(0x307)]=!0x1,_0xfae326=_0xfae326[_0x5e9cb4(0x3cd)]('#define\x20NUM_BONE_INFLUENCERS\x20'+this[_0x5e9cb4(0xa71)][_0x5e9cb4(0x128)],_0x5e9cb4(0xb04)),_0x3b4d48[_0x5e9cb4(0x3e7)]=!0x0;var _0x529475=this[_0x5e9cb4(0xa71)][_0x5e9cb4(0x9fa)]();for(let _0x3f020c=0x0;_0x3f020c<_0x529475[_0x5e9cb4(0xbf0)][_0x5e9cb4(0x3ef)];_0x3f020c++){const _0x44c46b=_0x529475['meshes'][_0x3f020c];if(_0x44c46b[_0x5e9cb4(0x221)]){if(_0x44c46b['computeBonesUsingShaders']&&0x0!==_0x44c46b[_0x5e9cb4(0x128)]){if(_0x44c46b[_0x5e9cb4(0x221)][_0x5e9cb4(0x1bd)]()===_0x3b4d48)_0x44c46b[_0x5e9cb4(0x307)]=!0x1;else{if(_0x44c46b[_0x5e9cb4(0xae7)]){for(const _0x68fec6 of _0x44c46b[_0x5e9cb4(0xae7)])if(_0x68fec6[_0x5e9cb4(0xcdf)]===_0x3b4d48){_0x44c46b[_0x5e9cb4(0x307)]=!0x1;break;}}}}}else!this[_0x5e9cb4(0xa71)][_0x5e9cb4(0x221)]&&_0x44c46b[_0x5e9cb4(0x307)]&&0x0<_0x44c46b[_0x5e9cb4(0x128)]&&(_0x44c46b[_0x5e9cb4(0x307)]=!0x1);}}else{var _0x32f30a=this['_defines'][this[_0x5e9cb4(0x6d8)]];if(_0x32f30a){for(let _0x3d19e1=0x0;_0x3d19e1<_0x32f30a['length'];_0x3d19e1++)_0xfae326=_0xfae326['replace'](_0x5e9cb4(0x40c)+_0x32f30a[_0x3d19e1],'');}this[_0x5e9cb4(0x6d8)]++;}return _0xfae326;}}},0x3c2a:(_0x50a130,_0x1dbc09,_0x1fcaef)=>{var _0x56fe69=a6_0x1e64fa,_0x3edc97=_0x1fcaef(0x12fad),_0x422c74=_0x1fcaef(0x7c4f),_0x422c74=(Object[_0x56fe69(0x41c)](_0x422c74['K']['prototype'],_0x56fe69(0x412),{'get':function(){var _0x50d63=_0x56fe69;if(!this['_decalMap']){if(this[_0x50d63(0x9bd)])return null;this[_0x50d63(0x5c4)]=new _0x3edc97['E'](this);}return this[_0x50d63(0x5c4)];},'enumerable':!0x0,'configurable':!0x0}),_0x1fcaef(0x1ee0));Object[_0x56fe69(0x41c)](_0x422c74['m'][_0x56fe69(0x9ed)],_0x56fe69(0x412),{'get':function(){var _0x1f4a74=_0x56fe69;if(!this[_0x1f4a74(0x5c4)]){if(this['_uniformBufferLayoutBuilt'])return null;this[_0x1f4a74(0x5c4)]=new _0x3edc97['E'](this);}return this['_decalMap'];},'enumerable':!0x0,'configurable':!0x0}),_0x1fcaef(0x19ba);},0x11e40:(_0x421184,_0x35d717,_0x44c2f3)=>{var _0x1d0027=a6_0x1e64fa;_0x44c2f3['d'](_0x35d717,{'H':()=>_0x1fd42b});class _0x1fd42b{constructor(_0x31381b){var _0x346feb=a6_0x2304;if(this[_0x346feb(0xcb6)]=[],this[_0x346feb(0x255)]=!0x0,this['_areLightsDirty']=!0x0,this[_0x346feb(0x206)]=!0x1,this['_areAttributesDirty']=!0x0,this[_0x346feb(0xd03)]=!0x0,this[_0x346feb(0x663)]=!0x0,this[_0x346feb(0xb49)]=!0x0,this[_0x346feb(0x604)]=!0x0,this[_0x346feb(0xc9f)]=!0x0,this[_0x346feb(0x67c)]=!0x1,this[_0x346feb(0xa90)]=!0x1,this[_0x346feb(0xcb2)]=!0x1,this['_needUVs']=!0x1,this['_externalProperties']=_0x31381b){for(const _0x57d272 in _0x31381b)Object[_0x346feb(0x9ed)][_0x346feb(0x1b7)][_0x346feb(0x1f8)](_0x31381b,_0x57d272)&&this[_0x346feb(0x891)](_0x57d272);}}get[_0x1d0027(0x23f)](){var _0x52d0e9=_0x1d0027;return this[_0x52d0e9(0x255)];}[_0x1d0027(0x2e4)](){var _0x2c7547=_0x1d0027;this['_isDirty']=!0x1,this[_0x2c7547(0x656)]=!0x1,this[_0x2c7547(0xd03)]=!0x1,this[_0x2c7547(0x663)]=!0x1,this['_areLightsDirty']=!0x1,this['_areLightsDisposed']=!0x1,this['_areMiscDirty']=!0x1,this[_0x2c7547(0x604)]=!0x1,this['_areImageProcessingDirty']=!0x1;}['markAsUnprocessed'](){var _0x228d49=_0x1d0027;this[_0x228d49(0x255)]=!0x0;}[_0x1d0027(0x423)](){var _0x1a0375=_0x1d0027;this[_0x1a0375(0xd03)]=!0x0,this[_0x1a0375(0x656)]=!0x0,this[_0x1a0375(0x971)]=!0x0,this['_areFresnelDirty']=!0x0,this['_areMiscDirty']=!0x0,this[_0x1a0375(0xc9f)]=!0x0,this[_0x1a0375(0x255)]=!0x0;}[_0x1d0027(0xafb)](){var _0xb4f64f=_0x1d0027;this[_0xb4f64f(0xc9f)]=!0x0,this[_0xb4f64f(0x255)]=!0x0;}['markAsLightDirty'](_0x34efdf=!0x1){var _0x5cf01e=_0x1d0027;this['_areLightsDirty']=!0x0,this[_0x5cf01e(0x206)]=this[_0x5cf01e(0x206)]||_0x34efdf,this[_0x5cf01e(0x255)]=!0x0;}['markAsAttributesDirty'](){var _0x280aa3=_0x1d0027;this[_0x280aa3(0x656)]=!0x0,this[_0x280aa3(0x255)]=!0x0;}[_0x1d0027(0x52e)](){var _0x1ce860=_0x1d0027;this[_0x1ce860(0xd03)]=!0x0,this[_0x1ce860(0x255)]=!0x0;}[_0x1d0027(0x961)](){var _0x5ce372=_0x1d0027;this[_0x5ce372(0x663)]=!0x0,this['_isDirty']=!0x0;}[_0x1d0027(0xcc4)](){var _0x3fbf99=_0x1d0027;this[_0x3fbf99(0xb49)]=!0x0,this[_0x3fbf99(0x255)]=!0x0;}[_0x1d0027(0x389)](){var _0x4b1271=_0x1d0027;this[_0x4b1271(0x604)]=!0x0,this[_0x4b1271(0x255)]=!0x0;}[_0x1d0027(0x52f)](){var _0x4b8e30=_0x1d0027;this['_keys'][_0x4b8e30(0x3ef)]=0x0;for(const _0x2aba6a of Object[_0x4b8e30(0xa41)](this))'_'!==_0x2aba6a[0x0]&&this[_0x4b8e30(0xcb6)][_0x4b8e30(0x83f)](_0x2aba6a);if(this['_externalProperties']){for(const _0x4f1bfe in this['_externalProperties'])-0x1===this['_keys']['indexOf'](_0x4f1bfe)&&this[_0x4b8e30(0xcb6)][_0x4b8e30(0x83f)](_0x4f1bfe);}}[_0x1d0027(0x9f7)](_0x468c7a){var _0x305aec=_0x1d0027;if(this[_0x305aec(0xcb6)][_0x305aec(0x3ef)]!==_0x468c7a[_0x305aec(0xcb6)]['length'])return!0x1;for(let _0x23ed5f=0x0;_0x23ed5f<this[_0x305aec(0xcb6)][_0x305aec(0x3ef)];_0x23ed5f++){var _0x278d81=this[_0x305aec(0xcb6)][_0x23ed5f];if(this[_0x278d81]!==_0x468c7a[_0x278d81])return!0x1;}return!0x0;}[_0x1d0027(0xb65)](_0x263288){var _0x287cda=_0x1d0027;this[_0x287cda(0xcb6)][_0x287cda(0x3ef)]!==_0x263288[_0x287cda(0xcb6)][_0x287cda(0x3ef)]&&(_0x263288['_keys']=this[_0x287cda(0xcb6)][_0x287cda(0x433)](0x0));for(let _0x4060a3=0x0;_0x4060a3<this[_0x287cda(0xcb6)][_0x287cda(0x3ef)];_0x4060a3++){var _0x323873=this['_keys'][_0x4060a3];_0x263288[_0x323873]=this[_0x323873];}}[_0x1d0027(0x22b)](){var _0x43d607=_0x1d0027;this[_0x43d607(0xcb6)][_0x43d607(0x497)](_0x6a9f77=>this['_setDefaultValue'](_0x6a9f77));}['_setDefaultValue'](_0xc715d6){var _0x454ec4=_0x1d0027,_0x572293,_0x4a9642=null!=(_0x4a9642=null==(_0x4a9642=null==(_0x4a9642=this[_0x454ec4(0xc52)])?void 0x0:_0x4a9642[_0xc715d6])?void 0x0:_0x4a9642[_0x454ec4(0x5da)])?_0x4a9642:typeof this[_0xc715d6],_0x1554ca=null==(_0x572293=null==(_0x572293=this[_0x454ec4(0xc52)])?void 0x0:_0x572293[_0xc715d6])?void 0x0:_0x572293[_0x454ec4(0x93a)];switch(_0x4a9642){case _0x454ec4(0x943):this[_0xc715d6]=null!=_0x1554ca?_0x1554ca:0x0;break;case _0x454ec4(0x3f3):this[_0xc715d6]=null!=_0x1554ca?_0x1554ca:'';break;default:this[_0xc715d6]=null!=_0x1554ca&&_0x1554ca;}}[_0x1d0027(0xb4a)](){var _0x2992ef=_0x1d0027;let _0x4e0a80='';for(let _0xf8dbc3=0x0;_0xf8dbc3<this[_0x2992ef(0xcb6)][_0x2992ef(0x3ef)];_0xf8dbc3++){var _0x1b7fc0=this['_keys'][_0xf8dbc3],_0x38d2c1=this[_0x1b7fc0];switch(typeof _0x38d2c1){case _0x2992ef(0x943):case'string':_0x4e0a80+=_0x2992ef(0x40c)+_0x1b7fc0+'\x20'+_0x38d2c1+'\x0a';break;default:_0x38d2c1&&(_0x4e0a80+=_0x2992ef(0x40c)+_0x1b7fc0+'\x0a');}}return _0x4e0a80;}}},0x627e:(_0x14367a,_0x1971f3,_0xeda953)=>{var _0x2e931b=a6_0x1e64fa;_0xeda953['d'](_0x1971f3,{'S':()=>_0x1ecc1c});function _0x259b1a(_0x19ae7f,_0x5308fd,_0x2fd393,_0x2d350a){var _0x59e654=a6_0x2304,_0x505919,_0xad5b71=arguments['length'],_0x19f4f5=_0xad5b71<0x3?_0x5308fd:null===_0x2d350a?_0x2d350a=Object[_0x59e654(0x265)](_0x5308fd,_0x2fd393):_0x2d350a;if(_0x59e654(0x91c)==typeof Reflect&&_0x59e654(0x97c)==typeof Reflect[_0x59e654(0x12d)])_0x19f4f5=Reflect[_0x59e654(0x12d)](_0x19ae7f,_0x5308fd,_0x2fd393,_0x2d350a);else{for(var _0xa4552=_0x19ae7f['length']-0x1;0x0<=_0xa4552;_0xa4552--)(_0x505919=_0x19ae7f[_0xa4552])&&(_0x19f4f5=(_0xad5b71<0x3?_0x505919(_0x19f4f5):0x3<_0xad5b71?_0x505919(_0x5308fd,_0x2fd393,_0x19f4f5):_0x505919(_0x5308fd,_0x2fd393))||_0x19f4f5);}0x3<_0xad5b71&&_0x19f4f5&&Object[_0x59e654(0x41c)](_0x5308fd,_0x2fd393,_0x19f4f5);}var _0x23a514=_0xeda953(0x77a5),_0x4a2d8c=_0xeda953(0x153ad);class _0x1ecc1c{constructor(){var _0x3f2e10=a6_0x2304;this[_0x3f2e10(0x22b)]();}[_0x2e931b(0x22b)](){var _0x1fd6c8=_0x2e931b;this['enabled']=!0x1,this[_0x1fd6c8(0xc5e)]=0xff,this[_0x1fd6c8(0xb06)]=_0x23a514['g'][_0x1fd6c8(0x809)],this[_0x1fd6c8(0x7c5)]=0x1,this[_0x1fd6c8(0x851)]=0xff,this['opStencilFail']=_0x23a514['g'][_0x1fd6c8(0x51a)],this[_0x1fd6c8(0xc3b)]=_0x23a514['g'][_0x1fd6c8(0x51a)],this[_0x1fd6c8(0x724)]=_0x23a514['g'][_0x1fd6c8(0x9a6)];}get[_0x2e931b(0xb06)](){var _0xd1df19=_0x2e931b;return this[_0xd1df19(0x6f6)];}set[_0x2e931b(0xb06)](_0x3a6808){var _0x2434d6=_0x2e931b;this[_0x2434d6(0x6f6)]=_0x3a6808;}get[_0x2e931b(0x7c5)](){var _0x4a84bf=_0x2e931b;return this[_0x4a84bf(0x2ea)];}set['funcRef'](_0x474575){var _0x39d7f2=_0x2e931b;this[_0x39d7f2(0x2ea)]=_0x474575;}get[_0x2e931b(0x851)](){return this['_funcMask'];}set[_0x2e931b(0x851)](_0x585861){this['_funcMask']=_0x585861;}get[_0x2e931b(0x1d1)](){var _0x4e3b54=_0x2e931b;return this[_0x4e3b54(0x665)];}set[_0x2e931b(0x1d1)](_0x593994){var _0x2d672d=_0x2e931b;this[_0x2d672d(0x665)]=_0x593994;}get[_0x2e931b(0xc3b)](){return this['_opDepthFail'];}set[_0x2e931b(0xc3b)](_0x555bc7){var _0x17cae2=_0x2e931b;this[_0x17cae2(0x252)]=_0x555bc7;}get[_0x2e931b(0x724)](){var _0x5b9856=_0x2e931b;return this[_0x5b9856(0xcfb)];}set[_0x2e931b(0x724)](_0x24d6a8){this['_opStencilDepthPass']=_0x24d6a8;}get[_0x2e931b(0xc5e)](){var _0x393e08=_0x2e931b;return this[_0x393e08(0x22e)];}set[_0x2e931b(0xc5e)](_0x459449){var _0x2f8355=_0x2e931b;this[_0x2f8355(0x22e)]=_0x459449;}get[_0x2e931b(0x4d2)](){var _0x356994=_0x2e931b;return this[_0x356994(0x747)];}set[_0x2e931b(0x4d2)](_0x3793f8){var _0x3f78fc=_0x2e931b;this[_0x3f78fc(0x747)]=_0x3793f8;}[_0x2e931b(0x4e7)](){var _0xbf5906=_0x2e931b;return _0xbf5906(0x486);}['copyTo'](_0x18d257){var _0x1eb747=_0x2e931b;_0x4a2d8c['p4'][_0x1eb747(0xa63)](()=>_0x18d257,this);}[_0x2e931b(0x6ee)](){var _0x197080=_0x2e931b;return _0x4a2d8c['p4'][_0x197080(0x59f)](this);}[_0x2e931b(0x261)](_0x51a48f,_0x1a1328,_0x6eb1c9){var _0xf50578=_0x2e931b;_0x4a2d8c['p4'][_0xf50578(0x62c)](()=>this,_0x51a48f,_0x1a1328,_0x6eb1c9);}}_0x259b1a([(0x0,_0x4a2d8c['qC'])()],_0x1ecc1c[_0x2e931b(0x9ed)],_0x2e931b(0xb06),null),_0x259b1a([(0x0,_0x4a2d8c['qC'])()],_0x1ecc1c[_0x2e931b(0x9ed)],'funcRef',null),_0x259b1a([(0x0,_0x4a2d8c['qC'])()],_0x1ecc1c[_0x2e931b(0x9ed)],'funcMask',null),_0x259b1a([(0x0,_0x4a2d8c['qC'])()],_0x1ecc1c[_0x2e931b(0x9ed)],_0x2e931b(0x1d1),null),_0x259b1a([(0x0,_0x4a2d8c['qC'])()],_0x1ecc1c['prototype'],_0x2e931b(0xc3b),null),_0x259b1a([(0x0,_0x4a2d8c['qC'])()],_0x1ecc1c[_0x2e931b(0x9ed)],'opStencilDepthPass',null),_0x259b1a([(0x0,_0x4a2d8c['qC'])()],_0x1ecc1c[_0x2e931b(0x9ed)],_0x2e931b(0xc5e),null),_0x259b1a([(0x0,_0x4a2d8c['qC'])()],_0x1ecc1c['prototype'],_0x2e931b(0x4d2),null);},0x1836a:(_0x4cb0ee,_0x5b0c29,_0x3b9bb5)=>{var _0x5da3ee=a6_0x1e64fa;_0x3b9bb5['d'](_0x5b0c29,{'o':()=>_0x2649e8});var _0x1740e3=_0x3b9bb5(0x77a5);class _0x2649e8{constructor(){var _0x1d7691=a6_0x2304;this[_0x1d7691(0xcc9)]={},this[_0x1d7691(0x6e5)]={};}static[_0x5da3ee(0x695)](_0x49d89e){var _0x4fcf3c=_0x5da3ee;_0x49d89e['push'](_0x4fcf3c(0x7cc),'previousViewProjection',_0x4fcf3c(0x938));}static[_0x5da3ee(0x136)](_0x14e9da){}[_0x5da3ee(0x11f)](_0x5b37ac,_0x34c3f2,_0x565a8b,_0x56725e,_0x16f1ee){var _0x47246c=_0x5da3ee,_0x493c29;_0x34c3f2[_0x47246c(0x475)]&&_0x34c3f2[_0x47246c(0x475)][_0x47246c(0x4d2)]&&_0x34c3f2[_0x47246c(0x475)][_0x47246c(0x451)]&&-0x1!==_0x34c3f2[_0x47246c(0x475)]['getIndex'](_0x1740e3['g'][_0x47246c(0x735)])&&(this[_0x47246c(0xcc9)][_0x565a8b[_0x47246c(0x155)]]||(this[_0x47246c(0xcc9)][_0x565a8b[_0x47246c(0x155)]]=_0x56725e[_0x47246c(0x12a)]()),this[_0x47246c(0x7be)]||(this[_0x47246c(0x7be)]=_0x34c3f2['getTransformMatrix']()[_0x47246c(0x12a)](),this['currentViewProjection']=_0x34c3f2['getTransformMatrix']()[_0x47246c(0x12a)]()),_0x493c29=_0x34c3f2[_0x47246c(0xcde)](),this[_0x47246c(0x3f4)]['updateFlag']!==_0x34c3f2[_0x47246c(0x70b)]()[_0x47246c(0x31f)]?(this[_0x47246c(0x84b)]=_0x493c29[_0x47246c(0x365)],this['previousViewProjection'][_0x47246c(0x8bf)](this['currentViewProjection']),this[_0x47246c(0x3f4)]['copyFrom'](_0x34c3f2[_0x47246c(0x70b)]())):this[_0x47246c(0x84b)]!==_0x493c29[_0x47246c(0x365)]&&(this[_0x47246c(0x84b)]=_0x493c29[_0x47246c(0x365)],this[_0x47246c(0x7be)][_0x47246c(0x8bf)](this[_0x47246c(0x3f4)])),_0x5b37ac[_0x47246c(0x44c)](_0x47246c(0x7cc),this[_0x47246c(0xcc9)][_0x565a8b[_0x47246c(0x155)]]),_0x5b37ac[_0x47246c(0x44c)](_0x47246c(0x7be),this['previousViewProjection']),this[_0x47246c(0xcc9)][_0x565a8b[_0x47246c(0x155)]]=_0x56725e['clone']());}}},0x58c8:(_0x5fb965,_0x5d283d,_0x3b74d7)=>{var _0x1c7ced=a6_0x1e64fa;_0x3b74d7['d'](_0x5d283d,{'c':()=>_0x36d7ce});class _0x36d7ce{constructor(_0x591bbd){var _0x42157d=a6_0x2304;this[_0x42157d(0x1a7)](_0x591bbd)?(this[_0x42157d(0x409)]=_0x591bbd[_0x42157d(0x91a)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0xa9a)]=_0x591bbd[_0x42157d(0x19f)]['bind'](_0x591bbd),this['setFloat']=_0x591bbd[_0x42157d(0x7da)]['bind'](_0x591bbd),this['setFloat2']=_0x591bbd['updateFloat2']['bind'](_0x591bbd),this[_0x42157d(0xa4c)]=_0x591bbd[_0x42157d(0x45b)][_0x42157d(0x853)](_0x591bbd),this['setFloat4']=_0x591bbd['updateFloat4']['bind'](_0x591bbd),this['setFloatArray']=_0x591bbd['updateFloatArray'][_0x42157d(0x853)](_0x591bbd),this['setArray']=_0x591bbd[_0x42157d(0xd20)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0xa61)]=_0x591bbd[_0x42157d(0x2b8)]['bind'](_0x591bbd),this[_0x42157d(0x44c)]=_0x591bbd[_0x42157d(0x45c)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0x7f3)]=_0x591bbd[_0x42157d(0x599)]['bind'](_0x591bbd),this[_0x42157d(0x5fc)]=_0x591bbd[_0x42157d(0x6fe)]['bind'](_0x591bbd),this[_0x42157d(0x4af)]=_0x591bbd['updateVector4']['bind'](_0x591bbd),this[_0x42157d(0x325)]=_0x591bbd['updateColor3'][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0xb8d)]=_0x591bbd[_0x42157d(0xb05)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0x9fd)]=_0x591bbd[_0x42157d(0x6f9)]['bind'](_0x591bbd),this[_0x42157d(0x3a8)]=_0x591bbd[_0x42157d(0xc03)]['bind'](_0x591bbd),this[_0x42157d(0x831)]=_0x591bbd[_0x42157d(0xc4e)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0x719)]=_0x591bbd[_0x42157d(0x813)]['bind'](_0x591bbd),this[_0x42157d(0x530)]=_0x591bbd[_0x42157d(0xb08)][_0x42157d(0x853)](_0x591bbd)):(this[_0x42157d(0x409)]=_0x591bbd[_0x42157d(0x409)]['bind'](_0x591bbd),this['setMatrix2x2']=_0x591bbd[_0x42157d(0xa9a)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0x5f3)]=_0x591bbd[_0x42157d(0x5f3)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0x796)]=_0x591bbd[_0x42157d(0x796)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0xa4c)]=_0x591bbd[_0x42157d(0xa4c)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0xaee)]=_0x591bbd[_0x42157d(0xaee)]['bind'](_0x591bbd),this['setFloatArray']=_0x591bbd[_0x42157d(0x8b3)]['bind'](_0x591bbd),this[_0x42157d(0x8ab)]=_0x591bbd[_0x42157d(0x8ab)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0xa61)]=_0x591bbd[_0x42157d(0xa61)]['bind'](_0x591bbd),this['setMatrix']=_0x591bbd[_0x42157d(0x44c)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0x7f3)]=_0x591bbd['setMatrices'][_0x42157d(0x853)](_0x591bbd),this['setVector3']=_0x591bbd['setVector3'][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0x4af)]=_0x591bbd['setVector4'][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0x325)]=_0x591bbd[_0x42157d(0x325)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0xb8d)]=_0x591bbd[_0x42157d(0xb8d)]['bind'](_0x591bbd),this[_0x42157d(0x9fd)]=_0x591bbd[_0x42157d(0x9fd)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0x3a8)]=_0x591bbd[_0x42157d(0x3a8)]['bind'](_0x591bbd),this[_0x42157d(0x831)]=_0x591bbd[_0x42157d(0x831)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0x719)]=_0x591bbd[_0x42157d(0x719)][_0x42157d(0x853)](_0x591bbd),this[_0x42157d(0x530)]=_0x591bbd[_0x42157d(0x530)]['bind'](_0x591bbd));}[_0x1c7ced(0x1a7)](_0x655760){var _0x24f9b1=_0x1c7ced;return void 0x0!==_0x655760[_0x24f9b1(0x1d4)];}}},0xceed:(_0x108f6e,_0x3cfde1,_0x30d022)=>{var _0x2f6023=a6_0x1e64fa;_0x30d022['d'](_0x3cfde1,{'$':()=>_0x349aa9});class _0x349aa9{constructor(_0x3580fa,_0x4569a6){var _0xd99655=a6_0x2304;this[_0xd99655(0xca4)]=_0x3580fa,this[_0xd99655(0x43d)]=_0x4569a6;}[_0x2f6023(0xb4a)](){var _0x580e92=_0x2f6023;return _0x580e92(0x7cb)+this[_0x580e92(0xca4)]+_0x580e92(0xd01)+this['height']+'}';}['getClassName'](){var _0x3d18d0=_0x2f6023;return _0x3d18d0(0x8b2);}[_0x2f6023(0x3b2)](){var _0x23e622=_0x2f6023;return 0x18d*(0x0|this[_0x23e622(0xca4)])^(0x0|this[_0x23e622(0x43d)]);}[_0x2f6023(0x8bf)](_0x57fc5){var _0x18d077=_0x2f6023;this[_0x18d077(0xca4)]=_0x57fc5[_0x18d077(0xca4)],this[_0x18d077(0x43d)]=_0x57fc5[_0x18d077(0x43d)];}[_0x2f6023(0x9c4)](_0x1e2223,_0x5617f5){var _0x1605d6=_0x2f6023;return this['width']=_0x1e2223,this[_0x1605d6(0x43d)]=_0x5617f5,this;}[_0x2f6023(0x970)](_0x21f4c6,_0x4e3e44){return this['copyFromFloats'](_0x21f4c6,_0x4e3e44);}['multiplyByFloats'](_0x26c2d9,_0x3acb4f){var _0x3f5b17=_0x2f6023;return new _0x349aa9(this['width']*_0x26c2d9,this[_0x3f5b17(0x43d)]*_0x3acb4f);}[_0x2f6023(0x12a)](){var _0x4fa416=_0x2f6023;return new _0x349aa9(this[_0x4fa416(0xca4)],this[_0x4fa416(0x43d)]);}['equals'](_0x505024){var _0x385763=_0x2f6023;return!!_0x505024&&this[_0x385763(0xca4)]===_0x505024[_0x385763(0xca4)]&&this['height']===_0x505024[_0x385763(0x43d)];}get[_0x2f6023(0x675)](){var _0x48e14e=_0x2f6023;return this[_0x48e14e(0xca4)]*this[_0x48e14e(0x43d)];}static['Zero'](){return new _0x349aa9(0x0,0x0);}[_0x2f6023(0x526)](_0x3a4362){var _0xec6698=_0x2f6023;return new _0x349aa9(this[_0xec6698(0xca4)]+_0x3a4362[_0xec6698(0xca4)],this[_0xec6698(0x43d)]+_0x3a4362[_0xec6698(0x43d)]);}[_0x2f6023(0x39d)](_0x22a6ea){var _0x1d2892=_0x2f6023;return new _0x349aa9(this[_0x1d2892(0xca4)]-_0x22a6ea[_0x1d2892(0xca4)],this[_0x1d2892(0x43d)]-_0x22a6ea['height']);}static[_0x2f6023(0x234)](_0x14f79a,_0x809f29,_0x1ac29b){var _0x4b81f6=_0x2f6023,_0x23fa94=_0x14f79a['width']+(_0x809f29[_0x4b81f6(0xca4)]-_0x14f79a[_0x4b81f6(0xca4)])*_0x1ac29b,_0x809f29=_0x14f79a[_0x4b81f6(0x43d)]+(_0x809f29[_0x4b81f6(0x43d)]-_0x14f79a[_0x4b81f6(0x43d)])*_0x1ac29b;return new _0x349aa9(_0x23fa94,_0x809f29);}}},0x6fac:(_0xead46a,_0x35428e,_0x1eda81)=>{var _0x433350=a6_0x1e64fa;_0x1eda81['d'](_0x35428e,{'l':()=>_0x1e0d6a});class _0x1e0d6a{constructor(_0x2dd1c8,_0x7c80a0,_0xb208d3,_0x4f63a5){var _0x2aa134=a6_0x2304;this['x']=_0x2dd1c8,this['y']=_0x7c80a0,this[_0x2aa134(0xca4)]=_0xb208d3,this[_0x2aa134(0x43d)]=_0x4f63a5;}[_0x433350(0x2e9)](_0x5ca1c,_0x5902ec){var _0xd2334c=_0x433350;return new _0x1e0d6a(this['x']*_0x5ca1c,this['y']*_0x5902ec,this['width']*_0x5ca1c,this[_0xd2334c(0x43d)]*_0x5902ec);}[_0x433350(0x89d)](_0x346588,_0x3632af,_0x5f0f38){var _0x1c7ee9=_0x433350;return _0x5f0f38['x']=this['x']*_0x346588,_0x5f0f38['y']=this['y']*_0x3632af,_0x5f0f38[_0x1c7ee9(0xca4)]=this[_0x1c7ee9(0xca4)]*_0x346588,_0x5f0f38[_0x1c7ee9(0x43d)]=this[_0x1c7ee9(0x43d)]*_0x3632af,this;}[_0x433350(0x12a)](){var _0x37cbc6=_0x433350;return new _0x1e0d6a(this['x'],this['y'],this[_0x37cbc6(0xca4)],this['height']);}}},0x19ba:(_0x337bec,_0x3438d6,_0x2af1b0)=>{var _0x1abc25=a6_0x1e64fa;_0x2af1b0=_0x2af1b0(0x51f),Object[_0x1abc25(0x41c)](_0x2af1b0['x'][_0x1abc25(0x9ed)],'decalMap',{'get':function(){var _0x4b7da1=_0x1abc25;return this[_0x4b7da1(0x5c4)];},'set':function(_0x5a4157){this['_decalMap']=_0x5a4157;},'enumerable':!0x0,'configurable':!0x0});},0x7bfa:(_0x468cfd,_0x29fe6a,_0x29cef8)=>{_0x29cef8['d'](_0x29fe6a,{'g':()=>_0x46d835});class _0x46d835{constructor(_0x555d8d,_0x1f9596){var _0x18d4c1=a6_0x2304;this['distanceOrScreenCoverage']=_0x555d8d,this[_0x18d4c1(0xb87)]=_0x1f9596;}}},0x53f7:(_0x220c03,_0x55adca,_0x128e97)=>{var _0x869bb1=a6_0x1e64fa,_0x19a04b=_0x128e97(0x77a5),_0x914ffd=_0x128e97(0x9fd1),_0x128e97=_0x128e97(0x10187);_0x128e97['P']['prototype']['_projectOnTrianglesToRef']=function(_0x2ef552,_0x3e2ba7,_0x40c89f,_0x3efe89,_0xb7d575,_0x29f7fa){var _0x3cf7c2=a6_0x2304;const _0x37042d=_0x914ffd['jp'][_0x3cf7c2(0x53c)][0x0];var _0x1b379f=_0x914ffd['jp'][_0x3cf7c2(0x53c)][0x1];let _0x1311be=Infinity;for(let _0x2daaa6=this[_0x3cf7c2(0x8d8)];_0x2daaa6<this[_0x3cf7c2(0x8d8)]+this['indexCount']-(0x3-_0x3efe89);_0x2daaa6+=_0x3efe89){var _0x39eef1=_0x40c89f[_0x2daaa6],_0x2e0a01=_0x40c89f[_0x2daaa6+0x1],_0x4cb668=_0x40c89f[_0x2daaa6+0x2];_0xb7d575&&0xffffffff===_0x4cb668?_0x2daaa6+=0x2:(_0x39eef1=_0x3e2ba7[_0x39eef1],_0x2e0a01=_0x3e2ba7[_0x2e0a01],_0x4cb668=_0x3e2ba7[_0x4cb668],_0x39eef1&&_0x2e0a01&&_0x4cb668&&(_0x39eef1=_0x914ffd['P'][_0x3cf7c2(0x5d2)](_0x2ef552,_0x39eef1,_0x2e0a01,_0x4cb668,_0x1b379f))<_0x1311be&&(_0x37042d[_0x3cf7c2(0x8bf)](_0x1b379f),_0x1311be=_0x39eef1));}return _0x29f7fa['copyFrom'](_0x37042d),_0x1311be;},_0x128e97['P'][_0x869bb1(0x9ed)][_0x869bb1(0x199)]=function(_0x34a987,_0x111b9b,_0x533f47,_0x67c7d4){var _0x298290=_0x869bb1;const _0x18620e=_0x914ffd['jp'][_0x298290(0x53c)][0x0];var _0x5dfa7b=_0x914ffd['jp'][_0x298290(0x53c)][0x1];let _0x5d3885=Infinity;for(let _0x29614d=this['verticesStart'];_0x29614d<this[_0x298290(0x750)]+this['verticesCount'];_0x29614d+=0x3){var _0x4e677d=_0x111b9b[_0x29614d],_0x5c336c=_0x111b9b[_0x29614d+0x1],_0x46eb22=_0x111b9b[_0x29614d+0x2],_0x4e677d=_0x914ffd['P']['ProjectOnTriangleToRef'](_0x34a987,_0x4e677d,_0x5c336c,_0x46eb22,_0x5dfa7b);_0x4e677d<_0x5d3885&&(_0x18620e['copyFrom'](_0x5dfa7b),_0x5d3885=_0x4e677d);}return _0x67c7d4[_0x298290(0x8bf)](_0x18620e),_0x5d3885;},_0x128e97['P'][_0x869bb1(0x9ed)][_0x869bb1(0x250)]=function(_0x4e7ff1,_0x102ecd,_0x363d7c,_0xf88398){var _0x23fbe2=_0x869bb1,_0x4d1d60=this['getMaterial']();if(!_0x4d1d60)return-0x1;let _0xb3d421=0x3,_0xb93e9d=!0x1;switch(_0x4d1d60[_0x23fbe2(0x9a5)]){case _0x19a04b['g'][_0x23fbe2(0x124)]:case _0x19a04b['g'][_0x23fbe2(0xb10)]:case _0x19a04b['g'][_0x23fbe2(0x344)]:case _0x19a04b['g']['MATERIAL_TriangleFanDrawMode']:return-0x1;case _0x19a04b['g']['MATERIAL_TriangleStripDrawMode']:_0xb3d421=0x1,_0xb93e9d=!0x0;}return _0x4d1d60[_0x23fbe2(0x9a5)]===_0x19a04b['g']['MATERIAL_LineListDrawMode']?-0x1:!_0x363d7c[_0x23fbe2(0x3ef)]&&this[_0x23fbe2(0xa71)]['_unIndexed']?this['_projectOnUnIndexedTrianglesToRef'](_0x4e7ff1,_0x102ecd,_0x363d7c,_0xf88398):this[_0x23fbe2(0x456)](_0x4e7ff1,_0x102ecd,_0x363d7c,_0xb3d421,_0xb93e9d,_0xf88398);};},0xb1d7:(_0x2835f2,_0xea65f3,_0xed1764)=>{var _0x1d3e18=a6_0x1e64fa,_0x5b3419=_0xed1764(0x1dad),_0x31059f=_0xed1764(0x1a27),_0x49acaa=_0xed1764(0x9fd1),_0x3932c8=_0xed1764(0x10ea4);_0x5b3419['Kj']['prototype'][_0x1d3e18(0xcdd)]=function(_0x23b8a7,_0xcecd4d=!0x0){var _0x5d5f06=_0x1d3e18;if(!this[_0x5d5f06(0x9fa)]()[_0x5d5f06(0xcde)]()[_0x5d5f06(0x33a)]()[_0x5d5f06(0x8eb)])return _0x3932c8['Y']['Error'](_0x5d5f06(0xa1f)),-0x1;this['_thinInstanceUpdateBufferSize'](_0x5d5f06(0x95b),Array[_0x5d5f06(0x798)](_0x23b8a7)?_0x23b8a7['length']:0x1);var _0x3f7a40=this[_0x5d5f06(0xd2b)][_0x5d5f06(0xae8)];if(Array[_0x5d5f06(0x798)](_0x23b8a7)){for(let _0x3e310a=0x0;_0x3e310a<_0x23b8a7['length'];++_0x3e310a)this[_0x5d5f06(0x448)](this['_thinInstanceDataStorage']['instancesCount']++,_0x23b8a7[_0x3e310a],_0x3e310a===_0x23b8a7[_0x5d5f06(0x3ef)]-0x1&&_0xcecd4d);}else this[_0x5d5f06(0x448)](this[_0x5d5f06(0xd2b)][_0x5d5f06(0xae8)]++,_0x23b8a7,_0xcecd4d);return _0x3f7a40;},_0x5b3419['Kj'][_0x1d3e18(0x9ed)]['thinInstanceAddSelf']=function(_0x19afe4=!0x0){var _0x24be32=_0x1d3e18;return this['thinInstanceAdd'](_0x49acaa['y3'][_0x24be32(0x7c3)],_0x19afe4);},_0x5b3419['Kj']['prototype']['thinInstanceRegisterAttribute']=function(_0x4329f0,_0x1dd19c){var _0x5b354f=_0x1d3e18;_0x4329f0===_0x31059f['o'][_0x5b354f(0xa6f)]&&(_0x4329f0=_0x31059f['o']['ColorInstanceKind']),this['removeVerticesData'](_0x4329f0),this[_0x5b354f(0xa94)](),this['_userThinInstanceBuffersStorage'][_0x5b354f(0x73c)][_0x4329f0]=_0x1dd19c,this['_userThinInstanceBuffersStorage'][_0x5b354f(0x9bb)][_0x4329f0]=_0x1dd19c*Math[_0x5b354f(0x89f)](0x20,this[_0x5b354f(0xd2b)][_0x5b354f(0xae8)]),this[_0x5b354f(0x6b4)][_0x5b354f(0xc46)][_0x4329f0]=new Float32Array(this[_0x5b354f(0x6b4)][_0x5b354f(0x9bb)][_0x4329f0]),this['_userThinInstanceBuffersStorage'][_0x5b354f(0x607)][_0x4329f0]=new _0x31059f['o'](this['getEngine'](),this[_0x5b354f(0x6b4)]['data'][_0x4329f0],_0x4329f0,!0x0,!0x1,_0x1dd19c,!0x0),this[_0x5b354f(0x4fe)](this[_0x5b354f(0x6b4)]['vertexBuffers'][_0x4329f0]);},_0x5b3419['Kj']['prototype'][_0x1d3e18(0x448)]=function(_0x28bc19,_0x347db8,_0x5c7c05=!0x0){var _0x506bef=_0x1d3e18;if(!this[_0x506bef(0xd2b)][_0x506bef(0xcd7)]||_0x28bc19>=this[_0x506bef(0xd2b)][_0x506bef(0xae8)])return!0x1;var _0x1b16c1=this[_0x506bef(0xd2b)][_0x506bef(0xcd7)];return _0x347db8[_0x506bef(0x4bb)](_0x1b16c1,0x10*_0x28bc19),this[_0x506bef(0xd2b)][_0x506bef(0xac4)]&&(this['_thinInstanceDataStorage'][_0x506bef(0xac4)][_0x28bc19]=_0x347db8),_0x5c7c05&&(this[_0x506bef(0x710)](_0x506bef(0x95b)),this[_0x506bef(0x622)]||this[_0x506bef(0x6d9)](!0x1)),!0x0;},_0x5b3419['Kj'][_0x1d3e18(0x9ed)]['thinInstanceSetAttributeAt']=function(_0x20fcbb,_0x4d55a2,_0x30584f,_0x5be91c=!0x0){var _0x265a75=_0x1d3e18;return _0x20fcbb===_0x31059f['o']['ColorKind']&&(_0x20fcbb=_0x31059f['o'][_0x265a75(0x8fa)]),!(!this[_0x265a75(0x6b4)]||!this[_0x265a75(0x6b4)]['data'][_0x20fcbb]||_0x4d55a2>=this['_thinInstanceDataStorage'][_0x265a75(0xae8)]||(this[_0x265a75(0xafa)](_0x20fcbb,0x0),this[_0x265a75(0x6b4)]['data'][_0x20fcbb][_0x265a75(0x970)](_0x30584f,_0x4d55a2*this[_0x265a75(0x6b4)][_0x265a75(0x73c)][_0x20fcbb]),_0x5be91c&&this['thinInstanceBufferUpdated'](_0x20fcbb),0x0));},Object['defineProperty'](_0x5b3419['Kj'][_0x1d3e18(0x9ed)],'thinInstanceCount',{'get':function(){var _0x730abe=_0x1d3e18;return this[_0x730abe(0xd2b)]['instancesCount'];},'set':function(_0x5c2144){var _0x301e3a=_0x1d3e18,_0x39d3c8=null!=(_0x39d3c8=this['_thinInstanceDataStorage'][_0x301e3a(0xcd7)])?_0x39d3c8:null==(_0x39d3c8=this['source'])?void 0x0:_0x39d3c8[_0x301e3a(0xd2b)][_0x301e3a(0xcd7)];_0x5c2144<=(_0x39d3c8?_0x39d3c8[_0x301e3a(0x3ef)]/0x10:0x0)&&(this[_0x301e3a(0xd2b)]['instancesCount']=_0x5c2144);},'enumerable':!0x0,'configurable':!0x0}),_0x5b3419['Kj'][_0x1d3e18(0x9ed)]['_thinInstanceCreateMatrixBuffer']=function(_0x34f9a1,_0x2a01c0,_0x4d703a=!0x1){var _0x2b7d94=_0x1d3e18;_0x34f9a1===_0x31059f['o'][_0x2b7d94(0xa6f)]&&(_0x34f9a1=_0x31059f['o'][_0x2b7d94(0x8fa)]);const _0x346f1d=new _0x31059f['l'](this[_0x2b7d94(0xcde)](),_0x2a01c0,!_0x4d703a,0x10,!0x1,!0x0);for(let _0x5ac668=0x0;_0x5ac668<0x4;_0x5ac668++)this['setVerticesBuffer'](_0x346f1d[_0x2b7d94(0x74a)](_0x34f9a1+_0x5ac668,0x4*_0x5ac668,0x4));return _0x346f1d;},_0x5b3419['Kj'][_0x1d3e18(0x9ed)]['thinInstanceSetBuffer']=function(_0x1a1945,_0x23e8e6,_0x124b69=0x0,_0x44116b=!0x1){var _0xc19d82=_0x1d3e18,_0x5b5682;_0x124b69=_0x124b69||0x10,_0xc19d82(0x95b)===_0x1a1945?(null!=(_0x5b5682=this[_0xc19d82(0xd2b)][_0xc19d82(0x8c7)])&&_0x5b5682[_0xc19d82(0x431)](),this[_0xc19d82(0xd2b)][_0xc19d82(0x8c7)]=null,this[_0xc19d82(0xd2b)][_0xc19d82(0x948)]=_0x23e8e6?_0x23e8e6['length']:0x20*_0x124b69,this[_0xc19d82(0xd2b)][_0xc19d82(0xcd7)]=_0x23e8e6,(this[_0xc19d82(0xd2b)]['worldMatrices']=null)!==_0x23e8e6?(this[_0xc19d82(0xd2b)]['instancesCount']=_0x23e8e6[_0xc19d82(0x3ef)]/_0x124b69,this[_0xc19d82(0xd2b)]['matrixBuffer']=this[_0xc19d82(0x577)](_0xc19d82(0xa28),_0x23e8e6,_0x44116b),this[_0xc19d82(0x622)]||this[_0xc19d82(0x6d9)](!0x1)):(this['_thinInstanceDataStorage']['instancesCount']=0x0,this['doNotSyncBoundingInfo']||this['refreshBoundingInfo']())):_0xc19d82(0x1da)===_0x1a1945?(null!=(_0x5b5682=this[_0xc19d82(0xd2b)][_0xc19d82(0xa68)])&&_0x5b5682['dispose'](),(this[_0xc19d82(0xd2b)][_0xc19d82(0xa68)]=null)!==(this[_0xc19d82(0xd2b)]['previousMatrixData']=_0x23e8e6)&&(this[_0xc19d82(0xd2b)][_0xc19d82(0xa68)]=this[_0xc19d82(0x577)]('previousWorld',_0x23e8e6,_0x44116b))):(_0x1a1945===_0x31059f['o']['ColorKind']&&(_0x1a1945=_0x31059f['o'][_0xc19d82(0x8fa)]),null===_0x23e8e6?null!=(_0x5b5682=this[_0xc19d82(0x6b4)])&&_0x5b5682['data'][_0x1a1945]&&(this['removeVerticesData'](_0x1a1945),delete this[_0xc19d82(0x6b4)][_0xc19d82(0xc46)][_0x1a1945],delete this['_userThinInstanceBuffersStorage']['strides'][_0x1a1945],delete this[_0xc19d82(0x6b4)][_0xc19d82(0x9bb)][_0x1a1945],delete this['_userThinInstanceBuffersStorage'][_0xc19d82(0x607)][_0x1a1945]):(this[_0xc19d82(0xa94)](),this[_0xc19d82(0x6b4)][_0xc19d82(0xc46)][_0x1a1945]=_0x23e8e6,this[_0xc19d82(0x6b4)][_0xc19d82(0x73c)][_0x1a1945]=_0x124b69,this[_0xc19d82(0x6b4)][_0xc19d82(0x9bb)][_0x1a1945]=_0x23e8e6[_0xc19d82(0x3ef)],this['_userThinInstanceBuffersStorage'][_0xc19d82(0x607)][_0x1a1945]=new _0x31059f['o'](this[_0xc19d82(0xcde)](),_0x23e8e6,_0x1a1945,!_0x44116b,!0x1,_0x124b69,!0x0),this[_0xc19d82(0x4fe)](this[_0xc19d82(0x6b4)]['vertexBuffers'][_0x1a1945])));},_0x5b3419['Kj'][_0x1d3e18(0x9ed)][_0x1d3e18(0x710)]=function(_0x3c6519){var _0x57d6c3=_0x1d3e18,_0x4842eb;'matrix'===_0x3c6519?null!=(_0x4842eb=this[_0x57d6c3(0xd2b)][_0x57d6c3(0x8c7)])&&_0x4842eb[_0x57d6c3(0x446)](this['_thinInstanceDataStorage'][_0x57d6c3(0xcd7)],0x0,this[_0x57d6c3(0xd2b)]['instancesCount']):_0x57d6c3(0x1da)===_0x3c6519?null!=(_0x4842eb=this[_0x57d6c3(0xd2b)][_0x57d6c3(0xa68)])&&_0x4842eb['updateDirectly'](this['_thinInstanceDataStorage'][_0x57d6c3(0x5f9)],0x0,this['_thinInstanceDataStorage'][_0x57d6c3(0xae8)]):(_0x3c6519===_0x31059f['o'][_0x57d6c3(0xa6f)]&&(_0x3c6519=_0x31059f['o']['ColorInstanceKind']),null!=(_0x4842eb=this[_0x57d6c3(0x6b4)])&&_0x4842eb[_0x57d6c3(0x607)][_0x3c6519]&&this[_0x57d6c3(0x6b4)][_0x57d6c3(0x607)][_0x3c6519]['updateDirectly'](this[_0x57d6c3(0x6b4)][_0x57d6c3(0xc46)][_0x3c6519],0x0));},_0x5b3419['Kj'][_0x1d3e18(0x9ed)][_0x1d3e18(0x43e)]=function(_0x50f563,_0xa753cd,_0x5ef9b7){var _0x2a4d33=_0x1d3e18,_0x496b4e;_0x2a4d33(0x95b)===_0x50f563?this['_thinInstanceDataStorage'][_0x2a4d33(0x8c7)]&&this[_0x2a4d33(0xd2b)]['matrixBuffer'][_0x2a4d33(0x446)](_0xa753cd,_0x5ef9b7):(_0x50f563===_0x31059f['o'][_0x2a4d33(0xa6f)]&&(_0x50f563=_0x31059f['o'][_0x2a4d33(0x8fa)]),null!=(_0x496b4e=this[_0x2a4d33(0x6b4)])&&_0x496b4e[_0x2a4d33(0x607)][_0x50f563]&&this[_0x2a4d33(0x6b4)][_0x2a4d33(0x607)][_0x50f563][_0x2a4d33(0x446)](_0xa753cd,_0x5ef9b7));},_0x5b3419['Kj'][_0x1d3e18(0x9ed)]['thinInstanceGetWorldMatrices']=function(){var _0x18c32b=_0x1d3e18;if(!this[_0x18c32b(0xd2b)][_0x18c32b(0xcd7)]||!this[_0x18c32b(0xd2b)][_0x18c32b(0x8c7)])return[];var _0x39ba86=this['_thinInstanceDataStorage'][_0x18c32b(0xcd7)];if(!this[_0x18c32b(0xd2b)][_0x18c32b(0xac4)]){this[_0x18c32b(0xd2b)][_0x18c32b(0xac4)]=new Array();for(let _0x1904ab=0x0;_0x1904ab<this[_0x18c32b(0xd2b)][_0x18c32b(0xae8)];++_0x1904ab)this[_0x18c32b(0xd2b)][_0x18c32b(0xac4)][_0x1904ab]=_0x49acaa['y3'][_0x18c32b(0x3f2)](_0x39ba86,0x10*_0x1904ab);}return this[_0x18c32b(0xd2b)]['worldMatrices'];},_0x5b3419['Kj'][_0x1d3e18(0x9ed)][_0x1d3e18(0x6d9)]=function(_0x28a643=!0x1,_0x1a1570=!0x1,_0x4d320d=!0x1){var _0x25234e=_0x1d3e18;if(this[_0x25234e(0xd2b)][_0x25234e(0xcd7)]&&this[_0x25234e(0xd2b)][_0x25234e(0x8c7)]){const _0xe70f86=this['_thinInstanceDataStorage'][_0x25234e(0xa69)],_0x4ed4d7=(_0x28a643&&(_0xe70f86[_0x25234e(0x3ef)]=0x0,this[_0x25234e(0x200)](_0x1a1570,_0x4d320d)),this[_0x25234e(0x38d)]());var _0x584c9b=this[_0x25234e(0xd2b)][_0x25234e(0xcd7)];if(0x0===_0xe70f86['length']){for(let _0x1ab1e8=0x0;_0x1ab1e8<_0x4ed4d7[_0x25234e(0xd2d)][_0x25234e(0x4fa)][_0x25234e(0x3ef)];++_0x1ab1e8)_0xe70f86[_0x25234e(0x83f)](_0x4ed4d7['boundingBox'][_0x25234e(0x4fa)][_0x1ab1e8]['clone']());}_0x49acaa['jp'][_0x25234e(0x53c)][0x0][_0x25234e(0x244)](Number[_0x25234e(0xce5)]),_0x49acaa['jp'][_0x25234e(0x53c)][0x1]['setAll'](Number[_0x25234e(0xafe)]);for(let _0x3b72b0=0x0;_0x3b72b0<this['_thinInstanceDataStorage']['instancesCount'];++_0x3b72b0){_0x49acaa['y3'][_0x25234e(0xaf6)](_0x584c9b,0x10*_0x3b72b0,_0x49acaa['jp']['Matrix'][0x0]);for(let _0x5748ca=0x0;_0x5748ca<_0xe70f86[_0x25234e(0x3ef)];++_0x5748ca)_0x49acaa['P'][_0x25234e(0x146)](_0xe70f86[_0x5748ca],_0x49acaa['jp'][_0x25234e(0x830)][0x0],_0x49acaa['jp'][_0x25234e(0x53c)][0x2]),_0x49acaa['jp'][_0x25234e(0x53c)][0x0][_0x25234e(0xbba)](_0x49acaa['jp']['Vector3'][0x2]),_0x49acaa['jp'][_0x25234e(0x53c)][0x1][_0x25234e(0x81e)](_0x49acaa['jp'][_0x25234e(0x53c)][0x2]);}_0x4ed4d7[_0x25234e(0x86e)](_0x49acaa['jp']['Vector3'][0x0],_0x49acaa['jp']['Vector3'][0x1]),this['_updateBoundingInfo']();}},_0x5b3419['Kj'][_0x1d3e18(0x9ed)][_0x1d3e18(0xafa)]=function(_0x437687,_0x849e56=0x1){var _0x1c2644=_0x1d3e18,_0x96d37b=_0x1c2644(0x95b)===(_0x437687=_0x437687===_0x31059f['o'][_0x1c2644(0xa6f)]?_0x31059f['o'][_0x1c2644(0x8fa)]:_0x437687);if(_0x96d37b||this[_0x1c2644(0x6b4)]&&this[_0x1c2644(0x6b4)]['strides'][_0x437687]){var _0x575b01=_0x96d37b?0x10:this[_0x1c2644(0x6b4)]['strides'][_0x437687],_0x57b6d4=_0x96d37b?this[_0x1c2644(0xd2b)][_0x1c2644(0x948)]:this[_0x1c2644(0x6b4)][_0x1c2644(0x9bb)][_0x437687];let _0x459782=_0x96d37b?this[_0x1c2644(0xd2b)][_0x1c2644(0xcd7)]:this['_userThinInstanceBuffersStorage'][_0x1c2644(0xc46)][_0x437687];var _0x15efd8=(this[_0x1c2644(0xd2b)][_0x1c2644(0xae8)]+_0x849e56)*_0x575b01;let _0x580202=_0x57b6d4;for(;_0x580202<_0x15efd8;)_0x580202*=0x2;if(!_0x459782||_0x57b6d4!=_0x580202){if(_0x459782){const _0xca4b5d=new Float32Array(_0x580202);_0xca4b5d[_0x1c2644(0x970)](_0x459782,0x0),_0x459782=_0xca4b5d;}else _0x459782=new Float32Array(_0x580202);_0x96d37b?(null!=(_0x849e56=this[_0x1c2644(0xd2b)][_0x1c2644(0x8c7)])&&_0x849e56['dispose'](),this[_0x1c2644(0xd2b)]['matrixBuffer']=this[_0x1c2644(0x577)](_0x1c2644(0xa28),_0x459782,!0x1),this[_0x1c2644(0xd2b)][_0x1c2644(0xcd7)]=_0x459782,this[_0x1c2644(0xd2b)][_0x1c2644(0x948)]=_0x580202,this['_scene'][_0x1c2644(0x458)]&&!this[_0x1c2644(0xd2b)]['previousMatrixData']&&(null!=(_0x57b6d4=this[_0x1c2644(0xd2b)][_0x1c2644(0xa68)])&&_0x57b6d4[_0x1c2644(0x431)](),this[_0x1c2644(0xd2b)][_0x1c2644(0xa68)]=this[_0x1c2644(0x577)](_0x1c2644(0x7cc),_0x459782,!0x1))):(null!=(_0x96d37b=this[_0x1c2644(0x6b4)][_0x1c2644(0x607)][_0x437687])&&_0x96d37b[_0x1c2644(0x431)](),this['_userThinInstanceBuffersStorage'][_0x1c2644(0xc46)][_0x437687]=_0x459782,this[_0x1c2644(0x6b4)][_0x1c2644(0x9bb)][_0x437687]=_0x580202,this[_0x1c2644(0x6b4)][_0x1c2644(0x607)][_0x437687]=new _0x31059f['o'](this['getEngine'](),_0x459782,_0x437687,!0x0,!0x1,_0x575b01,!0x0),this['setVerticesBuffer'](this[_0x1c2644(0x6b4)][_0x1c2644(0x607)][_0x437687]));}}},_0x5b3419['Kj']['prototype'][_0x1d3e18(0xa94)]=function(){var _0x437e99=_0x1d3e18;this[_0x437e99(0x6b4)]||(this[_0x437e99(0x6b4)]={'data':{},'sizes':{},'vertexBuffers':{},'strides':{}});},_0x5b3419['Kj'][_0x1d3e18(0x9ed)]['_disposeThinInstanceSpecificData']=function(){var _0x3af04a=_0x1d3e18,_0x41eb5e;null!=(_0x41eb5e=this[_0x3af04a(0xd2b)])&&_0x41eb5e[_0x3af04a(0x8c7)]&&(this[_0x3af04a(0xd2b)][_0x3af04a(0x8c7)]['dispose'](),this['_thinInstanceDataStorage']['matrixBuffer']=null);};},0x11b46:(_0x3ae549,_0x191b1c,_0x219ec1)=>{var _0x4e2cff=a6_0x1e64fa;_0x219ec1['d'](_0x191b1c,{'s':()=>_0x5aff3e});class _0x5aff3e{constructor(_0x2fd282){var _0x33a8de=a6_0x2304;this[_0x33a8de(0x9e8)]=new Float32Array(_0x2fd282),this['_itemLength']=0x0;}get[_0x4e2cff(0x1f3)](){var _0x300adb=_0x4e2cff;return this[_0x300adb(0x3c7)];}['at'](_0x7790a5){var _0x54fafb=_0x4e2cff;return _0x7790a5<0x0||_0x7790a5>=this[_0x54fafb(0x3c7)]?NaN:this[_0x54fafb(0x9e8)][_0x7790a5];}[_0x4e2cff(0x25f)](_0x509782,_0x55c5fd){var _0x4301af=_0x4e2cff;return _0x55c5fd<=_0x509782||_0x509782<0x0?new Float32Array(0x0):(_0x55c5fd>this[_0x4301af(0x3c7)]&&(_0x55c5fd=this['_itemLength']),this[_0x4301af(0x9e8)][_0x4301af(0x25f)](_0x509782,_0x55c5fd));}[_0x4e2cff(0x83f)](_0x11c9b7){var _0x2aedb4=_0x4e2cff;this[_0x2aedb4(0x9e8)][this[_0x2aedb4(0x3c7)]]=_0x11c9b7,this[_0x2aedb4(0x3c7)]++,this[_0x2aedb4(0x3c7)]>=this[_0x2aedb4(0x9e8)][_0x2aedb4(0x3ef)]&&this[_0x2aedb4(0x8c9)]();}['_growArray'](){var _0x31d6fe=_0x4e2cff,_0x1563f5=Math[_0x31d6fe(0x6af)](1.5*this['_view'][_0x31d6fe(0x3ef)]);const _0x51b1f6=new Float32Array(_0x1563f5);_0x51b1f6[_0x31d6fe(0x970)](this[_0x31d6fe(0x9e8)]),this['_view']=_0x51b1f6;}}},0x13e71:(_0x4e694d,_0x59344a,_0x3288b3)=>{var _0x1e9b51=a6_0x1e64fa,_0x1bc36d=_0x3288b3(0x1446b),_0x24bdb0=_0x3288b3(0xf75);_0x1bc36d['x'][_0x1e9b51(0x9ed)]['getPerfCollector']=function(){var _0x14e2da=_0x1e9b51;return this[_0x14e2da(0x71e)]||(this['_perfCollector']=new _0x24bdb0['P'](this)),this['_perfCollector'];};},0x17a1c:(_0x87260,_0x237ee5,_0x42069f)=>{var _0x918180=a6_0x1e64fa;_0x42069f['d'](_0x237ee5,{'q':()=>_0x4064f2});class _0x4064f2{static[_0x918180(0x472)](_0x27c8a8,_0x5d99d8){var _0x43751f=_0x918180;return _0x43751f(0xcb7)===(_0x27c8a8=_0x27c8a8[_0x43751f(0xc98)](/\([^()]*\)/g)?_0x27c8a8[_0x43751f(0x3cd)](/\([^()]*\)/g,_0x1f9a40=>(_0x1f9a40=_0x1f9a40['slice'](0x1,_0x1f9a40['length']-0x1),_0x4064f2['_HandleParenthesisContent'](_0x1f9a40,_0x5d99d8))):_0x4064f2[_0x43751f(0x80f)](_0x27c8a8,_0x5d99d8))||_0x43751f(0x243)!==_0x27c8a8&&_0x4064f2[_0x43751f(0x472)](_0x27c8a8,_0x5d99d8);}static['_HandleParenthesisContent'](_0x2fca43,_0x2e29a8){var _0x7942c1=_0x918180;_0x2e29a8=_0x2e29a8||(_0x5d19dc=>_0x7942c1(0xcb7)===_0x5d19dc);let _0x3013b6;const _0x36018e=_0x2fca43[_0x7942c1(0x1f6)]('||');for(const _0x25dfa7 in _0x36018e)if(Object[_0x7942c1(0x9ed)][_0x7942c1(0x1b7)][_0x7942c1(0x1f8)](_0x36018e,_0x25dfa7)){let _0xc24f06=_0x4064f2[_0x7942c1(0x37f)](_0x36018e[_0x25dfa7][_0x7942c1(0xb68)]());const _0x59d8d3=_0xc24f06['split']('&&');if(0x1<_0x59d8d3['length'])for(let _0xafd55d=0x0;_0xafd55d<_0x59d8d3[_0x7942c1(0x3ef)];++_0xafd55d){const _0x4ccbb3=_0x4064f2['_SimplifyNegation'](_0x59d8d3[_0xafd55d][_0x7942c1(0xb68)]());if(!(_0x3013b6=_0x7942c1(0xcb7)!==_0x4ccbb3&&_0x7942c1(0x243)!==_0x4ccbb3?'!'===_0x4ccbb3[0x0]?!_0x2e29a8(_0x4ccbb3['substring'](0x1)):_0x2e29a8(_0x4ccbb3):_0x7942c1(0xcb7)===_0x4ccbb3)){_0xc24f06='false';break;}}if(_0x3013b6||_0x7942c1(0xcb7)===_0xc24f06){_0x3013b6=!0x0;break;}_0x3013b6=_0x7942c1(0xcb7)!==_0xc24f06&&_0x7942c1(0x243)!==_0xc24f06?'!'===_0xc24f06[0x0]?!_0x2e29a8(_0xc24f06[_0x7942c1(0x6a1)](0x1)):_0x2e29a8(_0xc24f06):_0x7942c1(0xcb7)===_0xc24f06;}return _0x3013b6?_0x7942c1(0xcb7):'false';}static[_0x918180(0x37f)](_0x2bf76b){var _0x1e262f=_0x918180;return'!true'===(_0x2bf76b=(_0x2bf76b=_0x2bf76b[_0x1e262f(0x3cd)](/^[\s!]+/,_0x4586c9=>(_0x4586c9=_0x4586c9[_0x1e262f(0x3cd)](/[\s]/g,()=>''))[_0x1e262f(0x3ef)]%0x2?'!':''))[_0x1e262f(0xb68)]())?_0x2bf76b='false':_0x1e262f(0x5e3)===_0x2bf76b&&(_0x2bf76b=_0x1e262f(0xcb7)),_0x2bf76b;}}},0x5898:(_0x369de3,_0x3ef14b,_0x48ffcf)=>{var _0x51df2f=a6_0x1e64fa;_0x48ffcf['d'](_0x3ef14b,{'B':()=>_0x2a33ee,'M':()=>function(_0x699718,_0x2c46d8){var _0x56ffb6=a6_0x2304;const _0x4ae016=_0x4a82ab[_0x56ffb6(0x694)](_0x4b5022=>{var _0x57b25c=_0x56ffb6;{var _0x370eea=_0x699718,_0x5424b7=_0x4b5022,_0x48cf14=_0x2c46d8;const _0x52a44e=_0x370eea[_0x5424b7];return _0x57b25c(0x97c)!=typeof _0x52a44e?null:((_0x52a44e['next']=_0x1c1f95)[_0x57b25c(0x5ae)]=_0x52a44e,_0x370eea[_0x5424b7]=_0x1c1f95,()=>{var _0x25129a=_0x57b25c;const _0x272df0=_0x1c1f95[_0x25129a(0x5ae)];if(_0x272df0){const _0x584e29=_0x1c1f95[_0x25129a(0x54b)];_0x584e29?(_0x272df0[_0x25129a(0x54b)]=_0x584e29)['previous']=_0x272df0:(_0x272df0['next']=void 0x0,_0x370eea[_0x5424b7]=_0x272df0),_0x1c1f95[_0x25129a(0x54b)]=void 0x0,_0x1c1f95[_0x25129a(0x5ae)]=void 0x0;}});function _0x1c1f95(){var _0x1653f9=_0x57b25c,_0xdf7bd6=_0x370eea[_0x1653f9(0x3ef)],_0x31ccab=_0x1c1f95[_0x1653f9(0x5ae)]['apply'](_0x370eea,arguments);return _0x48cf14(_0x5424b7,_0xdf7bd6),_0x31ccab;}}});return()=>{var _0x4540d2=_0x56ffb6;_0x4ae016[_0x4540d2(0x497)](_0x2493dc=>{null!=_0x2493dc&&_0x2493dc();});};}});class _0x2a33ee{static['BuildArray'](_0x712d61,_0x1b35af){var _0x32f6b1=a6_0x2304;const _0x2042f=[];for(let _0x50aa77=0x0;_0x50aa77<_0x712d61;++_0x50aa77)_0x2042f[_0x32f6b1(0x83f)](_0x1b35af());return _0x2042f;}static[_0x51df2f(0xad7)](_0x321b35,_0x5eb900){var _0x345314=_0x51df2f;return _0x2a33ee[_0x345314(0x757)](_0x321b35,_0x5eb900);}}const _0x4a82ab=['push',_0x51df2f(0x227),_0x51df2f(0xa03),_0x51df2f(0xbde),_0x51df2f(0x3cc)];},0x75be:(_0x11f0bc,_0x62cf3b,_0x2c9d05)=>{_0x2c9d05['d'](_0x62cf3b,{'AW':()=>function(_0x11b178){var _0x560a8b=a6_0x2304;return _0x11b178[_0x560a8b(0x3cd)](/[.*+?^${}()|[\]\\]/g,_0x560a8b(0xaa9));},'Kt':()=>function(_0x4843a0){var _0x537b6d=a6_0x2304;let _0x3d224e=0x0,_0x2b3a4d='',_0x43c77c=!0x1;const _0x2efd60=[];for(;_0x3d224e<_0x4843a0['length'];){var _0x326406,_0x5b0053=_0x4843a0[_0x537b6d(0x306)](_0x3d224e);if(_0x2b3a4d)_0x5b0053===_0x2b3a4d?'\x22'===_0x2b3a4d||'\x27'===_0x2b3a4d?('\x5c'!==_0x4843a0[_0x537b6d(0x306)](_0x3d224e-0x1)&&(_0x2b3a4d=''),_0x2efd60[_0x537b6d(0x83f)](_0x5b0053)):(_0x2b3a4d='',_0x43c77c=!0x1):'*/'===_0x2b3a4d&&'*'===_0x5b0053&&_0x3d224e+0x1<_0x4843a0[_0x537b6d(0x3ef)]?''===(_0x2b3a4d='/'===_0x4843a0[_0x537b6d(0x306)](_0x3d224e+0x1)?'':_0x2b3a4d)&&(_0x43c77c=!0x1,_0x3d224e++):_0x43c77c||_0x2efd60[_0x537b6d(0x83f)](_0x5b0053);else{switch(_0x5b0053){case'\x22':case'\x27':case'`':_0x2b3a4d=_0x5b0053;break;case'/':_0x3d224e+0x1<_0x4843a0[_0x537b6d(0x3ef)]&&('/'===(_0x326406=_0x4843a0[_0x537b6d(0x306)](_0x3d224e+0x1))?(_0x2b3a4d='\x0a',_0x43c77c=!0x0):'*'===_0x326406&&(_0x2b3a4d='*/',_0x43c77c=!0x0));}_0x43c77c||_0x2efd60[_0x537b6d(0x83f)](_0x5b0053);}_0x3d224e++;}return _0x2efd60[_0x537b6d(0x465)]('');},'Pm':()=>function(_0x549e9a,_0x41db6a){for(;_0x41db6a<_0x549e9a['length'];){var _0x3fbadb=_0x549e9a[_0x41db6a];if('\x20'!==_0x3fbadb&&'\x0a'!==_0x3fbadb&&'\x0d'!==_0x3fbadb&&'\x09'!==_0x3fbadb&&'\x0a'!==_0x3fbadb&&'\u00a0'!==_0x3fbadb)break;_0x41db6a++;}return _0x41db6a;},'uA':()=>function(_0x20766b){var _0x2791a2=a6_0x2304;return _0x20766b=_0x20766b[_0x2791a2(0x1af)](0x0),0x30<=_0x20766b&&_0x20766b<=0x39||0x41<=_0x20766b&&_0x20766b<=0x5a||0x61<=_0x20766b&&_0x20766b<=0x7a||0x5f==_0x20766b;},'vt':()=>function(_0xd1375d,_0x55225c,_0x5728c9,_0x5b2e76){var _0x6d5388=a6_0x2304;let _0x383c16=_0x5b2e76,_0x277ca0=0x0,_0x36497e='';for(;_0x383c16<_0x5728c9[_0x6d5388(0x3ef)];){var _0xeffd9e,_0x2a066a=_0x5728c9[_0x6d5388(0x306)](_0x383c16);if(_0x36497e)_0x2a066a===_0x36497e?('\x22'!==_0x36497e&&'\x27'!==_0x36497e||'\x5c'!==_0x5728c9['charAt'](_0x383c16-0x1))&&(_0x36497e=''):'*/'===_0x36497e&&'*'===_0x2a066a&&_0x383c16+0x1<_0x5728c9['length']&&''===(_0x36497e='/'===_0x5728c9[_0x6d5388(0x306)](_0x383c16+0x1)?'':_0x36497e)&&_0x383c16++;else switch(_0x2a066a){case _0xd1375d:_0x277ca0++;break;case _0x55225c:_0x277ca0--;break;case'\x22':case'\x27':case'`':_0x36497e=_0x2a066a;break;case'/':_0x383c16+0x1<_0x5728c9['length']&&('/'===(_0xeffd9e=_0x5728c9[_0x6d5388(0x306)](_0x383c16+0x1))?_0x36497e='\x0a':'*'===_0xeffd9e&&(_0x36497e='*/'));}if(_0x383c16++,0x0===_0x277ca0)break;}return 0x0===_0x277ca0?_0x383c16-0x1:-0x1;},'wm':()=>function(_0x3bc398,_0x43cc1c,_0x414cfd){var _0x1f9d51=a6_0x2304;for(;0x0<=_0x43cc1c&&_0x3bc398[_0x1f9d51(0x306)](_0x43cc1c)!==_0x414cfd;)_0x43cc1c--;return _0x43cc1c;}});},0x15cb9:(_0xb1e08,_0x29c2a,_0x31b131)=>{_0x31b131['d'](_0x29c2a,{'S':()=>function(_0x51abb4){return _0x51abb4+'\x20needs\x20to\x20be\x20imported\x20before\x20as\x20it\x20contains\x20a\x20side-effect\x20required\x20by\x20your\x20code.';}});},0x15d46:(_0x1d5ea6,_0x1e270e,_0x245014)=>{var _0x12a44f=a6_0x1e64fa;_0x245014['d'](_0x1e270e,{'K':()=>_0x5aedf2});var _0x3e4c3d=_0x245014(0x10ea4),_0x53b76e=_0x245014(0xe456);class _0x5aedf2{static[_0x12a44f(0x491)](_0x4f88fb){var _0x1f835f=_0x12a44f;if(this[_0x1f835f(0xcfc)]&&this['RegisteredExternalClasses'][_0x4f88fb])return this['RegisteredExternalClasses'][_0x4f88fb];var _0x3a7d81=(0x0,_0x53b76e['q'])(_0x4f88fb);if(_0x3a7d81)return _0x3a7d81;_0x3e4c3d['Y']['Warn'](_0x4f88fb+_0x1f835f(0x811));var _0x1d11ab=_0x4f88fb[_0x1f835f(0x1f6)]('.');let _0x162e12=window||this;for(let _0x5078bb=0x0,_0x53dfc3=_0x1d11ab['length'];_0x5078bb<_0x53dfc3;_0x5078bb++)_0x162e12=_0x162e12[_0x1d11ab[_0x5078bb]];return'function'!=typeof _0x162e12?null:_0x162e12;}}_0x5aedf2['RegisteredExternalClasses']={};},0xd78e:(_0x43750b,_0x3de756,_0x18691c)=>{var _0x2b2a47=a6_0x1e64fa,_0x499e7b=_0x18691c(0xf96c),_0x466eca=_0x18691c(0x9bf);_0x499e7b['y$'][_0x2b2a47(0x9ed)][_0x2b2a47(0x634)]=function(_0x3cecfa){var _0x47e267=_0x2b2a47,_0x1fdc7a;return this[_0x47e267(0x720)]||(_0x1fdc7a=function(_0x283e0b){const _0x881a79=new Array(),_0x5871c8=new Array(),_0x30c9b9=new Array(),_0x5850db=_0x283e0b['add'](()=>{var _0x5c31c0=a6_0x2304,_0x4e4d17=_0x881a79[_0x5c31c0(0x3ef)];for(let _0x470bba=0x0;_0x470bba<_0x4e4d17;_0x470bba++)(0x0,_0x466eca['WP'])(_0x881a79['shift'](),_0x5871c8['shift'](),_0x30c9b9[_0x5c31c0(0xbde)]());});return{'scheduler':(_0x5e2cf5,_0x460bd2,_0x1f480a)=>{var _0x4515e6=a6_0x2304;_0x881a79[_0x4515e6(0x83f)](_0x5e2cf5),_0x5871c8[_0x4515e6(0x83f)](_0x460bd2),_0x30c9b9[_0x4515e6(0x83f)](_0x1f480a);},'dispose':()=>{_0x283e0b['remove'](_0x5850db);}};}(this),this['_coroutineScheduler']=_0x1fdc7a['scheduler'],this[_0x47e267(0x6b6)]=_0x1fdc7a[_0x47e267(0x431)]),(0x0,_0x466eca['sM'])(_0x3cecfa,this[_0x47e267(0x720)]);},_0x499e7b['y$'][_0x2b2a47(0x9ed)][_0x2b2a47(0x849)]=function(){var _0x260266=_0x2b2a47;this[_0x260266(0x6b6)]&&this[_0x260266(0x6b6)](),this['_coroutineScheduler']=void 0x0,this[_0x260266(0x6b6)]=void 0x0;};},0x1447:(_0x4edd1d,_0x38e68f,_0x449532)=>{_0x449532['d'](_0x38e68f,{'b':()=>_0x55b8db});class _0x55b8db{static['ExponentialBackoff'](_0x504712=0x3,_0x49f367=0x1f4){var _0x2a1765=a6_0x2304;return(_0x1b2e6c,_0x13c2da,_0x4828bd)=>0x0!==_0x13c2da[_0x2a1765(0xab2)]||_0x504712<=_0x4828bd||-0x1!==_0x1b2e6c[_0x2a1765(0x9e0)](_0x2a1765(0x3cf))?-0x1:Math[_0x2a1765(0x3b0)](0x2,_0x4828bd)*_0x49f367;}}},0x5de7:(_0x4c2398,_0x4aecfb,_0x1c22d5)=>{var _0x1e79cc=a6_0x1e64fa;_0x1c22d5['d'](_0x4aecfb,{'x':()=>_0x4d08dc});class _0x4d08dc{constructor(){var _0x1ee7b1=a6_0x2304;this[_0x1ee7b1(0x869)]=0x0,this[_0x1ee7b1(0x861)]={};}['copyFrom'](_0x5b1ba5){var _0x19c35a=a6_0x2304;this['clear'](),_0x5b1ba5[_0x19c35a(0x497)]((_0x52b297,_0x203b52)=>this['add'](_0x52b297,_0x203b52));}[_0x1e79cc(0x79e)](_0xf9d24f){var _0x46bdb5=_0x1e79cc;_0xf9d24f=this[_0x46bdb5(0x861)][_0xf9d24f];if(void 0x0!==_0xf9d24f)return _0xf9d24f;}['getOrAddWithFactory'](_0x2505f3,_0x4f8e74){var _0x3f5576=_0x1e79cc;let _0x57ab46=this[_0x3f5576(0x79e)](_0x2505f3);return void 0x0===_0x57ab46&&(_0x57ab46=_0x4f8e74(_0x2505f3))&&this[_0x3f5576(0x526)](_0x2505f3,_0x57ab46),_0x57ab46;}[_0x1e79cc(0x2b7)](_0x2bfe05,_0x4cfa7d){var _0x3b23f0=_0x1e79cc,_0x4dfd3b=this[_0x3b23f0(0x79e)](_0x2bfe05);return void 0x0!==_0x4dfd3b?_0x4dfd3b:(this[_0x3b23f0(0x526)](_0x2bfe05,_0x4cfa7d),_0x4cfa7d);}[_0x1e79cc(0x1d9)](_0x2d3719){var _0x2e15aa=_0x1e79cc;return void 0x0!==this[_0x2e15aa(0x861)][_0x2d3719];}[_0x1e79cc(0x526)](_0x4bdbc4,_0x2703b8){var _0x5b0083=_0x1e79cc;return void 0x0===this[_0x5b0083(0x861)][_0x4bdbc4]&&(this[_0x5b0083(0x861)][_0x4bdbc4]=_0x2703b8,++this[_0x5b0083(0x869)],!0x0);}['set'](_0x3b792a,_0x232a58){var _0x1390e7=_0x1e79cc;return void 0x0!==this['_data'][_0x3b792a]&&(this[_0x1390e7(0x861)][_0x3b792a]=_0x232a58,!0x0);}[_0x1e79cc(0x653)](_0x2be05f){var _0x4ef126=_0x1e79cc,_0x5cb510=this['get'](_0x2be05f);return void 0x0!==_0x5cb510?(delete this[_0x4ef126(0x861)][_0x2be05f],--this[_0x4ef126(0x869)],_0x5cb510):null;}[_0x1e79cc(0x36a)](_0x46c6e1){var _0x5ca8e0=_0x1e79cc;return!!this[_0x5ca8e0(0x1d9)](_0x46c6e1)&&(delete this[_0x5ca8e0(0x861)][_0x46c6e1],--this[_0x5ca8e0(0x869)],!0x0);}[_0x1e79cc(0x6de)](){var _0x378ca6=_0x1e79cc;this[_0x378ca6(0x861)]={},this[_0x378ca6(0x869)]=0x0;}get[_0x1e79cc(0x459)](){var _0x173bd9=_0x1e79cc;return this[_0x173bd9(0x869)];}[_0x1e79cc(0x497)](_0x48de5c){var _0x396440=_0x1e79cc;for(const _0x3a4716 in this[_0x396440(0x861)]){var _0x24860f=this['_data'][_0x3a4716];_0x48de5c(_0x3a4716,_0x24860f);}}[_0x1e79cc(0x3f1)](_0x1fecf8){var _0x1a85e8=_0x1e79cc;for(const _0x1adba1 in this[_0x1a85e8(0x861)]){var _0x21564d=this[_0x1a85e8(0x861)][_0x1adba1],_0x21564d=_0x1fecf8(_0x1adba1,_0x21564d);if(_0x21564d)return _0x21564d;}return null;}}},0x16361:(_0x8dcfbf,_0x14f645,_0x12b91c)=>{var _0x1bb9c5=a6_0x1e64fa;_0x12b91c['d'](_0x14f645,{'$':()=>_0x4d161c});var _0x55377c=_0x12b91c(0x17a1c);class _0x4d161c{static['EnableFor'](_0x346270){var _0xdddf55=a6_0x2304;_0x346270[_0xdddf55(0x3ab)]=_0x346270[_0xdddf55(0x3ab)]||{},_0x346270[_0xdddf55(0x4c8)]=()=>_0x4d161c[_0xdddf55(0x131)](_0x346270),_0x346270['addTags']=_0x2092b9=>_0x4d161c[_0xdddf55(0x5e2)](_0x346270,_0x2092b9),_0x346270[_0xdddf55(0x6ce)]=_0x2ff66a=>_0x4d161c[_0xdddf55(0x1c5)](_0x346270,_0x2ff66a),_0x346270[_0xdddf55(0x330)]=_0x256dda=>_0x4d161c['MatchesQuery'](_0x346270,_0x256dda);}static[_0x1bb9c5(0x53f)](_0x4f16fc){var _0x25b60f=_0x1bb9c5;delete _0x4f16fc[_0x25b60f(0x3ab)],delete _0x4f16fc[_0x25b60f(0x4c8)],delete _0x4f16fc[_0x25b60f(0x676)],delete _0x4f16fc['removeTags'],delete _0x4f16fc[_0x25b60f(0x330)];}static[_0x1bb9c5(0x131)](_0x46c915){var _0x438993=_0x1bb9c5;if(!_0x46c915[_0x438993(0x3ab)])return!0x1;var _0x179ce=_0x46c915['_tags'];for(const _0x2a3c47 in _0x179ce)if(Object[_0x438993(0x9ed)]['hasOwnProperty'][_0x438993(0x1f8)](_0x179ce,_0x2a3c47))return!0x0;return!0x1;}static[_0x1bb9c5(0xacc)](_0x4ccb2d,_0x4dca6a=!0x0){var _0x498896=_0x1bb9c5;if(!_0x4ccb2d[_0x498896(0x3ab)])return null;if(_0x4dca6a){const _0xab36b0=[];for(const _0x48293e in _0x4ccb2d[_0x498896(0x3ab)])Object['prototype'][_0x498896(0x1b7)][_0x498896(0x1f8)](_0x4ccb2d[_0x498896(0x3ab)],_0x48293e)&&!0x0===_0x4ccb2d['_tags'][_0x48293e]&&_0xab36b0[_0x498896(0x83f)](_0x48293e);return _0xab36b0[_0x498896(0x465)]('\x20');}return _0x4ccb2d[_0x498896(0x3ab)];}static[_0x1bb9c5(0x5e2)](_0x4d6cad,_0x181018){var _0x188792=_0x1bb9c5;if(_0x181018&&_0x188792(0x3f3)==typeof _0x181018){const _0x29af04=_0x181018[_0x188792(0x1f6)]('\x20');_0x29af04[_0x188792(0x497)](function(_0x77dd50){_0x4d161c['_AddTagTo'](_0x4d6cad,_0x77dd50);});}}static[_0x1bb9c5(0x8a5)](_0x44a8f1,_0x38555e){var _0x5a190d=_0x1bb9c5;''===(_0x38555e=_0x38555e[_0x5a190d(0xb68)]())||_0x5a190d(0xcb7)===_0x38555e||_0x5a190d(0x243)===_0x38555e||_0x38555e['match'](/[\s]/)||_0x38555e[_0x5a190d(0xc98)](/^([!]|([|]|[&]){2})/)||(_0x4d161c['EnableFor'](_0x44a8f1),_0x44a8f1[_0x5a190d(0x3ab)][_0x38555e]=!0x0);}static['RemoveTagsFrom'](_0x775f6a,_0x3dd0ac){var _0xfa0801=_0x1bb9c5;if(_0x4d161c[_0xfa0801(0x131)](_0x775f6a)){var _0x17be5d=_0x3dd0ac['split']('\x20');for(const _0x4eee59 in _0x17be5d)_0x4d161c[_0xfa0801(0x5a7)](_0x775f6a,_0x17be5d[_0x4eee59]);}}static['_RemoveTagFrom'](_0x11cc5f,_0x1965bd){var _0xc16056=_0x1bb9c5;delete _0x11cc5f[_0xc16056(0x3ab)][_0x1965bd];}static['MatchesQuery'](_0x25a78b,_0x5ae3c3){var _0x316aae=_0x1bb9c5;return void 0x0===_0x5ae3c3||(''===_0x5ae3c3?_0x4d161c[_0x316aae(0x131)](_0x25a78b):_0x55377c['q'][_0x316aae(0x472)](_0x5ae3c3,_0x17b478=>_0x4d161c[_0x316aae(0x131)](_0x25a78b)&&_0x25a78b['_tags'][_0x17b478]));}}},0xd84a:(_0x470b4c,_0x25e050,_0x2fab70)=>{var _0x241382=a6_0x1e64fa;_0x2fab70['d'](_0x25e050,{'Q':()=>_0x22babd});var _0x272086=_0x2fab70(0x18233);class _0x22babd{static[_0x241382(0xc88)](_0x511c38){var _0x51e2d9=_0x241382;(0x0,_0x272086['CG'])()&&window['setImmediate']?window[_0x51e2d9(0x13f)](_0x511c38):setTimeout(_0x511c38,0x1);}}},0xc98:(_0xa19691,_0x499105,_0x3320df)=>{var _0x55152a=a6_0x1e64fa;_0x3320df['d'](_0x499105,{'L':()=>_0x2b9b6d});var _0x5f0cfd=_0x3320df(0x1266b),_0x48bae8=_0x3320df(0x9fd1),_0x52ef52=_0x3320df(0x1b5c);class _0x2b9b6d{constructor(_0x759eeb=0x1,_0x2f8448=Math['PI'],_0x9f1ad9=0x0){var _0x1fef89=a6_0x2304;this[_0x1fef89(0x928)]=_0x9f1ad9,this[_0x1fef89(0x8a2)]=0x1,this[_0x1fef89(0x387)]=0x1,this['emitFromSpawnPointOnly']=!0x1,this['angle']=_0x2f8448,this[_0x1fef89(0x652)]=_0x759eeb;}get['radius'](){var _0x185c48=a6_0x2304;return this[_0x185c48(0xaf8)];}set['radius'](_0x4d2ba6){var _0x5cf6cd=a6_0x2304;this[_0x5cf6cd(0xaf8)]=_0x4d2ba6,this[_0x5cf6cd(0xaef)]();}get[_0x55152a(0x54d)](){return this['_angle'];}set[_0x55152a(0x54d)](_0x3684a9){var _0x444708=_0x55152a;this[_0x444708(0x8c5)]=_0x3684a9,this[_0x444708(0xaef)]();}[_0x55152a(0xaef)](){var _0x37a953=_0x55152a;0x0!==this[_0x37a953(0x8c5)]?this[_0x37a953(0x981)]=this[_0x37a953(0xaf8)]/Math[_0x37a953(0xba6)](this[_0x37a953(0x8c5)]/0x2):this[_0x37a953(0x981)]=0x1;}[_0x55152a(0x98d)](_0x33da2d,_0x5679cc,_0x27e723,_0x3e5600){var _0x179079=_0x55152a;(_0x3e5600?_0x48bae8['jp'][_0x179079(0x53c)][0x0][_0x179079(0x8bf)](_0x27e723[_0x179079(0x196)]):_0x27e723['position'][_0x179079(0x6a4)](_0x33da2d[_0x179079(0x859)](),_0x48bae8['jp'][_0x179079(0x53c)][0x0]))[_0x179079(0x9e5)](),(_0x3e5600=_0x52ef52['R'][_0x179079(0xb92)](0x0,this[_0x179079(0x928)]),_0x27e723=_0x52ef52['R']['RandomRange'](0x0,this[_0x179079(0x928)]),_0x33da2d=_0x52ef52['R'][_0x179079(0xb92)](0x0,this[_0x179079(0x928)])),(_0x5679cc['x']=_0x48bae8['jp'][_0x179079(0x53c)][0x0]['x']+_0x3e5600,_0x5679cc['y']=_0x48bae8['jp'][_0x179079(0x53c)][0x0]['y']+_0x27e723,_0x5679cc['z']=_0x48bae8['jp'][_0x179079(0x53c)][0x0]['z']+_0x33da2d,_0x5679cc['normalize']());}[_0x55152a(0x941)](_0x45701,_0x3c46f2,_0xf07d0d,_0x38cf71){var _0x3ada7e=_0x55152a,_0x299dda=_0x52ef52['R'][_0x3ada7e(0xb92)](0x0,0x2*Math['PI']);let _0x5425ed;_0x5425ed=this['emitFromSpawnPointOnly']?0.0001:0x1-(_0x5425ed=_0x52ef52['R'][_0x3ada7e(0xb92)](0x0,this['heightRange']))*_0x5425ed;var _0x5ed362=this[_0x3ada7e(0xaf8)]-_0x52ef52['R'][_0x3ada7e(0xb92)](0x0,this['_radius']*this[_0x3ada7e(0x8a2)]),_0x2ec1d7=(_0x5ed362*=_0x5425ed)*Math[_0x3ada7e(0x343)](_0x299dda),_0x5ed362=_0x5ed362*Math['cos'](_0x299dda),_0x299dda=_0x5425ed*this[_0x3ada7e(0x981)];if(_0x38cf71)return _0x3c46f2['x']=_0x2ec1d7,_0x3c46f2['y']=_0x299dda,void(_0x3c46f2['z']=_0x5ed362);_0x48bae8['P']['TransformCoordinatesFromFloatsToRef'](_0x2ec1d7,_0x299dda,_0x5ed362,_0x45701,_0x3c46f2);}[_0x55152a(0x12a)](){var _0x521e2e=_0x55152a,_0x4b6343=new _0x2b9b6d(this[_0x521e2e(0xaf8)],this[_0x521e2e(0x8c5)],this[_0x521e2e(0x928)]);return _0x5f0cfd['j'][_0x521e2e(0x75d)](this,_0x4b6343),_0x4b6343;}[_0x55152a(0xb35)](_0x4121db){var _0x31ae7c=_0x55152a;_0x4121db['setFloat2'](_0x31ae7c(0x652),this[_0x31ae7c(0xaf8)],this[_0x31ae7c(0x8a2)]),_0x4121db[_0x31ae7c(0x5f3)]('coneAngle',this[_0x31ae7c(0x8c5)]),_0x4121db[_0x31ae7c(0x796)](_0x31ae7c(0x43d),this[_0x31ae7c(0x981)],this[_0x31ae7c(0x387)]),_0x4121db['setFloat'](_0x31ae7c(0x928),this['directionRandomizer']);}['buildUniformLayout'](_0x344c32){var _0x176e35=_0x55152a;_0x344c32['addUniform'](_0x176e35(0x652),0x2),_0x344c32[_0x176e35(0x1d4)]('coneAngle',0x1),_0x344c32['addUniform'](_0x176e35(0x43d),0x2),_0x344c32[_0x176e35(0x1d4)](_0x176e35(0x928),0x1);}['getEffectDefines'](){var _0x15bc2f=_0x55152a;let _0x3d459c=_0x15bc2f(0x6fc);return this[_0x15bc2f(0xb31)]&&(_0x3d459c+='\x0a#define\x20CONEEMITTERSPAWNPOINT'),_0x3d459c;}[_0x55152a(0x4e7)](){var _0x404332=_0x55152a;return _0x404332(0xa2d);}[_0x55152a(0x6ee)](){var _0x5e01f=_0x55152a;const _0xddbb9f={};return _0xddbb9f['type']=this['getClassName'](),_0xddbb9f[_0x5e01f(0x652)]=this[_0x5e01f(0xaf8)],_0xddbb9f[_0x5e01f(0x54d)]=this[_0x5e01f(0x8c5)],_0xddbb9f['directionRandomizer']=this[_0x5e01f(0x928)],_0xddbb9f[_0x5e01f(0x8a2)]=this[_0x5e01f(0x8a2)],_0xddbb9f[_0x5e01f(0x387)]=this[_0x5e01f(0x387)],_0xddbb9f[_0x5e01f(0xb31)]=this[_0x5e01f(0xb31)],_0xddbb9f;}[_0x55152a(0x261)](_0x3e4089){var _0x305dca=_0x55152a;this[_0x305dca(0x652)]=_0x3e4089[_0x305dca(0x652)],this[_0x305dca(0x54d)]=_0x3e4089[_0x305dca(0x54d)],this[_0x305dca(0x928)]=_0x3e4089[_0x305dca(0x928)],this[_0x305dca(0x8a2)]=void 0x0!==_0x3e4089[_0x305dca(0x8a2)]?_0x3e4089[_0x305dca(0x8a2)]:0x1,this[_0x305dca(0x387)]=void 0x0!==_0x3e4089['radiusRange']?_0x3e4089[_0x305dca(0x387)]:0x1,this[_0x305dca(0xb31)]=void 0x0!==_0x3e4089['emitFromSpawnPointOnly']&&_0x3e4089[_0x305dca(0xb31)];}}},0x3694:(_0x2fb6b4,_0x194818,_0x2e3a26)=>{var _0x1a3cd3=a6_0x1e64fa;_0x2e3a26['d'](_0x194818,{'k':()=>_0x188904,'z':()=>_0x29e93a});var _0x99acd6=_0x2e3a26(0x9fd1),_0x149067=_0x2e3a26(0x1b5c),_0x1c033f=_0x2e3a26(0x1266b);class _0x188904{constructor(_0x1f1329=0x1,_0x18c435=0x1,_0x54e1da=0x1,_0x2034c3=0x0){var _0x3d49a9=a6_0x2304;this[_0x3d49a9(0x652)]=_0x1f1329,this[_0x3d49a9(0x43d)]=_0x18c435,this[_0x3d49a9(0x8a2)]=_0x54e1da,this[_0x3d49a9(0x928)]=_0x2034c3,this['_tempVector']=_0x99acd6['P']['Zero']();}[_0x1a3cd3(0x98d)](_0x5893bc,_0x242e1e,_0x376559,_0x260b44,_0x4a01f0){var _0x2b0e90=_0x1a3cd3;_0x376559['position'][_0x2b0e90(0x6a4)](_0x5893bc[_0x2b0e90(0x859)](),this[_0x2b0e90(0x385)]),this[_0x2b0e90(0x385)][_0x2b0e90(0x9e5)](),_0x99acd6['P'][_0x2b0e90(0x4c0)](this[_0x2b0e90(0x385)],_0x4a01f0,this[_0x2b0e90(0x385)]),(_0x376559=_0x149067['R'][_0x2b0e90(0xb92)](-this['directionRandomizer']/0x2,this['directionRandomizer']/0x2),_0x4a01f0=Math[_0x2b0e90(0xa0b)](this[_0x2b0e90(0x385)]['x'],this[_0x2b0e90(0x385)]['z'])),(_0x4a01f0+=_0x149067['R'][_0x2b0e90(0xb92)](-Math['PI']/0x2,Math['PI']/0x2)*this[_0x2b0e90(0x928)],this[_0x2b0e90(0x385)]['y']=_0x376559,this[_0x2b0e90(0x385)]['x']=Math[_0x2b0e90(0x343)](_0x4a01f0),this[_0x2b0e90(0x385)]['z']=Math[_0x2b0e90(0x3c8)](_0x4a01f0),this[_0x2b0e90(0x385)]['normalize'](),_0x260b44?_0x242e1e[_0x2b0e90(0x8bf)](this['_tempVector']):_0x99acd6['P']['TransformNormalFromFloatsToRef'](this[_0x2b0e90(0x385)]['x'],this['_tempVector']['y'],this[_0x2b0e90(0x385)]['z'],_0x5893bc,_0x242e1e));}[_0x1a3cd3(0x941)](_0x13f18f,_0x53216f,_0x5f09bf,_0x380ecd){var _0x4e96ac=_0x1a3cd3,_0x18b84d=_0x149067['R'][_0x4e96ac(0xb92)](-this[_0x4e96ac(0x43d)]/0x2,this[_0x4e96ac(0x43d)]/0x2),_0x362b3e=_0x149067['R'][_0x4e96ac(0xb92)](0x0,0x2*Math['PI']),_0x22b490=_0x149067['R'][_0x4e96ac(0xb92)]((0x1-this[_0x4e96ac(0x8a2)])*(0x1-this[_0x4e96ac(0x8a2)]),0x1),_0x22b490=Math[_0x4e96ac(0xbe4)](_0x22b490)*this[_0x4e96ac(0x652)],_0x57499e=_0x22b490*Math['cos'](_0x362b3e),_0x22b490=_0x22b490*Math[_0x4e96ac(0x343)](_0x362b3e);_0x380ecd?_0x53216f['copyFromFloats'](_0x57499e,_0x18b84d,_0x22b490):_0x99acd6['P'][_0x4e96ac(0x40b)](_0x57499e,_0x18b84d,_0x22b490,_0x13f18f,_0x53216f);}[_0x1a3cd3(0x12a)](){var _0x15f625=_0x1a3cd3,_0x446d0c=new _0x188904(this[_0x15f625(0x652)],this['directionRandomizer']);return _0x1c033f['j']['DeepCopy'](this,_0x446d0c),_0x446d0c;}[_0x1a3cd3(0xb35)](_0x484f80){var _0x11962c=_0x1a3cd3;_0x484f80[_0x11962c(0x5f3)]('radius',this['radius']),_0x484f80[_0x11962c(0x5f3)](_0x11962c(0x43d),this[_0x11962c(0x43d)]),_0x484f80[_0x11962c(0x5f3)](_0x11962c(0x8a2),this[_0x11962c(0x8a2)]),_0x484f80[_0x11962c(0x5f3)](_0x11962c(0x928),this[_0x11962c(0x928)]);}[_0x1a3cd3(0xcd1)](_0x578768){var _0x14c03a=_0x1a3cd3;_0x578768['addUniform'](_0x14c03a(0x652),0x1),_0x578768['addUniform'](_0x14c03a(0x43d),0x1),_0x578768[_0x14c03a(0x1d4)]('radiusRange',0x1),_0x578768[_0x14c03a(0x1d4)](_0x14c03a(0x928),0x1);}['getEffectDefines'](){var _0x46c2fa=_0x1a3cd3;return _0x46c2fa(0xd2c);}[_0x1a3cd3(0x4e7)](){var _0x15255a=_0x1a3cd3;return _0x15255a(0x285);}[_0x1a3cd3(0x6ee)](){var _0x40b5fa=_0x1a3cd3;const _0x59957a={};return _0x59957a[_0x40b5fa(0x5da)]=this['getClassName'](),_0x59957a['radius']=this[_0x40b5fa(0x652)],_0x59957a[_0x40b5fa(0x43d)]=this[_0x40b5fa(0x43d)],_0x59957a[_0x40b5fa(0x8a2)]=this['radiusRange'],_0x59957a['directionRandomizer']=this['directionRandomizer'],_0x59957a;}[_0x1a3cd3(0x261)](_0x7d974f){var _0x115d48=_0x1a3cd3;this[_0x115d48(0x652)]=_0x7d974f[_0x115d48(0x652)],this[_0x115d48(0x43d)]=_0x7d974f['height'],this['radiusRange']=_0x7d974f[_0x115d48(0x8a2)],this[_0x115d48(0x928)]=_0x7d974f[_0x115d48(0x928)];}}class _0x29e93a extends _0x188904{constructor(_0x121765=0x1,_0x377c3a=0x1,_0x36187a=0x1,_0x10a304=new _0x99acd6['P'](0x0,0x1,0x0),_0x140292=new _0x99acd6['P'](0x0,0x1,0x0)){var _0x12d37f=_0x1a3cd3;super(_0x121765,_0x377c3a,_0x36187a),this[_0x12d37f(0xb34)]=_0x10a304,this[_0x12d37f(0x88b)]=_0x140292;}['startDirectionFunction'](_0x34847c,_0xd56129){var _0x5a0c16=_0x1a3cd3,_0x509a75=_0x149067['R']['RandomRange'](this[_0x5a0c16(0xb34)]['x'],this[_0x5a0c16(0x88b)]['x']),_0x4537df=_0x149067['R'][_0x5a0c16(0xb92)](this[_0x5a0c16(0xb34)]['y'],this[_0x5a0c16(0x88b)]['y']),_0x42a417=_0x149067['R'][_0x5a0c16(0xb92)](this[_0x5a0c16(0xb34)]['z'],this['direction2']['z']);_0x99acd6['P']['TransformNormalFromFloatsToRef'](_0x509a75,_0x4537df,_0x42a417,_0x34847c,_0xd56129);}[_0x1a3cd3(0x12a)](){var _0x421cfe=_0x1a3cd3,_0x5c4161=new _0x29e93a(this['radius'],this[_0x421cfe(0x43d)],this[_0x421cfe(0x8a2)],this['direction1'],this['direction2']);return _0x1c033f['j'][_0x421cfe(0x75d)](this,_0x5c4161),_0x5c4161;}[_0x1a3cd3(0xb35)](_0xe23c2d){var _0x32938a=_0x1a3cd3;_0xe23c2d[_0x32938a(0x5f3)](_0x32938a(0x652),this[_0x32938a(0x652)]),_0xe23c2d['setFloat'](_0x32938a(0x43d),this['height']),_0xe23c2d[_0x32938a(0x5f3)]('radiusRange',this[_0x32938a(0x8a2)]),_0xe23c2d['setVector3'](_0x32938a(0xb34),this[_0x32938a(0xb34)]),_0xe23c2d['setVector3']('direction2',this['direction2']);}['buildUniformLayout'](_0x284b15){var _0x19909c=_0x1a3cd3;_0x284b15[_0x19909c(0x1d4)]('radius',0x1),_0x284b15['addUniform']('height',0x1),_0x284b15[_0x19909c(0x1d4)](_0x19909c(0x8a2),0x1),_0x284b15[_0x19909c(0x1d4)](_0x19909c(0xb34),0x3),_0x284b15[_0x19909c(0x1d4)](_0x19909c(0x88b),0x3);}[_0x1a3cd3(0xc06)](){var _0x317fbe=_0x1a3cd3;return _0x317fbe(0x454);}[_0x1a3cd3(0x4e7)](){return'CylinderDirectedParticleEmitter';}[_0x1a3cd3(0x6ee)](){var _0x21cd2d=_0x1a3cd3;const _0x1f5798=super[_0x21cd2d(0x6ee)]();return _0x1f5798[_0x21cd2d(0xb34)]=this[_0x21cd2d(0xb34)][_0x21cd2d(0x9c0)](),_0x1f5798[_0x21cd2d(0x88b)]=this['direction2'][_0x21cd2d(0x9c0)](),_0x1f5798;}[_0x1a3cd3(0x261)](_0x59c815){var _0x459fe3=_0x1a3cd3;super[_0x459fe3(0x261)](_0x59c815),this[_0x459fe3(0xb34)][_0x459fe3(0x8bf)](_0x59c815[_0x459fe3(0xb34)]),this[_0x459fe3(0x88b)]['copyFrom'](_0x59c815[_0x459fe3(0x88b)]);}}},0x139b8:(_0x5208ae,_0x2dd67d,_0x3d9079)=>{var _0x9b4d45=a6_0x1e64fa;_0x3d9079['d'](_0x2dd67d,{'V':()=>_0x40f6ed});var _0x25a3b9=_0x3d9079(0x1266b),_0x2f32f5=_0x3d9079(0x9fd1),_0x8b0ade=_0x3d9079(0x1b5c);class _0x40f6ed{constructor(_0x502551=0x1,_0x3f4d5c=0x1,_0x1ceff8=0x0){var _0x5037d6=a6_0x2304;this[_0x5037d6(0x652)]=_0x502551,this['radiusRange']=_0x3f4d5c,this[_0x5037d6(0x928)]=_0x1ceff8;}[_0x9b4d45(0x98d)](_0xd7c4b6,_0x373dea,_0x358140,_0x4353c7){var _0x3f6ec6=_0x9b4d45;const _0x8be667=_0x358140['position'][_0x3f6ec6(0x39d)](_0xd7c4b6[_0x3f6ec6(0x859)]())[_0x3f6ec6(0x9e5)]();var _0x358140=_0x8b0ade['R']['RandomRange'](0x0,this['directionRandomizer']),_0x3d2e89=_0x8b0ade['R'][_0x3f6ec6(0xb92)](0x0,this[_0x3f6ec6(0x928)]),_0xe3ee3a=_0x8b0ade['R']['RandomRange'](0x0,this[_0x3f6ec6(0x928)]);_0x8be667['x']+=_0x358140,_0x8be667['y']+=_0x3d2e89,_0x8be667['z']+=_0xe3ee3a,_0x8be667[_0x3f6ec6(0x9e5)](),_0x4353c7?_0x373dea[_0x3f6ec6(0x8bf)](_0x8be667):_0x2f32f5['P'][_0x3f6ec6(0x595)](_0x8be667['x'],_0x8be667['y'],_0x8be667['z'],_0xd7c4b6,_0x373dea);}[_0x9b4d45(0x941)](_0x3df39f,_0x14808b,_0x2e61d2,_0x195d00){var _0xc20251=_0x9b4d45,_0x2b9ea2=this[_0xc20251(0x652)]-_0x8b0ade['R'][_0xc20251(0xb92)](0x0,this[_0xc20251(0x652)]*this[_0xc20251(0x8a2)]),_0x1d48c1=_0x8b0ade['R'][_0xc20251(0xb92)](0x0,0x1),_0x2ac329=_0x8b0ade['R'][_0xc20251(0xb92)](0x0,0x2*Math['PI']),_0x1d48c1=Math[_0xc20251(0x2ee)](0x2*_0x1d48c1-0x1),_0x4f2528=_0x2b9ea2*Math[_0xc20251(0x3c8)](_0x2ac329)*Math['sin'](_0x1d48c1),_0x427150=_0x2b9ea2*Math[_0xc20251(0x3c8)](_0x1d48c1),_0x2b9ea2=_0x2b9ea2*Math['sin'](_0x2ac329)*Math['sin'](_0x1d48c1);_0x195d00?_0x14808b[_0xc20251(0x9c4)](_0x4f2528,Math[_0xc20251(0x11e)](_0x427150),_0x2b9ea2):_0x2f32f5['P']['TransformCoordinatesFromFloatsToRef'](_0x4f2528,Math[_0xc20251(0x11e)](_0x427150),_0x2b9ea2,_0x3df39f,_0x14808b);}['clone'](){var _0xc56bf1=_0x9b4d45,_0x3e7f0d=new _0x40f6ed(this[_0xc56bf1(0x652)],this['directionRandomizer']);return _0x25a3b9['j'][_0xc56bf1(0x75d)](this,_0x3e7f0d),_0x3e7f0d;}['applyToShader'](_0x1b9499){var _0x4f08fc=_0x9b4d45;_0x1b9499[_0x4f08fc(0x5f3)](_0x4f08fc(0x652),this['radius']),_0x1b9499['setFloat'](_0x4f08fc(0x8a2),this[_0x4f08fc(0x8a2)]),_0x1b9499[_0x4f08fc(0x5f3)](_0x4f08fc(0x928),this[_0x4f08fc(0x928)]);}[_0x9b4d45(0xcd1)](_0x31ffc9){var _0x22f50a=_0x9b4d45;_0x31ffc9[_0x22f50a(0x1d4)](_0x22f50a(0x652),0x1),_0x31ffc9[_0x22f50a(0x1d4)](_0x22f50a(0x8a2),0x1),_0x31ffc9[_0x22f50a(0x1d4)]('directionRandomizer',0x1);}[_0x9b4d45(0xc06)](){var _0x22db04=_0x9b4d45;return _0x22db04(0x50e);}[_0x9b4d45(0x4e7)](){var _0x5e622c=_0x9b4d45;return _0x5e622c(0x4d9);}[_0x9b4d45(0x6ee)](){var _0x590b3d=_0x9b4d45;const _0x3ba4f6={};return _0x3ba4f6[_0x590b3d(0x5da)]=this[_0x590b3d(0x4e7)](),_0x3ba4f6[_0x590b3d(0x652)]=this[_0x590b3d(0x652)],_0x3ba4f6[_0x590b3d(0x8a2)]=this[_0x590b3d(0x8a2)],_0x3ba4f6[_0x590b3d(0x928)]=this[_0x590b3d(0x928)],_0x3ba4f6;}['parse'](_0x3c1565){var _0x473675=_0x9b4d45;this['radius']=_0x3c1565[_0x473675(0x652)],this[_0x473675(0x8a2)]=_0x3c1565[_0x473675(0x8a2)],this[_0x473675(0x928)]=_0x3c1565[_0x473675(0x928)];}}},0x14ce1:(_0x3cf2c1,_0x356d44,_0x4ba070)=>{var _0x44e652=a6_0x1e64fa;_0x4ba070['d'](_0x356d44,{'c':()=>_0x40b9a5});var _0x28cf05=_0x4ba070(0x1266b),_0x3947b9=_0x4ba070(0x9fd1),_0x104439=_0x4ba070(0x1b5c);class _0x40b9a5{constructor(){this['direction1']=new _0x3947b9['P'](0x0,0x1,0x0),this['direction2']=new _0x3947b9['P'](0x0,0x1,0x0);}[_0x44e652(0x98d)](_0x176b5d,_0x2f51d8,_0x11b064,_0x33caaa){var _0x36ca96=_0x44e652,_0x3c5adf=_0x104439['R']['RandomRange'](this['direction1']['x'],this[_0x36ca96(0x88b)]['x']),_0x36af16=_0x104439['R'][_0x36ca96(0xb92)](this[_0x36ca96(0xb34)]['y'],this[_0x36ca96(0x88b)]['y']),_0x24d088=_0x104439['R'][_0x36ca96(0xb92)](this[_0x36ca96(0xb34)]['z'],this['direction2']['z']);_0x33caaa?_0x2f51d8['copyFromFloats'](_0x3c5adf,_0x36af16,_0x24d088):_0x3947b9['P'][_0x36ca96(0x595)](_0x3c5adf,_0x36af16,_0x24d088,_0x176b5d,_0x2f51d8);}[_0x44e652(0x941)](_0x257818,_0x6f7e9c,_0x4ddfe3,_0x38cde9){var _0x43747c=_0x44e652;_0x38cde9?_0x6f7e9c['copyFromFloats'](0x0,0x0,0x0):_0x3947b9['P'][_0x43747c(0x40b)](0x0,0x0,0x0,_0x257818,_0x6f7e9c);}[_0x44e652(0x12a)](){var _0x4bc7e1=new _0x40b9a5();return _0x28cf05['j']['DeepCopy'](this,_0x4bc7e1),_0x4bc7e1;}['applyToShader'](_0x3cde6d){var _0x1d488c=_0x44e652;_0x3cde6d[_0x1d488c(0x5fc)](_0x1d488c(0xb34),this[_0x1d488c(0xb34)]),_0x3cde6d[_0x1d488c(0x5fc)](_0x1d488c(0x88b),this['direction2']);}[_0x44e652(0xcd1)](_0x5932d7){var _0x1c20f6=_0x44e652;_0x5932d7[_0x1c20f6(0x1d4)](_0x1c20f6(0xb34),0x3),_0x5932d7['addUniform'](_0x1c20f6(0x88b),0x3);}[_0x44e652(0xc06)](){var _0x32c278=_0x44e652;return _0x32c278(0x879);}[_0x44e652(0x4e7)](){var _0x3dcf63=_0x44e652;return _0x3dcf63(0x816);}[_0x44e652(0x6ee)](){var _0x145393=_0x44e652;const _0x49aa1e={};return _0x49aa1e[_0x145393(0x5da)]=this[_0x145393(0x4e7)](),_0x49aa1e[_0x145393(0xb34)]=this[_0x145393(0xb34)][_0x145393(0x9c0)](),_0x49aa1e['direction2']=this['direction2']['asArray'](),_0x49aa1e;}[_0x44e652(0x261)](_0x5a0ec7){var _0x14598c=_0x44e652;_0x3947b9['P'][_0x14598c(0xaf6)](_0x5a0ec7['direction1'],0x0,this['direction1']),_0x3947b9['P'][_0x14598c(0xaf6)](_0x5a0ec7[_0x14598c(0x88b)],0x0,this[_0x14598c(0x88b)]);}}},0x1511c:(_0xbb9d28,_0x2b49de,_0x4960ab)=>{var _0x2932c5=a6_0x1e64fa;_0x4960ab['d'](_0x2b49de,{'A':()=>_0x526d59,'c':()=>_0x4ee4e4});var _0x389883=_0x4960ab(0x9fd1),_0x31c1ec=_0x4960ab(0x1b5c),_0x2024d6=_0x4960ab(0x1266b);class _0x526d59{constructor(_0xc823bc=0x1,_0x1d6d5d=0x1,_0x4e2ab5=0x0){var _0x126eba=a6_0x2304;this[_0x126eba(0x652)]=_0xc823bc,this[_0x126eba(0x8a2)]=_0x1d6d5d,this['directionRandomizer']=_0x4e2ab5;}[_0x2932c5(0x98d)](_0x1e8d03,_0x287562,_0x11e080,_0x142601){var _0x5e4734=_0x2932c5;const _0x328c5d=_0x11e080[_0x5e4734(0x3f5)][_0x5e4734(0x39d)](_0x1e8d03[_0x5e4734(0x859)]())['normalize']();var _0x11e080=_0x31c1ec['R'][_0x5e4734(0xb92)](0x0,this[_0x5e4734(0x928)]),_0x6377da=_0x31c1ec['R'][_0x5e4734(0xb92)](0x0,this[_0x5e4734(0x928)]),_0x1a4087=_0x31c1ec['R'][_0x5e4734(0xb92)](0x0,this['directionRandomizer']);_0x328c5d['x']+=_0x11e080,_0x328c5d['y']+=_0x6377da,_0x328c5d['z']+=_0x1a4087,_0x328c5d[_0x5e4734(0x9e5)](),_0x142601?_0x287562[_0x5e4734(0x8bf)](_0x328c5d):_0x389883['P']['TransformNormalFromFloatsToRef'](_0x328c5d['x'],_0x328c5d['y'],_0x328c5d['z'],_0x1e8d03,_0x287562);}[_0x2932c5(0x941)](_0xf1847b,_0x4ebe50,_0x528bea,_0x335c1a){var _0x4b8f73=_0x2932c5,_0x15c4e5=this[_0x4b8f73(0x652)]-_0x31c1ec['R'][_0x4b8f73(0xb92)](0x0,this[_0x4b8f73(0x652)]*this[_0x4b8f73(0x8a2)]),_0x43e4b9=_0x31c1ec['R']['RandomRange'](0x0,0x1),_0x393e8a=_0x31c1ec['R'][_0x4b8f73(0xb92)](0x0,0x2*Math['PI']),_0x43e4b9=Math[_0x4b8f73(0x2ee)](0x2*_0x43e4b9-0x1),_0x2590ac=_0x15c4e5*Math[_0x4b8f73(0x3c8)](_0x393e8a)*Math[_0x4b8f73(0x343)](_0x43e4b9),_0x1248ee=_0x15c4e5*Math['cos'](_0x43e4b9),_0x15c4e5=_0x15c4e5*Math[_0x4b8f73(0x343)](_0x393e8a)*Math['sin'](_0x43e4b9);_0x335c1a?_0x4ebe50[_0x4b8f73(0x9c4)](_0x2590ac,_0x1248ee,_0x15c4e5):_0x389883['P'][_0x4b8f73(0x40b)](_0x2590ac,_0x1248ee,_0x15c4e5,_0xf1847b,_0x4ebe50);}[_0x2932c5(0x12a)](){var _0x234821=_0x2932c5,_0xe2f4e0=new _0x526d59(this['radius'],this['directionRandomizer']);return _0x2024d6['j'][_0x234821(0x75d)](this,_0xe2f4e0),_0xe2f4e0;}['applyToShader'](_0x1722c6){var _0x16d969=_0x2932c5;_0x1722c6[_0x16d969(0x5f3)](_0x16d969(0x652),this['radius']),_0x1722c6[_0x16d969(0x5f3)](_0x16d969(0x8a2),this[_0x16d969(0x8a2)]),_0x1722c6[_0x16d969(0x5f3)]('directionRandomizer',this['directionRandomizer']);}[_0x2932c5(0xcd1)](_0x3137f9){var _0x17c5d0=_0x2932c5;_0x3137f9['addUniform'](_0x17c5d0(0x652),0x1),_0x3137f9[_0x17c5d0(0x1d4)](_0x17c5d0(0x8a2),0x1),_0x3137f9[_0x17c5d0(0x1d4)](_0x17c5d0(0x928),0x1);}['getEffectDefines'](){var _0x3cf1f2=_0x2932c5;return _0x3cf1f2(0x79f);}['getClassName'](){var _0x51c48f=_0x2932c5;return _0x51c48f(0x90c);}[_0x2932c5(0x6ee)](){var _0xc57bbc=_0x2932c5;const _0x17436d={};return _0x17436d[_0xc57bbc(0x5da)]=this[_0xc57bbc(0x4e7)](),_0x17436d[_0xc57bbc(0x652)]=this['radius'],_0x17436d['radiusRange']=this[_0xc57bbc(0x8a2)],_0x17436d[_0xc57bbc(0x928)]=this[_0xc57bbc(0x928)],_0x17436d;}[_0x2932c5(0x261)](_0x53eb65){var _0x483632=_0x2932c5;this['radius']=_0x53eb65['radius'],this[_0x483632(0x8a2)]=_0x53eb65[_0x483632(0x8a2)],this[_0x483632(0x928)]=_0x53eb65['directionRandomizer'];}}class _0x4ee4e4 extends _0x526d59{constructor(_0x1260e3=0x1,_0x57365c=new _0x389883['P'](0x0,0x1,0x0),_0x3a85f2=new _0x389883['P'](0x0,0x1,0x0)){var _0xf76757=_0x2932c5;super(_0x1260e3),this[_0xf76757(0xb34)]=_0x57365c,this[_0xf76757(0x88b)]=_0x3a85f2;}['startDirectionFunction'](_0x34baec,_0x19fd38){var _0x250d3c=_0x2932c5,_0x9b61eb=_0x31c1ec['R'][_0x250d3c(0xb92)](this[_0x250d3c(0xb34)]['x'],this[_0x250d3c(0x88b)]['x']),_0x2ce0ed=_0x31c1ec['R'][_0x250d3c(0xb92)](this[_0x250d3c(0xb34)]['y'],this[_0x250d3c(0x88b)]['y']),_0x23a39b=_0x31c1ec['R'][_0x250d3c(0xb92)](this[_0x250d3c(0xb34)]['z'],this[_0x250d3c(0x88b)]['z']);_0x389883['P']['TransformNormalFromFloatsToRef'](_0x9b61eb,_0x2ce0ed,_0x23a39b,_0x34baec,_0x19fd38);}[_0x2932c5(0x12a)](){var _0x142ebe=_0x2932c5,_0x347812=new _0x4ee4e4(this[_0x142ebe(0x652)],this['direction1'],this[_0x142ebe(0x88b)]);return _0x2024d6['j'][_0x142ebe(0x75d)](this,_0x347812),_0x347812;}['applyToShader'](_0xb4a46e){var _0x5f2516=_0x2932c5;_0xb4a46e['setFloat'](_0x5f2516(0x652),this[_0x5f2516(0x652)]),_0xb4a46e[_0x5f2516(0x5f3)]('radiusRange',this[_0x5f2516(0x8a2)]),_0xb4a46e['setVector3']('direction1',this['direction1']),_0xb4a46e[_0x5f2516(0x5fc)]('direction2',this[_0x5f2516(0x88b)]);}[_0x2932c5(0xcd1)](_0x555a10){var _0x21268d=_0x2932c5;_0x555a10[_0x21268d(0x1d4)](_0x21268d(0x652),0x1),_0x555a10[_0x21268d(0x1d4)](_0x21268d(0x8a2),0x1),_0x555a10[_0x21268d(0x1d4)](_0x21268d(0xb34),0x3),_0x555a10[_0x21268d(0x1d4)](_0x21268d(0x88b),0x3);}[_0x2932c5(0xc06)](){return'#define\x20SPHEREEMITTER\x0a#define\x20DIRECTEDSPHEREEMITTER';}['getClassName'](){var _0xaafdc8=_0x2932c5;return _0xaafdc8(0xb7a);}[_0x2932c5(0x6ee)](){var _0xa831bb=_0x2932c5;const _0x2c6471=super[_0xa831bb(0x6ee)]();return _0x2c6471[_0xa831bb(0xb34)]=this[_0xa831bb(0xb34)][_0xa831bb(0x9c0)](),_0x2c6471[_0xa831bb(0x88b)]=this[_0xa831bb(0x88b)][_0xa831bb(0x9c0)](),_0x2c6471;}[_0x2932c5(0x261)](_0x123406){var _0x243d69=_0x2932c5;super[_0x243d69(0x261)](_0x123406),this[_0x243d69(0xb34)]['copyFrom'](_0x123406['direction1']),this[_0x243d69(0x88b)][_0x243d69(0x8bf)](_0x123406['direction2']);}}},0x5bc8:(_0x3a2211,_0x1c649d,_0x59ae1)=>{var _0x57a639=a6_0x1e64fa,_0x45623c=_0x59ae1(0x1dad),_0xdc9450=_0x59ae1(0xd8dd),_0x222bb7=_0x59ae1(0xe0c0),_0x544d36=_0x59ae1(0xee04),_0x1a995e=_0x59ae1(0x17dd3),_0x5d974d=_0x59ae1(0xbb85);_0x59ae1(0x1560d),_0x222bb7['p'][_0x57a639(0x700)](_0x5d974d['l']['NAME_PARTICLESYSTEM'],(_0x5db773,_0x57a19d,_0x90aef6,_0x3b378e)=>{var _0xd72c82=_0x57a639;const _0x3f7397=_0x222bb7['p'][_0xd72c82(0x4dc)](_0x5d974d['l'][_0xd72c82(0x339)]);if(_0x3f7397&&void 0x0!==_0x5db773['particleSystems']&&null!==_0x5db773[_0xd72c82(0x3c3)])for(let _0x58b991=0x0,_0x5ae637=_0x5db773[_0xd72c82(0x3c3)]['length'];_0x58b991<_0x5ae637;_0x58b991++){var _0x12867c=_0x5db773[_0xd72c82(0x3c3)][_0x58b991];_0x90aef6[_0xd72c82(0x3c3)][_0xd72c82(0x83f)](_0x3f7397(_0x12867c,_0x57a19d,_0x3b378e));}}),_0x222bb7['p'][_0x57a639(0x4e0)](_0x5d974d['l']['NAME_PARTICLESYSTEM'],(_0x2dfe8d,_0x3962d7,_0x39643b)=>(_0x2dfe8d[_0x57a639(0x152)]?_0xdc9450['h']:_0x1a995e['p'])[_0x57a639(0x62c)](_0x2dfe8d,_0x3962d7,_0x39643b)),_0x544d36['D'][_0x57a639(0x9ed)]['createEffectForParticles']=function(_0x3ba546,_0x466884=[],_0x3dbb6e=[],_0x5560a3='',_0x536e6a,_0x3c4d83,_0x10d761,_0x367de2){var _0x2ef0fb=_0x57a639;let _0x22a8d7=[],_0x5f4275=[];const _0x43e299=[];return _0x367de2?_0x367de2[_0x2ef0fb(0x9f2)](_0x5f4275,_0x22a8d7,_0x43e299):(_0x22a8d7=_0x1a995e['p']['_GetAttributeNamesOrOptions'](),_0x5f4275=_0x1a995e['p']['_GetEffectCreationOptions']()),-0x1===_0x5560a3[_0x2ef0fb(0x9e0)](_0x2ef0fb(0xc13))&&(_0x5560a3+=_0x2ef0fb(0x16a)),null!=_0x367de2&&_0x367de2[_0x2ef0fb(0xcc7)]&&-0x1===_0x5560a3[_0x2ef0fb(0x9e0)](_0x2ef0fb(0x470))&&(_0x5560a3+=_0x2ef0fb(0xb11)),-0x1===_0x3dbb6e[_0x2ef0fb(0x9e0)](_0x2ef0fb(0xb50))&&_0x3dbb6e[_0x2ef0fb(0x83f)](_0x2ef0fb(0xb50)),this[_0x2ef0fb(0x310)]({'vertex':null!=(_0x367de2=null==_0x367de2?void 0x0:_0x367de2[_0x2ef0fb(0x28e)])?_0x367de2:_0x2ef0fb(0x1b4),'fragmentElement':_0x3ba546},_0x22a8d7,_0x5f4275['concat'](_0x466884),_0x43e299[_0x2ef0fb(0xc63)](_0x3dbb6e),_0x5560a3,_0x536e6a,_0x3c4d83,_0x10d761);},_0x45623c['Kj'][_0x57a639(0x9ed)]['getEmittedParticleSystems']=function(){var _0x4c9c75=_0x57a639;const _0xe30df4=new Array();for(let _0x11488b=0x0;_0x11488b<this['getScene']()['particleSystems']['length'];_0x11488b++){var _0x173deb=this['getScene']()['particleSystems'][_0x11488b];_0x173deb[_0x4c9c75(0x496)]===this&&_0xe30df4['push'](_0x173deb);}return _0xe30df4;},_0x45623c['Kj'][_0x57a639(0x9ed)][_0x57a639(0xb96)]=function(){var _0x143adb=_0x57a639;const _0x2b8545=new Array(),_0x20fadb=this[_0x143adb(0x984)]();_0x20fadb[_0x143adb(0x83f)](this);for(let _0x24672d=0x0;_0x24672d<this[_0x143adb(0x9fa)]()[_0x143adb(0x3c3)]['length'];_0x24672d++){var _0x5da981=this[_0x143adb(0x9fa)]()['particleSystems'][_0x24672d],_0x34b1f5=_0x5da981[_0x143adb(0x496)];_0x34b1f5[_0x143adb(0x3f5)]&&-0x1!==_0x20fadb[_0x143adb(0x9e0)](_0x34b1f5)&&_0x2b8545[_0x143adb(0x83f)](_0x5da981);}return _0x2b8545;};},0xc773:(_0x2b85ca,_0x395307,_0x5ac224)=>{var _0x219120=a6_0x1e64fa,_0x55d484=_0x5ac224(0x10ea4),_0x3c312a=_0x5ac224(0xf96c),_0x1d5c47=_0x5ac224(0xbb85),_0x57115c=_0x5ac224(0x1446b),_0x58e0ac=_0x5ac224(0x38ef),_0x1ee0c3=_0x5ac224(0x12b14);_0x57115c['x'][_0x219120(0x9ed)][_0x219120(0x395)]=function(){var _0x5ce926=_0x219120;return this[_0x5ce926(0xb4e)];},_0x57115c['x'][_0x219120(0x9ed)][_0x219120(0x406)]=function(_0x167dbd=null,_0x4212c0){var _0x71d158=_0x219120;if(this[_0x71d158(0xb4e)])return!0x0;var _0x32b594;this[_0x71d158(0x69b)](_0x1d5c47['l'][_0x71d158(0xaf3)])||(_0x32b594=new _0x19880e(this),this['_addComponent'](_0x32b594));try{if(_0x4212c0&&0x1!==(null==_0x4212c0?void 0x0:_0x4212c0[_0x71d158(0x75b)]())){if(0x2!==(null==_0x4212c0?void 0x0:_0x4212c0[_0x71d158(0x75b)]()))throw new Error(_0x71d158(0x7c2));this['_physicsEngine']=new _0x1ee0c3['T'](_0x167dbd,_0x4212c0);}else this[_0x71d158(0xb4e)]=new _0x58e0ac['T'](_0x167dbd,_0x4212c0);return!(this[_0x71d158(0xc2e)]=0x0);}catch(_0x358fbb){return _0x55d484['Y']['Error'](_0x358fbb[_0x71d158(0xc43)]),!0x1;}},_0x57115c['x'][_0x219120(0x9ed)][_0x219120(0x8e2)]=function(){var _0xdb4e88=_0x219120;this[_0xdb4e88(0xb4e)]&&(this[_0xdb4e88(0xb4e)]['dispose'](),this[_0xdb4e88(0xb4e)]=null);},_0x57115c['x'][_0x219120(0x9ed)][_0x219120(0x6f4)]=function(){var _0x2a0cbe=_0x219120;return void 0x0!==this[_0x2a0cbe(0xb4e)];},_0x57115c['x']['prototype'][_0x219120(0x822)]=function(_0x4598e2){var _0x51e15b=_0x219120;const _0x3ee3a1=_0x4598e2[_0x51e15b(0x2da)][0x0][_0x51e15b(0xb87)];_0x3ee3a1[_0x51e15b(0xc91)]&&(_0x3ee3a1['physicsImpostor'][_0x51e15b(0x431)](),_0x3ee3a1[_0x51e15b(0xc91)]=null);},_0x57115c['x'][_0x219120(0x9ed)][_0x219120(0x11b)]=function(_0x275df3){var _0x30159f=_0x219120;if(this[_0x30159f(0xb4e)]){var _0x5c67e5=this['_physicsEngine']['getSubTimeStep']();if(0x0<_0x5c67e5){for(this[_0x30159f(0xc2e)]+=_0x275df3;this[_0x30159f(0xc2e)]>_0x5c67e5;)this['onBeforePhysicsObservable'][_0x30159f(0xac3)](this),this['_physicsEngine']['_step'](_0x5c67e5/0x3e8),this[_0x30159f(0xcb0)][_0x30159f(0xac3)](this),this[_0x30159f(0xc2e)]-=_0x5c67e5;}else this[_0x30159f(0x7ec)][_0x30159f(0xac3)](this),this[_0x30159f(0xb4e)][_0x30159f(0xaa7)](_0x275df3/0x3e8),this[_0x30159f(0xcb0)][_0x30159f(0xac3)](this);}};class _0x19880e{constructor(_0x2efbb2){var _0x5544da=_0x219120;this[_0x5544da(0x4b3)]=_0x1d5c47['l']['NAME_PHYSICSENGINE'],this[_0x5544da(0x269)]=_0x2efbb2,this['scene'][_0x5544da(0x7ec)]=new _0x3c312a['y$'](),this[_0x5544da(0x269)]['onAfterPhysicsObservable']=new _0x3c312a['y$'](),this[_0x5544da(0x269)][_0x5544da(0x5e5)]=()=>this[_0x5544da(0x269)][_0x5544da(0xb4e)]?0x3e8*this[_0x5544da(0x269)][_0x5544da(0xb4e)][_0x5544da(0x723)]():0x3e8/0x3c;}['register'](){}[_0x219120(0x52f)](){}[_0x219120(0x431)](){var _0x4d8079=_0x219120;this[_0x4d8079(0x269)][_0x4d8079(0x7ec)][_0x4d8079(0x6de)](),this['scene'][_0x4d8079(0xcb0)][_0x4d8079(0x6de)](),this[_0x4d8079(0x269)]['_physicsEngine']&&this[_0x4d8079(0x269)]['disablePhysicsEngine']();}}_0x5ac224(0x643f);},0x643f:(_0x19d0f2,_0x3af90f,_0x3c0df3)=>{var _0xe47bbf=a6_0x1e64fa,_0x311f1b=_0x3c0df3(0x51f),_0x4e9ba8=_0x3c0df3(0x10abe);Object[_0xe47bbf(0x41c)](_0x311f1b['x']['prototype'],_0xe47bbf(0xc91),{'get':function(){return this['_physicsImpostor'];},'set':function(_0x1d1874){var _0xc44a0b=_0xe47bbf;this[_0xc44a0b(0xbdf)]!==_0x1d1874&&(this[_0xc44a0b(0x7a1)]&&this[_0xc44a0b(0xaad)]['remove'](this[_0xc44a0b(0x7a1)]),(this['_physicsImpostor']=_0x1d1874)&&(this[_0xc44a0b(0x7a1)]=this['onDisposeObservable'][_0xc44a0b(0x526)](()=>{var _0x1203c6=_0xc44a0b;this[_0x1203c6(0xc91)]&&(this[_0x1203c6(0xc91)][_0x1203c6(0x431)](),this[_0x1203c6(0xc91)]=null);})));},'enumerable':!0x0,'configurable':!0x0}),_0x311f1b['x']['prototype'][_0xe47bbf(0xa3e)]=function(){var _0xa40458=_0xe47bbf;return this[_0xa40458(0xc91)];},_0x311f1b['x'][_0xe47bbf(0x9ed)][_0xe47bbf(0x279)]=function(_0x559685,_0x337eb6){var _0x186370=_0xe47bbf;return this['physicsImpostor']&&this[_0x186370(0xc91)]['applyImpulse'](_0x559685,_0x337eb6),this;},_0x311f1b['x']['prototype'][_0xe47bbf(0xb27)]=function(_0x22a873,_0x2d6cf9,_0x3399e5,_0x5b3738){var _0x77a040=_0xe47bbf;return this[_0x77a040(0xc91)]&&_0x22a873[_0x77a040(0xc91)]&&this[_0x77a040(0xc91)][_0x77a040(0x4bd)](_0x22a873[_0x77a040(0xc91)],_0x4e9ba8['q7'][_0x77a040(0x5ed)],{'mainPivot':_0x2d6cf9,'connectedPivot':_0x3399e5,'nativeParams':_0x5b3738}),this;};},0x7f34:(_0x34faa7,_0x2ead52,_0x4a5945)=>{var _0x1c3e52=a6_0x1e64fa;_0x4a5945['d'](_0x2ead52,{'a':()=>_0x399b9a});class _0x399b9a{constructor(){this['_renderPipelines']={};}get['supportedPipelines'](){var _0x295b38=a6_0x2304;const _0x784170=[];for(const _0x43ac1e in this[_0x295b38(0x388)]){var _0x1620d9;Object['prototype']['hasOwnProperty']['call'](this[_0x295b38(0x388)],_0x43ac1e)&&(_0x1620d9=this[_0x295b38(0x388)][_0x43ac1e])[_0x295b38(0x6b7)]&&_0x784170[_0x295b38(0x83f)](_0x1620d9);}return _0x784170;}[_0x1c3e52(0x8b5)](_0x353633){var _0x3a8114=_0x1c3e52;this[_0x3a8114(0x388)][_0x353633['_name']]=_0x353633;}[_0x1c3e52(0x5a0)](_0x11ba03){var _0xa3515=_0x1c3e52;delete this[_0xa3515(0x388)][_0x11ba03];}[_0x1c3e52(0x2b9)](_0x40138e,_0x32dbb3,_0x1d1e28=!0x1){var _0x4a8f2f=_0x1c3e52;const _0x49a0dc=this[_0x4a8f2f(0x388)][_0x40138e];_0x49a0dc&&_0x49a0dc[_0x4a8f2f(0x968)](_0x32dbb3,_0x1d1e28);}[_0x1c3e52(0x4ed)](_0x13b53e,_0x506cae){const _0x210ae6=this['_renderPipelines'][_0x13b53e];_0x210ae6&&_0x210ae6['_detachCameras'](_0x506cae);}[_0x1c3e52(0x5fd)](_0x4ff4ea,_0x478d48,_0x46bc99){const _0x3235a6=this['_renderPipelines'][_0x4ff4ea];_0x3235a6&&_0x3235a6['_enableEffect'](_0x478d48,_0x46bc99);}[_0x1c3e52(0x927)](_0x1fd5fe,_0x3c8608,_0x220ec4){var _0x33c6c=_0x1c3e52;const _0x3e0835=this[_0x33c6c(0x388)][_0x1fd5fe];_0x3e0835&&_0x3e0835['_disableEffect'](_0x3c8608,_0x220ec4);}[_0x1c3e52(0x998)](){var _0x1f06d4=_0x1c3e52;for(const _0x4f21b1 in this[_0x1f06d4(0x388)])if(Object[_0x1f06d4(0x9ed)]['hasOwnProperty']['call'](this[_0x1f06d4(0x388)],_0x4f21b1)){const _0xed880f=this[_0x1f06d4(0x388)][_0x4f21b1];_0xed880f['isSupported']?_0xed880f[_0x1f06d4(0x913)]():(_0xed880f[_0x1f06d4(0x431)](),delete this['_renderPipelines'][_0x4f21b1]);}}['_rebuild'](){var _0x9ad9ee=_0x1c3e52;for(const _0x28ddd2 in this['_renderPipelines'])if(Object['prototype']['hasOwnProperty'][_0x9ad9ee(0x1f8)](this['_renderPipelines'],_0x28ddd2)){const _0x1277fa=this[_0x9ad9ee(0x388)][_0x28ddd2];_0x1277fa['_rebuild']();}}[_0x1c3e52(0x431)](){var _0x2b2ea0=_0x1c3e52;for(const _0x342bb2 in this[_0x2b2ea0(0x388)])if(Object[_0x2b2ea0(0x9ed)][_0x2b2ea0(0x1b7)][_0x2b2ea0(0x1f8)](this[_0x2b2ea0(0x388)],_0x342bb2)){const _0x589e95=this[_0x2b2ea0(0x388)][_0x342bb2];_0x589e95[_0x2b2ea0(0x431)]();}}}},0x13aac:(_0x2a3ea3,_0x2414ea,_0x344e23)=>{var _0xf2612d=a6_0x1e64fa;_0x344e23['d'](_0x2414ea,{'B':()=>_0x26742a});var _0x4bc488=_0x344e23(0x77a5),_0x2ce99d=_0x344e23(0x1097c);class _0x26742a{constructor(_0x19df65,_0x136d4f,_0x2cb3bd,_0x2afe3=0x1){var _0x3e0b99=a6_0x2304;this[_0x3e0b99(0x397)]=_0x19df65,this[_0x3e0b99(0x964)]=new _0x2ce99d['p'](_0x19df65,!0x0),this['_depthRTWrapper']=this[_0x3e0b99(0x397)][_0x3e0b99(0xd1b)]({'width':_0x136d4f,'height':_0x2cb3bd},{'generateMipMaps':!0x1,'type':_0x4bc488['g'][_0x3e0b99(0x157)],'format':_0x4bc488['g'][_0x3e0b99(0x258)],'samplingMode':_0x4bc488['g']['TEXTURE_NEAREST_SAMPLINGMODE'],'generateDepthBuffer':!0x0,'generateStencilBuffer':!0x1,'samples':_0x2afe3,'noColorAttachment':!0x0,'label':_0x3e0b99(0x8b1)}),this['_depthRTWrapper']['createDepthStencilTexture'](0x0,!0x1,!0x1,0x1,void 0x0,_0x3e0b99(0x1c0));}get['depthRTWrapper'](){var _0x166027=a6_0x2304;return this[_0x166027(0x65d)];}[_0xf2612d(0xc3d)](_0x76e524){var _0x5cb7b5=_0xf2612d;return this['_copyTextureToTexture'][_0x5cb7b5(0xc3d)](_0x76e524,this['_depthRTWrapper']);}['dispose'](){var _0x58820e=_0xf2612d;this['_depthRTWrapper'][_0x58820e(0x431)](),this['_copyTextureToTexture'][_0x58820e(0x431)]();}}},0xeff9:(_0x4d4d03,_0x77a414,_0x36305d)=>{var _0x51dd4f=a6_0x1e64fa;_0x36305d['d'](_0x77a414,{'a':()=>_0x2ec0a8});var _0x170a92=_0x36305d(0x77a5),_0x39fc97=_0x36305d(0xbac7),_0x492e18=_0x36305d(0x9fd1),_0x4a5f57=_0x36305d(0x5f28),_0x52c429=_0x36305d(0xf96c);class _0x2ec0a8{constructor(_0x1d56da,_0x3e4ed9,_0x19223b,_0x2b5e9f,_0x427206,_0x368e77,_0x2c60a3=_0x170a92['g']['TEXTURETYPE_FLOAT'],_0x2abb65=_0x170a92['g']['TEXTUREFORMAT_R'],_0x419540=_0x170a92['g'][_0x51dd4f(0x67a)],_0x199ed4=_0x170a92['g']['TEXTUREFORMAT_R'],_0x1dd4b6=!0x1,_0x2592bf=null,_0x191beb=!0x0,_0x280764=0x1){var _0x24ccf6=_0x51dd4f;this['enableBlur']=!0x0,this[_0x24ccf6(0xcae)]=0x1,this[_0x24ccf6(0x4fb)]=0x7,this['_blurNumIterations']=0x3,this['blurMaxFilterSize']=0x64,this['blurDepthScale']=0xa,this[_0x24ccf6(0x7a4)]=0.02,this[_0x24ccf6(0xaad)]=new _0x52c429['y$'](),this[_0x24ccf6(0x856)]=_0x1d56da,this[_0x24ccf6(0x19a)]=_0x3e4ed9,this[_0x24ccf6(0x72b)]=_0x2592bf,this[_0x24ccf6(0x397)]=_0x3e4ed9['getEngine'](),this[_0x24ccf6(0xbb0)]=_0x19223b,this[_0x24ccf6(0x981)]=_0x2b5e9f,this[_0x24ccf6(0x557)]=_0x427206,this[_0x24ccf6(0x214)]=_0x368e77,this['_textureType']=_0x2c60a3,this[_0x24ccf6(0xcca)]=_0x2abb65,this['_blurTextureType']=_0x419540,this[_0x24ccf6(0xabf)]=_0x199ed4,this['_useStandardBlur']=_0x1dd4b6,this[_0x24ccf6(0x1b6)]=_0x191beb,this['_samples']=_0x280764,this['_postProcessRunningIndex']=0x0,this[_0x24ccf6(0x6d3)]=0x0!==_0x427206&&0x0!==_0x368e77,this[_0x24ccf6(0x6dc)]=null,this[_0x24ccf6(0xa37)]=null,this[_0x24ccf6(0x736)]=null,this[_0x24ccf6(0x617)]=null,this[_0x24ccf6(0x897)]=null;}get[_0x51dd4f(0x562)](){var _0x391990=_0x51dd4f;return this[_0x391990(0x288)];}set[_0x51dd4f(0x562)](_0x3cd1dc){var _0x516ca7=_0x51dd4f;if(this[_0x516ca7(0x288)]!==_0x3cd1dc&&(this[_0x516ca7(0x288)]=_0x3cd1dc,null!==this[_0x516ca7(0x897)])){var _0x2dfe06=this[_0x516ca7(0x897)][0x0],_0x238d4a=this[_0x516ca7(0x897)][0x1];this[_0x516ca7(0x897)]=[];for(let _0x333cd3=0x0;_0x333cd3<0x2*this[_0x516ca7(0x288)];++_0x333cd3)this[_0x516ca7(0x897)][_0x333cd3]=0x1&_0x333cd3?_0x238d4a:_0x2dfe06;}}get[_0x51dd4f(0xb66)](){var _0x571efb=_0x51dd4f;return this[_0x571efb(0x6dc)];}get[_0x51dd4f(0x2bd)](){return this['_rtBlur'];}get[_0x51dd4f(0x6f7)](){return this['_texture'];}get[_0x51dd4f(0x7a9)](){var _0x36d88e=_0x51dd4f;return this[_0x36d88e(0x617)];}[_0x51dd4f(0x9a1)](){var _0x274914=_0x51dd4f,_0x28981c,_0x5dcca5,_0x49d782;this[_0x274914(0x431)](),this['_createRenderTarget'](),this['enableBlur']&&this['_texture']&&([_0x28981c,_0x5dcca5,_0x49d782]=this[_0x274914(0x39b)](this['_texture'],this[_0x274914(0x477)],this[_0x274914(0xabf)],this[_0x274914(0xcae)],this[_0x274914(0x856)],this['_useStandardBlur']),this[_0x274914(0x736)]=_0x28981c,this[_0x274914(0x617)]=_0x5dcca5,this[_0x274914(0x897)]=_0x49d782);}[_0x51dd4f(0x886)](){var _0x89af26=_0x51dd4f;this[_0x89af26(0x6d3)]&&this[_0x89af26(0x897)]&&(this[_0x89af26(0x404)]=0x0,this[_0x89af26(0x19a)][_0x89af26(0x370)][_0x89af26(0x4df)](this[_0x89af26(0x897)],this[_0x89af26(0x736)],!0x0),this[_0x89af26(0x397)][_0x89af26(0x4cb)](this[_0x89af26(0x736)]));}['_createRenderTarget'](){var _0xb48f2b=_0x51dd4f;this[_0xb48f2b(0x6dc)]=this[_0xb48f2b(0x397)]['createRenderTargetTexture']({'width':this[_0xb48f2b(0xbb0)],'height':this[_0xb48f2b(0x981)]},{'generateMipMaps':!0x1,'type':this[_0xb48f2b(0x3be)],'format':this['_textureFormat'],'samplingMode':_0x170a92['g']['TEXTURE_NEAREST_SAMPLINGMODE'],'generateDepthBuffer':this['_generateDepthBuffer'],'generateStencilBuffer':!0x1,'samples':this[_0xb48f2b(0xd2e)],'label':_0xb48f2b(0x5c2)+this['_name']});const _0xbe2152=this[_0xb48f2b(0x6dc)][_0xb48f2b(0x6f7)];_0xbe2152['incrementReferences'](),this[_0xb48f2b(0xa37)]=new _0x39fc97['x'](null,this[_0xb48f2b(0x19a)]),this[_0xb48f2b(0xa37)][_0xb48f2b(0x4b3)]=_0xb48f2b(0x483)+this['_name'],this['_texture'][_0xb48f2b(0xa37)]=_0xbe2152,this[_0xb48f2b(0xa37)]['wrapU']=_0x39fc97['x'][_0xb48f2b(0x231)],this['_texture'][_0xb48f2b(0xc56)]=_0x39fc97['x'][_0xb48f2b(0x231)],this['_texture'][_0xb48f2b(0x65e)]=0x1;}[_0x51dd4f(0x39b)](_0x3da730,_0x41bd2f,_0x296fec,_0x405b3b,_0x55f32d,_0x479556=!0x1){var _0xd71021=_0x51dd4f;const _0x27090d=this[_0xd71021(0x19a)][_0xd71021(0xcde)]();var _0x405b3b=new _0x492e18['FM'](Math[_0xd71021(0x6af)](this[_0xd71021(0x557)]/_0x405b3b),Math[_0xd71021(0x6af)](this[_0xd71021(0x214)]/_0x405b3b)),_0x855e55=_0x41bd2f===_0x170a92['g'][_0xd71021(0x67a)]&&_0x27090d[_0xd71021(0x33a)]()[_0xd71021(0xb63)]||_0x41bd2f===_0x170a92['g'][_0xd71021(0x98a)]&&_0x27090d[_0xd71021(0x33a)]()[_0xd71021(0x16b)],_0x405b3b=this['_engine']['createRenderTargetTexture']({'width':_0x405b3b['x'],'height':_0x405b3b['y']},{'generateMipMaps':!0x1,'type':_0x41bd2f,'format':_0x296fec,'samplingMode':_0x855e55?_0x170a92['g'][_0xd71021(0xa82)]:_0x170a92['g'][_0xd71021(0x8c6)],'generateDepthBuffer':!0x1,'generateStencilBuffer':!0x1,'samples':this['_samples'],'label':'FluidRenderingRTTBlur-'+_0x55f32d});const _0x4d01f4=_0x405b3b[_0xd71021(0x6f7)],_0x28c354=(_0x4d01f4[_0xd71021(0x3d7)](),new _0x39fc97['x'](null,this[_0xd71021(0x19a)]));if(_0x28c354[_0xd71021(0x4b3)]=_0xd71021(0xcf8)+_0x55f32d,_0x28c354[_0xd71021(0xa37)]=_0x4d01f4,_0x28c354[_0xd71021(0x332)]=_0x39fc97['x'][_0xd71021(0x231)],_0x28c354[_0xd71021(0xc56)]=_0x39fc97['x'][_0xd71021(0x231)],_0x28c354['anisotropicFilteringLevel']=0x1,_0x479556){const _0x2508b9=new _0x4a5f57['D'](_0xd71021(0xcee),_0xd71021(0xbef),[_0xd71021(0x6c8),_0xd71021(0x9bf)],null,0x1,null,_0x170a92['g'][_0xd71021(0x8c6)],_0x27090d,!0x0,null,_0x41bd2f,void 0x0,void 0x0,void 0x0,_0x296fec),_0x2f6e88=(_0x2508b9[_0xd71021(0x993)]=this[_0xd71021(0xd2e)],_0x2508b9[_0xd71021(0x9d0)]=!0x0,_0x2508b9[_0xd71021(0xa74)][_0xd71021(0x526)](_0x3405df=>{var _0x3d9f39=_0xd71021;0x0===this[_0x3d9f39(0x404)]?_0x3405df['setTexture'](_0x3d9f39(0x415),_0x3da730):_0x3405df[_0x3d9f39(0x709)](_0x3d9f39(0x415),_0x2508b9[_0x3d9f39(0x8ed)][_0x3d9f39(0x6f7)]),_0x3405df[_0x3d9f39(0x3a8)](_0x3d9f39(0x6c8),this[_0x3d9f39(0x4fb)]),_0x3405df['setFloat2'](_0x3d9f39(0x9bf),0x1/this['_blurTextureSizeX'],0x0),this[_0x3d9f39(0x404)]++;}),_0x2508b9[_0xd71021(0xa00)][_0xd71021(0x526)](()=>{var _0x2d2309=_0xd71021;_0x2508b9['_textures'][_0x2d2309(0x497)](_0x4b7939=>{var _0x271f4a=_0x2d2309;_0x4b7939[_0x271f4a(0x6f7)]['wrapU']=_0x39fc97['x'][_0x271f4a(0x231)],_0x4b7939[_0x271f4a(0x6f7)][_0x271f4a(0xc56)]=_0x39fc97['x'][_0x271f4a(0x231)];});}),this['_fixReusablePostProcess'](_0x2508b9),new _0x4a5f57['D'](_0xd71021(0x63b),_0xd71021(0xbef),[_0xd71021(0x6c8),'blurDir'],null,0x1,null,_0x170a92['g'][_0xd71021(0x8c6)],_0x27090d,!0x0,null,_0x41bd2f,void 0x0,void 0x0,void 0x0,_0x296fec)),_0xe2eeb=(_0x2f6e88[_0xd71021(0x993)]=this[_0xd71021(0xd2e)],_0x2f6e88[_0xd71021(0xa74)][_0xd71021(0x526)](_0x5b2e4a=>{var _0x5ddd5f=_0xd71021;_0x5b2e4a[_0x5ddd5f(0x3a8)]('filterSize',this[_0x5ddd5f(0x4fb)]),_0x5b2e4a[_0x5ddd5f(0x796)](_0x5ddd5f(0x9bf),0x0,0x1/this['_blurTextureSizeY']),this[_0x5ddd5f(0x404)]++;}),_0x2f6e88['onSizeChangedObservable'][_0xd71021(0x526)](()=>{var _0x4ceb2b=_0xd71021;_0x2f6e88[_0x4ceb2b(0x42c)]['forEach'](_0x583a0d=>{var _0xfcb8b6=_0x4ceb2b;_0x583a0d[_0xfcb8b6(0x6f7)][_0xfcb8b6(0x332)]=_0x39fc97['x']['CLAMP_ADDRESSMODE'],_0x583a0d[_0xfcb8b6(0x6f7)][_0xfcb8b6(0xc56)]=_0x39fc97['x'][_0xfcb8b6(0x231)];});}),this[_0xd71021(0x9f9)](_0x2f6e88),_0x2508b9[_0xd71021(0x4f6)]=!0x1,_0x2f6e88['autoClear']=!0x1,[]);for(let _0x8e1b91=0x0;_0x8e1b91<0x2*this[_0xd71021(0x288)];++_0x8e1b91)_0xe2eeb[_0x8e1b91]=0x1&_0x8e1b91?_0x2f6e88:_0x2508b9;return[_0x405b3b,_0x28c354,_0xe2eeb];}{_0x855e55=[_0xd71021(0x9f4),_0xd71021(0x9bf),_0xd71021(0x565),'depthThreshold'];const _0x2e60c3=new _0x4a5f57['D'](_0xd71021(0xcee),_0xd71021(0xbc8),_0x855e55,null,0x1,null,_0x170a92['g']['TEXTURE_NEAREST_SAMPLINGMODE'],_0x27090d,!0x0,null,_0x41bd2f,void 0x0,void 0x0,void 0x0,_0x296fec),_0x38768c=(_0x2e60c3[_0xd71021(0x993)]=this[_0xd71021(0xd2e)],_0x2e60c3[_0xd71021(0x9d0)]=!0x0,_0x2e60c3[_0xd71021(0xa74)][_0xd71021(0x526)](_0x1bc22e=>{var _0x110939=_0xd71021;0x0===this[_0x110939(0x404)]?_0x1bc22e['setTexture']('textureSampler',_0x3da730):_0x1bc22e[_0x110939(0x709)](_0x110939(0x415),_0x2e60c3[_0x110939(0x8ed)][_0x110939(0x6f7)]),_0x1bc22e['setInt'](_0x110939(0x9f4),this[_0x110939(0x299)]),_0x1bc22e[_0x110939(0x796)](_0x110939(0x9bf),0x1/this[_0x110939(0x557)],0x0),_0x1bc22e['setFloat'](_0x110939(0x565),this[_0x110939(0x1b0)]()),_0x1bc22e['setFloat'](_0x110939(0x615),this[_0x110939(0x914)]()),this[_0x110939(0x404)]++;}),_0x2e60c3[_0xd71021(0xa00)][_0xd71021(0x526)](()=>{_0x2e60c3['_textures']['forEach'](_0x17f833=>{var _0x3f8287=a6_0x2304;_0x17f833[_0x3f8287(0x6f7)][_0x3f8287(0x332)]=_0x39fc97['x'][_0x3f8287(0x231)],_0x17f833[_0x3f8287(0x6f7)][_0x3f8287(0xc56)]=_0x39fc97['x'][_0x3f8287(0x231)];});}),this['_fixReusablePostProcess'](_0x2e60c3),new _0x4a5f57['D']('BilateralBlurY',_0xd71021(0xbc8),_0x855e55,null,0x1,null,_0x170a92['g'][_0xd71021(0x8c6)],_0x27090d,!0x0,null,_0x41bd2f,void 0x0,void 0x0,void 0x0,_0x296fec)),_0x2f46e8=(_0x38768c[_0xd71021(0x993)]=this[_0xd71021(0xd2e)],_0x38768c[_0xd71021(0xa74)]['add'](_0x572f3c=>{var _0x355adc=_0xd71021;_0x572f3c[_0x355adc(0x3a8)](_0x355adc(0x9f4),this['blurMaxFilterSize']),_0x572f3c[_0x355adc(0x796)](_0x355adc(0x9bf),0x0,0x1/this['_blurTextureSizeY']),_0x572f3c[_0x355adc(0x5f3)](_0x355adc(0x565),this[_0x355adc(0x1b0)]()),_0x572f3c['setFloat'](_0x355adc(0x615),this['_getDepthThreshold']()),this[_0x355adc(0x404)]++;}),_0x38768c[_0xd71021(0xa00)]['add'](()=>{var _0x1548b9=_0xd71021;_0x38768c[_0x1548b9(0x42c)][_0x1548b9(0x497)](_0x3878a3=>{var _0xb1f656=_0x1548b9;_0x3878a3['texture'][_0xb1f656(0x332)]=_0x39fc97['x'][_0xb1f656(0x231)],_0x3878a3[_0xb1f656(0x6f7)][_0xb1f656(0xc56)]=_0x39fc97['x']['CLAMP_ADDRESSMODE'];});}),this[_0xd71021(0x9f9)](_0x38768c),_0x2e60c3[_0xd71021(0x4f6)]=!0x1,_0x38768c[_0xd71021(0x4f6)]=!0x1,[]);for(let _0xe2da97=0x0;_0xe2da97<0x2*this[_0xd71021(0x288)];++_0xe2da97)_0x2f46e8[_0xe2da97]=0x1&_0xe2da97?_0x38768c:_0x2e60c3;return[_0x405b3b,_0x28c354,_0x2f46e8];}}[_0x51dd4f(0x9f9)](_0x33cd28){var _0x5c930f=_0x51dd4f;_0x33cd28[_0x5c930f(0x23d)]()&&(_0x33cd28[_0x5c930f(0x239)][_0x5c930f(0x526)](()=>{var _0x7de603=_0x5c930f;_0x33cd28[_0x7de603(0x937)]=(_0x33cd28[_0x7de603(0x937)]+0x1)%0x2;}),_0x33cd28[_0x5c930f(0xa74)][_0x5c930f(0x526)](()=>{var _0xa6f941=_0x5c930f;_0x33cd28[_0xa6f941(0x937)]=(_0x33cd28['_currentRenderTextureInd']+0x1)%0x2;}));}['_getProjectedParticleConstant'](){var _0x381216=_0x51dd4f,_0x2baa11;return this[_0x381216(0x4fb)]*this[_0x381216(0x7a4)]*0.05*(this[_0x381216(0x981)]/0x2)/Math[_0x381216(0xba6)]((null!=(_0x2baa11=null==(_0x2baa11=this[_0x381216(0x72b)])?void 0x0:_0x2baa11[_0x381216(0x931)])?_0x2baa11:0x2d*Math['PI']/0xb4)/0x2);}[_0x51dd4f(0x914)](){var _0x3195a0=_0x51dd4f;return this[_0x3195a0(0x7a4)]/0x2*this[_0x3195a0(0x97a)];}[_0x51dd4f(0x431)](){var _0x47c60f=_0x51dd4f,_0x1238ef;this[_0x47c60f(0xaad)][_0x47c60f(0x445)]()&&this[_0x47c60f(0xaad)][_0x47c60f(0xac3)](this),null!=(_0x1238ef=this['_rt'])&&_0x1238ef[_0x47c60f(0x431)](),(this['_rt']=null)!=(_0x1238ef=this[_0x47c60f(0xa37)])&&_0x1238ef[_0x47c60f(0x431)](),(this[_0x47c60f(0xa37)]=null)!=(_0x1238ef=this['_rtBlur'])&&_0x1238ef[_0x47c60f(0x431)](),(this[_0x47c60f(0x736)]=null)!=(_0x1238ef=this['_textureBlurred'])&&_0x1238ef[_0x47c60f(0x431)](),this['_textureBlurred']=null,this['_blurPostProcesses']&&(this['_blurPostProcesses'][0x0][_0x47c60f(0x431)](),this[_0x47c60f(0x897)][0x1][_0x47c60f(0x431)]()),this[_0x47c60f(0x897)]=null;}}},0x1616b:(_0x88598f,_0x410acf,_0x2f0b33)=>{_0x2f0b33['d'](_0x410acf,{'p':()=>_0x154bdc});var _0x2a6d7c=_0x2f0b33(0x77a5);class _0x154bdc{constructor(){var _0x355de0=a6_0x2304;this[_0x355de0(0x4d2)]=!0x1,this['name']=_0x355de0(0x85f),this[_0x355de0(0x689)]=[_0x2a6d7c['g'][_0x355de0(0x735)]];}}},0xbf60:(_0x52a9e4,_0x4768be,_0x2fc443)=>{_0x2fc443['d'](_0x4768be,{'g':()=>_0x292a5d});var _0x2b59e1=_0x2fc443(0x77a5);class _0x292a5d{constructor(){var _0x20d5bd=a6_0x2304;this[_0x20d5bd(0x4d2)]=!0x1,this[_0x20d5bd(0x4b3)]=_0x20d5bd(0x74e),this['texturesRequired']=[_0x2b59e1['g'][_0x20d5bd(0x920)],_0x2b59e1['g'][_0x20d5bd(0xa77)],_0x2b59e1['g'][_0x20d5bd(0xb56)]];}}},0x498b:(_0x416562,_0x41dd97,_0x3b2f15)=>{_0x3b2f15['d'](_0x41dd97,{'y':()=>_0x1a0b3e});var _0x61609e=_0x3b2f15(0x77a5);class _0x1a0b3e{constructor(){var _0x374e20=a6_0x2304;this['enabled']=!0x1,this['name']='screenSpaceReflections',this[_0x374e20(0x689)]=[_0x61609e['g'][_0x374e20(0x920)],_0x61609e['g'][_0x374e20(0xa77)],_0x61609e['g'][_0x374e20(0xcbc)]];}}},0x10748:(_0x48f884,_0x2125ee,_0x30c9f6)=>{_0x30c9f6['d'](_0x2125ee,{'M':()=>_0x39e0bd});var _0x348fe5=_0x30c9f6(0x77a5);class _0x39e0bd{constructor(){var _0x3535f9=a6_0x2304;this['enabled']=!0x1,this[_0x3535f9(0x4b3)]='ssao2',this[_0x3535f9(0x689)]=[_0x348fe5['g'][_0x3535f9(0x920)],_0x348fe5['g'][_0x3535f9(0xb56)]];}}},0x8362:(_0x5bd612,_0x41f739,_0x241315)=>{var _0x374c95=a6_0x1e64fa;_0x241315['d'](_0x41f739,{'u':()=>_0x354328});var _0x44ee2b=_0x241315(0x10ea4),_0x4b67a6=_0x241315(0xc84b),_0x406581=_0x241315(0xbac7),_0x41f739=_0x241315(0x5f28),_0x5f37f5=_0x241315(0x77a5),_0x3517b4=(_0x241315(0x816b),_0x241315(0x17a92));_0x3517b4['v'][_0x374c95(0x7df)][_0x374c95(0xd27)]=_0x374c95(0x90d),_0x241315(0x175b0),_0x241315(0x6b23),_0x3517b4['v'][_0x374c95(0x7df)][_0x374c95(0x147)]='uniform\x20vec3\x20diffusionS[5];\x0auniform\x20float\x20diffusionD[5];\x0auniform\x20float\x20filterRadii[5];',(_0x3517b4['v']['ShadersStore']['subSurfaceScatteringPixelShader']=_0x374c95(0xa99),_0x241315(0x4617));class _0x1093ac extends _0x41f739['D']{[_0x374c95(0x4e7)](){var _0x2bc92a=_0x374c95;return _0x2bc92a(0xa80);}constructor(_0x564fd5,_0x2183d2,_0x801afc,_0x3504cb=null,_0x26bd9c,_0x971227,_0x47aefc,_0x28aac0=_0x5f37f5['g'][_0x374c95(0xc79)]){var _0x3ca42b=_0x374c95;super(_0x564fd5,'subSurfaceScattering',[_0x3ca42b(0x949),_0x3ca42b(0x457),_0x3ca42b(0xbe8)],[_0x3ca42b(0x5c3),_0x3ca42b(0x19b),_0x3ca42b(0x51d),_0x3ca42b(0x246),_0x3ca42b(0x298),_0x3ca42b(0x3ec)],_0x801afc,_0x3504cb,_0x26bd9c||_0x406581['x'][_0x3ca42b(0x3b3)],_0x971227,_0x47aefc,null,_0x28aac0,'postprocess',void 0x0,!0x0),this[_0x3ca42b(0x19a)]=_0x2183d2,this[_0x3ca42b(0x974)](),this[_0x3ca42b(0xa74)][_0x3ca42b(0x526)](_0x5765f3=>{var _0xe5ecb8=_0x3ca42b,_0x4fb210;_0x2183d2[_0xe5ecb8(0x475)]&&_0x2183d2[_0xe5ecb8(0x6ab)]?(_0x4fb210=this['texelSize'],_0x5765f3['setFloat'](_0xe5ecb8(0xbe8),_0x2183d2[_0xe5ecb8(0x6ab)]['metersPerUnit']),_0x5765f3[_0xe5ecb8(0x796)](_0xe5ecb8(0x949),_0x4fb210['x'],_0x4fb210['y']),_0x5765f3[_0xe5ecb8(0x205)]('irradianceSampler',_0x2183d2[_0xe5ecb8(0x475)]['getRenderTarget']()[_0xe5ecb8(0x80a)][_0x2183d2[_0xe5ecb8(0x475)][_0xe5ecb8(0x202)](_0x5f37f5['g'][_0xe5ecb8(0x9ca)])]),_0x5765f3['setTexture'](_0xe5ecb8(0x298),_0x2183d2['prePassRenderer']['getRenderTarget']()[_0xe5ecb8(0x80a)][_0x2183d2[_0xe5ecb8(0x475)][_0xe5ecb8(0x202)](_0x5f37f5['g'][_0xe5ecb8(0xb56)])]),_0x5765f3[_0xe5ecb8(0x205)]('albedoSampler',_0x2183d2['prePassRenderer']['getRenderTarget']()['textures'][_0x2183d2['prePassRenderer'][_0xe5ecb8(0x202)](_0x5f37f5['g'][_0xe5ecb8(0xa70)])]),_0x5765f3[_0xe5ecb8(0x796)]('viewportSize',Math['tan'](_0x2183d2[_0xe5ecb8(0x7a3)][_0xe5ecb8(0x931)]/0x2)*_0x2183d2['getEngine']()[_0xe5ecb8(0x1c1)](_0x2183d2[_0xe5ecb8(0x7a3)],!0x0),Math['tan'](_0x2183d2['activeCamera'][_0xe5ecb8(0x931)]/0x2)),_0x5765f3[_0xe5ecb8(0xc99)](_0xe5ecb8(0x5c3),_0x2183d2[_0xe5ecb8(0x6ab)][_0xe5ecb8(0x847)]),_0x5765f3[_0xe5ecb8(0x8ab)]('diffusionD',_0x2183d2[_0xe5ecb8(0x6ab)][_0xe5ecb8(0x8be)]),_0x5765f3['setArray'](_0xe5ecb8(0x51d),_0x2183d2['subSurfaceConfiguration'][_0xe5ecb8(0x832)])):_0x44ee2b['Y'][_0xe5ecb8(0x286)](_0xe5ecb8(0x25e));});}}var _0x11d0ff=_0x241315(0xbb85),_0x403fc7=_0x241315(0x15cb9);class _0x354328{constructor(_0x39304e){var _0x4307b8=_0x374c95;this[_0x4307b8(0x283)]=[],this[_0x4307b8(0x4e4)]=[],this['_ssDiffusionD']=[],this[_0x4307b8(0x4d2)]=!0x1,this[_0x4307b8(0xa75)]=!0x0,this[_0x4307b8(0x4b3)]=_0x11d0ff['l'][_0x4307b8(0xb9b)],this['ssDiffusionProfileColors']=[],this[_0x4307b8(0xbe8)]=0x1,this['texturesRequired']=[_0x5f37f5['g'][_0x4307b8(0xb56)],_0x5f37f5['g']['PREPASS_ALBEDO_SQRT_TEXTURE_TYPE'],_0x5f37f5['g']['PREPASS_COLOR_TEXTURE_TYPE'],_0x5f37f5['g'][_0x4307b8(0x9ca)]],this['addDiffusionProfile'](new _0x4b67a6['Wo'](0x1,0x1,0x1)),this[_0x4307b8(0x19a)]=_0x39304e,_0x354328[_0x4307b8(0x42e)](this['_scene']);}get[_0x374c95(0x847)](){var _0x18e518=_0x374c95;return this[_0x18e518(0x283)];}get[_0x374c95(0x8be)](){var _0x3dbf2c=_0x374c95;return this[_0x3dbf2c(0x789)];}get['ssFilterRadii'](){return this['_ssFilterRadii'];}[_0x374c95(0xa3c)](_0x1bcf52){var _0x4a65c3=_0x374c95;if(0x5<=this[_0x4a65c3(0x8be)][_0x4a65c3(0x3ef)])return _0x44ee2b['Y'][_0x4a65c3(0x286)]('You\x20already\x20reached\x20the\x20maximum\x20number\x20of\x20diffusion\x20profiles.'),0x0;for(let _0x5c0ce2=0x0;_0x5c0ce2<this[_0x4a65c3(0x283)][_0x4a65c3(0x3ef)]/0x3;_0x5c0ce2++)if(this['_ssDiffusionS'][0x3*_0x5c0ce2]===_0x1bcf52['r']&&this[_0x4a65c3(0x283)][0x3*_0x5c0ce2+0x1]===_0x1bcf52['g']&&this[_0x4a65c3(0x283)][0x3*_0x5c0ce2+0x2]===_0x1bcf52['b'])return _0x5c0ce2;return this[_0x4a65c3(0x283)][_0x4a65c3(0x83f)](_0x1bcf52['r'],_0x1bcf52['b'],_0x1bcf52['g']),this[_0x4a65c3(0x789)][_0x4a65c3(0x83f)](Math[_0x4a65c3(0x89f)](Math[_0x4a65c3(0x89f)](_0x1bcf52['r'],_0x1bcf52['b']),_0x1bcf52['g'])),this[_0x4a65c3(0x4e4)][_0x4a65c3(0x83f)](this[_0x4a65c3(0x3e6)](_0x1bcf52)),this[_0x4a65c3(0x87c)]['push'](_0x1bcf52),this[_0x4a65c3(0x789)][_0x4a65c3(0x3ef)]-0x1;}[_0x374c95(0x93c)](){var _0x44be10=_0x374c95;return this[_0x44be10(0xcf0)]=new _0x1093ac(_0x44be10(0x85e),this[_0x44be10(0x19a)],0x1,null,void 0x0,this[_0x44be10(0x19a)][_0x44be10(0xcde)]()),this[_0x44be10(0xcf0)][_0x44be10(0x4f6)]=!0x1,this['postProcess'];}[_0x374c95(0x837)](){var _0x3aecd4=_0x374c95;this['_ssDiffusionD']=[],this['_ssDiffusionS']=[],this[_0x3aecd4(0x4e4)]=[],this['ssDiffusionProfileColors']=[];}['dispose'](){var _0x1171af=_0x374c95;this[_0x1171af(0x837)](),this[_0x1171af(0xcf0)]&&this[_0x1171af(0xcf0)][_0x1171af(0x431)]();}['getDiffusionProfileParameters'](_0x56b5ec){var _0x27801f=_0x374c95;return _0x56b5ec=Math['max'](_0x56b5ec['r'],_0x56b5ec['g'],_0x56b5ec['b']),this[_0x27801f(0x430)](0.997,_0x56b5ec);}[_0x374c95(0x430)](_0x85d92f,_0x5b964a){var _0x224f41=_0x374c95,_0x1488a3=0x1+0x4*(_0x85d92f=0x1-_0x85d92f)*(0x2*_0x85d92f+Math['sqrt'](0x1+0x4*_0x85d92f*_0x85d92f)),_0x5943bd=Math[_0x224f41(0x3b0)](_0x1488a3,-0x1/0x3);return 0x3*Math[_0x224f41(0xb69)]((0x1+_0x1488a3*_0x5943bd*_0x5943bd+_0x5943bd)/(0x4*_0x85d92f))*_0x5b964a;}}_0x354328[_0x374c95(0x42e)]=_0x22060c=>{var _0x511ce0=_0x374c95;throw(0x0,_0x403fc7['S'])(_0x511ce0(0x7ff));};},0x15a7:(_0x498235,_0x7285f6,_0x168df2)=>{var _0x5dbfb8=a6_0x1e64fa;_0x168df2(0x17a92)['v'][_0x5dbfb8(0xcc1)][_0x5dbfb8(0x23c)]=_0x5dbfb8(0x3c4);},0x6052:(_0x51a538,_0x35cf56,_0x59a548)=>{var _0xf9ea5a=a6_0x1e64fa,_0x4d79c9=_0x59a548(0x17a92);_0x59a548(0x6cce),_0x4d79c9['v'][_0xf9ea5a(0x7df)][_0xf9ea5a(0x48a)]=_0xf9ea5a(0xb86);},0xdcea:(_0x550e7d,_0x1bc966,_0x4f3ec9)=>{var _0xe9fa31=a6_0x1e64fa;_0x4f3ec9(0x17a92)['v'][_0xe9fa31(0x7df)]['bakedVertexAnimation']=_0xe9fa31(0xc1c);},0x12929:(_0xb4b6b6,_0x4da43d,_0x1b9bb6)=>{var _0x2b37d6=a6_0x1e64fa;_0x1b9bb6(0x17a92)['v'][_0x2b37d6(0x7df)][_0x2b37d6(0x8c2)]=_0x2b37d6(0xba4);},0x13f9a:(_0x43f58b,_0x599350,_0x220a2f)=>{var _0x333224=a6_0x1e64fa;_0x220a2f(0x17a92)['v'][_0x333224(0x7df)][_0x333224(0xd04)]=_0x333224(0x582);},0xb434:(_0x4b10dd,_0x2f64d1,_0x10d207)=>{var _0x3b8ce2=a6_0x1e64fa;_0x10d207(0x17a92)['v'][_0x3b8ce2(0x7df)][_0x3b8ce2(0x69f)]=_0x3b8ce2(0x6cb);},0x140f3:(_0x563f19,_0xf67ada,_0x2f9c04)=>{var _0x28ac5b=a6_0x1e64fa;_0x2f9c04(0x17a92)['v'][_0x28ac5b(0x7df)][_0x28ac5b(0x9e6)]=_0x28ac5b(0x401);},0x6664:(_0x1acb0c,_0x19292f,_0x539441)=>{var _0x5348a5=a6_0x1e64fa;_0x539441(0x17a92)['v'][_0x5348a5(0x7df)][_0x5348a5(0xa34)]=_0x5348a5(0x5fe);},0xe577:(_0x59932d,_0x5c4009,_0x5f535d)=>{var _0x4a8cf5=a6_0x1e64fa,_0x4371db=_0x5f535d(0x17a92);_0x5f535d(0x126e8),_0x4371db['v'][_0x4a8cf5(0x7df)][_0x4a8cf5(0x63f)]='#if\x20defined(BUMP)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,BUMP,_VARYINGNAME_,Bump,_SAMPLERNAME_,bump)\x0a#endif\x0a#if\x20defined(DETAIL)\x0a#include<samplerFragmentDeclaration>(_DEFINENAME_,DETAIL,_VARYINGNAME_,Detail,_SAMPLERNAME_,detail)\x0a#endif\x0a#if\x20defined(BUMP)\x20&&\x20defined(PARALLAX)\x0aconst\x20float\x20minSamples=4.;\x0aconst\x20float\x20maxSamples=15.;\x0aconst\x20int\x20iMaxSamples=15;\x0avec2\x20parallaxOcclusion(vec3\x20vViewDirCoT,vec3\x20vNormalCoT,vec2\x20texCoord,float\x20parallaxScale)\x20{\x0afloat\x20parallaxLimit=length(vViewDirCoT.xy)/vViewDirCoT.z;\x0aparallaxLimit*=parallaxScale;\x0avec2\x20vOffsetDir=normalize(vViewDirCoT.xy);\x0avec2\x20vMaxOffset=vOffsetDir*parallaxLimit;\x0afloat\x20numSamples=maxSamples+(dot(vViewDirCoT,vNormalCoT)*(minSamples-maxSamples));\x0afloat\x20stepSize=1.0/numSamples;\x0afloat\x20currRayHeight=1.0;\x0avec2\x20vCurrOffset=vec2(0,0);\x0avec2\x20vLastOffset=vec2(0,0);\x0afloat\x20lastSampledHeight=1.0;\x0afloat\x20currSampledHeight=1.0;\x0abool\x20keepWorking=true;\x0afor\x20(int\x20i=0;\x20i<iMaxSamples;\x20i++)\x0a{\x0acurrSampledHeight=texture2D(bumpSampler,texCoord+vCurrOffset).w;\x0aif\x20(!keepWorking)\x0a{\x0a}\x0aelse\x20if\x20(currSampledHeight>currRayHeight)\x0a{\x0afloat\x20delta1=currSampledHeight-currRayHeight;\x0afloat\x20delta2=(currRayHeight+stepSize)-lastSampledHeight;\x0afloat\x20ratio=delta1/(delta1+delta2);\x0avCurrOffset=(ratio)*\x20vLastOffset+(1.0-ratio)*vCurrOffset;\x0akeepWorking=false;\x0a}\x0aelse\x0a{\x0acurrRayHeight-=stepSize;\x0avLastOffset=vCurrOffset;\x0avCurrOffset+=stepSize*vMaxOffset;\x0alastSampledHeight=currSampledHeight;\x0a}\x0a}\x0areturn\x20vCurrOffset;\x0a}\x0avec2\x20parallaxOffset(vec3\x20viewDir,float\x20heightScale)\x0a{\x0afloat\x20height=texture2D(bumpSampler,vBumpUV).w;\x0avec2\x20texCoordOffset=heightScale*viewDir.xy*height;\x0areturn\x20-texCoordOffset;\x0a}\x0a#endif\x0a';},0x8cac:(_0x218688,_0x22b82a,_0x1b9edc)=>{var _0x31c547=a6_0x1e64fa;_0x1b9edc(0x17a92)['v'][_0x31c547(0x7df)][_0x31c547(0x82a)]=_0x31c547(0x9fe);},0xced6:(_0x31c2ed,_0x1e8215,_0x2193a1)=>{var _0x26aafc=a6_0x1e64fa;_0x2193a1(0x17a92)['v']['IncludesShadersStore'][_0x26aafc(0xb8e)]=_0x26aafc(0xa83);},0x8785:(_0x3ac7ba,_0xe9d3af,_0x313e9c)=>{var _0x520e06=a6_0x1e64fa;_0x313e9c(0x17a92)['v'][_0x520e06(0x7df)][_0x520e06(0x8aa)]=_0x520e06(0x96b);},0x3328:(_0x3765f4,_0x10eb80,_0xc5913f)=>{var _0x302e12=a6_0x1e64fa;_0xc5913f(0x17a92)['v'][_0x302e12(0x7df)]['clipPlaneFragment']=_0x302e12(0xcb9);},0xff1b:(_0x1ac9be,_0x398748,_0x2dad3e)=>{var _0x2912e1=a6_0x1e64fa;_0x2dad3e(0x17a92)['v']['IncludesShadersStore']['clipPlaneFragmentDeclaration']=_0x2912e1(0x4de);},0x6efd:(_0x4a5c89,_0x314d8e,_0x5b42d0)=>{var _0x2245a3=a6_0x1e64fa;_0x5b42d0(0x17a92)['v'][_0x2245a3(0x7df)][_0x2245a3(0x398)]=_0x2245a3(0x944);},0x13216:(_0x4c3b62,_0x5b48f9,_0x1b352d)=>{var _0x4efd82=a6_0x1e64fa;_0x1b352d(0x17a92)['v'][_0x4efd82(0x7df)][_0x4efd82(0x5d7)]=_0x4efd82(0xcd0);},0xcff7:(_0x4cfb37,_0x171773,_0xe54406)=>{var _0x5e0a88=a6_0x1e64fa;_0xe54406(0x17a92)['v'][_0x5e0a88(0x7df)]['decalFragment']=_0x5e0a88(0x358);},0xf57c:(_0xd1814b,_0x313859,_0x389ba4)=>{var _0x4df007=a6_0x1e64fa;_0x389ba4(0x17a92)['v'][_0x4df007(0x7df)][_0x4df007(0x449)]='#ifdef\x20DECAL\x0auniform\x20vec4\x20vDecalInfos;\x0a#endif\x0a';},0x2826:(_0x21fea9,_0x23682c,_0x3e3f8a)=>{var _0x4c0240=a6_0x1e64fa;_0x3e3f8a(0x17a92)['v']['IncludesShadersStore']['decalVertexDeclaration']=_0x4c0240(0xc7c);},0x4bc6:(_0x27eee2,_0x5e71e2,_0x4c0d7e)=>{var _0xe7b3d=a6_0x1e64fa,_0x1923bf=_0x4c0d7e(0x17a92);_0x4c0d7e(0x6cce),_0x4c0d7e(0x11fa6),_0x1923bf['v'][_0xe7b3d(0x7df)][_0xe7b3d(0x5a8)]=_0xe7b3d(0x666);},0x6318:(_0x523ead,_0x42ceac,_0x11169b)=>{var _0x2d4009=a6_0x1e64fa;_0x11169b(0x17a92)['v']['IncludesShadersStore']['depthPrePass']=_0x2d4009(0x13e);},0x10ef:(_0x18376d,_0x3f646f,_0x2858e8)=>{var _0x539279=a6_0x1e64fa;_0x2858e8(0x17a92)['v']['IncludesShadersStore'][_0x539279(0xbe7)]='#ifdef\x20FOG\x0afloat\x20fog=CalcFogFactor();\x0a#ifdef\x20PBR\x0afog=toLinearSpace(fog);\x0a#endif\x0acolor.rgb=mix(vFogColor,color.rgb,fog);\x0a#endif\x0a';},0x12a16:(_0x49d836,_0x5d1050,_0x1764c3)=>{var _0xcc2828=a6_0x1e64fa;_0x1764c3(0x17a92)['v']['IncludesShadersStore'][_0xcc2828(0xa5a)]=_0xcc2828(0x779);},0x9871:(_0x5c3f31,_0x1a236c,_0x1fdab7)=>{var _0x90ef94=a6_0x1e64fa;_0x1fdab7(0x17a92)['v'][_0x90ef94(0x7df)][_0x90ef94(0x61c)]=_0x90ef94(0x3a0);},0x6a99:(_0x1748db,_0x13ee9b,_0x34992a)=>{var _0x5b84a4=a6_0x1e64fa;_0x34992a(0x17a92)['v']['IncludesShadersStore'][_0x5b84a4(0x90a)]='#ifdef\x20FOG\x0avarying\x20vec3\x20vFogDistance;\x0a#endif\x0a';},0xb008:(_0x1a92dc,_0x433a3f,_0x29ddab)=>{var _0x1474ea=a6_0x1e64fa;_0x29ddab(0x17a92)['v'][_0x1474ea(0x7df)][_0x1474ea(0x416)]='#ifdef\x20FRESNEL\x0afloat\x20computeFresnelTerm(vec3\x20viewDirection,vec3\x20worldNormal,float\x20bias,float\x20power)\x0a{\x0afloat\x20fresnelTerm=pow(bias+abs(dot(viewDirection,worldNormal)),power);\x0areturn\x20clamp(fresnelTerm,0.,1.);\x0a}\x0a#endif\x0a';},0x14535:(_0x15800f,_0x505bc5,_0x3b7527)=>{var _0x355e5c=a6_0x1e64fa;_0x3b7527(0x17a92)['v'][_0x355e5c(0x7df)][_0x355e5c(0x8e0)]=_0x355e5c(0x7e9);},0x16b85:(_0x4259ba,_0x1e9c9c,_0x4e9d64)=>{var _0xb0aec=a6_0x1e64fa;_0x4e9d64(0x17a92)['v'][_0xb0aec(0x7df)]['hdrFilteringFunctions']=_0xb0aec(0x3d3);},0x175b0:(_0x5718e1,_0x99d0a4,_0x146bad)=>{var _0x278e9d=a6_0x1e64fa;_0x146bad(0x17a92)['v'][_0x278e9d(0x7df)][_0x278e9d(0x983)]=_0x278e9d(0x4e3);},0x17ef8:(_0x2f5cd3,_0x58c8fe,_0x5083b4)=>{var _0x13d188=a6_0x1e64fa;_0x5083b4(0x17a92)['v'][_0x13d188(0x7df)][_0x13d188(0x900)]='#ifdef\x20IMAGEPROCESSINGPOSTPROCESS\x0agl_FragColor.rgb=pow(gl_FragColor.rgb,vec3(2.2));\x0a#endif\x0a';},0x16c11:(_0x2c732e,_0x35fca2,_0x178bef)=>{var _0x5e0c2b=a6_0x1e64fa;_0x178bef(0x17a92)['v'][_0x5e0c2b(0x7df)][_0x5e0c2b(0x61b)]='#ifdef\x20EXPOSURE\x0auniform\x20float\x20exposureLinear;\x0a#endif\x0a#ifdef\x20CONTRAST\x0auniform\x20float\x20contrast;\x0a#endif\x0a#if\x20defined(VIGNETTE)\x20||\x20defined(DITHER)\x0auniform\x20vec2\x20vInverseScreenSize;\x0a#endif\x0a#ifdef\x20VIGNETTE\x0auniform\x20vec4\x20vignetteSettings1;\x0auniform\x20vec4\x20vignetteSettings2;\x0a#endif\x0a#ifdef\x20COLORCURVES\x0auniform\x20vec4\x20vCameraColorCurveNegative;\x0auniform\x20vec4\x20vCameraColorCurveNeutral;\x0auniform\x20vec4\x20vCameraColorCurvePositive;\x0a#endif\x0a#ifdef\x20COLORGRADING\x0a#ifdef\x20COLORGRADING3D\x0auniform\x20highp\x20sampler3D\x20txColorTransform;\x0a#else\x0auniform\x20sampler2D\x20txColorTransform;\x0a#endif\x0auniform\x20vec4\x20colorTransformSettings;\x0a#endif\x0a#ifdef\x20DITHER\x0auniform\x20float\x20ditherIntensity;\x0a#endif\x0a';},0x119a9:(_0x3fb634,_0x10e748,_0xaaa2bb)=>{var _0x520eb4=a6_0x1e64fa;_0xaaa2bb(0x17a92)['v'][_0x520eb4(0x7df)][_0x520eb4(0x21b)]='#if\x20defined(COLORGRADING)\x20&&\x20!defined(COLORGRADING3D)\x0a/**\x20\x0a*\x20Polyfill\x20for\x20SAMPLE_TEXTURE_3D,which\x20is\x20unsupported\x20in\x20WebGL.\x0a*\x20sampler3dSetting.x=textureOffset\x20(0.5/textureSize).\x0a*\x20sampler3dSetting.y=textureSize.\x0a*/\x0a#define\x20inline\x0avec3\x20sampleTexture3D(sampler2D\x20colorTransform,vec3\x20color,vec2\x20sampler3dSetting)\x0a{\x0afloat\x20sliceSize=2.0*sampler3dSetting.x;\x20\x0a#ifdef\x20SAMPLER3DGREENDEPTH\x0afloat\x20sliceContinuous=(color.g-sampler3dSetting.x)*sampler3dSetting.y;\x0a#else\x0afloat\x20sliceContinuous=(color.b-sampler3dSetting.x)*sampler3dSetting.y;\x0a#endif\x0afloat\x20sliceInteger=floor(sliceContinuous);\x0afloat\x20sliceFraction=sliceContinuous-sliceInteger;\x0a#ifdef\x20SAMPLER3DGREENDEPTH\x0avec2\x20sliceUV=color.rb;\x0a#else\x0avec2\x20sliceUV=color.rg;\x0a#endif\x0asliceUV.x*=sliceSize;\x0asliceUV.x+=sliceInteger*sliceSize;\x0asliceUV=saturate(sliceUV);\x0avec4\x20slice0Color=texture2D(colorTransform,sliceUV);\x0asliceUV.x+=sliceSize;\x0asliceUV=saturate(sliceUV);\x0avec4\x20slice1Color=texture2D(colorTransform,sliceUV);\x0avec3\x20result=mix(slice0Color.rgb,slice1Color.rgb,sliceFraction);\x0a#ifdef\x20SAMPLER3DBGRMAP\x0acolor.rgb=result.rgb;\x0a#else\x0acolor.rgb=result.bgr;\x0a#endif\x0areturn\x20color;\x0a}\x0a#endif\x0a#ifdef\x20TONEMAPPING_ACES\x0aconst\x20mat3\x20ACESInputMat=mat3(\x0avec3(0.59719,0.07600,0.02840),\x0avec3(0.35458,0.90834,0.13383),\x0avec3(0.04823,0.01566,0.83777)\x0a);\x0aconst\x20mat3\x20ACESOutputMat=mat3(\x0avec3(\x201.60475,-0.10208,-0.00327),\x0avec3(-0.53108,\x201.10813,-0.07276),\x0avec3(-0.07367,-0.00605,\x201.07602)\x0a);\x0avec3\x20RRTAndODTFit(vec3\x20v)\x0a{\x0avec3\x20a=v*(v+0.0245786)-0.000090537;\x0avec3\x20b=v*(0.983729*v+0.4329510)+0.238081;\x0areturn\x20a/b;\x0a}\x0avec3\x20ACESFitted(vec3\x20color)\x0a{\x0acolor=ACESInputMat*color;\x0acolor=RRTAndODTFit(color);\x0acolor=ACESOutputMat*color;\x0acolor=saturate(color);\x0areturn\x20color;\x0a}\x0a#endif\x0a#define\x20CUSTOM_IMAGEPROCESSINGFUNCTIONS_DEFINITIONS\x0avec4\x20applyImageProcessing(vec4\x20result)\x20{\x0a#define\x20CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATSTART\x0a#ifdef\x20EXPOSURE\x0aresult.rgb*=exposureLinear;\x0a#endif\x0a#ifdef\x20VIGNETTE\x0avec2\x20viewportXY=gl_FragCoord.xy*vInverseScreenSize;\x0aviewportXY=viewportXY*2.0-1.0;\x0avec3\x20vignetteXY1=vec3(viewportXY*vignetteSettings1.xy+vignetteSettings1.zw,1.0);\x0afloat\x20vignetteTerm=dot(vignetteXY1,vignetteXY1);\x0afloat\x20vignette=pow(vignetteTerm,vignetteSettings2.w);\x0avec3\x20vignetteColor=vignetteSettings2.rgb;\x0a#ifdef\x20VIGNETTEBLENDMODEMULTIPLY\x0avec3\x20vignetteColorMultiplier=mix(vignetteColor,vec3(1,1,1),vignette);\x0aresult.rgb*=vignetteColorMultiplier;\x0a#endif\x0a#ifdef\x20VIGNETTEBLENDMODEOPAQUE\x0aresult.rgb=mix(vignetteColor,result.rgb,vignette);\x0a#endif\x0a#endif\x0a#ifdef\x20TONEMAPPING\x0a#ifdef\x20TONEMAPPING_ACES\x0aresult.rgb=ACESFitted(result.rgb);\x0a#else\x0aconst\x20float\x20tonemappingCalibration=1.590579;\x0aresult.rgb=1.0-exp2(-tonemappingCalibration*result.rgb);\x0a#endif\x0a#endif\x0aresult.rgb=toGammaSpace(result.rgb);\x0aresult.rgb=saturate(result.rgb);\x0a#ifdef\x20CONTRAST\x0avec3\x20resultHighContrast=result.rgb*result.rgb*(3.0-2.0*result.rgb);\x0aif\x20(contrast<1.0)\x20{\x0aresult.rgb=mix(vec3(0.5,0.5,0.5),result.rgb,contrast);\x0a}\x20else\x20{\x0aresult.rgb=mix(result.rgb,resultHighContrast,contrast-1.0);\x0a}\x0a#endif\x0a#ifdef\x20COLORGRADING\x0avec3\x20colorTransformInput=result.rgb*colorTransformSettings.xxx+colorTransformSettings.yyy;\x0a#ifdef\x20COLORGRADING3D\x0avec3\x20colorTransformOutput=texture(txColorTransform,colorTransformInput).rgb;\x0a#else\x0avec3\x20colorTransformOutput=sampleTexture3D(txColorTransform,colorTransformInput,colorTransformSettings.yz).rgb;\x0a#endif\x0aresult.rgb=mix(result.rgb,colorTransformOutput,colorTransformSettings.www);\x0a#endif\x0a#ifdef\x20COLORCURVES\x0afloat\x20luma=getLuminance(result.rgb);\x0avec2\x20curveMix=clamp(vec2(luma*3.0-1.5,luma*-3.0+1.5),vec2(0.0),vec2(1.0));\x0avec4\x20colorCurve=vCameraColorCurveNeutral+curveMix.x*vCameraColorCurvePositive-curveMix.y*vCameraColorCurveNegative;\x0aresult.rgb*=colorCurve.rgb;\x0aresult.rgb=mix(vec3(luma),result.rgb,colorCurve.a);\x0a#endif\x0a#ifdef\x20DITHER\x0afloat\x20rand=getRand(gl_FragCoord.xy*vInverseScreenSize);\x0afloat\x20dither=mix(-ditherIntensity,ditherIntensity,rand);\x0aresult.rgb=saturate(result.rgb+vec3(dither));\x0a#endif\x0a#define\x20CUSTOM_IMAGEPROCESSINGFUNCTIONS_UPDATERESULT_ATEND\x0areturn\x20result;\x0a}';},0x1b98:(_0x47428e,_0x362425,_0x28e649)=>{var _0x5a4942=a6_0x1e64fa;_0x28e649(0x17a92)['v']['IncludesShadersStore'][_0x5a4942(0x771)]=_0x5a4942(0xbf7);},0x12bc6:(_0x2e4c9f,_0x40fe02,_0x9d235c)=>{var _0x540c85=a6_0x1e64fa;_0x9d235c(0x17a92)['v'][_0x540c85(0x7df)]['instancesDeclaration']=_0x540c85(0xb6f);},0x733d:(_0xeb68e5,_0x37fb94,_0x5ea65a)=>{var _0x47da40=a6_0x1e64fa;_0x5ea65a(0x17a92)['v'][_0x47da40(0x7df)][_0x47da40(0x606)]=_0x47da40(0x58f);},0x1610b:(_0x2383ee,_0x50dce0,_0x53eaae)=>{var _0x54f739=a6_0x1e64fa;_0x53eaae(0x17a92)['v'][_0x54f739(0x7df)][_0x54f739(0xce6)]=_0x54f739(0x450);},0xb0bc:(_0x170a19,_0x4a336e,_0x5e06bf)=>{var _0x402e42=a6_0x1e64fa;_0x5e06bf(0x17a92)['v']['IncludesShadersStore'][_0x402e42(0x804)]=_0x402e42(0x519);},0xe6c7:(_0x125984,_0x9997e9,_0x2c911d)=>{var _0x338771=a6_0x1e64fa;_0x2c911d(0x17a92)['v'][_0x338771(0x7df)][_0x338771(0x201)]=_0x338771(0x505);},0x15fb5:(_0x171381,_0x4f20cb,_0x16d237)=>{var _0x1f8dde=a6_0x1e64fa;_0x16d237(0x17a92)['v'][_0x1f8dde(0x7df)][_0x1f8dde(0x63a)]='#ifdef\x20LIGHT{X}\x0auniform\x20Light{X}\x0a{\x0avec4\x20vLightData;\x0avec4\x20vLightDiffuse;\x0avec4\x20vLightSpecular;\x0a#ifdef\x20SPOTLIGHT{X}\x0avec4\x20vLightDirection;\x0avec4\x20vLightFalloff;\x0a#elif\x20defined(POINTLIGHT{X})\x0avec4\x20vLightFalloff;\x0a#elif\x20defined(HEMILIGHT{X})\x0avec3\x20vLightGround;\x0a#endif\x0avec4\x20shadowsInfo;\x0avec2\x20depthValues;\x0a}\x20light{X};\x0a#ifdef\x20PROJECTEDLIGHTTEXTURE{X}\x0auniform\x20mat4\x20textureProjectionMatrix{X};\x0auniform\x20sampler2D\x20projectionLightSampler{X};\x0a#endif\x0a#ifdef\x20SHADOW{X}\x0a#ifdef\x20SHADOWCSM{X}\x0auniform\x20mat4\x20lightMatrix{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20viewFrustumZ{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20frustumLengths{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20cascadeBlendFactor{X};\x0avarying\x20vec4\x20vPositionFromLight{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20float\x20vDepthMetric{X}[SHADOWCSMNUM_CASCADES{X}];\x0avarying\x20vec4\x20vPositionFromCamera{X};\x0a#if\x20defined(SHADOWPCSS{X})\x0auniform\x20highp\x20sampler2DArrayShadow\x20shadowSampler{X};\x0auniform\x20highp\x20sampler2DArray\x20depthSampler{X};\x0auniform\x20vec2\x20lightSizeUVCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20depthCorrection{X}[SHADOWCSMNUM_CASCADES{X}];\x0auniform\x20float\x20penumbraDarkness{X};\x0a#elif\x20defined(SHADOWPCF{X})\x0auniform\x20highp\x20sampler2DArrayShadow\x20shadowSampler{X};\x0a#else\x0auniform\x20highp\x20sampler2DArray\x20shadowSampler{X};\x0a#endif\x0a#ifdef\x20SHADOWCSMDEBUG{X}\x0aconst\x20vec3\x20vCascadeColorsMultiplier{X}[8]=vec3[8]\x0a(\x0avec3\x20(\x201.5,0.0,0.0\x20),\x0avec3\x20(\x200.0,1.5,0.0\x20),\x0avec3\x20(\x200.0,0.0,5.5\x20),\x0avec3\x20(\x201.5,0.0,5.5\x20),\x0avec3\x20(\x201.5,1.5,0.0\x20),\x0avec3\x20(\x201.0,1.0,1.0\x20),\x0avec3\x20(\x200.0,1.0,5.5\x20),\x0avec3\x20(\x200.5,3.5,0.75\x20)\x0a);\x0avec3\x20shadowDebug{X};\x0a#endif\x0a#ifdef\x20SHADOWCSMUSESHADOWMAXZ{X}\x0aint\x20index{X}=-1;\x0a#else\x0aint\x20index{X}=SHADOWCSMNUM_CASCADES{X}-1;\x0a#endif\x0afloat\x20diff{X}=0.;\x0a#elif\x20defined(SHADOWCUBE{X})\x0auniform\x20samplerCube\x20shadowSampler{X};\x20\x0a#else\x0avarying\x20vec4\x20vPositionFromLight{X};\x0avarying\x20float\x20vDepthMetric{X};\x0a#if\x20defined(SHADOWPCSS{X})\x0auniform\x20highp\x20sampler2DShadow\x20shadowSampler{X};\x0auniform\x20highp\x20sampler2D\x20depthSampler{X};\x0a#elif\x20defined(SHADOWPCF{X})\x0auniform\x20highp\x20sampler2DShadow\x20shadowSampler{X};\x0a#else\x0auniform\x20sampler2D\x20shadowSampler{X};\x0a#endif\x0auniform\x20mat4\x20lightMatrix{X};\x0a#endif\x0a#endif\x0a#endif\x0a';},0x1b3f:(_0x9227bf,_0xf4b7f0,_0x1c1aff)=>{var _0x3d316f=a6_0x1e64fa;_0x1c1aff(0x17a92)['v']['IncludesShadersStore'][_0x3d316f(0x1df)]=_0x3d316f(0x649);},0xc971:(_0x537dfb,_0x441519,_0x4fe290)=>{var _0x5afb60=a6_0x1e64fa;_0x4fe290(0x17a92)['v']['IncludesShadersStore']['lightVxUboDeclaration']=_0x5afb60(0x121);},0x1f57:(_0x39ce7a,_0x4c4ba5,_0x2c73ea)=>{var _0x450da2=a6_0x1e64fa;_0x2c73ea(0x17a92)['v'][_0x450da2(0x7df)][_0x450da2(0x711)]='struct\x20lightingInfo\x0a{\x0avec3\x20diffuse;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specular;\x0a#endif\x0a#ifdef\x20NDOTL\x0afloat\x20ndl;\x0a#endif\x0a};\x0alightingInfo\x20computeLighting(vec3\x20viewDirectionW,vec3\x20vNormal,vec4\x20lightData,vec3\x20diffuseColor,vec3\x20specularColor,float\x20range,float\x20glossiness)\x20{\x0alightingInfo\x20result;\x0avec3\x20lightVectorW;\x0afloat\x20attenuation=1.0;\x0aif\x20(lightData.w==0.)\x0a{\x0avec3\x20direction=lightData.xyz-vPositionW;\x0aattenuation=max(0.,1.0-length(direction)/range);\x0alightVectorW=normalize(direction);\x0a}\x0aelse\x0a{\x0alightVectorW=normalize(-lightData.xyz);\x0a}\x0afloat\x20ndl=max(0.,dot(vNormal,lightVectorW));\x0a#ifdef\x20NDOTL\x0aresult.ndl=ndl;\x0a#endif\x0aresult.diffuse=ndl*diffuseColor*attenuation;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20angleW=normalize(viewDirectionW+lightVectorW);\x0afloat\x20specComp=max(0.,dot(vNormal,angleW));\x0aspecComp=pow(specComp,max(1.,glossiness));\x0aresult.specular=specComp*specularColor*attenuation;\x0a#endif\x0areturn\x20result;\x0a}\x0alightingInfo\x20computeSpotLighting(vec3\x20viewDirectionW,vec3\x20vNormal,vec4\x20lightData,vec4\x20lightDirection,vec3\x20diffuseColor,vec3\x20specularColor,float\x20range,float\x20glossiness)\x20{\x0alightingInfo\x20result;\x0avec3\x20direction=lightData.xyz-vPositionW;\x0avec3\x20lightVectorW=normalize(direction);\x0afloat\x20attenuation=max(0.,1.0-length(direction)/range);\x0afloat\x20cosAngle=max(0.,dot(lightDirection.xyz,-lightVectorW));\x0aif\x20(cosAngle>=lightDirection.w)\x0a{\x0acosAngle=max(0.,pow(cosAngle,lightData.w));\x0aattenuation*=cosAngle;\x0afloat\x20ndl=max(0.,dot(vNormal,lightVectorW));\x0a#ifdef\x20NDOTL\x0aresult.ndl=ndl;\x0a#endif\x0aresult.diffuse=ndl*diffuseColor*attenuation;\x0a#ifdef\x20SPECULARTERM\x0avec3\x20angleW=normalize(viewDirectionW+lightVectorW);\x0afloat\x20specComp=max(0.,dot(vNormal,angleW));\x0aspecComp=pow(specComp,max(1.,glossiness));\x0aresult.specular=specComp*specularColor*attenuation;\x0a#endif\x0areturn\x20result;\x0a}\x0aresult.diffuse=vec3(0.);\x0a#ifdef\x20SPECULARTERM\x0aresult.specular=vec3(0.);\x0a#endif\x0a#ifdef\x20NDOTL\x0aresult.ndl=0.;\x0a#endif\x0areturn\x20result;\x0a}\x0alightingInfo\x20computeHemisphericLighting(vec3\x20viewDirectionW,vec3\x20vNormal,vec4\x20lightData,vec3\x20diffuseColor,vec3\x20specularColor,vec3\x20groundColor,float\x20glossiness)\x20{\x0alightingInfo\x20result;\x0afloat\x20ndl=dot(vNormal,lightData.xyz)*0.5+0.5;\x0a#ifdef\x20NDOTL\x0aresult.ndl=ndl;\x0a#endif\x0aresult.diffuse=mix(groundColor,diffuseColor,ndl);\x0a#ifdef\x20SPECULARTERM\x0avec3\x20angleW=normalize(viewDirectionW+lightData.xyz);\x0afloat\x20specComp=max(0.,dot(vNormal,angleW));\x0aspecComp=pow(specComp,max(1.,glossiness));\x0aresult.specular=specComp*specularColor;\x0a#endif\x0areturn\x20result;\x0a}\x0a#define\x20inline\x0avec3\x20computeProjectionTextureDiffuseLighting(sampler2D\x20projectionLightSampler,mat4\x20textureProjectionMatrix){\x0avec4\x20strq=textureProjectionMatrix*vec4(vPositionW,1.0);\x0astrq/=strq.w;\x0avec3\x20textureColor=texture2D(projectionLightSampler,strq.xy).rgb;\x0areturn\x20textureColor;\x0a}';},0x17bd9:(_0x1d82fd,_0x14024d,_0x13ddd4)=>{var _0x439130=a6_0x1e64fa;_0x13ddd4(0x17a92)['v'][_0x439130(0x7df)][_0x439130(0x584)]=_0x439130(0xa16);},0x1445f:(_0x4eb10a,_0x337854,_0x90af18)=>{var _0x20d12b=a6_0x1e64fa;_0x90af18(0x17a92)['v'][_0x20d12b(0x7df)][_0x20d12b(0x510)]=_0x20d12b(0xc29);},0x13da6:(_0x4292d1,_0x348518,_0xfa006e)=>{var _0x5ca6fa=a6_0x1e64fa;_0xfa006e(0x17a92)['v'][_0x5ca6fa(0x7df)]['logDepthVertex']=_0x5ca6fa(0x1d8);},0x94fa:(_0x42c05a,_0x1d002a,_0x373ca8)=>{var _0xf19acb=a6_0x1e64fa;_0x373ca8(0x17a92)['v'][_0xf19acb(0x7df)][_0xf19acb(0x25a)]=_0xf19acb(0xb8c);},0x11fa6:(_0xaf7b2d,_0x226f2f,_0x2eac22)=>{var _0x1ee729=a6_0x1e64fa;_0x2eac22(0x17a92)['v']['IncludesShadersStore'][_0x1ee729(0xce1)]=_0x1ee729(0x154);},0x1070:(_0x1e8950,_0x2baa2d,_0x5051d3)=>{var _0x1f4868=a6_0x1e64fa;_0x5051d3(0x17a92)['v']['IncludesShadersStore'][_0x1f4868(0xbb2)]='#ifdef\x20MORPHTARGETS\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x20\x0avertexID=float(gl_VertexID)*morphTargetTextureInfo.x;\x0apositionUpdated+=(readVector3FromRawSampler({X},vertexID)-position)*morphTargetInfluences[{X}];\x0avertexID+=1.0;\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0anormalUpdated+=(readVector3FromRawSampler({X},vertexID)\x20-normal)*morphTargetInfluences[{X}];\x0avertexID+=1.0;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0auvUpdated+=(readVector3FromRawSampler({X},vertexID).xy-uv)*morphTargetInfluences[{X}];\x0avertexID+=1.0;\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0atangentUpdated.xyz+=(readVector3FromRawSampler({X},vertexID)\x20-tangent.xyz)*morphTargetInfluences[{X}];\x0a#endif\x0a#else\x0apositionUpdated+=(position{X}-position)*morphTargetInfluences[{X}];\x0a#ifdef\x20MORPHTARGETS_NORMAL\x0anormalUpdated+=(normal{X}-normal)*morphTargetInfluences[{X}];\x0a#endif\x0a#ifdef\x20MORPHTARGETS_TANGENT\x0atangentUpdated.xyz+=(tangent{X}-tangent.xyz)*morphTargetInfluences[{X}];\x0a#endif\x0a#ifdef\x20MORPHTARGETS_UV\x0auvUpdated+=(uv_{X}-uv)*morphTargetInfluences[{X}];\x0a#endif\x0a#endif\x0a#endif\x0a';},0x12abc:(_0x2a8caf,_0x121b82,_0x85cf17)=>{var _0x2f435d=a6_0x1e64fa;_0x85cf17(0x17a92)['v']['IncludesShadersStore']['morphTargetsVertexDeclaration']=_0x2f435d(0x193);},0x13906:(_0x45ee56,_0x5be3c8,_0x49b968)=>{var _0x1cdbff=a6_0x1e64fa;_0x49b968(0x17a92)['v'][_0x1cdbff(0x7df)]['morphTargetsVertexGlobal']=_0x1cdbff(0x384);},0x9ea3:(_0x5f216c,_0x4f4d96,_0x124d78)=>{var _0x3977e5=a6_0x1e64fa;_0x124d78(0x17a92)['v'][_0x3977e5(0x7df)][_0x3977e5(0xb98)]='#ifdef\x20MORPHTARGETS\x0auniform\x20float\x20morphTargetInfluences[NUM_MORPH_INFLUENCERS];\x0a#ifdef\x20MORPHTARGETS_TEXTURE\x20\x0aprecision\x20mediump\x20sampler2DArray;\x20\x0auniform\x20float\x20morphTargetTextureIndices[NUM_MORPH_INFLUENCERS];\x0auniform\x20vec3\x20morphTargetTextureInfo;\x0auniform\x20sampler2DArray\x20morphTargets;\x0avec3\x20readVector3FromRawSampler(int\x20targetIndex,float\x20vertexIndex)\x0a{\x20\x0afloat\x20y=floor(vertexIndex/morphTargetTextureInfo.y);\x0afloat\x20x=vertexIndex-y*morphTargetTextureInfo.y;\x0avec3\x20textureUV=vec3((x+0.5)/morphTargetTextureInfo.y,(y+0.5)/morphTargetTextureInfo.z,morphTargetTextureIndices[targetIndex]);\x0areturn\x20texture(morphTargets,textureUV).xyz;\x0a}\x0a#endif\x0a#endif\x0a';},0xa8cd:(_0x236573,_0x53ee70,_0x3c3dd0)=>{var _0x4e0ff8=a6_0x1e64fa;_0x3c3dd0(0x17a92)['v']['IncludesShadersStore'][_0x4e0ff8(0x353)]='#ifdef\x20ORDER_INDEPENDENT_TRANSPARENCY\x0a#extension\x20GL_EXT_draw_buffers\x20:\x20require\x0alayout(location=0)\x20out\x20vec2\x20depth;\x20\x0alayout(location=1)\x20out\x20vec4\x20frontColor;\x0alayout(location=2)\x20out\x20vec4\x20backColor;\x0a#define\x20MAX_DEPTH\x2099999.0\x0ahighp\x20vec4\x20gl_FragColor;\x0auniform\x20sampler2D\x20oitDepthSampler;\x0auniform\x20sampler2D\x20oitFrontColorSampler;\x0a#endif\x0a';},0xa965:(_0xce81b1,_0x2b34ad,_0x57a4cb)=>{var _0x2f2d5c=a6_0x1e64fa;_0x57a4cb(0x17a92)['v']['IncludesShadersStore'][_0x2f2d5c(0x132)]=_0x2f2d5c(0x765);},0xe85e:(_0x2f838a,_0x2fe498,_0x405410)=>{var _0xa94e02=a6_0x1e64fa;_0x405410(0x17a92)['v']['IncludesShadersStore']['packingFunctions']=_0xa94e02(0xb75);},0x10b3e:(_0x1ca44a,_0x38e122,_0x314baa)=>{var _0x227120=a6_0x1e64fa;_0x314baa(0x17a92)['v'][_0x227120(0x7df)][_0x227120(0x26b)]='#define\x20FRESNEL_MAXIMUM_ON_ROUGH\x200.25\x0a#ifdef\x20MS_BRDF_ENERGY_CONSERVATION\x0avec3\x20getEnergyConservationFactor(const\x20vec3\x20specularEnvironmentR0,const\x20vec3\x20environmentBrdf)\x20{\x0areturn\x201.0+specularEnvironmentR0*(1.0/environmentBrdf.y-1.0);\x0a}\x0a#endif\x0a#ifdef\x20ENVIRONMENTBRDF\x0avec3\x20getBRDFLookup(float\x20NdotV,float\x20perceptualRoughness)\x20{\x0avec2\x20UV=vec2(NdotV,perceptualRoughness);\x0avec4\x20brdfLookup=texture2D(environmentBrdfSampler,UV);\x0a#ifdef\x20ENVIRONMENTBRDF_RGBD\x0abrdfLookup.rgb=fromRGBD(brdfLookup.rgba);\x0a#endif\x0areturn\x20brdfLookup.rgb;\x0a}\x0avec3\x20getReflectanceFromBRDFLookup(const\x20vec3\x20specularEnvironmentR0,const\x20vec3\x20specularEnvironmentR90,const\x20vec3\x20environmentBrdf)\x20{\x0a#ifdef\x20BRDF_V_HEIGHT_CORRELATED\x0avec3\x20reflectance=(specularEnvironmentR90-specularEnvironmentR0)*environmentBrdf.x+specularEnvironmentR0*environmentBrdf.y;\x0a#else\x0avec3\x20reflectance=specularEnvironmentR0*environmentBrdf.x+specularEnvironmentR90*environmentBrdf.y;\x0a#endif\x0areturn\x20reflectance;\x0a}\x0avec3\x20getReflectanceFromBRDFLookup(const\x20vec3\x20specularEnvironmentR0,const\x20vec3\x20environmentBrdf)\x20{\x0a#ifdef\x20BRDF_V_HEIGHT_CORRELATED\x0avec3\x20reflectance=mix(environmentBrdf.xxx,environmentBrdf.yyy,specularEnvironmentR0);\x0a#else\x0avec3\x20reflectance=specularEnvironmentR0*environmentBrdf.x+environmentBrdf.y;\x0a#endif\x0areturn\x20reflectance;\x0a}\x0a#endif\x0a/*\x20NOT\x20USED\x0a#if\x20defined(SHEEN)\x20&&\x20defined(SHEEN_SOFTER)\x0afloat\x20getBRDFLookupCharlieSheen(float\x20NdotV,float\x20perceptualRoughness)\x0a{\x0afloat\x20c=1.0-NdotV;\x0afloat\x20c3=c*c*c;\x0areturn\x200.65584461*c3+1.0/(4.16526551+exp(-7.97291361*perceptualRoughness+6.33516894));\x0a}\x0a#endif\x0a*/\x0a#if\x20!defined(ENVIRONMENTBRDF)\x20||\x20defined(REFLECTIONMAP_SKYBOX)\x20||\x20defined(ALPHAFRESNEL)\x0avec3\x20getReflectanceFromAnalyticalBRDFLookup_Jones(float\x20VdotN,vec3\x20reflectance0,vec3\x20reflectance90,float\x20smoothness)\x0a{\x0afloat\x20weight=mix(FRESNEL_MAXIMUM_ON_ROUGH,1.0,smoothness);\x0areturn\x20reflectance0+weight*(reflectance90-reflectance0)*pow5(saturate(1.0-VdotN));\x0a}\x0a#endif\x0a#if\x20defined(SHEEN)\x20&&\x20defined(ENVIRONMENTBRDF)\x0a/**\x0a*\x20The\x20sheen\x20BRDF\x20not\x20containing\x20F\x20can\x20be\x20easily\x20stored\x20in\x20the\x20blue\x20channel\x20of\x20the\x20BRDF\x20texture.\x0a*\x20The\x20blue\x20channel\x20contains\x20DCharlie*VAshikhmin*NdotL\x20as\x20a\x20lokkup\x20table\x0a*/\x0avec3\x20getSheenReflectanceFromBRDFLookup(const\x20vec3\x20reflectance0,const\x20vec3\x20environmentBrdf)\x20{\x0avec3\x20sheenEnvironmentReflectance=reflectance0*environmentBrdf.b;\x0areturn\x20sheenEnvironmentReflectance;\x0a}\x0a#endif\x0avec3\x20fresnelSchlickGGX(float\x20VdotH,vec3\x20reflectance0,vec3\x20reflectance90)\x0a{\x0areturn\x20reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\x0a}\x0afloat\x20fresnelSchlickGGX(float\x20VdotH,float\x20reflectance0,float\x20reflectance90)\x0a{\x0areturn\x20reflectance0+(reflectance90-reflectance0)*pow5(1.0-VdotH);\x0a}\x0a#ifdef\x20CLEARCOAT\x0avec3\x20getR0RemappedForClearCoat(vec3\x20f0)\x20{\x0a#ifdef\x20CLEARCOAT_DEFAULTIOR\x0a#ifdef\x20MOBILE\x0areturn\x20saturate(f0*(f0*0.526868+0.529324)-0.0482256);\x0a#else\x0areturn\x20saturate(f0*(f0*(0.941892-0.263008*f0)+0.346479)-0.0285998);\x0a#endif\x0a#else\x0avec3\x20s=sqrt(f0);\x0avec3\x20t=(vClearCoatRefractionParams.z+vClearCoatRefractionParams.w*s)/(vClearCoatRefractionParams.w+vClearCoatRefractionParams.z*s);\x0areturn\x20square(t);\x0a#endif\x0a}\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0aconst\x20mat3\x20XYZ_TO_REC709=mat3(\x0a3.2404542,-0.9692660,\x200.0556434,\x0a-1.5371385,\x201.8760108,-0.2040259,\x0a-0.4985314,\x200.0415560,\x201.0572252\x0a);\x0avec3\x20getIORTfromAirToSurfaceR0(vec3\x20f0)\x20{\x0avec3\x20sqrtF0=sqrt(f0);\x0areturn\x20(1.+sqrtF0)/(1.-sqrtF0);\x0a}\x0avec3\x20getR0fromIORs(vec3\x20iorT,float\x20iorI)\x20{\x0areturn\x20square((iorT-vec3(iorI))/(iorT+vec3(iorI)));\x0a}\x0afloat\x20getR0fromIORs(float\x20iorT,float\x20iorI)\x20{\x0areturn\x20square((iorT-iorI)/(iorT+iorI));\x0a}\x0avec3\x20evalSensitivity(float\x20opd,vec3\x20shift)\x20{\x0afloat\x20phase=2.0*PI*opd*1.0e-9;\x0aconst\x20vec3\x20val=vec3(5.4856e-13,4.4201e-13,5.2481e-13);\x0aconst\x20vec3\x20pos=vec3(1.6810e+06,1.7953e+06,2.2084e+06);\x0aconst\x20vec3\x20var=vec3(4.3278e+09,9.3046e+09,6.6121e+09);\x0avec3\x20xyz=val*sqrt(2.0*PI*var)*cos(pos*phase+shift)*exp(-square(phase)*var);\x0axyz.x+=9.7470e-14*sqrt(2.0*PI*4.5282e+09)*cos(2.2399e+06*phase+shift[0])*exp(-4.5282e+09*square(phase));\x0axyz/=1.0685e-7;\x0avec3\x20srgb=XYZ_TO_REC709*xyz;\x0areturn\x20srgb;\x0a}\x0avec3\x20evalIridescence(float\x20outsideIOR,float\x20eta2,float\x20cosTheta1,float\x20thinFilmThickness,vec3\x20baseF0)\x20{\x0avec3\x20I=vec3(1.0);\x0afloat\x20iridescenceIOR=mix(outsideIOR,eta2,smoothstep(0.0,0.03,thinFilmThickness));\x0afloat\x20sinTheta2Sq=square(outsideIOR/iridescenceIOR)*(1.0-square(cosTheta1));\x0afloat\x20cosTheta2Sq=1.0-sinTheta2Sq;\x0aif\x20(cosTheta2Sq<0.0)\x20{\x0areturn\x20I;\x0a}\x0afloat\x20cosTheta2=sqrt(cosTheta2Sq);\x0afloat\x20R0=getR0fromIORs(iridescenceIOR,outsideIOR);\x0afloat\x20R12=fresnelSchlickGGX(cosTheta1,R0,1.);\x0afloat\x20R21=R12;\x0afloat\x20T121=1.0-R12;\x0afloat\x20phi12=0.0;\x0aif\x20(iridescenceIOR<outsideIOR)\x20phi12=PI;\x0afloat\x20phi21=PI-phi12;\x0avec3\x20baseIOR=getIORTfromAirToSurfaceR0(clamp(baseF0,0.0,0.9999));\x20\x0avec3\x20R1=getR0fromIORs(baseIOR,iridescenceIOR);\x0avec3\x20R23=fresnelSchlickGGX(cosTheta2,R1,vec3(1.));\x0avec3\x20phi23=vec3(0.0);\x0aif\x20(baseIOR[0]<iridescenceIOR)\x20phi23[0]=PI;\x0aif\x20(baseIOR[1]<iridescenceIOR)\x20phi23[1]=PI;\x0aif\x20(baseIOR[2]<iridescenceIOR)\x20phi23[2]=PI;\x0afloat\x20opd=2.0*iridescenceIOR*thinFilmThickness*cosTheta2;\x0avec3\x20phi=vec3(phi21)+phi23;\x0avec3\x20R123=clamp(R12*R23,1e-5,0.9999);\x0avec3\x20r123=sqrt(R123);\x0avec3\x20Rs=square(T121)*R23/(vec3(1.0)-R123);\x0avec3\x20C0=R12+Rs;\x0aI=C0;\x0avec3\x20Cm=Rs-T121;\x0afor\x20(int\x20m=1;\x20m<=2;\x20++m)\x0a{\x0aCm*=r123;\x0avec3\x20Sm=2.0*evalSensitivity(float(m)*opd,float(m)*phi);\x0aI+=Cm*Sm;\x0a}\x0areturn\x20max(I,vec3(0.0));\x0a}\x0a#endif\x0afloat\x20normalDistributionFunction_TrowbridgeReitzGGX(float\x20NdotH,float\x20alphaG)\x0a{\x0afloat\x20a2=square(alphaG);\x0afloat\x20d=NdotH*NdotH*(a2-1.0)+1.0;\x0areturn\x20a2/(PI*d*d);\x0a}\x0a#ifdef\x20SHEEN\x0afloat\x20normalDistributionFunction_CharlieSheen(float\x20NdotH,float\x20alphaG)\x0a{\x0afloat\x20invR=1./alphaG;\x0afloat\x20cos2h=NdotH*NdotH;\x0afloat\x20sin2h=1.-cos2h;\x0areturn\x20(2.+invR)*pow(sin2h,invR*.5)/(2.*PI);\x0a}\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0afloat\x20normalDistributionFunction_BurleyGGX_Anisotropic(float\x20NdotH,float\x20TdotH,float\x20BdotH,const\x20vec2\x20alphaTB)\x20{\x0afloat\x20a2=alphaTB.x*alphaTB.y;\x0avec3\x20v=vec3(alphaTB.y*TdotH,alphaTB.x\x20*BdotH,a2*NdotH);\x0afloat\x20v2=dot(v,v);\x0afloat\x20w2=a2/v2;\x0areturn\x20a2*w2*w2*RECIPROCAL_PI;\x0a}\x0a#endif\x0a#ifdef\x20BRDF_V_HEIGHT_CORRELATED\x0afloat\x20smithVisibility_GGXCorrelated(float\x20NdotL,float\x20NdotV,float\x20alphaG)\x20{\x0a#ifdef\x20MOBILE\x0afloat\x20GGXV=NdotL*(NdotV*(1.0-alphaG)+alphaG);\x0afloat\x20GGXL=NdotV*(NdotL*(1.0-alphaG)+alphaG);\x0areturn\x200.5/(GGXV+GGXL);\x0a#else\x0afloat\x20a2=alphaG*alphaG;\x0afloat\x20GGXV=NdotL*sqrt(NdotV*(NdotV-a2*NdotV)+a2);\x0afloat\x20GGXL=NdotV*sqrt(NdotL*(NdotL-a2*NdotL)+a2);\x0areturn\x200.5/(GGXV+GGXL);\x0a#endif\x0a}\x0a#else\x0afloat\x20smithVisibilityG1_TrowbridgeReitzGGXFast(float\x20dot,float\x20alphaG)\x0a{\x0a#ifdef\x20MOBILE\x0areturn\x201.0/(dot+alphaG+(1.0-alphaG)*dot\x20));\x0a#else\x0afloat\x20alphaSquared=alphaG*alphaG;\x0areturn\x201.0/(dot+sqrt(alphaSquared+(1.0-alphaSquared)*dot*dot));\x0a#endif\x0a}\x0afloat\x20smithVisibility_TrowbridgeReitzGGXFast(float\x20NdotL,float\x20NdotV,float\x20alphaG)\x0a{\x0afloat\x20visibility=smithVisibilityG1_TrowbridgeReitzGGXFast(NdotL,alphaG)*smithVisibilityG1_TrowbridgeReitzGGXFast(NdotV,alphaG);\x0areturn\x20visibility;\x0a}\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0afloat\x20smithVisibility_GGXCorrelated_Anisotropic(float\x20NdotL,float\x20NdotV,float\x20TdotV,float\x20BdotV,float\x20TdotL,float\x20BdotL,const\x20vec2\x20alphaTB)\x20{\x0afloat\x20lambdaV=NdotL*length(vec3(alphaTB.x*TdotV,alphaTB.y*BdotV,NdotV));\x0afloat\x20lambdaL=NdotV*length(vec3(alphaTB.x*TdotL,alphaTB.y*BdotL,NdotL));\x0afloat\x20v=0.5/(lambdaV+lambdaL);\x0areturn\x20v;\x0a}\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0afloat\x20visibility_Kelemen(float\x20VdotH)\x20{\x0areturn\x200.25/(VdotH*VdotH);\x20\x0a}\x0a#endif\x0a#ifdef\x20SHEEN\x0afloat\x20visibility_Ashikhmin(float\x20NdotL,float\x20NdotV)\x0a{\x0areturn\x201./(4.*(NdotL+NdotV-NdotL*NdotV));\x0a}\x0a/*\x20NOT\x20USED\x0a#ifdef\x20SHEEN_SOFTER\x0afloat\x20l(float\x20x,float\x20alphaG)\x0a{\x0afloat\x20oneMinusAlphaSq=(1.0-alphaG)*(1.0-alphaG);\x0afloat\x20a=mix(21.5473,25.3245,oneMinusAlphaSq);\x0afloat\x20b=mix(3.82987,3.32435,oneMinusAlphaSq);\x0afloat\x20c=mix(0.19823,0.16801,oneMinusAlphaSq);\x0afloat\x20d=mix(-1.97760,-1.27393,oneMinusAlphaSq);\x0afloat\x20e=mix(-4.32054,-4.85967,oneMinusAlphaSq);\x0areturn\x20a/(1.0+b*pow(x,c))+d*x+e;\x0a}\x0afloat\x20lambdaSheen(float\x20cosTheta,float\x20alphaG)\x0a{\x0areturn\x20abs(cosTheta)<0.5\x20?\x20exp(l(cosTheta,alphaG))\x20:\x20exp(2.0*l(0.5,alphaG)-l(1.0-cosTheta,alphaG));\x0a}\x0afloat\x20visibility_CharlieSheen(float\x20NdotL,float\x20NdotV,float\x20alphaG)\x0a{\x0afloat\x20G=1.0/(1.0+lambdaSheen(NdotV,alphaG)+lambdaSheen(NdotL,alphaG));\x0areturn\x20G/(4.0*NdotV*NdotL);\x0a}\x0a#endif\x0a*/\x0a#endif\x0afloat\x20diffuseBRDF_Burley(float\x20NdotL,float\x20NdotV,float\x20VdotH,float\x20roughness)\x20{\x0afloat\x20diffuseFresnelNV=pow5(saturateEps(1.0-NdotL));\x0afloat\x20diffuseFresnelNL=pow5(saturateEps(1.0-NdotV));\x0afloat\x20diffuseFresnel90=0.5+2.0*VdotH*VdotH*roughness;\x0afloat\x20fresnel\x20=\x0a(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNL)\x20*\x0a(1.0+(diffuseFresnel90-1.0)*diffuseFresnelNV);\x0areturn\x20fresnel/PI;\x0a}\x0a#ifdef\x20SS_TRANSLUCENCY\x0avec3\x20transmittanceBRDF_Burley(const\x20vec3\x20tintColor,const\x20vec3\x20diffusionDistance,float\x20thickness)\x20{\x0avec3\x20S=1./maxEps(diffusionDistance);\x0avec3\x20temp=exp((-0.333333333*thickness)*S);\x0areturn\x20tintColor.rgb*0.25*(temp*temp*temp+3.0*temp);\x0a}\x0afloat\x20computeWrappedDiffuseNdotL(float\x20NdotL,float\x20w)\x20{\x0afloat\x20t=1.0+w;\x0afloat\x20invt2=1.0/square(t);\x0areturn\x20saturate((NdotL+w)*invt2);\x0a}\x0a#endif\x0a';},0xc853:(_0x276c3a,_0x14dc57,_0x37b70b)=>{var _0x5da1c3=a6_0x1e64fa,_0x5938a8=_0x37b70b(0x17a92);_0x37b70b(0x6cce),_0x37b70b(0x11fa6),_0x5938a8['v'][_0x5da1c3(0x7df)]['pbrUboDeclaration']=_0x5da1c3(0x41f);},0x67c9:(_0x5ad319,_0x1bf5db,_0x4f40f5)=>{var _0x52c8d4=a6_0x1e64fa;_0x4f40f5(0x17a92)['v']['IncludesShadersStore'][_0x52c8d4(0x677)]=_0x52c8d4(0x41e);},0x1abd:(_0x5799bb,_0x439acd,_0x425dbd)=>{var _0x721fad=a6_0x1e64fa;_0x425dbd(0x17a92)['v'][_0x721fad(0x7df)][_0x721fad(0xae5)]=_0x721fad(0x329);},0x18442:(_0x2ef007,_0x2032bb,_0x157c95)=>{var _0x36fa4f=a6_0x1e64fa;_0x157c95(0x17a92)['v'][_0x36fa4f(0x7df)][_0x36fa4f(0x4f7)]=_0x36fa4f(0x9b1);},0x11645:(_0x451502,_0x524fdc,_0x2712bf)=>{var _0xd6082a=a6_0x1e64fa;_0x2712bf(0x17a92)['v']['IncludesShadersStore'][_0xd6082a(0x2cf)]=_0xd6082a(0x609);},0x126e8:(_0x5bfe2b,_0x11183c,_0x210dfa)=>{var _0x4f0917=a6_0x1e64fa;_0x210dfa(0x17a92)['v'][_0x4f0917(0x7df)][_0x4f0917(0x19e)]=_0x4f0917(0xa4e);},0x15b7a:(_0x497868,_0x9c86b0,_0x4bf68d)=>{var _0x2f588f=a6_0x1e64fa;_0x4bf68d(0x17a92)['v'][_0x2f588f(0x7df)][_0x2f588f(0xb03)]='#if\x20defined(_DEFINENAME_)\x20&&\x20_DEFINENAME_DIRECTUV==0\x0avarying\x20vec2\x20v_VARYINGNAME_UV;\x0a#endif\x0a';},0x2f27:(_0x312d04,_0x583ad8,_0x5100b4)=>{var _0x11afb8=a6_0x1e64fa;_0x5100b4(0x17a92)['v']['IncludesShadersStore'][_0x11afb8(0x8e4)]=_0x11afb8(0x49f);},0x6cce:(_0x1a5999,_0x1d434e,_0x16fff2)=>{var _0x2a468e=a6_0x1e64fa;_0x16fff2(0x17a92)['v'][_0x2a468e(0x7df)][_0x2a468e(0xd12)]=_0x2a468e(0x17b);},0x4547:(_0x54d720,_0x268b00,_0x4a55ac)=>{var _0x280bfc=a6_0x1e64fa;_0x4a55ac(0x17a92)['v'][_0x280bfc(0x7df)][_0x280bfc(0x660)]=_0x280bfc(0x195);},0x1f85:(_0x1f675f,_0x11cb14,_0x29bb77)=>{var _0x70aa59=a6_0x1e64fa;_0x29bb77(0x17a92)['v'][_0x70aa59(0x7df)]['shadowsFragmentFunctions']=_0x70aa59(0x140);},0x6e75:(_0x269718,_0x4e8a02,_0x41c0a7)=>{var _0x1d6897=a6_0x1e64fa;_0x41c0a7(0x17a92)['v'][_0x1d6897(0x7df)][_0x1d6897(0xca3)]='#ifdef\x20SHADOWS\x0a#if\x20defined(SHADOWCSM{X})\x0avPositionFromCamera{X}=view*worldPos;\x0afor\x20(int\x20i=0;\x20i<SHADOWCSMNUM_CASCADES{X};\x20i++)\x20{\x0avPositionFromLight{X}[i]=lightMatrix{X}[i]*worldPos;\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0avDepthMetric{X}[i]=(-vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;\x0a#else\x0avDepthMetric{X}[i]=(vPositionFromLight{X}[i].z+light{X}.depthValues.x)/light{X}.depthValues.y;\x0a#endif\x0a}\x0a#elif\x20defined(SHADOW{X})\x20&&\x20!defined(SHADOWCUBE{X})\x0avPositionFromLight{X}=lightMatrix{X}*worldPos;\x0a#ifdef\x20USE_REVERSE_DEPTHBUFFER\x0avDepthMetric{X}=(-vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;\x0a#else\x0avDepthMetric{X}=(vPositionFromLight{X}.z+light{X}.depthValues.x)/light{X}.depthValues.y;\x0a#endif\x0a#endif\x0a#endif\x0a';},0x6b23:(_0x20a7db,_0x1722c5,_0x4f9092)=>{var _0x451785=a6_0x1e64fa;_0x4f9092(0x17a92)['v'][_0x451785(0x7df)][_0x451785(0xa24)]=_0x451785(0x894);},0x17bd8:(_0x340863,_0x474965,_0x1e62e2)=>{var _0x5a4106=a6_0x1e64fa;_0x1e62e2(0x17a92)['v']['IncludesShadersStore'][_0x5a4106(0x958)]='#ifdef\x20UV{X}\x0aattribute\x20vec2\x20uv{X};\x0a#endif\x0a';},0xd68d:(_0x3b2a94,_0x139002,_0x44a7fd)=>{var _0x5c8c59=a6_0x1e64fa;_0x44a7fd(0x17a92)['v']['IncludesShadersStore']['uvVariableDeclaration']=_0x5c8c59(0x904);},0xedb9:(_0x33b6fd,_0x32f24e,_0x4c0bf9)=>{var _0x57c005=a6_0x1e64fa;_0x4c0bf9(0x17a92)['v'][_0x57c005(0x7df)][_0x57c005(0x2f9)]=_0x57c005(0xada);},0x16944:(_0x4c70c7,_0x1bc820,_0x35e648)=>{var _0x487d36=a6_0x1e64fa;_0x35e648(0x17a92)['v'][_0x487d36(0xcd6)][_0x487d36(0xc6e)]=_0x487d36(0x9d4);},0x2318:(_0x285911,_0x536fdf,_0x5b012f)=>{var _0x2abcbe=a6_0x1e64fa,_0x1e14f3=_0x5b012f(0x17a92);_0x1e14f3['v']['IncludesShadersStore'][_0x2abcbe(0x98c)]=_0x2abcbe(0x18e),_0x5b012f(0x6052),_0x5b012f(0x175b0),_0x5b012f(0x11645),_0x5b012f(0x16c11),_0x5b012f(0xe6c7),_0x5b012f(0x15fb5),_0x5b012f(0x1f57),_0x5b012f(0x1f85),_0x5b012f(0x119a9),_0x5b012f(0xff1b),_0x5b012f(0x12a16),_0x5b012f(0x3328),_0x5b012f(0xb0bc),_0x5b012f(0x10ef),_0x1e14f3['v'][_0x2abcbe(0xcd6)][_0x2abcbe(0x39f)]=_0x2abcbe(0x96c);},0xa0d7:(_0x1e959c,_0x591b8c,_0x1226a7)=>{var _0x406b4e=a6_0x1e64fa,_0xe612c4=_0x1226a7(0x17a92);_0xe612c4['v'][_0x406b4e(0x7df)][_0x406b4e(0x3da)]=_0x406b4e(0x640),_0x1226a7(0x6052),_0x1226a7(0x175b0),_0x1226a7(0x13f9a),_0x1226a7(0x12929),_0x1226a7(0x12bc6),_0x1226a7(0x13216),_0x1226a7(0x6a99),_0x1226a7(0x1b3f),_0x1226a7(0xc971),_0x1226a7(0x733d),_0x1226a7(0xb434),_0x1226a7(0xdcea),_0x1226a7(0x6efd),_0x1226a7(0x9871),_0x1226a7(0x6e75),_0xe612c4['v'][_0x406b4e(0xcd6)][_0x406b4e(0x74b)]=_0x406b4e(0x841);},0x16de7:(_0x1e9545,_0x364d6c,_0x1e7c96)=>{var _0x407358=a6_0x1e64fa;_0x1e7c96(0x17a92)['v'][_0x407358(0xcd6)][_0x407358(0xc4c)]=_0x407358(0x291);},0x51b7:(_0x65fd6d,_0xf38e34,_0x597606)=>{var _0x36b2f5=a6_0x1e64fa;_0x597606(0x17a92)['v'][_0x36b2f5(0xcd6)][_0x36b2f5(0x278)]=_0x36b2f5(0x761);},0x1660e:(_0x2ac694,_0x5c1ce7,_0x125696)=>{var _0x109cf3=a6_0x1e64fa,_0x1a165d=_0x125696(0x17a92);_0x1a165d['v'][_0x109cf3(0x7df)][_0x109cf3(0xd1e)]=_0x109cf3(0x3d0),_0x125696(0x140f3),_0x1a165d['v'][_0x109cf3(0xcd6)][_0x109cf3(0xc53)]=_0x109cf3(0x3e5);},0x885c:(_0x1856c8,_0xb32d58,_0x573589)=>{var _0x4e80cb=a6_0x1e64fa,_0x2ab4e7=_0x573589(0x17a92);_0x2ab4e7['v'][_0x4e80cb(0x7df)]['boundingBoxRendererVertexDeclaration']=_0x4e80cb(0x959),_0x573589(0x140f3),_0x2ab4e7['v'][_0x4e80cb(0xcd6)][_0x4e80cb(0x6d4)]=_0x4e80cb(0x2c9);},0x9518:(_0x118882,_0x1993a3,_0x52a5de)=>{var _0x24baa7=a6_0x1e64fa;_0x52a5de(0x17a92)['v']['ShadersStore'][_0x24baa7(0xb4c)]='uniform\x20sampler2D\x20textureSampler;\x20\x0auniform\x20float\x20chromatic_aberration;\x0auniform\x20float\x20radialIntensity;\x0auniform\x20vec2\x20direction;\x0auniform\x20vec2\x20centerPosition;\x0auniform\x20float\x20screen_width;\x0auniform\x20float\x20screen_height;\x0avarying\x20vec2\x20vUV;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec2\x20centered_screen_pos=vec2(vUV.x-centerPosition.x,vUV.y-centerPosition.y);\x0avec2\x20directionOfEffect=direction;\x0aif(directionOfEffect.x==0.\x20&&\x20directionOfEffect.y==0.){\x0adirectionOfEffect=normalize(centered_screen_pos);\x0a}\x0afloat\x20radius2=centered_screen_pos.x*centered_screen_pos.x\x0a+\x20centered_screen_pos.y*centered_screen_pos.y;\x0afloat\x20radius=sqrt(radius2);\x0avec4\x20original=texture2D(textureSampler,vUV);\x0avec3\x20ref_indices=vec3(-0.3,0.0,0.3);\x0afloat\x20ref_shiftX=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.x/screen_width;\x0afloat\x20ref_shiftY=chromatic_aberration*pow(radius,radialIntensity)*directionOfEffect.y/screen_height;\x0avec2\x20ref_coords_r=vec2(vUV.x+ref_indices.r*ref_shiftX,vUV.y+ref_indices.r*ref_shiftY*0.5);\x0avec2\x20ref_coords_g=vec2(vUV.x+ref_indices.g*ref_shiftX,vUV.y+ref_indices.g*ref_shiftY*0.5);\x0avec2\x20ref_coords_b=vec2(vUV.x+ref_indices.b*ref_shiftX,vUV.y+ref_indices.b*ref_shiftY*0.5);\x0aoriginal.r=texture2D(textureSampler,ref_coords_r).r;\x0aoriginal.g=texture2D(textureSampler,ref_coords_g).g;\x0aoriginal.b=texture2D(textureSampler,ref_coords_b).b;\x0aoriginal.a=clamp(texture2D(textureSampler,ref_coords_r).a+texture2D(textureSampler,ref_coords_g).a+texture2D(textureSampler,ref_coords_b).a,0.,1.);\x0agl_FragColor=original;\x0a}';},0x1411e:(_0x2e9b9e,_0x4212d6,_0x29bb63)=>{var _0x1866c6=a6_0x1e64fa;_0x29bb63(0x17a92)['v'][_0x1866c6(0xcd6)][_0x1866c6(0xca0)]='uniform\x20sampler2D\x20depthSampler;\x0avarying\x20vec2\x20vUV;\x0auniform\x20vec2\x20cameraMinMaxZ;\x0auniform\x20float\x20focusDistance;\x0auniform\x20float\x20cocPrecalculation;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0afloat\x20depth=texture2D(depthSampler,vUV).r;\x0a#define\x20CUSTOM_COC_DEPTH\x0afloat\x20pixelDistance=(cameraMinMaxZ.x+cameraMinMaxZ.y*depth)*1000.0;\x20\x0a#define\x20CUSTOM_COC_PIXELDISTANCE\x0afloat\x20coc=abs(cocPrecalculation*((focusDistance-pixelDistance)/pixelDistance));\x0acoc=clamp(coc,0.0,1.0);\x0agl_FragColor=vec4(coc,coc,coc,1.0);\x0a}\x0a';},0x119:(_0x1920bf,_0x29e846,_0x26556e)=>{var _0xd20389=a6_0x1e64fa,_0x2b479e=_0x26556e(0x17a92);_0x26556e(0xff1b),_0x26556e(0x3328),_0x2b479e['v'][_0xd20389(0xcd6)][_0xd20389(0x31a)]=_0xd20389(0xab3);},0x17a74:(_0xfc08f5,_0x496674,_0x136694)=>{var _0x484e3e=a6_0x1e64fa,_0x4272a5=_0x136694(0x17a92);_0x136694(0x13f9a),_0x136694(0x12929),_0x136694(0x13216),_0x136694(0x12bc6),_0x136694(0x733d),_0x136694(0xb434),_0x136694(0xdcea),_0x136694(0x6efd),_0x136694(0xedb9),_0x4272a5['v']['ShadersStore'][_0x484e3e(0x308)]=_0x484e3e(0xc26);},0xbba1:(_0x328519,_0xcfd379,_0x16cf1c)=>{var _0x349b19=a6_0x1e64fa;_0x16cf1c(0x17a92)['v'][_0x349b19(0xcd6)]['colorCorrectionPixelShader']=_0x349b19(0x793);},0x10824:(_0x1b93c1,_0xc7e406,_0x985b42)=>{var _0x473e9d=a6_0x1e64fa;_0x985b42(0x17a92)['v'][_0x473e9d(0xcd6)][_0x473e9d(0x783)]=_0x473e9d(0xc8a);},0x11840:(_0x398b6c,_0x4c85c1,_0x6f506d)=>{var _0x20d41f=a6_0x1e64fa,_0x3ec755=_0x6f506d(0x17a92);_0x6f506d(0x175b0),_0x3ec755['v']['ShadersStore'][_0x20d41f(0x229)]=_0x20d41f(0x52b);},0x1859e:(_0x185846,_0x266054,_0x4987ae)=>{var _0x447c2c=a6_0x1e64fa,_0x3a2c69=_0x4987ae(0x17a92);_0x4987ae(0xf57c),_0x3a2c69['v'][_0x447c2c(0x7df)][_0x447c2c(0x6c5)]=_0x447c2c(0x282),_0x4987ae(0x4bc6),_0x4987ae(0x67c9),_0x4987ae(0xa8cd),_0x4987ae(0x94fa),_0x4987ae(0x175b0),_0x4987ae(0xe6c7),_0x4987ae(0x15fb5),_0x4987ae(0x1f57),_0x4987ae(0x1f85),_0x4987ae(0x126e8),_0x4987ae(0xb008),_0x4987ae(0x11645),_0x4987ae(0x16c11),_0x4987ae(0x119a9),_0x4987ae(0x8cac),_0x4987ae(0xe577),_0x4987ae(0xff1b),_0x4987ae(0x17bd9),_0x4987ae(0x12a16),_0x4987ae(0x3328),_0x4987ae(0x6664),_0x4987ae(0xcff7),_0x4987ae(0x6318),_0x4987ae(0xb0bc),_0x4987ae(0x1445f),_0x4987ae(0x10ef),_0x4987ae(0xa965),_0x3a2c69['v'][_0x447c2c(0xcd6)][_0x447c2c(0xc0d)]=_0x447c2c(0x290);},0xf570:(_0x1c83e8,_0x1a0ea5,_0x3cc453)=>{var _0x4b2428=a6_0x1e64fa,_0x1ae3c0=_0x3cc453(0x17a92);_0x3cc453(0x2826),_0x1ae3c0['v']['IncludesShadersStore']['defaultVertexDeclaration']=_0x4b2428(0x49e),_0x3cc453(0x4bc6),_0x3cc453(0x17bd8),_0x3cc453(0x175b0),_0x3cc453(0x13f9a),_0x3cc453(0x12929),_0x3cc453(0x12bc6),_0x3cc453(0x18442),_0x3cc453(0x94fa),_0x3cc453(0x15b7a),_0x3cc453(0x8785),_0x3cc453(0x13216),_0x3cc453(0x6a99),_0x3cc453(0x1b3f),_0x3cc453(0xc971),_0x3cc453(0x9ea3),_0x3cc453(0x12abc),_0x3cc453(0x17bd9),_0x3cc453(0x13906),_0x3cc453(0x1070),_0x3cc453(0x733d),_0x3cc453(0xb434),_0x3cc453(0xdcea),_0x3cc453(0x1abd),_0x3cc453(0xd68d),_0x3cc453(0x2f27),_0x3cc453(0xced6),_0x3cc453(0x6efd),_0x3cc453(0x9871),_0x3cc453(0x6e75),_0x3cc453(0xedb9),_0x1ae3c0['v'][_0x4b2428(0x7df)]['pointCloudVertex']=_0x4b2428(0x8a9),_0x3cc453(0x13da6),_0x1ae3c0['v'][_0x4b2428(0xcd6)]['defaultVertexShader']=_0x4b2428(0x773);},0x5012:(_0xd5c484,_0x5dc7c,_0x1b0f56)=>{var _0x3521a7=a6_0x1e64fa,_0x156165=_0x1b0f56(0x17a92);_0x1b0f56(0xff1b),_0x1b0f56(0xe85e),_0x1b0f56(0x3328),_0x156165['v'][_0x3521a7(0xcd6)]['depthPixelShader']=_0x3521a7(0x2b6);},0xcf33:(_0x3ef5f7,_0x326472,_0x11f976)=>{var _0x48f719=a6_0x1e64fa,_0x3646c9=_0x11f976(0x17a92);_0x11f976(0x13f9a),_0x11f976(0x12929),_0x11f976(0x9ea3),_0x11f976(0x12abc),_0x11f976(0x13216),_0x11f976(0x12bc6),_0x11f976(0x13906),_0x11f976(0x1070),_0x11f976(0x733d),_0x11f976(0xb434),_0x11f976(0xdcea),_0x11f976(0x6efd),_0x3646c9['v']['ShadersStore'][_0x48f719(0x5f8)]=_0x48f719(0x432);},0x66e6:(_0x336427,_0xb76c7,_0x9b3960)=>{var _0xb8ec56=a6_0x1e64fa;_0x9b3960(0x17a92)['v'][_0xb8ec56(0xcd6)][_0xb8ec56(0x795)]=_0xb8ec56(0x975);},0x1006d:(_0x154f38,_0x1b3e57,_0x58e4d2)=>{var _0x2a3378=a6_0x1e64fa;_0x58e4d2(0x17a92)['v']['ShadersStore']['depthOfFieldPixelShader']=_0x2a3378(0xa89);},0x1203:(_0x16938a,_0x45ac1b,_0x39a64a)=>{var _0x2917ae=a6_0x1e64fa;_0x39a64a(0x17a92)['v'][_0x2917ae(0xcd6)]['depthOfFieldMergePixelShader']=_0x2917ae(0x3a9);},0x1157d:(_0x19d9e2,_0x266425,_0x199ce7)=>{var _0x2adb60=a6_0x1e64fa;_0x199ce7(0x17a92)['v'][_0x2adb60(0xcd6)]['displayPassPixelShader']=_0x2adb60(0xa3f);},0x2d30:(_0x70a326,_0x4bc1c0,_0x365f64)=>{var _0x4f37f0=a6_0x1e64fa,_0x3b3ed8=_0x365f64(0x17a92);_0x365f64(0x175b0),_0x3b3ed8['v'][_0x4f37f0(0xcd6)][_0x4f37f0(0xc8c)]=_0x4f37f0(0x77e);},0x5b3f:(_0x49cce9,_0x11fd66,_0x21a49c)=>{var _0x430ef9=a6_0x1e64fa;_0x21a49c(0x17a92)['v'][_0x430ef9(0xcd6)][_0x430ef9(0x800)]=_0x430ef9(0x581);},0xf945:(_0x51af73,_0xf4ce00,_0x3a519e)=>{var _0x574f41=a6_0x1e64fa;_0x3a519e(0x17a92)['v'][_0x574f41(0xcd6)][_0x574f41(0x8f9)]=_0x574f41(0x207);},0x10315:(_0xfe8310,_0x3fedc5,_0x22fd7a)=>{var _0x1916d9=a6_0x1e64fa;_0x22fd7a(0x17a92)['v'][_0x1916d9(0xcd6)]['fluidRenderingParticleDepthPixelShader']='uniform\x20mat4\x20projection;\x0avarying\x20vec2\x20uv;\x0avarying\x20vec3\x20viewPos;\x0avarying\x20float\x20sphereRadius;\x0a#ifdef\x20FLUIDRENDERING_VELOCITY\x0avarying\x20float\x20velocityNorm;\x0a#endif\x0avoid\x20main(void)\x20{\x0avec3\x20normal;\x0anormal.xy=uv*2.0-1.0;\x0afloat\x20r2=dot(normal.xy,normal.xy);\x0aif\x20(r2>1.0)\x20discard;\x0anormal.z=sqrt(1.0-r2);\x0a#ifndef\x20FLUIDRENDERING_RHS\x0anormal.z=-normal.z;\x0a#endif\x0avec4\x20realViewPos=vec4(viewPos+normal*sphereRadius,1.0);\x0avec4\x20clipSpacePos=projection*realViewPos;\x0a#ifdef\x20WEBGPU\x0agl_FragDepth=clipSpacePos.z/clipSpacePos.w;\x0a#else\x0agl_FragDepth=(clipSpacePos.z/clipSpacePos.w)*0.5+0.5;\x0a#endif\x0a#ifdef\x20FLUIDRENDERING_RHS\x0arealViewPos.z=-realViewPos.z;\x0a#endif\x0a#ifdef\x20FLUIDRENDERING_VELOCITY\x0aglFragColor=vec4(realViewPos.z,velocityNorm,0.,1.);\x0a#else\x0aglFragColor=vec4(realViewPos.z,0.,0.,1.);\x0a#endif\x0a}\x0a';},0xd43b:(_0x520631,_0x42d5fa,_0xd42540)=>{var _0x4e8cbf=a6_0x1e64fa;_0xd42540(0x17a92)['v'][_0x4e8cbf(0xcd6)]['fluidRenderingParticleDepthVertexShader']='attribute\x20vec3\x20position;\x0aattribute\x20vec2\x20offset;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec2\x20size;\x0avarying\x20vec2\x20uv;\x0avarying\x20vec3\x20viewPos;\x0avarying\x20float\x20sphereRadius;\x0a#ifdef\x20FLUIDRENDERING_VELOCITY\x0aattribute\x20vec3\x20velocity;\x0avarying\x20float\x20velocityNorm;\x0a#endif\x0avoid\x20main(void)\x20{\x0avec3\x20cornerPos;\x0acornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;\x0acornerPos.z=0.0;\x0aviewPos=(view*vec4(position,1.0)).xyz;\x0agl_Position=projection*vec4(viewPos+cornerPos,1.0);\x0auv=offset;\x0asphereRadius=size.x/2.0;\x0a#ifdef\x20FLUIDRENDERING_VELOCITY\x0avelocityNorm=length(velocity);\x0a#endif\x0a}\x0a';},0x7cc8:(_0x1366ce,_0x5f5274,_0x123acb)=>{var _0x543945=a6_0x1e64fa;_0x123acb(0x17a92)['v'][_0x543945(0xcd6)][_0x543945(0x843)]=_0x543945(0xb64);},0x10c8:(_0x27cc5a,_0x562601,_0x36671f)=>{var _0x1b8e56=a6_0x1e64fa;_0x36671f(0x17a92)['v'][_0x1b8e56(0xcd6)][_0x1b8e56(0x48c)]=_0x1b8e56(0xa87);},0xd599:(_0x39d63a,_0x2e838f,_0x210778)=>{var _0x2337b7=a6_0x1e64fa;_0x210778(0x17a92)['v']['ShadersStore'][_0x2337b7(0x165)]=_0x2337b7(0x377);},0x11576:(_0xab5e99,_0x499899,_0x52660d)=>{var _0x887b25=a6_0x1e64fa;_0x52660d(0x17a92)['v']['ShadersStore'][_0x887b25(0x807)]='attribute\x20vec3\x20position;\x0aattribute\x20vec2\x20offset;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec2\x20size;\x0avarying\x20vec2\x20uv;\x0avoid\x20main(void)\x20{\x0avec3\x20cornerPos;\x0acornerPos.xy=vec2(offset.x-0.5,offset.y-0.5)*size;\x0acornerPos.z=0.0;\x0avec3\x20viewPos=(view*vec4(position,1.0)).xyz+cornerPos;\x0agl_Position=projection*vec4(viewPos,1.0);\x0auv=offset;\x0a}\x0a';},0xf9e7:(_0x5c707c,_0x13e80d,_0x3689a1)=>{var _0x5c3092=a6_0x1e64fa;_0x3689a1(0x17a92)['v']['ShadersStore']['fluidRenderingRenderPixelShader']=_0x5c3092(0x506);},0xdc0e:(_0x3ec5ac,_0x97e58f,_0x4beeac)=>{var _0xc39518=a6_0x1e64fa;_0x4beeac(0x17a92)['v'][_0xc39518(0xcd6)][_0xc39518(0x626)]=_0xc39518(0x86f);},0xd22e:(_0x348886,_0x1f4487,_0x31cec0)=>{var _0x469a94=a6_0x1e64fa;_0x31cec0(0x17a92)['v']['ShadersStore'][_0x469a94(0x78e)]=_0x469a94(0xcc6);},0x10cef:(_0x124d1f,_0xdb5598,_0xed87cd)=>{_0xed87cd(0x17a92)['v']['ShadersStore']['fxaaVertexShader']='attribute\x20vec2\x20position;\x0auniform\x20vec2\x20texelSize;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec2\x20sampleCoordS;\x0avarying\x20vec2\x20sampleCoordE;\x0avarying\x20vec2\x20sampleCoordN;\x0avarying\x20vec2\x20sampleCoordW;\x0avarying\x20vec2\x20sampleCoordNW;\x0avarying\x20vec2\x20sampleCoordSE;\x0avarying\x20vec2\x20sampleCoordNE;\x0avarying\x20vec2\x20sampleCoordSW;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avUV=(position*madd+madd);\x0asampleCoordS=vUV+vec2(\x200.0,1.0)*texelSize;\x0asampleCoordE=vUV+vec2(\x201.0,0.0)*texelSize;\x0asampleCoordN=vUV+vec2(\x200.0,-1.0)*texelSize;\x0asampleCoordW=vUV+vec2(-1.0,0.0)*texelSize;\x0asampleCoordNW=vUV+vec2(-1.0,-1.0)*texelSize;\x0asampleCoordSE=vUV+vec2(\x201.0,1.0)*texelSize;\x0asampleCoordNE=vUV+vec2(\x201.0,-1.0)*texelSize;\x0asampleCoordSW=vUV+vec2(-1.0,1.0)*texelSize;\x0agl_Position=vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}';},0x16ef7:(_0x2d873a,_0x1a1ee6,_0x5dd2da)=>{var _0x4b06bd=a6_0x1e64fa,_0x4b476a=_0x5dd2da(0x17a92);_0x5dd2da(0xff1b),_0x4b476a['v']['IncludesShadersStore'][_0x4b06bd(0x583)]='#if\x20defined(WEBGL2)\x20||\x20defined(WEBGPU)\x20||\x20defined(NATIVE)\x0alayout(location=0)\x20out\x20vec4\x20glFragData[{X}];\x0a#endif\x0a',_0x5dd2da(0x8cac),_0x5dd2da(0xe577),_0x5dd2da(0x175b0),_0x5dd2da(0x3328),_0x5dd2da(0x6664),_0x4b476a['v'][_0x4b06bd(0xcd6)]['geometryPixelShader']=_0x4b06bd(0xab1);},0x147cd:(_0xf82bb1,_0x408551,_0x3befd9)=>{var _0xe04c27=a6_0x1e64fa,_0x3776b8=_0x3befd9(0x17a92);_0x3befd9(0x13f9a),_0x3befd9(0x12929),_0x3befd9(0x9ea3),_0x3befd9(0x12abc),_0x3befd9(0x12bc6),_0x3776b8['v'][_0xe04c27(0x7df)][_0xe04c27(0x8ea)]=_0xe04c27(0x209),_0x3befd9(0x6cce),_0x3776b8['v'][_0xe04c27(0x7df)]['geometryUboDeclaration']=_0xe04c27(0x262),_0x3befd9(0x13216),_0x3befd9(0x13906),_0x3befd9(0x1070),_0x3befd9(0x733d),_0x3befd9(0xb434),_0x3befd9(0xdcea),_0x3befd9(0x6efd),_0x3befd9(0xced6),_0x3776b8['v'][_0xe04c27(0xcd6)][_0xe04c27(0x729)]=_0xe04c27(0xb3c);},0x969e:(_0x191b6b,_0x490bd9,_0x44179f)=>{var _0x1facef=a6_0x1e64fa;_0x44179f(0x17a92)['v'][_0x1facef(0xcd6)][_0x1facef(0xc24)]=_0x1facef(0x40a);},0x2a8d:(_0x152e34,_0xa4aa22,_0x272488)=>{var _0x2bb9bf=a6_0x1e64fa,_0x51d2e4=_0x272488(0x17a92);_0x272488(0x175b0),_0x272488(0xff1b),_0x272488(0x3328),_0x51d2e4['v']['ShadersStore'][_0x2bb9bf(0x9a8)]=_0x2bb9bf(0x44d);},0x14398:(_0x28e4bf,_0x542755,_0x25f74b)=>{var _0x3a721c=a6_0x1e64fa,_0x498d04=_0x25f74b(0x17a92);_0x25f74b(0x13f9a),_0x25f74b(0x12929),_0x25f74b(0x9ea3),_0x25f74b(0x12abc),_0x25f74b(0x13216),_0x25f74b(0x12bc6),_0x25f74b(0x13906),_0x25f74b(0x1070),_0x25f74b(0x733d),_0x25f74b(0xb434),_0x25f74b(0xdcea),_0x25f74b(0x6efd),_0x498d04['v'][_0x3a721c(0xcd6)][_0x3a721c(0x776)]=_0x3a721c(0x8cc);},0x16980:(_0x2139c1,_0x22d492,_0x4719b1)=>{var _0x525dc4=a6_0x1e64fa;_0x4719b1(0x17a92)['v'][_0x525dc4(0xcd6)][_0x525dc4(0x5ca)]=_0x525dc4(0x194);},0x13824:(_0x3f39c3,_0x26b9f6,_0xcb922c)=>{var _0x46d7ae=a6_0x1e64fa;_0xcb922c(0x17a92)['v'][_0x46d7ae(0xcd6)][_0x46d7ae(0x518)]=_0x46d7ae(0x36e);},0x136d7:(_0x76b3b,_0x559f32,_0x32c592)=>{var _0x31ad78=a6_0x1e64fa,_0x522644=_0x32c592(0x17a92);_0x522644['v'][_0x31ad78(0x7df)][_0x31ad78(0xb5d)]=_0x31ad78(0xa8c),_0x32c592(0x16c11),_0x32c592(0x17bd9),_0x32c592(0x175b0),_0x32c592(0x119a9),_0x32c592(0x3328),_0x32c592(0x1445f),_0x522644['v'][_0x31ad78(0xcd6)]['gpuRenderParticlesPixelShader']=_0x31ad78(0x24b);},0x4618:(_0x1f310e,_0x519b37,_0x593493)=>{var _0x26d246=a6_0x1e64fa,_0x1456d3=_0x593493(0x17a92);_0x1456d3['v'][_0x26d246(0x7df)][_0x26d246(0x82f)]='#ifdef\x20CLIPPLANE\x0auniform\x20vec4\x20vClipPlane;\x0aout\x20float\x20fClipDistance;\x0a#endif\x0a#ifdef\x20CLIPPLANE2\x0auniform\x20vec4\x20vClipPlane2;\x0aout\x20float\x20fClipDistance2;\x0a#endif\x0a#ifdef\x20CLIPPLANE3\x0auniform\x20vec4\x20vClipPlane3;\x0aout\x20float\x20fClipDistance3;\x0a#endif\x0a#ifdef\x20CLIPPLANE4\x0auniform\x20vec4\x20vClipPlane4;\x0aout\x20float\x20fClipDistance4;\x0a#endif\x0a#ifdef\x20CLIPPLANE5\x0auniform\x20vec4\x20vClipPlane5;\x0aout\x20float\x20fClipDistance5;\x0a#endif\x0a#ifdef\x20CLIPPLANE6\x0auniform\x20vec4\x20vClipPlane6;\x0aout\x20float\x20fClipDistance6;\x0a#endif\x0a',_0x593493(0x17bd9),_0x593493(0x6efd),_0x593493(0x13da6),_0x1456d3['v']['ShadersStore'][_0x26d246(0x8bd)]='precision\x20highp\x20float;\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20vec2\x20translationPivot;\x0auniform\x20vec3\x20worldOffset;\x0a#ifdef\x20LOCAL\x0auniform\x20mat4\x20emitterWM;\x0a#endif\x0aattribute\x20vec3\x20position;\x0aattribute\x20float\x20age;\x0aattribute\x20float\x20life;\x0aattribute\x20vec3\x20size;\x0a#ifndef\x20BILLBOARD\x0aattribute\x20vec3\x20initialDirection;\x0a#endif\x0a#ifdef\x20BILLBOARDSTRETCHED\x0aattribute\x20vec3\x20direction;\x0a#endif\x0aattribute\x20float\x20angle;\x0a#ifdef\x20ANIMATESHEET\x0aattribute\x20float\x20cellIndex;\x0a#endif\x0aattribute\x20vec2\x20offset;\x0aattribute\x20vec2\x20uv;\x0avarying\x20vec2\x20vUV;\x0avarying\x20vec4\x20vColor;\x0avarying\x20vec3\x20vPositionW;\x0a#if\x20defined(BILLBOARD)\x20&&\x20!defined(BILLBOARDY)\x20&&\x20!defined(BILLBOARDSTRETCHED)\x0auniform\x20mat4\x20invView;\x0a#endif\x0a#include<clipPlaneVertexDeclaration2>\x0a#include<logDepthDeclaration>\x0a#ifdef\x20COLORGRADIENTS\x0auniform\x20sampler2D\x20colorGradientSampler;\x0a#else\x0auniform\x20vec4\x20colorDead;\x0aattribute\x20vec4\x20color;\x0a#endif\x0a#ifdef\x20ANIMATESHEET\x0auniform\x20vec3\x20sheetInfos;\x0a#endif\x0a#ifdef\x20BILLBOARD\x0auniform\x20vec3\x20eyePosition;\x0a#endif\x0avec3\x20rotate(vec3\x20yaxis,vec3\x20rotatedCorner)\x20{\x0avec3\x20xaxis=normalize(cross(vec3(0.,1.0,0.),yaxis));\x0avec3\x20zaxis=normalize(cross(yaxis,xaxis));\x0avec3\x20row0=vec3(xaxis.x,xaxis.y,xaxis.z);\x0avec3\x20row1=vec3(yaxis.x,yaxis.y,yaxis.z);\x0avec3\x20row2=vec3(zaxis.x,zaxis.y,zaxis.z);\x0amat3\x20rotMatrix=\x20mat3(row0,row1,row2);\x0avec3\x20alignedCorner=rotMatrix*rotatedCorner;\x0a#ifdef\x20LOCAL\x0areturn\x20((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;\x0a#else\x0areturn\x20(position+worldOffset)+alignedCorner;\x0a#endif\x0a}\x0a#ifdef\x20BILLBOARDSTRETCHED\x0avec3\x20rotateAlign(vec3\x20toCamera,vec3\x20rotatedCorner)\x20{\x0avec3\x20normalizedToCamera=normalize(toCamera);\x0avec3\x20normalizedCrossDirToCamera=normalize(cross(normalize(direction),normalizedToCamera));\x0avec3\x20crossProduct=normalize(cross(normalizedToCamera,normalizedCrossDirToCamera));\x0avec3\x20row0=vec3(normalizedCrossDirToCamera.x,normalizedCrossDirToCamera.y,normalizedCrossDirToCamera.z);\x0avec3\x20row1=vec3(crossProduct.x,crossProduct.y,crossProduct.z);\x0avec3\x20row2=vec3(normalizedToCamera.x,normalizedToCamera.y,normalizedToCamera.z);\x0amat3\x20rotMatrix=\x20mat3(row0,row1,row2);\x0avec3\x20alignedCorner=rotMatrix*rotatedCorner;\x0a#ifdef\x20LOCAL\x0areturn\x20((emitterWM*vec4(position,1.0)).xyz+worldOffset)+alignedCorner;\x0a#else\x0areturn\x20(position+worldOffset)+alignedCorner;\x0a#endif\x0a}\x0a#endif\x0avoid\x20main()\x20{\x0a#ifdef\x20ANIMATESHEET\x0afloat\x20rowOffset=floor(cellIndex/sheetInfos.z);\x0afloat\x20columnOffset=cellIndex-rowOffset*sheetInfos.z;\x0avec2\x20uvScale=sheetInfos.xy;\x0avec2\x20uvOffset=vec2(uv.x\x20,1.0-uv.y);\x0avUV=(uvOffset+vec2(columnOffset,rowOffset))*uvScale;\x0a#else\x0avUV=uv;\x0a#endif\x0afloat\x20ratio=age/life;\x0a#ifdef\x20COLORGRADIENTS\x0avColor=texture2D(colorGradientSampler,vec2(ratio,0));\x0a#else\x0avColor=color*vec4(1.0-ratio)+colorDead*vec4(ratio);\x0a#endif\x0avec2\x20cornerPos=(offset-translationPivot)*size.yz*size.x+translationPivot;\x0a#ifdef\x20BILLBOARD\x0avec4\x20rotatedCorner;\x0arotatedCorner.w=0.;\x0a#ifdef\x20BILLBOARDY\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.y=0.;\x0avec3\x20yaxis=(position+worldOffset)-eyePosition;\x0ayaxis.y=0.;\x0avPositionW=rotate(normalize(yaxis),rotatedCorner.xyz);\x0avec4\x20viewPosition=(view*vec4(vPositionW,1.0));\x0a#elif\x20defined(BILLBOARDSTRETCHED)\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.z=0.;\x0avec3\x20toCamera=(position+worldOffset)-eyePosition;\x0avPositionW=rotateAlign(toCamera,rotatedCorner.xyz);\x0avec4\x20viewPosition=(view*vec4(vPositionW,1.0));\x0a#else\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0arotatedCorner.z=0.;\x0a#ifdef\x20LOCAL\x0avec4\x20viewPosition=view*vec4(((emitterWM*vec4(position,1.0)).xyz+worldOffset),1.0)+rotatedCorner;\x0a#else\x0avec4\x20viewPosition=view*vec4((position+worldOffset),1.0)+rotatedCorner;\x0a#endif\x0avPositionW=(invView*viewPosition).xyz;\x0a#endif\x0a#else\x0avec3\x20rotatedCorner;\x0arotatedCorner.x=cornerPos.x*cos(angle)-cornerPos.y*sin(angle);\x0arotatedCorner.y=0.;\x0arotatedCorner.z=cornerPos.x*sin(angle)+cornerPos.y*cos(angle);\x0avec3\x20yaxis=normalize(initialDirection);\x0avPositionW=rotate(yaxis,rotatedCorner);\x0avec4\x20viewPosition=view*vec4(vPositionW,1.0);\x0a#endif\x0agl_Position=projection*viewPosition;\x0a#if\x20defined(CLIPPLANE)\x20||\x20defined(CLIPPLANE2)\x20||\x20defined(CLIPPLANE3)\x20||\x20defined(CLIPPLANE4)\x20||\x20defined(CLIPPLANE5)\x20||\x20defined(CLIPPLANE6)\x0avec4\x20worldPos=vec4(vPositionW,1.0);\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<logDepthVertex>\x0a}';},0x820b:(_0x1710be,_0x27fdff,_0x303589)=>{var _0x49ed2a=a6_0x1e64fa;_0x303589(0x17a92)['v'][_0x49ed2a(0xcd6)][_0x49ed2a(0xa5b)]=_0x49ed2a(0xa43);},0x5913:(_0x34f5ab,_0x2febf9,_0x41e83a)=>{var _0x1097ff=a6_0x1e64fa;_0x41e83a(0x17a92)['v'][_0x1097ff(0xcd6)][_0x1097ff(0x434)]=_0x1097ff(0x1e2);},0x4ad4:(_0x1c10b0,_0x10c65c,_0x3c1e02)=>{var _0x220e2b=a6_0x1e64fa,_0x44b01f=_0x3c1e02(0x17a92);_0x3c1e02(0x175b0),_0x44b01f['v'][_0x220e2b(0xcd6)][_0x220e2b(0xc89)]='#include<helperFunctions>\x0auniform\x20sampler2D\x20textureSampler;\x20\x0auniform\x20float\x20intensity;\x0auniform\x20float\x20animatedSeed;\x0avarying\x20vec2\x20vUV;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0agl_FragColor=texture2D(textureSampler,vUV);\x0avec2\x20seed=vUV*(animatedSeed);\x0afloat\x20grain=dither(seed,intensity);\x0afloat\x20lum=getLuminance(gl_FragColor.rgb);\x0afloat\x20grainAmount=(cos(-PI+(lum*PI*2.))+1.)/2.;\x0agl_FragColor.rgb+=grain*grainAmount;\x0agl_FragColor.rgb=max(gl_FragColor.rgb,0.0);\x0a}';},0x87f9:(_0x2d1812,_0x4e825b,_0x112963)=>{var _0x52cd30=a6_0x1e64fa,_0x3f7b81=_0x112963(0x17a92);_0x112963(0x175b0),_0x112963(0x1b98),_0x112963(0x10b3e),_0x112963(0x16b85),_0x3f7b81['v'][_0x52cd30(0xcd6)][_0x52cd30(0xbd2)]=_0x52cd30(0x687);},0x11e17:(_0x5a65b5,_0x2ee486,_0x2bbc41)=>{var _0x52a1f6=a6_0x1e64fa;_0x2bbc41(0x17a92)['v'][_0x52a1f6(0xcd6)][_0x52a1f6(0xa65)]=_0x52a1f6(0x150);},0xd5bd:(_0x30eaa2,_0x5554f2,_0x2a2e6e)=>{var _0x1768f6=a6_0x1e64fa;_0x2a2e6e(0x17a92)['v'][_0x1768f6(0xcd6)][_0x1768f6(0x6e2)]='varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0aconst\x20vec3\x20RGBLuminanceCoefficients=vec3(0.2126,0.7152,0.0722);\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0avec4\x20tex=texture2D(textureSampler,vUV);\x0avec3\x20c=tex.rgb;\x0afloat\x20luma=dot(c.rgb,RGBLuminanceCoefficients);\x0agl_FragColor=vec4(pow(c,vec3(25.0-luma*15.0)),tex.a);\x20\x0a}';},0x816b:(_0x2cf934,_0x141b96,_0x296f93)=>{var _0x3617ea=a6_0x1e64fa,_0x398424=_0x296f93(0x17a92);_0x296f93(0x16c11),_0x296f93(0x175b0),_0x296f93(0x119a9),_0x398424['v'][_0x3617ea(0xcd6)][_0x3617ea(0x45a)]=_0x3617ea(0x424);},0x12a58:(_0x35fb7f,_0x5048b0,_0x179009)=>{var _0x44f8d7=a6_0x1e64fa,_0xb214ae=_0x179009(0x17a92);_0x179009(0x1610b),_0x179009(0xe85e),_0xb214ae['v'][_0x44f8d7(0x7df)][_0x44f8d7(0x7f0)]=_0x44f8d7(0x651),_0xb214ae['v'][_0x44f8d7(0x7df)][_0x44f8d7(0xa7b)]=_0x44f8d7(0xbce),_0xb214ae['v'][_0x44f8d7(0xcd6)][_0x44f8d7(0x176)]='uniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20delta;\x0avarying\x20vec2\x20sampleCenter;\x0a#ifdef\x20DOF\x0auniform\x20sampler2D\x20circleOfConfusionSampler;\x0afloat\x20sampleCoC(in\x20vec2\x20offset)\x20{\x0afloat\x20coc=texture2D(circleOfConfusionSampler,offset).r;\x0areturn\x20coc;\x20\x0a}\x0a#endif\x0a#include<kernelBlurVaryingDeclaration>[0..varyingCount]\x0a#ifdef\x20PACKEDFLOAT\x0a#include<packingFunctions>\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0afloat\x20computedWeight=0.0;\x0a#ifdef\x20PACKEDFLOAT\x0afloat\x20blend=0.;\x0a#else\x0avec4\x20blend=vec4(0.);\x0a#endif\x0a#ifdef\x20DOF\x0afloat\x20sumOfWeights=CENTER_WEIGHT;\x20\x0afloat\x20factor=0.0;\x0a#ifdef\x20PACKEDFLOAT\x0ablend+=unpack(texture2D(textureSampler,sampleCenter))*CENTER_WEIGHT;\x0a#else\x0ablend+=texture2D(textureSampler,sampleCenter)*CENTER_WEIGHT;\x0a#endif\x0a#endif\x0a#include<kernelBlurFragment>[0..varyingCount]\x0a#include<kernelBlurFragment2>[0..depCount]\x0a#ifdef\x20PACKEDFLOAT\x0agl_FragColor=pack(blend);\x0a#else\x0agl_FragColor=blend;\x0a#endif\x0a#ifdef\x20DOF\x0agl_FragColor/=sumOfWeights;\x0a#endif\x0a}';},0x147a8:(_0x78bc58,_0x12c387,_0x8e79a2)=>{var _0x4c2a50=a6_0x1e64fa,_0x49ff95=_0x8e79a2(0x17a92);_0x8e79a2(0x1610b),_0x49ff95['v']['IncludesShadersStore']['kernelBlurVertex']=_0x4c2a50(0xaaf),_0x49ff95['v'][_0x4c2a50(0xcd6)][_0x4c2a50(0x9e1)]=_0x4c2a50(0xbc5);},0x1814a:(_0x49395e,_0x13b0e4,_0x5a9288)=>{var _0x188ecd=a6_0x1e64fa,_0x1fcef8=_0x5a9288(0x17a92);_0x5a9288(0x175b0),_0x1fcef8['v'][_0x188ecd(0xcd6)][_0x188ecd(0x6b9)]=_0x188ecd(0xcda);},0xc8f5:(_0x1f0dee,_0x40f40a,_0xffd45b)=>{var _0x48c71c=a6_0x1e64fa;_0xffd45b(0x17a92)['v']['ShadersStore'][_0x48c71c(0x2af)]=_0x48c71c(0xb67);},0x139b9:(_0x1bc9d5,_0x37634,_0x5df7af)=>{var _0x275f53=a6_0x1e64fa;_0x5df7af(0x17a92)['v'][_0x275f53(0xcd6)][_0x275f53(0x9b8)]=_0x275f53(0xca2);},0xc013:(_0x510c3e,_0x5a6617,_0x554f4f)=>{var _0x44d652=a6_0x1e64fa;_0x554f4f(0x17a92)['v'][_0x44d652(0xcd6)][_0x44d652(0x6e4)]='attribute\x20vec2\x20position;\x0auniform\x20mat4\x20viewportMatrix;\x0avarying\x20vec2\x20vUV;\x0aconst\x20vec2\x20madd=vec2(0.5,0.5);\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0avUV=position*madd+madd;\x0agl_Position=viewportMatrix*vec4(position,0.0,1.0);\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}';},0xd962:(_0x77073a,_0x94edf,_0x178955)=>{var _0xa4d2c7=a6_0x1e64fa;_0x178955(0x17a92)['v'][_0xa4d2c7(0xcd6)][_0xa4d2c7(0xc33)]='uniform\x20sampler2D\x20textureSampler;\x20\x0auniform\x20float\x20gain;\x0auniform\x20float\x20threshold;\x0auniform\x20float\x20screen_width;\x0auniform\x20float\x20screen_height;\x0avarying\x20vec2\x20vUV;\x0avec4\x20highlightColor(vec4\x20color)\x20{\x0avec4\x20highlight=color;\x0afloat\x20luminance=dot(highlight.rgb,vec3(0.2125,0.7154,0.0721));\x0afloat\x20lum_threshold;\x0aif\x20(threshold>1.0)\x20{\x20lum_threshold=0.94+0.01*threshold;\x20}\x0aelse\x20{\x20lum_threshold=0.5+0.44*threshold;\x20}\x0aluminance=clamp((luminance-lum_threshold)*(1.0/(1.0-lum_threshold)),0.0,1.0);\x0ahighlight*=luminance*gain;\x0ahighlight.a=1.0;\x0areturn\x20highlight;\x0a}\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec4\x20original=texture2D(textureSampler,vUV);\x0aif\x20(gain==-1.0)\x20{\x0agl_FragColor=vec4(0.0,0.0,0.0,1.0);\x0areturn;\x0a}\x0afloat\x20w=2.0/screen_width;\x0afloat\x20h=2.0/screen_height;\x0afloat\x20weight=1.0;\x0avec4\x20blurred=vec4(0.0,0.0,0.0,0.0);\x0a#ifdef\x20PENTAGON\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.84*w,0.43*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.48*w,-1.29*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.61*w,1.51*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.55*w,-0.74*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.71*w,-0.52*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.94*w,1.59*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.40*w,-1.87*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.62*w,1.16*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.09*w,0.25*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.46*w,-1.71*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.08*w,2.42*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.85*w,-1.89*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.89*w,0.16*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.29*w,1.88*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.40*w,-2.81*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.54*w,2.26*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.60*w,-0.61*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.31*w,-1.30*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.83*w,2.53*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.12*w,-2.48*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.60*w,1.11*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.99*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.50*w,-2.81*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.85*w,3.33*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.94*w,-1.92*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.27*w,-0.53*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.95*w,2.48*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.23*w,-3.04*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.17*w,2.05*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.97*w,-0.04*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.25*w,-2.00*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.31*w,3.08*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.94*w,-2.59*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.37*w,0.64*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.13*w,1.93*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.03*w,-3.65*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.60*w,3.17*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.14*w,-1.19*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.00*w,-1.19*h)));\x0a#else\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.85*w,0.36*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.52*w,-1.14*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.46*w,1.42*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.46*w,-0.83*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.79*w,-0.42*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.11*w,1.62*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.29*w,-2.07*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.69*w,1.39*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.28*w,0.12*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.65*w,-1.69*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.08*w,2.44*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.63*w,-1.90*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.55*w,0.31*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.13*w,1.52*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.56*w,-2.61*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.38*w,2.34*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.64*w,-0.81*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.53*w,-1.21*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.06*w,2.63*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.00*w,-2.69*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.59*w,1.32*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.82*w,0.78*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.57*w,-2.50*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(0.54*w,2.93*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.39*w,-1.81*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,-0.28*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.04*w,2.25*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.02*w,-3.05*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.09*w,2.25*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-3.07*w,-0.25*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.44*w,-1.90*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-0.52*w,3.05*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-1.68*w,-2.61*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(3.01*w,0.79*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.76*w,1.46*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.05*w,-2.94*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(1.21*w,2.88*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(-2.84*w,-1.30*h)));\x0ablurred+=highlightColor(texture2D(textureSampler,vUV+vec2(2.98*w,-0.96*h)));\x0a#endif\x0ablurred/=39.0;\x0agl_FragColor=blurred;\x0a}';},0x6909:(_0x410cb9,_0xccd7c6,_0x2410b9)=>{var _0x3e6302=a6_0x1e64fa,_0x2556f3=_0x2410b9(0x17a92);_0x2410b9(0xff1b),_0x2410b9(0x3328),_0x2556f3['v'][_0x3e6302(0xcd6)][_0x3e6302(0xc7e)]=_0x3e6302(0xce7);},0x8559:(_0x556bb3,_0x3245ee,_0x50bc25)=>{var _0x52e96b=a6_0x1e64fa,_0x5c2fbc=_0x50bc25(0x17a92);_0x50bc25(0x12bc6),_0x50bc25(0x13216),_0x50bc25(0x733d),_0x50bc25(0x6efd),_0x5c2fbc['v'][_0x52e96b(0xcd6)][_0x52e96b(0x14e)]='#include<instancesDeclaration>\x0a#include<clipPlaneVertexDeclaration>\x0aattribute\x20vec3\x20position;\x0aattribute\x20vec4\x20normal;\x0auniform\x20mat4\x20viewProjection;\x0auniform\x20float\x20width;\x0auniform\x20float\x20aspectRatio;\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x20{\x0a#define\x20CUSTOM_VERTEX_MAIN_BEGIN\x0a#include<instancesVertex>\x0amat4\x20worldViewProjection=viewProjection*finalWorld;\x0avec4\x20viewPosition=worldViewProjection*vec4(position,1.0);\x0avec4\x20viewPositionNext=worldViewProjection*vec4(normal.xyz,1.0);\x0avec2\x20currentScreen=viewPosition.xy/viewPosition.w;\x0avec2\x20nextScreen=viewPositionNext.xy/viewPositionNext.w;\x0acurrentScreen.x*=aspectRatio;\x0anextScreen.x*=aspectRatio;\x0avec2\x20dir=normalize(nextScreen-currentScreen);\x0avec2\x20normalDir=vec2(-dir.y,dir.x);\x0anormalDir*=width/2.0;\x0anormalDir.x/=aspectRatio;\x0avec4\x20offset=vec4(normalDir*normal.w,0.0,0.0);\x0agl_Position=viewPosition+offset;\x0a#if\x20defined(CLIPPLANE)\x20||\x20defined(CLIPPLANE2)\x20||\x20defined(CLIPPLANE3)\x20||\x20defined(CLIPPLANE4)\x20||\x20defined(CLIPPLANE5)\x20||\x20defined(CLIPPLANE6)\x0avec4\x20worldPos=finalWorld*vec4(position,1.0);\x0a#include<clipPlaneVertex>\x0a#endif\x0a#define\x20CUSTOM_VERTEX_MAIN_END\x0a}';},0x12903:(_0x15f66c,_0x59f0c2,_0x3f38a8)=>{var _0x5129f4=a6_0x1e64fa;_0x3f38a8(0x17a92)['v'][_0x5129f4(0xcd6)][_0x5129f4(0xb1e)]=_0x5129f4(0x60d);},0x15005:(_0x246877,_0x5c0383,_0x5ea531)=>{var _0x416c27=a6_0x1e64fa,_0x36ff82=_0x5ea531(0x17a92);_0x5ea531(0x13f9a),_0x5ea531(0x12929),_0x5ea531(0x9ea3),_0x5ea531(0x12abc),_0x5ea531(0x12bc6),_0x5ea531(0x13906),_0x5ea531(0x1070),_0x5ea531(0x733d),_0x5ea531(0xb434),_0x5ea531(0xdcea),_0x36ff82['v'][_0x416c27(0xcd6)]['meshUVSpaceRendererVertexShader']=_0x416c27(0x9f8);},0x13733:(_0x37e53e,_0x9c8141,_0x25fab3)=>{var _0x3bbc32=a6_0x1e64fa;_0x25fab3(0x17a92)['v']['ShadersStore'][_0x3bbc32(0xbac)]=_0x3bbc32(0x49c);},0x366b:(_0x3a5e26,_0x1dfbf0,_0x208604)=>{var _0x1b44b0=a6_0x1e64fa;_0x208604(0x17a92)['v'][_0x1b44b0(0xcd6)][_0x1b44b0(0x2b2)]=_0x1b44b0(0x571);},0xf422:(_0x565c75,_0xb7403e,_0x1abeeb)=>{var _0x11ae05=a6_0x1e64fa;_0x1abeeb(0x17a92)['v']['ShadersStore'][_0x11ae05(0xbb1)]=_0x11ae05(0x753);},0xcfa6:(_0xac00e7,_0x40777e,_0x463b82)=>{var _0x53f569=a6_0x1e64fa;_0x463b82(0x17a92)['v'][_0x53f569(0xcd6)]['oitBackBlendPixelShader']=_0x53f569(0x6d7);},0x1d0b:(_0x4d739d,_0x3f75cd,_0x5637b9)=>{var _0x164749=a6_0x1e64fa;_0x5637b9(0x17a92)['v'][_0x164749(0xcd6)][_0x164749(0x960)]=_0x164749(0x1d7);},0x4ae5:(_0x50baaa,_0x45c32a,_0x17a4e6)=>{var _0x4ac77f=a6_0x1e64fa,_0x2b539f=_0x17a4e6(0x17a92);_0x17a4e6(0xff1b),_0x17a4e6(0x17bd9),_0x17a4e6(0x3328),_0x17a4e6(0x1445f),_0x2b539f['v'][_0x4ac77f(0xcd6)][_0x4ac77f(0x5a1)]=_0x4ac77f(0x77f);},0x1294f:(_0x5ce82c,_0x10b395,_0x17603f)=>{var _0x3a585b=a6_0x1e64fa,_0x26e1d9=_0x17603f(0x17a92);_0x17603f(0x13f9a),_0x17603f(0x12929),_0x17603f(0x9ea3),_0x17603f(0x12abc),_0x17603f(0x13216),_0x17603f(0x12bc6),_0x17603f(0x17bd9),_0x17603f(0x13906),_0x17603f(0x1070),_0x17603f(0x733d),_0x17603f(0xb434),_0x17603f(0xdcea),_0x17603f(0x6efd),_0x17603f(0x13da6),_0x26e1d9['v'][_0x3a585b(0xcd6)]['outlineVertexShader']='attribute\x20vec3\x20position;\x0aattribute\x20vec3\x20normal;\x0a#include<bonesDeclaration>\x0a#include<bakedVertexAnimationDeclaration>\x0a#include<morphTargetsVertexGlobalDeclaration>\x0a#include<morphTargetsVertexDeclaration>[0..maxSimultaneousMorphTargets]\x0a#include<clipPlaneVertexDeclaration>\x0auniform\x20float\x20offset;\x0a#include<instancesDeclaration>\x0auniform\x20mat4\x20viewProjection;\x0a#ifdef\x20ALPHATEST\x0avarying\x20vec2\x20vUV;\x0auniform\x20mat4\x20diffuseMatrix;\x0a#ifdef\x20UV1\x0aattribute\x20vec2\x20uv;\x0a#endif\x0a#ifdef\x20UV2\x0aattribute\x20vec2\x20uv2;\x0a#endif\x0a#endif\x0a#include<logDepthDeclaration>\x0a#define\x20CUSTOM_VERTEX_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec3\x20positionUpdated=position;\x0avec3\x20normalUpdated=normal;\x0a#ifdef\x20UV1\x0avec2\x20uvUpdated=uv;\x0a#endif\x0a#include<morphTargetsVertexGlobal>\x0a#include<morphTargetsVertex>[0..maxSimultaneousMorphTargets]\x0avec3\x20offsetPosition=positionUpdated+(normalUpdated*offset);\x0a#include<instancesVertex>\x0a#include<bonesVertex>\x0a#include<bakedVertexAnimation>\x0avec4\x20worldPos=finalWorld*vec4(offsetPosition,1.0);\x0agl_Position=viewProjection*worldPos;\x0a#ifdef\x20ALPHATEST\x0a#ifdef\x20UV1\x0avUV=vec2(diffuseMatrix*vec4(uvUpdated,1.0,0.0));\x0a#endif\x0a#ifdef\x20UV2\x0avUV=vec2(diffuseMatrix*vec4(uv2,1.0,0.0));\x0a#endif\x0a#endif\x0a#include<clipPlaneVertex>\x0a#include<logDepthVertex>\x0a}\x0a';},0x5215:(_0x2b2d19,_0x12a2aa,_0x4dad84)=>{var _0x3426ee=a6_0x1e64fa,_0x5ca86a=_0x4dad84(0x17a92);_0x4dad84(0xff1b),_0x4dad84(0x16c11),_0x4dad84(0x17bd9),_0x4dad84(0x175b0),_0x4dad84(0x119a9),_0x4dad84(0x3328),_0x4dad84(0x1445f),_0x5ca86a['v'][_0x3426ee(0xcd6)][_0x3426ee(0x87b)]=_0x3426ee(0x96e);},0x1560d:(_0xaadaac,_0x24b6eb,_0x39e8ed)=>{var _0x1ace37=a6_0x1e64fa,_0x603389=_0x39e8ed(0x17a92);_0x39e8ed(0x13216),_0x39e8ed(0x17bd9),_0x39e8ed(0x6efd),_0x39e8ed(0x13da6),_0x603389['v'][_0x1ace37(0xcd6)]['particlesVertexShader']=_0x1ace37(0x4fc);},0x8262:(_0x31f737,_0x37028e,_0x1c1fd7)=>{var _0x17a408=a6_0x1e64fa;_0x1c1fd7['d'](_0x37028e,{'T':()=>_0x1215fc}),_0x37028e=_0x17a408(0x51c);const _0x1215fc={'name':_0x37028e,'shader':_0x1c1fd7(0x17a92)['v'][_0x17a408(0xcd6)][_0x37028e]=_0x17a408(0xa67)};},0x5f4b:(_0x20ff74,_0x4e88d7,_0x13490e)=>{var _0x2a1aa2=a6_0x1e64fa;_0x13490e(0x17a92)['v'][_0x2a1aa2(0xcd6)][_0x2a1aa2(0x32f)]=_0x2a1aa2(0xcec);},0x11f54:(_0x1b478d,_0x52e5fe,_0x2ec010)=>{var _0x2c90b4=a6_0x1e64fa,_0x748014=_0x2ec010(0x17a92);_0x2ec010(0x67c9),_0x2ec010(0xa8cd),_0x2ec010(0xf57c),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0xcbd)]='uniform\x20vec4\x20vEyePosition;\x0auniform\x20vec3\x20vReflectionColor;\x0auniform\x20vec4\x20vAlbedoColor;\x0auniform\x20vec4\x20vLightingIntensity;\x0auniform\x20vec4\x20vReflectivityColor;\x0auniform\x20vec4\x20vMetallicReflectanceFactors;\x0auniform\x20vec3\x20vEmissiveColor;\x0auniform\x20float\x20visibility;\x0auniform\x20vec3\x20vAmbientColor;\x0a#ifdef\x20ALBEDO\x0auniform\x20vec2\x20vAlbedoInfos;\x0a#endif\x0a#ifdef\x20AMBIENT\x0auniform\x20vec4\x20vAmbientInfos;\x0a#endif\x0a#ifdef\x20BUMP\x0auniform\x20vec3\x20vBumpInfos;\x0auniform\x20vec2\x20vTangentSpaceParams;\x0a#endif\x0a#ifdef\x20OPACITY\x0auniform\x20vec2\x20vOpacityInfos;\x0a#endif\x0a#ifdef\x20EMISSIVE\x0auniform\x20vec2\x20vEmissiveInfos;\x0a#endif\x0a#ifdef\x20LIGHTMAP\x0auniform\x20vec2\x20vLightmapInfos;\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x0auniform\x20vec3\x20vReflectivityInfos;\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0auniform\x20vec2\x20vMicroSurfaceSamplerInfos;\x0a#endif\x0a#if\x20defined(REFLECTIONMAP_SPHERICAL)\x20||\x20defined(REFLECTIONMAP_PROJECTION)\x20||\x20defined(SS_REFRACTION)\x20||\x20defined(PREPASS)\x0auniform\x20mat4\x20view;\x0a#endif\x0a#ifdef\x20REFLECTION\x0auniform\x20vec2\x20vReflectionInfos;\x0a#ifdef\x20REALTIME_FILTERING\x0auniform\x20vec2\x20vReflectionFilteringInfo;\x0a#endif\x0auniform\x20mat4\x20reflectionMatrix;\x0auniform\x20vec3\x20vReflectionMicrosurfaceInfos;\x0a#if\x20defined(USE_LOCAL_REFLECTIONMAP_CUBIC)\x20&&\x20defined(REFLECTIONMAP_CUBIC)\x0auniform\x20vec3\x20vReflectionPosition;\x0auniform\x20vec3\x20vReflectionSize;\x20\x0a#endif\x0a#endif\x0a#if\x20defined(SS_REFRACTION)\x20&&\x20defined(SS_USE_LOCAL_REFRACTIONMAP_CUBIC)\x0auniform\x20vec3\x20vRefractionPosition;\x0auniform\x20vec3\x20vRefractionSize;\x20\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0auniform\x20vec2\x20vClearCoatParams;\x0auniform\x20vec4\x20vClearCoatRefractionParams;\x0a#if\x20defined(CLEARCOAT_TEXTURE)\x20||\x20defined(CLEARCOAT_TEXTURE_ROUGHNESS)\x0auniform\x20vec4\x20vClearCoatInfos;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0auniform\x20mat4\x20clearCoatMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TEXTURE_ROUGHNESS\x0auniform\x20mat4\x20clearCoatRoughnessMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_BUMP\x0auniform\x20vec2\x20vClearCoatBumpInfos;\x0auniform\x20vec2\x20vClearCoatTangentSpaceParams;\x0auniform\x20mat4\x20clearCoatBumpMatrix;\x0a#endif\x0a#ifdef\x20CLEARCOAT_TINT\x0auniform\x20vec4\x20vClearCoatTintParams;\x0auniform\x20float\x20clearCoatColorAtDistance;\x0a#ifdef\x20CLEARCOAT_TINT_TEXTURE\x0auniform\x20vec2\x20vClearCoatTintInfos;\x0auniform\x20mat4\x20clearCoatTintMatrix;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20IRIDESCENCE\x0auniform\x20vec4\x20vIridescenceParams;\x0a#if\x20defined(IRIDESCENCE_TEXTURE)\x20||\x20defined(IRIDESCENCE_THICKNESS_TEXTURE)\x0auniform\x20vec4\x20vIridescenceInfos;\x0a#endif\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0auniform\x20mat4\x20iridescenceMatrix;\x0a#endif\x0a#ifdef\x20IRIDESCENCE_THICKNESS_TEXTURE\x0auniform\x20mat4\x20iridescenceThicknessMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20ANISOTROPIC\x0auniform\x20vec3\x20vAnisotropy;\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0auniform\x20vec2\x20vAnisotropyInfos;\x0auniform\x20mat4\x20anisotropyMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN\x0auniform\x20vec4\x20vSheenColor;\x0a#ifdef\x20SHEEN_ROUGHNESS\x0auniform\x20float\x20vSheenRoughness;\x0a#endif\x0a#if\x20defined(SHEEN_TEXTURE)\x20||\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x0auniform\x20vec4\x20vSheenInfos;\x0a#endif\x0a#ifdef\x20SHEEN_TEXTURE\x0auniform\x20mat4\x20sheenMatrix;\x0a#endif\x0a#ifdef\x20SHEEN_TEXTURE_ROUGHNESS\x0auniform\x20mat4\x20sheenRoughnessMatrix;\x0a#endif\x0a#endif\x0a#ifdef\x20SUBSURFACE\x0a#ifdef\x20SS_REFRACTION\x0auniform\x20vec4\x20vRefractionMicrosurfaceInfos;\x0auniform\x20vec4\x20vRefractionInfos;\x0auniform\x20mat4\x20refractionMatrix;\x0a#ifdef\x20REALTIME_FILTERING\x0auniform\x20vec2\x20vRefractionFilteringInfo;\x0a#endif\x0a#endif\x0a#ifdef\x20SS_THICKNESSANDMASK_TEXTURE\x0auniform\x20vec2\x20vThicknessInfos;\x0auniform\x20mat4\x20thicknessMatrix;\x0a#endif\x0a#ifdef\x20SS_REFRACTIONINTENSITY_TEXTURE\x0auniform\x20vec2\x20vRefractionIntensityInfos;\x0auniform\x20mat4\x20refractionIntensityMatrix;\x0a#endif\x0a#ifdef\x20SS_TRANSLUCENCYINTENSITY_TEXTURE\x0auniform\x20vec2\x20vTranslucencyIntensityInfos;\x0auniform\x20mat4\x20translucencyIntensityMatrix;\x0a#endif\x0auniform\x20vec2\x20vThicknessParam;\x0auniform\x20vec3\x20vDiffusionDistance;\x0auniform\x20vec4\x20vTintColor;\x0auniform\x20vec3\x20vSubSurfaceIntensity;\x0a#endif\x0a#ifdef\x20PREPASS\x0a#ifdef\x20SS_SCATTERING\x0auniform\x20float\x20scatteringDiffusionProfile;\x0a#endif\x0a#endif\x0a#if\x20DEBUGMODE>0\x0auniform\x20vec2\x20vDebugMode;\x0a#endif\x0a#ifdef\x20DETAIL\x0auniform\x20vec4\x20vDetailInfos;\x0a#endif\x0a#include<decalFragmentDeclaration>\x0a#ifdef\x20USESPHERICALFROMREFLECTIONMAP\x0a#ifdef\x20SPHERICAL_HARMONICS\x0auniform\x20vec3\x20vSphericalL00;\x0auniform\x20vec3\x20vSphericalL1_1;\x0auniform\x20vec3\x20vSphericalL10;\x0auniform\x20vec3\x20vSphericalL11;\x0auniform\x20vec3\x20vSphericalL2_2;\x0auniform\x20vec3\x20vSphericalL2_1;\x0auniform\x20vec3\x20vSphericalL20;\x0auniform\x20vec3\x20vSphericalL21;\x0auniform\x20vec3\x20vSphericalL22;\x0a#else\x0auniform\x20vec3\x20vSphericalX;\x0auniform\x20vec3\x20vSphericalY;\x0auniform\x20vec3\x20vSphericalZ;\x0auniform\x20vec3\x20vSphericalXX_ZZ;\x0auniform\x20vec3\x20vSphericalYY_ZZ;\x0auniform\x20vec3\x20vSphericalZZ;\x0auniform\x20vec3\x20vSphericalXY;\x0auniform\x20vec3\x20vSphericalYZ;\x0auniform\x20vec3\x20vSphericalZX;\x0a#endif\x0a#endif\x0a#define\x20ADDITIONAL_FRAGMENT_DECLARATION\x0a',_0x2ec010(0xc853),_0x2ec010(0x94fa),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0xa31)]=_0x2c90b4(0x488),_0x2ec010(0xe6c7),_0x2ec010(0x15fb5),_0x2ec010(0x126e8),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x50d)]=_0x2c90b4(0x29f),_0x748014['v']['IncludesShadersStore'][_0x2c90b4(0x216)]=_0x2c90b4(0x125),_0x2ec010(0x16c11),_0x2ec010(0xff1b),_0x2ec010(0x17bd9),_0x2ec010(0x12a16),_0x2ec010(0x175b0),_0x2ec010(0x6b23),_0x2ec010(0x1b98),_0x748014['v']['IncludesShadersStore'][_0x2c90b4(0x35c)]=_0x2c90b4(0x3d6),_0x2ec010(0x119a9),_0x2ec010(0x1f85),_0x2ec010(0x14535),_0x748014['v']['IncludesShadersStore'][_0x2c90b4(0x35d)]=_0x2c90b4(0x139),_0x748014['v']['IncludesShadersStore']['pbrDirectLightingFalloffFunctions']=_0x2c90b4(0x844),_0x2ec010(0x10b3e),_0x2ec010(0x16b85),_0x748014['v']['IncludesShadersStore'][_0x2c90b4(0xcea)]=_0x2c90b4(0xbc7),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x4ff)]=_0x2c90b4(0x69c),_0x2ec010(0x8cac),_0x2ec010(0xe577),_0x2ec010(0x11645),_0x2ec010(0xcff7),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0xb22)]=_0x2c90b4(0x516),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x907)]='struct\x20reflectivityOutParams\x0a{\x0afloat\x20microSurface;\x0afloat\x20roughness;\x0avec3\x20surfaceReflectivityColor;\x0a#ifdef\x20METALLICWORKFLOW\x0avec3\x20surfaceAlbedo;\x0a#endif\x0a#if\x20defined(METALLICWORKFLOW)\x20&&\x20defined(REFLECTIVITY)\x20&&\x20defined(AOSTOREINMETALMAPRED)\x0avec3\x20ambientOcclusionColor;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0avec4\x20surfaceMetallicColorMap;\x0avec4\x20surfaceReflectivityColorMap;\x0avec2\x20metallicRoughness;\x0avec3\x20metallicF0;\x0a#endif\x0a};\x0a#define\x20pbr_inline\x0avoid\x20reflectivityBlock(\x0ain\x20vec4\x20vReflectivityColor,\x0a#ifdef\x20METALLICWORKFLOW\x0ain\x20vec3\x20surfaceAlbedo,\x0ain\x20vec4\x20metallicReflectanceFactors,\x0a#endif\x0a#ifdef\x20REFLECTIVITY\x0ain\x20vec3\x20reflectivityInfos,\x0ain\x20vec4\x20surfaceMetallicOrReflectivityColorMap,\x0a#endif\x0a#if\x20defined(METALLICWORKFLOW)\x20&&\x20defined(REFLECTIVITY)\x20&&\x20defined(AOSTOREINMETALMAPRED)\x0ain\x20vec3\x20ambientOcclusionColorIn,\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0ain\x20vec4\x20microSurfaceTexel,\x0a#endif\x0a#ifdef\x20DETAIL\x0ain\x20vec4\x20detailColor,\x0ain\x20vec4\x20vDetailInfos,\x0a#endif\x0aout\x20reflectivityOutParams\x20outParams\x0a)\x0a{\x0afloat\x20microSurface=vReflectivityColor.a;\x0avec3\x20surfaceReflectivityColor=vReflectivityColor.rgb;\x0a#ifdef\x20METALLICWORKFLOW\x0avec2\x20metallicRoughness=surfaceReflectivityColor.rg;\x0a#ifdef\x20REFLECTIVITY\x0a#if\x20DEBUGMODE>0\x0aoutParams.surfaceMetallicColorMap=surfaceMetallicOrReflectivityColorMap;\x0a#endif\x0a#ifdef\x20AOSTOREINMETALMAPRED\x0avec3\x20aoStoreInMetalMap=vec3(surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r,surfaceMetallicOrReflectivityColorMap.r);\x0aoutParams.ambientOcclusionColor=mix(ambientOcclusionColorIn,aoStoreInMetalMap,reflectivityInfos.z);\x0a#endif\x0a#ifdef\x20METALLNESSSTOREINMETALMAPBLUE\x0ametallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.b;\x0a#else\x0ametallicRoughness.r*=surfaceMetallicOrReflectivityColorMap.r;\x0a#endif\x0a#ifdef\x20ROUGHNESSSTOREINMETALMAPALPHA\x0ametallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.a;\x0a#else\x0a#ifdef\x20ROUGHNESSSTOREINMETALMAPGREEN\x0ametallicRoughness.g*=surfaceMetallicOrReflectivityColorMap.g;\x0a#endif\x0a#endif\x0a#endif\x0a#ifdef\x20DETAIL\x0afloat\x20detailRoughness=mix(0.5,detailColor.b,vDetailInfos.w);\x0afloat\x20loLerp=mix(0.,metallicRoughness.g,detailRoughness*2.);\x0afloat\x20hiLerp=mix(metallicRoughness.g,1.,(detailRoughness-0.5)*2.);\x0ametallicRoughness.g=mix(loLerp,hiLerp,step(detailRoughness,0.5));\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0ametallicRoughness.g*=microSurfaceTexel.r;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0aoutParams.metallicRoughness=metallicRoughness;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_METALLICROUGHNESS\x0amicroSurface=1.0-metallicRoughness.g;\x0avec3\x20baseColor=surfaceAlbedo;\x0a#ifdef\x20FROSTBITE_REFLECTANCE\x0aoutParams.surfaceAlbedo=baseColor.rgb*(1.0-metallicRoughness.r);\x0asurfaceReflectivityColor=mix(0.16*reflectance*reflectance,baseColor,metallicRoughness.r);\x0a#else\x0avec3\x20metallicF0=metallicReflectanceFactors.rgb;\x0a#if\x20DEBUGMODE>0\x0aoutParams.metallicF0=metallicF0;\x0a#endif\x0aoutParams.surfaceAlbedo=mix(baseColor.rgb*(1.0-metallicF0),vec3(0.,0.,0.),metallicRoughness.r);\x0asurfaceReflectivityColor=mix(metallicF0,baseColor,metallicRoughness.r);\x0a#endif\x0a#else\x0a#ifdef\x20REFLECTIVITY\x0asurfaceReflectivityColor*=surfaceMetallicOrReflectivityColorMap.rgb;\x0a#if\x20DEBUGMODE>0\x0aoutParams.surfaceReflectivityColorMap=surfaceMetallicOrReflectivityColorMap;\x0a#endif\x0a#ifdef\x20MICROSURFACEFROMREFLECTIVITYMAP\x0amicroSurface*=surfaceMetallicOrReflectivityColorMap.a;\x0amicroSurface*=reflectivityInfos.z;\x0a#else\x0a#ifdef\x20MICROSURFACEAUTOMATIC\x0amicroSurface*=computeDefaultMicroSurface(microSurface,surfaceReflectivityColor);\x0a#endif\x0a#ifdef\x20MICROSURFACEMAP\x0amicroSurface*=microSurfaceTexel.r;\x0a#endif\x0a#define\x20CUSTOM_FRAGMENT_UPDATE_MICROSURFACE\x0a#endif\x0a#endif\x0a#endif\x0amicroSurface=saturate(microSurface);\x0afloat\x20roughness=1.-microSurface;\x0aoutParams.microSurface=microSurface;\x0aoutParams.roughness=roughness;\x0aoutParams.surfaceReflectivityColor=surfaceReflectivityColor;\x0a}\x0a',_0x748014['v'][_0x2c90b4(0x7df)]['pbrBlockAmbientOcclusion']='struct\x20ambientOcclusionOutParams\x0a{\x0avec3\x20ambientOcclusionColor;\x0a#if\x20DEBUGMODE>0\x0avec3\x20ambientOcclusionColorMap;\x0a#endif\x0a};\x0a#define\x20pbr_inline\x0avoid\x20ambientOcclusionBlock(\x0a#ifdef\x20AMBIENT\x0ain\x20vec3\x20ambientOcclusionColorMap_,\x0ain\x20vec4\x20vAmbientInfos,\x0a#endif\x0aout\x20ambientOcclusionOutParams\x20outParams\x0a)\x0a{\x0avec3\x20ambientOcclusionColor=vec3(1.,1.,1.);\x0a#ifdef\x20AMBIENT\x0avec3\x20ambientOcclusionColorMap=ambientOcclusionColorMap_*vAmbientInfos.y;\x0a#ifdef\x20AMBIENTINGRAYSCALE\x0aambientOcclusionColorMap=vec3(ambientOcclusionColorMap.r,ambientOcclusionColorMap.r,ambientOcclusionColorMap.r);\x0a#endif\x0aambientOcclusionColor=mix(ambientOcclusionColor,ambientOcclusionColorMap,vAmbientInfos.z);\x0a#if\x20DEBUGMODE>0\x0aoutParams.ambientOcclusionColorMap=ambientOcclusionColorMap;\x0a#endif\x0a#endif\x0aoutParams.ambientOcclusionColor=ambientOcclusionColor;\x0a}\x0a',_0x748014['v']['IncludesShadersStore'][_0x2c90b4(0x13c)]='#ifdef\x20ALPHAFRESNEL\x0a#if\x20defined(ALPHATEST)\x20||\x20defined(ALPHABLEND)\x0astruct\x20alphaFresnelOutParams\x0a{\x0afloat\x20alpha;\x0a};\x0a#define\x20pbr_inline\x0avoid\x20alphaFresnelBlock(\x0ain\x20vec3\x20normalW,\x0ain\x20vec3\x20viewDirectionW,\x0ain\x20float\x20alpha,\x0ain\x20float\x20microSurface,\x0aout\x20alphaFresnelOutParams\x20outParams\x0a)\x0a{\x0afloat\x20opacityPerceptual=alpha;\x0a#ifdef\x20LINEARALPHAFRESNEL\x0afloat\x20opacity0=opacityPerceptual;\x0a#else\x0afloat\x20opacity0=opacityPerceptual*opacityPerceptual;\x0a#endif\x0afloat\x20opacity90=fresnelGrazingReflectance(opacity0);\x0avec3\x20normalForward=faceforward(normalW,-viewDirectionW,normalW);\x0aoutParams.alpha=getReflectanceFromAnalyticalBRDFLookup_Jones(saturate(dot(viewDirectionW,normalForward)),vec3(opacity0),vec3(opacity90),sqrt(microSurface)).x;\x0a#ifdef\x20ALPHATEST\x0aif\x20(outParams.alpha<ALPHATESTVALUE)\x0adiscard;\x0a#ifndef\x20ALPHABLEND\x0aoutParams.alpha=1.0;\x0a#endif\x0a#endif\x0a}\x0a#endif\x0a#endif\x0a',_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0xb48)]='#ifdef\x20ANISOTROPIC\x0astruct\x20anisotropicOutParams\x0a{\x0afloat\x20anisotropy;\x0avec3\x20anisotropicTangent;\x0avec3\x20anisotropicBitangent;\x0avec3\x20anisotropicNormal;\x0a#if\x20DEBUGMODE>0\x0avec3\x20anisotropyMapData;\x0a#endif\x0a};\x0a#define\x20pbr_inline\x0avoid\x20anisotropicBlock(\x0ain\x20vec3\x20vAnisotropy,\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0ain\x20vec3\x20anisotropyMapData,\x0a#endif\x0ain\x20mat3\x20TBN,\x0ain\x20vec3\x20normalW,\x0ain\x20vec3\x20viewDirectionW,\x0aout\x20anisotropicOutParams\x20outParams\x0a)\x0a{\x0afloat\x20anisotropy=vAnisotropy.b;\x0avec3\x20anisotropyDirection=vec3(vAnisotropy.xy,0.);\x0a#ifdef\x20ANISOTROPIC_TEXTURE\x0aanisotropy*=anisotropyMapData.b;\x0aanisotropyDirection.rg*=anisotropyMapData.rg*2.0-1.0;\x0a#if\x20DEBUGMODE>0\x0aoutParams.anisotropyMapData=anisotropyMapData;\x0a#endif\x0a#endif\x0amat3\x20anisoTBN=mat3(normalize(TBN[0]),normalize(TBN[1]),normalize(TBN[2]));\x0avec3\x20anisotropicTangent=normalize(anisoTBN*anisotropyDirection);\x0avec3\x20anisotropicBitangent=normalize(cross(anisoTBN[2],anisotropicTangent));\x0aoutParams.anisotropy=anisotropy;\x0aoutParams.anisotropicTangent=anisotropicTangent;\x0aoutParams.anisotropicBitangent=anisotropicBitangent;\x0aoutParams.anisotropicNormal=getAnisotropicBentNormals(anisotropicTangent,anisotropicBitangent,normalW,viewDirectionW,anisotropy);\x0a}\x0a#endif\x0a',_0x748014['v']['IncludesShadersStore'][_0x2c90b4(0x4c1)]=_0x2c90b4(0xbb5),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x4f1)]='#ifdef\x20SHEEN\x0astruct\x20sheenOutParams\x0a{\x0afloat\x20sheenIntensity;\x0avec3\x20sheenColor;\x0afloat\x20sheenRoughness;\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0avec3\x20surfaceAlbedo;\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(SHEEN_ALBEDOSCALING)\x0afloat\x20sheenAlbedoScaling;\x0a#endif\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(ENVIRONMENTBRDF)\x0avec3\x20finalSheenRadianceScaled;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0avec4\x20sheenMapData;\x0avec3\x20sheenEnvironmentReflectance;\x0a#endif\x0a};\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20sheenBlock(\x0ain\x20vec4\x20vSheenColor,\x0a#ifdef\x20SHEEN_ROUGHNESS\x0ain\x20float\x20vSheenRoughness,\x0a#if\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x20&&\x20!defined(SHEEN_TEXTURE_ROUGHNESS_IDENTICAL)\x20&&\x20!defined(SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE)\x0ain\x20vec4\x20sheenMapRoughnessData,\x0a#endif\x0a#endif\x0ain\x20float\x20roughness,\x0a#ifdef\x20SHEEN_TEXTURE\x0ain\x20vec4\x20sheenMapData,\x0ain\x20float\x20sheenMapLevel,\x0a#endif\x0ain\x20float\x20reflectance,\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0ain\x20vec3\x20baseColor,\x0ain\x20vec3\x20surfaceAlbedo,\x0a#endif\x0a#ifdef\x20ENVIRONMENTBRDF\x0ain\x20float\x20NdotV,\x0ain\x20vec3\x20environmentBrdf,\x0a#endif\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(ENVIRONMENTBRDF)\x0ain\x20vec2\x20AARoughnessFactors,\x0ain\x20vec3\x20vReflectionMicrosurfaceInfos,\x0ain\x20vec2\x20vReflectionInfos,\x0ain\x20vec3\x20vReflectionColor,\x0ain\x20vec4\x20vLightingIntensity,\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSampler,\x0ain\x20vec3\x20reflectionCoords,\x0a#else\x0ain\x20sampler2D\x20reflectionSampler,\x0ain\x20vec2\x20reflectionCoords,\x0a#endif\x0ain\x20float\x20NdotVUnclamped,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0a#ifdef\x20REFLECTIONMAP_3D\x0ain\x20samplerCube\x20reflectionSamplerLow,\x0ain\x20samplerCube\x20reflectionSamplerHigh,\x0a#else\x0ain\x20sampler2D\x20reflectionSamplerLow,\x0ain\x20sampler2D\x20reflectionSamplerHigh,\x0a#endif\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0ain\x20vec2\x20vReflectionFilteringInfo,\x0a#endif\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(RADIANCEOCCLUSION)\x0ain\x20float\x20seo,\x0a#endif\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(HORIZONOCCLUSION)\x20&&\x20defined(BUMP)\x20&&\x20defined(REFLECTIONMAP_3D)\x0ain\x20float\x20eho,\x0a#endif\x0a#endif\x0aout\x20sheenOutParams\x20outParams\x0a)\x0a{\x0afloat\x20sheenIntensity=vSheenColor.a;\x0a#ifdef\x20SHEEN_TEXTURE\x0a#if\x20DEBUGMODE>0\x0aoutParams.sheenMapData=sheenMapData;\x0a#endif\x0a#endif\x0a#ifdef\x20SHEEN_LINKWITHALBEDO\x0afloat\x20sheenFactor=pow5(1.0-sheenIntensity);\x0avec3\x20sheenColor=baseColor.rgb*(1.0-sheenFactor);\x0afloat\x20sheenRoughness=sheenIntensity;\x0aoutParams.surfaceAlbedo=surfaceAlbedo*sheenFactor;\x0a#ifdef\x20SHEEN_TEXTURE\x0asheenIntensity*=sheenMapData.a;\x0a#endif\x0a#else\x0avec3\x20sheenColor=vSheenColor.rgb;\x0a#ifdef\x20SHEEN_TEXTURE\x0a#ifdef\x20SHEEN_GAMMATEXTURE\x0asheenColor.rgb*=toLinearSpace(sheenMapData.rgb);\x0a#else\x0asheenColor.rgb*=sheenMapData.rgb;\x0a#endif\x0asheenColor.rgb*=sheenMapLevel;\x0a#endif\x0a#ifdef\x20SHEEN_ROUGHNESS\x0afloat\x20sheenRoughness=vSheenRoughness;\x0a#ifdef\x20SHEEN_USE_ROUGHNESS_FROM_MAINTEXTURE\x0a#if\x20defined(SHEEN_TEXTURE)\x0asheenRoughness*=sheenMapData.a;\x0a#endif\x0a#elif\x20defined(SHEEN_TEXTURE_ROUGHNESS)\x0a#ifdef\x20SHEEN_TEXTURE_ROUGHNESS_IDENTICAL\x0asheenRoughness*=sheenMapData.a;\x0a#else\x0asheenRoughness*=sheenMapRoughnessData.a;\x0a#endif\x0a#endif\x0a#else\x0afloat\x20sheenRoughness=roughness;\x0a#ifdef\x20SHEEN_TEXTURE\x0asheenIntensity*=sheenMapData.a;\x0a#endif\x0a#endif\x0a#if\x20!defined(SHEEN_ALBEDOSCALING)\x0asheenIntensity*=(1.-reflectance);\x0a#endif\x0asheenColor*=sheenIntensity;\x0a#endif\x0a#ifdef\x20ENVIRONMENTBRDF\x0a/*#ifdef\x20SHEEN_SOFTER\x0avec3\x20environmentSheenBrdf=vec3(0.,0.,getBRDFLookupCharlieSheen(NdotV,sheenRoughness));\x0a#else*/\x0a#ifdef\x20SHEEN_ROUGHNESS\x0avec3\x20environmentSheenBrdf=getBRDFLookup(NdotV,sheenRoughness);\x0a#else\x0avec3\x20environmentSheenBrdf=environmentBrdf;\x0a#endif\x0a/*#endif*/\x0a#endif\x0a#if\x20defined(REFLECTION)\x20&&\x20defined(ENVIRONMENTBRDF)\x0afloat\x20sheenAlphaG=convertRoughnessToAverageSlope(sheenRoughness);\x0a#ifdef\x20SPECULARAA\x0asheenAlphaG+=AARoughnessFactors.y;\x0a#endif\x0avec4\x20environmentSheenRadiance=vec4(0.,0.,0.,0.);\x0asampleReflectionTexture(\x0asheenAlphaG,\x0avReflectionMicrosurfaceInfos,\x0avReflectionInfos,\x0avReflectionColor,\x0a#if\x20defined(LODINREFLECTIONALPHA)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0aNdotVUnclamped,\x0a#endif\x0a#ifdef\x20LINEARSPECULARREFLECTION\x0asheenRoughness,\x0a#endif\x0areflectionSampler,\x0areflectionCoords,\x0a#ifndef\x20LODBASEDMICROSFURACE\x0areflectionSamplerLow,\x0areflectionSamplerHigh,\x0a#endif\x0a#ifdef\x20REALTIME_FILTERING\x0avReflectionFilteringInfo,\x0a#endif\x0aenvironmentSheenRadiance\x0a);\x0avec3\x20sheenEnvironmentReflectance=getSheenReflectanceFromBRDFLookup(sheenColor,environmentSheenBrdf);\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(RADIANCEOCCLUSION)\x0asheenEnvironmentReflectance*=seo;\x0a#endif\x0a#if\x20!defined(REFLECTIONMAP_SKYBOX)\x20&&\x20defined(HORIZONOCCLUSION)\x20&&\x20defined(BUMP)\x20&&\x20defined(REFLECTIONMAP_3D)\x0asheenEnvironmentReflectance*=eho;\x0a#endif\x0a#if\x20DEBUGMODE>0\x0aoutParams.sheenEnvironmentReflectance=sheenEnvironmentReflectance;\x0a#endif\x0aoutParams.finalSheenRadianceScaled=\x0aenvironmentSheenRadiance.rgb\x20*\x0asheenEnvironmentReflectance\x20*\x0avLightingIntensity.z;\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20defined(SHEEN_ALBEDOSCALING)\x0aoutParams.sheenAlbedoScaling=1.0-sheenIntensity*max(max(sheenColor.r,sheenColor.g),sheenColor.b)*environmentSheenBrdf.b;\x0a#endif\x0aoutParams.sheenIntensity=sheenIntensity;\x0aoutParams.sheenColor=sheenColor;\x0aoutParams.sheenRoughness=sheenRoughness;\x0a}\x0a#endif\x0a',_0x748014['v']['IncludesShadersStore'][_0x2c90b4(0x197)]=_0x2c90b4(0x27e),_0x748014['v']['IncludesShadersStore'][_0x2c90b4(0xabc)]='struct\x20iridescenceOutParams\x0a{\x0afloat\x20iridescenceIntensity;\x0afloat\x20iridescenceIOR;\x0afloat\x20iridescenceThickness;\x0avec3\x20specularEnvironmentR0;\x0a};\x0a#ifdef\x20IRIDESCENCE\x0a#define\x20pbr_inline\x0a#define\x20inline\x0avoid\x20iridescenceBlock(\x0ain\x20vec4\x20vIridescenceParams,\x0ain\x20float\x20viewAngle,\x0ain\x20vec3\x20specularEnvironmentR0,\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0ain\x20vec2\x20iridescenceMapData,\x0a#endif\x0a#ifdef\x20IRIDESCENCE_THICKNESS_TEXTURE\x0ain\x20vec2\x20iridescenceThicknessMapData,\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0ain\x20float\x20NdotVUnclamped,\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0ain\x20vec2\x20clearCoatMapData,\x0a#endif\x0a#endif\x0aout\x20iridescenceOutParams\x20outParams\x0a)\x0a{\x0afloat\x20iridescenceIntensity=vIridescenceParams.x;\x0afloat\x20iridescenceIOR=vIridescenceParams.y;\x0afloat\x20iridescenceThicknessMin=vIridescenceParams.z;\x0afloat\x20iridescenceThicknessMax=vIridescenceParams.w;\x0afloat\x20iridescenceThicknessWeight=1.;\x0a#ifdef\x20IRIDESCENCE_TEXTURE\x0airidescenceIntensity*=iridescenceMapData.x;\x0a#ifdef\x20IRIDESCENCE_USE_THICKNESS_FROM_MAINTEXTURE\x0airidescenceThicknessWeight=iridescenceMapData.g;\x0a#endif\x0a#endif\x0a#if\x20defined(IRIDESCENCE_THICKNESS_TEXTURE)\x0airidescenceThicknessWeight=iridescenceThicknessMapData.g;\x0a#endif\x0afloat\x20iridescenceThickness=mix(iridescenceThicknessMin,iridescenceThicknessMax,iridescenceThicknessWeight);\x0afloat\x20topIor=1.;\x20\x0a#ifdef\x20CLEARCOAT\x0afloat\x20clearCoatIntensity=vClearCoatParams.x;\x0a#ifdef\x20CLEARCOAT_TEXTURE\x0aclearCoatIntensity*=clearCoatMapData.x;\x0a#endif\x0atopIor=mix(1.0,vClearCoatRefractionParams.w-1.,clearCoatIntensity);\x0aviewAngle=sqrt(1.0+square(1.0/topIor)*(square(NdotVUnclamped)-1.0));\x0a#endif\x0avec3\x20iridescenceFresnel=evalIridescence(topIor,iridescenceIOR,viewAngle,iridescenceThickness,specularEnvironmentR0);\x0aoutParams.specularEnvironmentR0=mix(specularEnvironmentR0,iridescenceFresnel,iridescenceIntensity);\x0aoutParams.iridescenceIntensity=iridescenceIntensity;\x0aoutParams.iridescenceThickness=iridescenceThickness;\x0aoutParams.iridescenceIOR=iridescenceIOR;\x0a}\x0a#endif\x0a',_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x2f0)]=_0x2c90b4(0x7ce),_0x2ec010(0x3328),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x4ca)]=_0x2c90b4(0x70a),_0x2ec010(0x6664),_0x748014['v'][_0x2c90b4(0x7df)]['pbrBlockNormalFinal']=_0x2c90b4(0xc31),_0x2ec010(0x6318),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x86a)]=_0x2c90b4(0x754),_0x748014['v'][_0x2c90b4(0x7df)]['pbrBlockGeometryInfo']='float\x20NdotVUnclamped=dot(normalW,viewDirectionW);\x0afloat\x20NdotV=absEps(NdotVUnclamped);\x0afloat\x20alphaG=convertRoughnessToAverageSlope(roughness);\x0avec2\x20AARoughnessFactors=getAARoughnessFactors(normalW.xyz);\x0a#ifdef\x20SPECULARAA\x0aalphaG+=AARoughnessFactors.y;\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x0avec3\x20environmentBrdf=getBRDFLookup(NdotV,roughness);\x0a#endif\x0a#if\x20defined(ENVIRONMENTBRDF)\x20&&\x20!defined(REFLECTIONMAP_SKYBOX)\x0a#ifdef\x20RADIANCEOCCLUSION\x0a#ifdef\x20AMBIENTINGRAYSCALE\x0afloat\x20ambientMonochrome=aoOut.ambientOcclusionColor.r;\x0a#else\x0afloat\x20ambientMonochrome=getLuminance(aoOut.ambientOcclusionColor);\x0a#endif\x0afloat\x20seo=environmentRadianceOcclusion(ambientMonochrome,NdotVUnclamped);\x0a#endif\x0a#ifdef\x20HORIZONOCCLUSION\x0a#ifdef\x20BUMP\x0a#ifdef\x20REFLECTIONMAP_3D\x0afloat\x20eho=environmentHorizonOcclusion(-viewDirectionW,normalW,geometricNormalW);\x0a#endif\x0a#endif\x0a#endif\x0a#endif\x0a',_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x917)]='float\x20reflectance=max(max(reflectivityOut.surfaceReflectivityColor.r,reflectivityOut.surfaceReflectivityColor.g),reflectivityOut.surfaceReflectivityColor.b);\x0avec3\x20specularEnvironmentR0=reflectivityOut.surfaceReflectivityColor.rgb;\x0a#ifdef\x20METALLICWORKFLOW\x0avec3\x20specularEnvironmentR90=vec3(metallicReflectanceFactors.a);\x0a#else\x20\x0avec3\x20specularEnvironmentR90=vec3(1.0,1.0,1.0);\x0a#endif\x0a#ifdef\x20ALPHAFRESNEL\x0afloat\x20reflectance90=fresnelGrazingReflectance(reflectance);\x0aspecularEnvironmentR90=specularEnvironmentR90*reflectance90;\x0a#endif\x0a',_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x15d)]=_0x2c90b4(0x364),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0xbdc)]='vec3\x20diffuseBase=vec3(0.,0.,0.);\x0a#ifdef\x20SPECULARTERM\x0avec3\x20specularBase=vec3(0.,0.,0.);\x0a#endif\x0a#ifdef\x20CLEARCOAT\x0avec3\x20clearCoatBase=vec3(0.,0.,0.);\x0a#endif\x0a#ifdef\x20SHEEN\x0avec3\x20sheenBase=vec3(0.,0.,0.);\x0a#endif\x0apreLightingInfo\x20preInfo;\x0alightingInfo\x20info;\x0afloat\x20shadow=1.;\x20\x0a#if\x20defined(CLEARCOAT)\x20&&\x20defined(CLEARCOAT_TINT)\x0avec3\x20absorption=vec3(0.);\x0a#endif\x0a',_0x2ec010(0xb0bc),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x498)]=_0x2c90b4(0xaed),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x911)]=_0x2c90b4(0x1ae),_0x748014['v']['IncludesShadersStore'][_0x2c90b4(0x284)]=_0x2c90b4(0x270),_0x2ec010(0x1445f),_0x2ec010(0x10ef),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x24d)]=_0x2c90b4(0x5af),_0x2ec010(0xa965),_0x748014['v'][_0x2c90b4(0x7df)][_0x2c90b4(0x312)]=_0x2c90b4(0x135),_0x748014['v'][_0x2c90b4(0xcd6)][_0x2c90b4(0xc9e)]=_0x2c90b4(0xc27);},0x93ab:(_0x2bd48d,_0x52e88a,_0x1fb887)=>{var _0x3a238c=a6_0x1e64fa,_0x46c236=_0x1fb887(0x17a92);_0x1fb887(0x2826),_0x46c236['v'][_0x3a238c(0x7df)][_0x3a238c(0x2e6)]=_0x3a238c(0xb7d),_0x1fb887(0xc853),_0x1fb887(0x17bd8),_0x1fb887(0x94fa),_0x1fb887(0x175b0),_0x1fb887(0x13f9a),_0x1fb887(0x12929),_0x1fb887(0x12bc6),_0x1fb887(0x18442),_0x1fb887(0x15b7a),_0x1fb887(0x14535),_0x1fb887(0x8785),_0x1fb887(0x13216),_0x1fb887(0x6a99),_0x1fb887(0x1b3f),_0x1fb887(0xc971),_0x1fb887(0x9ea3),_0x1fb887(0x12abc),_0x1fb887(0x17bd9),_0x1fb887(0x13906),_0x1fb887(0x1070),_0x1fb887(0x733d),_0x1fb887(0xb434),_0x1fb887(0xdcea),_0x1fb887(0x1abd),_0x1fb887(0xd68d),_0x1fb887(0x2f27),_0x1fb887(0xced6),_0x1fb887(0x6efd),_0x1fb887(0x9871),_0x1fb887(0x6e75),_0x1fb887(0xedb9),_0x1fb887(0x13da6),_0x46c236['v'][_0x3a238c(0xcd6)][_0x3a238c(0x361)]=_0x3a238c(0x316);},0x4617:(_0xd71aca,_0x3b4302,_0x574f11)=>{var _0x115e19=a6_0x1e64fa;_0x574f11(0x17a92)['v'][_0x115e19(0xcd6)][_0x115e19(0xc2f)]=_0x115e19(0x1ab);},0x18235:(_0x289548,_0x2303ad,_0x2a2976)=>{var _0x48ed61=a6_0x1e64fa;_0x2a2976(0x17a92)['v']['ShadersStore'][_0x48ed61(0x5f2)]=_0x48ed61(0xcc0);},0x52aa:(_0x344f47,_0x350557,_0x594e44)=>{var _0x23d653=a6_0x1e64fa;_0x594e44(0x17a92)['v']['ShadersStore'][_0x23d653(0x925)]=_0x23d653(0x786);},0x11c21:(_0x3df50d,_0x47e47e,_0x56d842)=>{var _0x41bf24=a6_0x1e64fa,_0x11b88d=_0x56d842(0x17a92);_0x56d842(0x175b0),_0x11b88d['v'][_0x41bf24(0xcd6)][_0x41bf24(0xb00)]='varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0a#include<helperFunctions>\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x20\x0a{\x0agl_FragColor=vec4(fromRGBD(texture2D(textureSampler,vUV)),1.0);\x0a}';},0x10c45:(_0x297b0f,_0x1f3b7b,_0x37f92d)=>{var _0x1893b4=a6_0x1e64fa,_0x481107=_0x37f92d(0x17a92);_0x37f92d(0x175b0),_0x481107['v'][_0x1893b4(0xcd6)][_0x1893b4(0x2ca)]=_0x1893b4(0xb8b);},0x16b3d:(_0x131e44,_0x56241b,_0x3bbdff)=>{var _0x49763f=a6_0x1e64fa;_0x3bbdff(0x17a92)['v'][_0x49763f(0xcd6)][_0x49763f(0x3dc)]=_0x49763f(0xaa8);},0x869c:(_0x12f9bf,_0x5ca569,_0x4357bd)=>{var _0x17f2f6=a6_0x1e64fa;_0x4357bd(0x17a92)['v'][_0x17f2f6(0xcd6)][_0x17f2f6(0x834)]='uniform\x20sampler2D\x20textureSampler;\x0a#ifdef\x20SSR_SUPPORTED\x0auniform\x20sampler2D\x20reflectivitySampler;\x0auniform\x20sampler2D\x20normalSampler;\x0auniform\x20sampler2D\x20positionSampler;\x0a#endif\x0auniform\x20mat4\x20view;\x0auniform\x20mat4\x20projection;\x0auniform\x20float\x20stepSize;\x0auniform\x20float\x20strength;\x0auniform\x20float\x20threshold;\x0auniform\x20float\x20roughnessFactor;\x0auniform\x20float\x20reflectionSpecularFalloffExponent;\x0avarying\x20vec2\x20vUV;\x0a#ifdef\x20SSR_SUPPORTED\x0astruct\x20ReflectionInfo\x20{\x0avec3\x20color;\x0avec4\x20coords;\x0a};\x0a/**\x0a*\x20According\x20to\x20specular,see\x20https:\x0a*/\x0avec3\x20fresnelSchlick(float\x20cosTheta,vec3\x20F0)\x0a{\x0areturn\x20F0+(1.0-F0)*pow(1.0-cosTheta,5.0);\x0a}\x0a/**\x0a*\x20Once\x20the\x20pixel\x27s\x20coordinates\x20has\x20been\x20found,let\x27s\x20adjust\x20(smooth)\x20a\x20little\x20bit\x0a*\x20by\x20sampling\x20multiple\x20reflection\x20pixels.\x0a*/\x0aReflectionInfo\x20smoothReflectionInfo(vec3\x20dir,vec3\x20hitCoord)\x0a{\x0aReflectionInfo\x20info;\x0ainfo.color=vec3(0.0);\x0avec4\x20projectedCoord;\x0afloat\x20sampledDepth;\x0afor(int\x20i=0;\x20i<SMOOTH_STEPS;\x20i++)\x0a{\x0aprojectedCoord=projection*vec4(hitCoord,1.0);\x0aprojectedCoord.xy/=projectedCoord.w;\x0aprojectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);\x0asampledDepth=(view*texture2D(positionSampler,projectedCoord.xy)).z;\x0afloat\x20depth=sampledDepth-hitCoord.z;\x0adir*=0.5;\x0aif(depth>0.0)\x0ahitCoord-=dir;\x0aelse\x0ahitCoord+=dir;\x0ainfo.color+=texture2D(textureSampler,projectedCoord.xy).rgb;\x0a}\x0aprojectedCoord=projection*vec4(hitCoord,1.0);\x0aprojectedCoord.xy/=projectedCoord.w;\x0aprojectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);\x0ainfo.coords=vec4(projectedCoord.xy,sampledDepth,1.0);\x0ainfo.color+=texture2D(textureSampler,projectedCoord.xy).rgb;\x0ainfo.color/=float(SMOOTH_STEPS+1);\x0areturn\x20info;\x0a}\x0a/**\x0a*\x20Tests\x20the\x20given\x20world\x20position\x20(hitCoord)\x20according\x20to\x20the\x20given\x20reflection\x20vector\x20(dir)\x0a*\x20until\x20it\x20finds\x20a\x20collision\x20(means\x20that\x20depth\x20is\x20enough\x20close\x20to\x20say\x20\x22it\x27s\x20the\x20pixel\x20to\x20sample!\x22).\x0a*/\x0aReflectionInfo\x20getReflectionInfo(vec3\x20dir,vec3\x20hitCoord)\x0a{\x0aReflectionInfo\x20info;\x0avec4\x20projectedCoord;\x0afloat\x20sampledDepth;\x0adir*=stepSize;\x0afor(int\x20i=0;\x20i<REFLECTION_SAMPLES;\x20i++)\x0a{\x0ahitCoord+=dir;\x0aprojectedCoord=projection*vec4(hitCoord,1.0);\x0aprojectedCoord.xy/=projectedCoord.w;\x0aprojectedCoord.xy=0.5*projectedCoord.xy+vec2(0.5);\x0asampledDepth=(view*texture2D(positionSampler,projectedCoord.xy)).z;\x0afloat\x20depth=sampledDepth-hitCoord.z;\x0a#ifdef\x20RIGHT_HANDED_SCENE\x0adepth*=-1.0;\x0a#endif\x0aif(((depth-dir.z)<threshold)\x20&&\x20depth<=0.0)\x0a{\x0a#ifdef\x20ENABLE_SMOOTH_REFLECTIONS\x0areturn\x20smoothReflectionInfo(dir,hitCoord);\x0a#else\x0ainfo.color=texture2D(textureSampler,projectedCoord.xy).rgb;\x0ainfo.coords=vec4(projectedCoord.xy,sampledDepth,0.0);\x0areturn\x20info;\x0a#endif\x0a}\x0a}\x0ainfo.color=texture2D(textureSampler,projectedCoord.xy).rgb;\x0ainfo.coords=vec4(projectedCoord.xy,sampledDepth,0.0);\x0areturn\x20info;\x0a}\x0avec3\x20hash(vec3\x20a)\x0a{\x0aa=fract(a*0.8);\x0aa+=dot(a,a.yxz+19.19);\x0areturn\x20fract((a.xxy+a.yxx)*a.zyx);\x0a}\x0a#endif\x0avoid\x20main()\x0a{\x0a#ifdef\x20SSR_SUPPORTED\x0avec4\x20albedoFull=texture2D(textureSampler,vUV);\x0avec3\x20albedo=albedoFull.rgb;\x0afloat\x20spec=texture2D(reflectivitySampler,vUV).r;\x0aif\x20(spec==0.0)\x20{\x0agl_FragColor=albedoFull;\x0areturn;\x0a}\x0avec3\x20normal=(texture2D(normalSampler,vUV)).xyz;\x0avec3\x20position=(view*texture2D(positionSampler,vUV)).xyz;\x0avec3\x20reflected=normalize(reflect(normalize(position),normalize(normal)));\x0afloat\x20roughness=1.0-texture2D(reflectivitySampler,vUV).a;\x0avec3\x20jitt=mix(vec3(0.0),hash(position),roughness)*roughnessFactor;\x0aReflectionInfo\x20info=getReflectionInfo(jitt+reflected,position);\x0avec2\x20dCoords=smoothstep(0.2,0.6,abs(vec2(0.5,0.5)-info.coords.xy));\x0afloat\x20screenEdgefactor=clamp(1.0-(dCoords.x+dCoords.y),0.0,1.0);\x0avec3\x20F0=vec3(0.04);\x0aF0\x20=mix(F0,albedo,spec);\x0avec3\x20fresnel=fresnelSchlick(max(dot(normalize(normal),normalize(position)),0.0),F0);\x0a#ifdef\x20RIGHT_HANDED_SCENE\x0areflected.z*=-1.0;\x0a#endif\x0afloat\x20reflectionMultiplier=clamp(pow(spec*strength,reflectionSpecularFalloffExponent)*screenEdgefactor*reflected.z,0.0,0.9);\x0afloat\x20albedoMultiplier=1.0-reflectionMultiplier;\x0avec3\x20SSR=info.color*fresnel;\x0agl_FragColor=vec4((albedo*albedoMultiplier)+(SSR*reflectionMultiplier),albedoFull.a);\x0a#else\x0agl_FragColor=texture2D(textureSampler,vUV);\x0a#endif\x0a}\x0a';},0x943:(_0x108a9f,_0xebaad,_0x13b366)=>{var _0x503e7c=a6_0x1e64fa,_0x352cf9=_0x13b366(0x17a92);_0x13b366(0x175b0),_0x352cf9['v'][_0x503e7c(0x7df)][_0x503e7c(0xcf3)]=_0x503e7c(0x7bc),_0x352cf9['v'][_0x503e7c(0xcd6)][_0x503e7c(0xae3)]=_0x503e7c(0x3ba);},0x138a8:(_0x11c373,_0x3a9ca2,_0x19763f)=>{var _0x254b7d=a6_0x1e64fa;_0x19763f(0x17a92)['v']['ShadersStore']['screenSpaceReflection2BlurPixelShader']=_0x254b7d(0x7de);},0x2797:(_0x1981ce,_0x2c5e99,_0x320fd1)=>{var _0x17db2d=a6_0x1e64fa,_0x548ca0=_0x320fd1(0x17a92);_0x320fd1(0x175b0),_0x548ca0['v']['ShadersStore'][_0x17db2d(0x3a3)]=_0x17db2d(0x8c1);},0x134a9:(_0x21d423,_0x10bc36,_0x43f006)=>{var _0x233a32=a6_0x1e64fa,_0x5a2b59=_0x43f006(0x17a92);_0x43f006(0xe85e),_0x5a2b59['v']['IncludesShadersStore'][_0x233a32(0x235)]='float\x20bayerDither2(vec2\x20_P)\x20{\x0areturn\x20mod(2.0*_P.y+_P.x+1.0,4.0);\x0a}\x0afloat\x20bayerDither4(vec2\x20_P)\x20{\x0avec2\x20P1=mod(_P,2.0);\x20\x0avec2\x20P2=floor(0.5*mod(_P,4.0));\x20\x0areturn\x204.0*bayerDither2(P1)+bayerDither2(P2);\x0a}\x0afloat\x20bayerDither8(vec2\x20_P)\x20{\x0avec2\x20P1=mod(_P,2.0);\x20\x0avec2\x20P2=floor(0.5\x20*mod(_P,4.0));\x20\x0avec2\x20P4=floor(0.25*mod(_P,8.0));\x20\x0areturn\x204.0*(4.0*bayerDither2(P1)+bayerDither2(P2))+bayerDither2(P4);\x0a}\x0a',_0x5a2b59['v'][_0x233a32(0x7df)][_0x233a32(0x281)]='#if\x20SM_FLOAT==0\x0a#include<packingFunctions>\x0a#endif\x0a#if\x20SM_SOFTTRANSPARENTSHADOW==1\x0a#include<bayerDitherFunctions>\x0auniform\x20float\x20softTransparentShadowSM;\x0a#endif\x0avarying\x20float\x20vDepthMetricSM;\x0a#if\x20SM_USEDISTANCE==1\x0auniform\x20vec3\x20lightDataSM;\x0avarying\x20vec3\x20vPositionWSM;\x0a#endif\x0auniform\x20vec3\x20biasAndScaleSM;\x0auniform\x20vec2\x20depthValuesSM;\x0a#if\x20defined(SM_DEPTHCLAMP)\x20&&\x20SM_DEPTHCLAMP==1\x0avarying\x20float\x20zSM;\x0a#endif\x0a',_0x43f006(0xff1b),_0x43f006(0x3328),_0x5a2b59['v']['IncludesShadersStore'][_0x233a32(0x5cc)]=_0x233a32(0xb54),_0x5a2b59['v'][_0x233a32(0xcd6)][_0x233a32(0x7f5)]=_0x233a32(0x4e1);},0x13168:(_0x41c184,_0x579d68,_0xe05123)=>{var _0x3d96ce=a6_0x1e64fa,_0x485155=_0xe05123(0x17a92);_0xe05123(0x13f9a),_0xe05123(0x12929),_0xe05123(0x9ea3),_0xe05123(0x12abc),_0xe05123(0x175b0),_0x485155['v']['IncludesShadersStore'][_0x3d96ce(0x4cc)]=_0x3d96ce(0x9fb),_0x485155['v'][_0x3d96ce(0x7df)]['meshVertexDeclaration']=_0x3d96ce(0x2e0),_0x485155['v'][_0x3d96ce(0x7df)][_0x3d96ce(0xa7a)]=_0x3d96ce(0x706),_0xe05123(0x6cce),_0xe05123(0x11fa6),_0x485155['v'][_0x3d96ce(0x7df)]['shadowMapUboDeclaration']='layout(std140,column_major)\x20uniform;\x0a#include<sceneUboDeclaration>\x0a#include<meshUboDeclaration>\x0a',_0x485155['v']['IncludesShadersStore'][_0x3d96ce(0xaf2)]=_0x3d96ce(0x824),_0xe05123(0x13216),_0xe05123(0x13906),_0xe05123(0x1070),_0xe05123(0x733d),_0xe05123(0xb434),_0xe05123(0xdcea),_0x485155['v']['IncludesShadersStore'][_0x3d96ce(0x2f5)]=_0x3d96ce(0x79c),_0x485155['v'][_0x3d96ce(0x7df)][_0x3d96ce(0x55f)]=_0x3d96ce(0xb46),_0xe05123(0x6efd),_0x485155['v'][_0x3d96ce(0xcd6)][_0x3d96ce(0xc9b)]=_0x3d96ce(0x16d);},0x48c1:(_0x2b2b05,_0x2b92d1,_0x1d899d)=>{var _0x54555b=a6_0x1e64fa;_0x1d899d(0x17a92)['v'][_0x54555b(0xcd6)]['sharpenPixelShader']='varying\x20vec2\x20vUV;\x0auniform\x20sampler2D\x20textureSampler;\x0auniform\x20vec2\x20screenSize;\x0auniform\x20vec2\x20sharpnessAmounts;\x0a#define\x20CUSTOM_FRAGMENT_DEFINITIONS\x0avoid\x20main(void)\x0a{\x0avec2\x20onePixel=vec2(1.0,1.0)/screenSize;\x0avec4\x20color=texture2D(textureSampler,vUV);\x0avec4\x20edgeDetection=texture2D(textureSampler,vUV+onePixel*vec2(0,-1))\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(-1,0))\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(1,0))\x20+\x0atexture2D(textureSampler,vUV+onePixel*vec2(0,1))\x20-\x0acolor*4.0;\x0agl_FragColor=max(vec4(color.rgb*sharpnessAmounts.y,color.a)-(sharpnessAmounts.x*vec4(edgeDetection.rgb,0)),0.);\x0a}';},0x7a4e:(_0x50cac2,_0x27ca93,_0x35208d)=>{var _0x383f7a=a6_0x1e64fa;_0x35208d(0x17a92)['v'][_0x383f7a(0xcd6)][_0x383f7a(0x469)]=_0x383f7a(0x368);},0xa16d:(_0x17b5c1,_0x44b7d2,_0x51b917)=>{var _0x4d13ff=a6_0x1e64fa;_0x51b917(0x17a92)['v'][_0x4d13ff(0xcd6)][_0x4d13ff(0x43a)]=_0x4d13ff(0xaf5);},0xea77:(_0xa11a36,_0x4bcaae,_0xc2db70)=>{var _0x119d24=a6_0x1e64fa;_0xc2db70(0x17a92)['v'][_0x119d24(0xcd6)][_0x119d24(0x1c9)]=_0x119d24(0x745);},0xbb2a:(_0x1e9671,_0x54d5ba,_0x12e9dc)=>{var _0x8601f=a6_0x1e64fa;_0x12e9dc(0x17a92)['v'][_0x8601f(0xcd6)][_0x8601f(0xa23)]=_0x8601f(0x6a5);},0xce3e:(_0x5f1d4c,_0x3dd9cb,_0x163da)=>{var _0x59dac5=a6_0x1e64fa;_0x163da(0x17a92)['v'][_0x59dac5(0xcd6)][_0x59dac5(0x5a6)]=_0x59dac5(0xd0f);},0x152db:(_0x17d682,_0x416050,_0x31d5c0)=>{var _0x1c4da4=a6_0x1e64fa,_0x3f3cf3=_0x31d5c0(0x17a92);_0x31d5c0(0xe85e),_0x3f3cf3['v'][_0x1c4da4(0xcd6)][_0x1c4da4(0x1e6)]=_0x1c4da4(0xc7a);},0xb043:(_0x529fe3,_0x121967,_0x189733)=>{var _0x1fec47=a6_0x1e64fa;_0x189733(0x17a92)['v'][_0x1fec47(0xcd6)][_0x1fec47(0x6ed)]=_0x1fec47(0x2a5);},0xa69a:(_0x23141a,_0x159c2f,_0x31aa02)=>{var _0x9f3c38=a6_0x1e64fa;_0x31aa02(0x17a92)['v'][_0x9f3c38(0xcd6)][_0x9f3c38(0x6ea)]=_0x9f3c38(0x59b);},0xccd3:(_0x5dadb5,_0x31fadb,_0x32856c)=>{var _0x1c0834=a6_0x1e64fa;_0x32856c(0x17a92)['v']['ShadersStore'][_0x1c0834(0x5df)]=_0x1c0834(0x12f);},0xf877:(_0x5e5344,_0x422af8,_0x311192)=>{var _0x115daf=a6_0x1e64fa;_0x311192(0x17a92)['v'][_0x115daf(0xcd6)][_0x115daf(0x5d0)]=_0x115daf(0x4eb);},0xae44:(_0x50a451,_0x4d4902,_0x33d335)=>{var _0x12d622=a6_0x1e64fa,_0x51ae16=_0x33d335(0x17a92);_0x33d335(0x13f9a),_0x33d335(0x12929),_0x33d335(0x9ea3),_0x33d335(0x12abc),_0x33d335(0x12bc6),_0x33d335(0x13906),_0x33d335(0x1070),_0x33d335(0x733d),_0x33d335(0xb434),_0x33d335(0xdcea),_0x51ae16['v']['ShadersStore'][_0x12d622(0xca5)]=_0x12d622(0x963);},0xfad:(_0x38fc62,_0x2555c3,_0x23f885)=>{var _0x57ffe6=a6_0x1e64fa;_0x23f885(0x17a92)['v'][_0x57ffe6(0xcd6)][_0x57ffe6(0xbe6)]=_0x57ffe6(0x8f7);},0x106e:(_0x49c9e1,_0x1ab129,_0x3332f8)=>{var _0x1a31f5=a6_0x1e64fa;_0x3332f8(0x17a92)['v'][_0x1a31f5(0xcd6)][_0x1a31f5(0x21e)]=_0x1a31f5(0xc1e);},0x557f:(_0x5dc7e1,_0x481c83,_0x2bfddf)=>{var _0x271c50=a6_0x1e64fa;_0x2bfddf['d'](_0x481c83,{'T':()=>_0x48c95c});var _0x22235c=_0x2bfddf(0x77a5),_0x48861d=_0x2bfddf(0x1a27),_0x5ae11c=_0x2bfddf(0xcef),_0x481c83=(_0x2bfddf(0x59fc),_0x2bfddf(0x13479),_0x2bfddf(0x17a92));_0x2bfddf(0x12a16),_0x2bfddf(0x10ef),_0x2bfddf(0x17ef8),_0x481c83['v'][_0x271c50(0xcd6)]['spritesPixelShader']=_0x271c50(0x740),_0x2bfddf(0x6a99),_0x481c83['v'][_0x271c50(0xcd6)]['spritesVertexShader']=_0x271c50(0x1a9);class _0x48c95c{constructor(_0x3f2c5c,_0x3bd1d9,_0x284b6f=0.01,_0x240d73=null){var _0x10d95d=_0x271c50;this[_0x10d95d(0x55b)]=_0x22235c['g'][_0x10d95d(0x96f)],this[_0x10d95d(0x895)]=!0x0,this[_0x10d95d(0x59a)]=!0x1,this['fogEnabled']=!0x0,this[_0x10d95d(0x810)]=!0x1,this['_useVAO']=!0x1,this['_useInstancing']=!0x1,this[_0x10d95d(0x5e8)]={},this['_capacity']=_0x3bd1d9,this[_0x10d95d(0xc6f)]=_0x284b6f,this[_0x10d95d(0x397)]=_0x3f2c5c,this[_0x10d95d(0x3d4)]=_0x3f2c5c[_0x10d95d(0x33a)]()[_0x10d95d(0x8eb)]&&_0x3f2c5c[_0x10d95d(0x514)][_0x10d95d(0x276)],this['_useVAO']=_0x3f2c5c[_0x10d95d(0x33a)]()[_0x10d95d(0xb44)]&&!_0x3f2c5c[_0x10d95d(0x64b)],this[_0x10d95d(0x19a)]=_0x240d73,this[_0x10d95d(0x3d4)]||this[_0x10d95d(0x76b)](),this[_0x10d95d(0xb60)]=this[_0x10d95d(0x3d4)]?0x10:0x12,this['_vertexData']=new Float32Array(_0x3bd1d9*this[_0x10d95d(0xb60)]*(this[_0x10d95d(0x3d4)]?0x1:0x4)),this[_0x10d95d(0x64a)]=new _0x48861d['l'](_0x3f2c5c,this[_0x10d95d(0x2a8)],!0x0,this[_0x10d95d(0xb60)]),(_0x284b6f=this[_0x10d95d(0x64a)][_0x10d95d(0x74a)](_0x48861d['o']['PositionKind'],0x0,0x4,this[_0x10d95d(0xb60)],this[_0x10d95d(0x3d4)]),_0x240d73=this[_0x10d95d(0x64a)][_0x10d95d(0x74a)](_0x10d95d(0x1e5),0x4,0x2,this['_vertexBufferSize'],this[_0x10d95d(0x3d4)]));let _0x5a38f7=0x6,_0x4b9765;this[_0x10d95d(0x3d4)]?(_0x3bd1d9=new Float32Array([0x0,0x0,0x1,0x0,0x0,0x1,0x1,0x1]),this[_0x10d95d(0x264)]=new _0x48861d['l'](_0x3f2c5c,_0x3bd1d9,!0x1,0x2),_0x4b9765=this[_0x10d95d(0x264)][_0x10d95d(0x74a)](_0x10d95d(0x1c4),0x0,0x2)):(_0x4b9765=this[_0x10d95d(0x64a)][_0x10d95d(0x74a)](_0x10d95d(0x1c4),_0x5a38f7,0x2,this[_0x10d95d(0xb60)],this[_0x10d95d(0x3d4)]),_0x5a38f7+=0x2);var _0x3f2c5c=this[_0x10d95d(0x64a)][_0x10d95d(0x74a)](_0x10d95d(0x6c0),_0x5a38f7,0x2,this[_0x10d95d(0xb60)],this[_0x10d95d(0x3d4)]),_0x3bd1d9=this['_buffer']['createVertexBuffer'](_0x10d95d(0xa88),_0x5a38f7+0x2,0x4,this['_vertexBufferSize'],this['_useInstancing']),_0x5bc9cc=this[_0x10d95d(0x64a)][_0x10d95d(0x74a)](_0x48861d['o'][_0x10d95d(0xa6f)],_0x5a38f7+0x6,0x4,this['_vertexBufferSize'],this[_0x10d95d(0x3d4)]);this[_0x10d95d(0x5e8)][_0x48861d['o'][_0x10d95d(0x73f)]]=_0x284b6f,this[_0x10d95d(0x5e8)][_0x10d95d(0x1e5)]=_0x240d73,this[_0x10d95d(0x5e8)][_0x10d95d(0x1c4)]=_0x4b9765,this[_0x10d95d(0x5e8)][_0x10d95d(0x6c0)]=_0x3f2c5c,this[_0x10d95d(0x5e8)][_0x10d95d(0xa88)]=_0x3bd1d9,this[_0x10d95d(0x5e8)][_0x48861d['o'][_0x10d95d(0xa6f)]]=_0x5bc9cc,this['_createEffects']();}get['capacity'](){var _0x1471d6=_0x271c50;return this[_0x1471d6(0x598)];}get[_0x271c50(0x8f5)](){var _0x21fe30=_0x271c50;return this[_0x21fe30(0x810)];}set[_0x271c50(0x8f5)](_0x52ff9e){var _0x4e9387=_0x271c50;this[_0x4e9387(0x810)]!==_0x52ff9e&&(this[_0x4e9387(0x810)]=_0x52ff9e,this[_0x4e9387(0xc2c)]());}[_0x271c50(0xc2c)](){var _0x25a674=_0x271c50;null!=(_0x3118a4=this['_drawWrapperBase'])&&_0x3118a4[_0x25a674(0x431)](),null!=(_0x3118a4=this[_0x25a674(0x35e)])&&_0x3118a4[_0x25a674(0x431)](),null!=(_0x3118a4=this[_0x25a674(0x75c)])&&_0x3118a4['dispose'](),null!=(_0x3118a4=this[_0x25a674(0x30a)])&&_0x3118a4[_0x25a674(0x431)](),this[_0x25a674(0x1e8)]=new _0x5ae11c['q'](this[_0x25a674(0x397)]),this[_0x25a674(0x35e)]=new _0x5ae11c['q'](this[_0x25a674(0x397)]),this[_0x25a674(0x75c)]=new _0x5ae11c['q'](this[_0x25a674(0x397)],!0x1),this['_drawWrapperFogDepth']=new _0x5ae11c['q'](this[_0x25a674(0x397)],!0x1),this[_0x25a674(0x1e8)][_0x25a674(0x85d)]&&(this[_0x25a674(0x1e8)][_0x25a674(0x85d)][_0x25a674(0xad8)]=this[_0x25a674(0x3d4)]),this[_0x25a674(0x35e)][_0x25a674(0x85d)]&&(this['_drawWrapperFog'][_0x25a674(0x85d)]['useInstancing']=this[_0x25a674(0x3d4)]),this[_0x25a674(0x75c)][_0x25a674(0x85d)]&&(this['_drawWrapperDepth'][_0x25a674(0x85d)][_0x25a674(0xad8)]=this['_useInstancing']),this[_0x25a674(0x30a)][_0x25a674(0x85d)]&&(this[_0x25a674(0x30a)][_0x25a674(0x85d)][_0x25a674(0xad8)]=this[_0x25a674(0x3d4)]);var _0x3118a4=this['_pixelPerfect']?'#define\x20PIXEL_PERFECT\x0a':'';this[_0x25a674(0x1e8)][_0x25a674(0xcdf)]=this[_0x25a674(0x397)]['createEffect'](_0x25a674(0x702),[_0x48861d['o']['PositionKind'],'options',_0x25a674(0x1c4),_0x25a674(0x6c0),_0x25a674(0xa88),_0x48861d['o'][_0x25a674(0xa6f)]],[_0x25a674(0x481),'projection','textureInfos','alphaTest'],[_0x25a674(0xb50)],_0x3118a4),this[_0x25a674(0x75c)][_0x25a674(0xcdf)]=this[_0x25a674(0x1e8)][_0x25a674(0xcdf)],this[_0x25a674(0x75c)][_0x25a674(0xcb3)]=this[_0x25a674(0x1e8)]['materialContext'],this['_scene']&&(this[_0x25a674(0x35e)]['effect']=this[_0x25a674(0x19a)]['getEngine']()[_0x25a674(0x310)]('sprites',[_0x48861d['o']['PositionKind'],_0x25a674(0x1e5),_0x25a674(0x1c4),_0x25a674(0x6c0),'cellInfo',_0x48861d['o'][_0x25a674(0xa6f)]],[_0x25a674(0x481),_0x25a674(0x3c6),'textureInfos','alphaTest',_0x25a674(0x58d),_0x25a674(0x521)],[_0x25a674(0xb50)],_0x3118a4+_0x25a674(0x31c)),this[_0x25a674(0x30a)][_0x25a674(0xcdf)]=this['_drawWrapperFog'][_0x25a674(0xcdf)],this['_drawWrapperFogDepth'][_0x25a674(0xcb3)]=this['_drawWrapperFog']['materialContext']);}['render'](_0x1eee26,_0x1034e3,_0x293f13,_0x39e780,_0x432e0c=null){var _0x2588f1=_0x271c50;if(this['texture']&&this['texture'][_0x2588f1(0x5ac)]()&&_0x1eee26[_0x2588f1(0x3ef)]){let _0x6ace8d=this[_0x2588f1(0x1e8)],_0x359b37=this[_0x2588f1(0x75c)],_0x118eb4=!0x1;this[_0x2588f1(0x1e3)]&&this[_0x2588f1(0x19a)]&&this[_0x2588f1(0x19a)][_0x2588f1(0x1e3)]&&0x0!==this['_scene'][_0x2588f1(0xc3c)]&&(_0x6ace8d=this[_0x2588f1(0x35e)],_0x359b37=this['_drawWrapperFogDepth'],_0x118eb4=!0x0);const _0x468dca=_0x6ace8d['effect'];if(_0x468dca['isReady']()){const _0x232de4=this[_0x2588f1(0x397)];var _0x3d34bc,_0x40997b,_0x1d73b2,_0x3c5993=!(!this[_0x2588f1(0x19a)]||!this['_scene'][_0x2588f1(0x553)]),_0x4bb150=this[_0x2588f1(0x6f7)]['getBaseSize'](),_0x348e08=Math[_0x2588f1(0xbab)](this['_capacity'],_0x1eee26['length']);let _0x35995d=0x0,_0x20b80b=!0x0;for(let _0x49cb6e=0x0;_0x49cb6e<_0x348e08;_0x49cb6e++){const _0x42a0e9=_0x1eee26[_0x49cb6e];_0x42a0e9&&_0x42a0e9[_0x2588f1(0x2d1)]&&(_0x20b80b=!0x1,_0x42a0e9[_0x2588f1(0x682)](_0x1034e3),this['_appendSpriteVertex'](_0x35995d++,_0x42a0e9,0x0,0x0,_0x4bb150,_0x3c5993,_0x432e0c),this[_0x2588f1(0x3d4)]||(this[_0x2588f1(0xbf5)](_0x35995d++,_0x42a0e9,0x1,0x0,_0x4bb150,_0x3c5993,_0x432e0c),this['_appendSpriteVertex'](_0x35995d++,_0x42a0e9,0x1,0x1,_0x4bb150,_0x3c5993,_0x432e0c),this['_appendSpriteVertex'](_0x35995d++,_0x42a0e9,0x0,0x1,_0x4bb150,_0x3c5993,_0x432e0c)));}_0x20b80b||(this['_buffer'][_0x2588f1(0x998)](this['_vertexData']),_0x3d34bc=!!_0x232de4[_0x2588f1(0x24e)]['cull'],_0x40997b=_0x232de4[_0x2588f1(0x24e)][_0x2588f1(0xbbd)],_0x1d73b2=_0x232de4[_0x2588f1(0x24e)][_0x2588f1(0xc4a)],_0x232de4[_0x2588f1(0xa07)](_0x3d34bc,_0x40997b,!0x1,!0x1,void 0x0,void 0x0,_0x1d73b2),_0x232de4[_0x2588f1(0xb33)](_0x6ace8d),_0x468dca['setTexture']('diffuseSampler',this[_0x2588f1(0x6f7)]),_0x468dca['setMatrix']('view',_0x293f13),_0x468dca['setMatrix'](_0x2588f1(0x3c6),_0x39e780),_0x118eb4&&(_0x293f13=this['_scene'],_0x468dca[_0x2588f1(0xaee)]('vFogInfos',_0x293f13[_0x2588f1(0xc3c)],_0x293f13['fogStart'],_0x293f13['fogEnd'],_0x293f13['fogDensity']),_0x468dca['setColor3'](_0x2588f1(0x521),_0x293f13[_0x2588f1(0x631)])),this['_useVAO']?(this[_0x2588f1(0xcbb)]||(this[_0x2588f1(0xcbb)]=_0x232de4[_0x2588f1(0x2a6)](this[_0x2588f1(0x5e8)],this[_0x2588f1(0xa78)],_0x468dca)),_0x232de4['bindVertexArrayObject'](this[_0x2588f1(0xcbb)],this[_0x2588f1(0xa78)])):_0x232de4['bindBuffers'](this[_0x2588f1(0x5e8)],this[_0x2588f1(0xa78)],_0x468dca),_0x232de4[_0x2588f1(0x24e)][_0x2588f1(0x3dd)]=_0x232de4[_0x2588f1(0x263)]?_0x22235c['g'][_0x2588f1(0xa92)]:_0x22235c['g'][_0x2588f1(0x8fe)],this[_0x2588f1(0x59a)]||(_0x468dca[_0x2588f1(0x67b)]('alphaTest',!0x0),_0x232de4[_0x2588f1(0xbb8)](!0x1),_0x232de4[_0x2588f1(0xb33)](_0x359b37),this[_0x2588f1(0x3d4)]?_0x232de4[_0x2588f1(0x350)](_0x22235c['g']['MATERIAL_TriangleStripDrawMode'],0x0,0x4,_0x35995d):_0x232de4['drawElementsType'](_0x22235c['g']['MATERIAL_TriangleFillMode'],0x0,_0x35995d/0x4*0x6),_0x232de4[_0x2588f1(0xb33)](_0x6ace8d),_0x232de4['setColorWrite'](!0x0),_0x468dca[_0x2588f1(0x67b)]('alphaTest',!0x1)),_0x232de4[_0x2588f1(0x91b)](this[_0x2588f1(0x55b)]),this[_0x2588f1(0x3d4)]?_0x232de4['drawArraysType'](_0x22235c['g'][_0x2588f1(0x1b1)],0x0,0x4,_0x35995d):_0x232de4[_0x2588f1(0x381)](_0x22235c['g'][_0x2588f1(0x871)],0x0,_0x35995d/0x4*0x6),this[_0x2588f1(0x895)]&&_0x232de4[_0x2588f1(0x91b)](_0x22235c['g'][_0x2588f1(0x603)]),_0x3c5993&&this['_scene'][_0x2588f1(0xcde)]()[_0x2588f1(0xa07)](_0x3d34bc,_0x40997b,!0x1,!0x0,void 0x0,void 0x0,_0x1d73b2),_0x232de4[_0x2588f1(0x175)]());}}}[_0x271c50(0xbf5)](_0x598e7d,_0x3e70ea,_0x2afeee,_0xced2b1,_0x3c9529,_0x39ea05,_0x40790d){var _0x3a4453=_0x271c50;let _0x4181a1=_0x598e7d*this[_0x3a4453(0xb60)];0x0===_0x2afeee?_0x2afeee=this[_0x3a4453(0xc6f)]:0x1===_0x2afeee&&(_0x2afeee=0x1-this[_0x3a4453(0xc6f)]),0x0===_0xced2b1?_0xced2b1=this[_0x3a4453(0xc6f)]:0x1===_0xced2b1&&(_0xced2b1=0x1-this[_0x3a4453(0xc6f)]),_0x40790d?_0x40790d(_0x3e70ea,_0x3c9529):(_0x3e70ea['cellIndex']||(_0x3e70ea[_0x3a4453(0x16f)]=0x0),_0x598e7d=_0x3c9529[_0x3a4453(0xca4)]/this[_0x3a4453(0x251)],_0x40790d=_0x3e70ea[_0x3a4453(0x16f)]/_0x598e7d>>0x0,_0x3e70ea['_xOffset']=(_0x3e70ea[_0x3a4453(0x16f)]-_0x40790d*_0x598e7d)*this[_0x3a4453(0x251)]/_0x3c9529[_0x3a4453(0xca4)],_0x3e70ea[_0x3a4453(0x739)]=_0x40790d*this[_0x3a4453(0x375)]/_0x3c9529[_0x3a4453(0x43d)],_0x3e70ea[_0x3a4453(0x1de)]=this[_0x3a4453(0x251)],_0x3e70ea['_ySize']=this[_0x3a4453(0x375)]),this['_vertexData'][_0x4181a1]=_0x3e70ea[_0x3a4453(0x3f5)]['x'],this[_0x3a4453(0x2a8)][_0x4181a1+0x1]=_0x3e70ea[_0x3a4453(0x3f5)]['y'],this[_0x3a4453(0x2a8)][_0x4181a1+0x2]=_0x3e70ea[_0x3a4453(0x3f5)]['z'],this['_vertexData'][_0x4181a1+0x3]=_0x3e70ea['angle'],this[_0x3a4453(0x2a8)][_0x4181a1+0x4]=_0x3e70ea[_0x3a4453(0xca4)],this['_vertexData'][_0x4181a1+0x5]=_0x3e70ea[_0x3a4453(0x43d)],this[_0x3a4453(0x3d4)]?_0x4181a1-=0x2:(this[_0x3a4453(0x2a8)][_0x4181a1+0x6]=_0x2afeee,this[_0x3a4453(0x2a8)][_0x4181a1+0x7]=_0xced2b1),this[_0x3a4453(0x2a8)][_0x4181a1+0x8]=_0x39ea05?_0x3e70ea[_0x3a4453(0xc34)]?0x0:0x1:_0x3e70ea[_0x3a4453(0xc34)]?0x1:0x0,this[_0x3a4453(0x2a8)][_0x4181a1+0x9]=_0x3e70ea['invertV']?0x1:0x0,this['_vertexData'][_0x4181a1+0xa]=_0x3e70ea['_xOffset'],this[_0x3a4453(0x2a8)][_0x4181a1+0xb]=_0x3e70ea[_0x3a4453(0x739)],this[_0x3a4453(0x2a8)][_0x4181a1+0xc]=_0x3e70ea['_xSize']/_0x3c9529['width'],this[_0x3a4453(0x2a8)][_0x4181a1+0xd]=_0x3e70ea['_ySize']/_0x3c9529['height'],this[_0x3a4453(0x2a8)][_0x4181a1+0xe]=_0x3e70ea[_0x3a4453(0x84f)]['r'],this[_0x3a4453(0x2a8)][_0x4181a1+0xf]=_0x3e70ea[_0x3a4453(0x84f)]['g'],this[_0x3a4453(0x2a8)][_0x4181a1+0x10]=_0x3e70ea[_0x3a4453(0x84f)]['b'],this[_0x3a4453(0x2a8)][_0x4181a1+0x11]=_0x3e70ea[_0x3a4453(0x84f)]['a'];}[_0x271c50(0x76b)](){var _0x1f2202=_0x271c50;const _0x135344=[];let _0x284072=0x0;for(let _0x4db165=0x0;_0x4db165<this['_capacity'];_0x4db165++)_0x135344[_0x1f2202(0x83f)](_0x284072),_0x135344[_0x1f2202(0x83f)](_0x284072+0x1),_0x135344[_0x1f2202(0x83f)](_0x284072+0x2),_0x135344[_0x1f2202(0x83f)](_0x284072),_0x135344[_0x1f2202(0x83f)](_0x284072+0x2),_0x135344['push'](_0x284072+0x3),_0x284072+=0x4;this[_0x1f2202(0xa78)]=this['_engine'][_0x1f2202(0xa98)](_0x135344);}[_0x271c50(0x52f)](){var _0x5647e0=_0x271c50,_0x5921e2;this[_0x5647e0(0xa78)]&&this['_buildIndexBuffer'](),this[_0x5647e0(0x60e)]&&(this[_0x5647e0(0xcbb)]=void 0x0),this['_buffer']['_rebuild']();for(const _0x1cacc0 in this[_0x5647e0(0x5e8)]){const _0x5807ff=this[_0x5647e0(0x5e8)][_0x1cacc0];_0x5807ff[_0x5647e0(0x9df)]();}null!=(_0x5921e2=this[_0x5647e0(0x264)])&&_0x5921e2['_rebuild']();}['dispose'](){var _0x12d57a=_0x271c50;this['_buffer']&&(this[_0x12d57a(0x64a)][_0x12d57a(0x431)](),this['_buffer']=null),this[_0x12d57a(0x264)]&&(this[_0x12d57a(0x264)][_0x12d57a(0x431)](),this[_0x12d57a(0x264)]=null),this[_0x12d57a(0xa78)]&&(this[_0x12d57a(0x397)][_0x12d57a(0x203)](this[_0x12d57a(0xa78)]),this[_0x12d57a(0xa78)]=null),this[_0x12d57a(0xcbb)]&&(this[_0x12d57a(0x397)]['releaseVertexArrayObject'](this[_0x12d57a(0xcbb)]),this['_vertexArrayObject']=null),this[_0x12d57a(0x6f7)]&&(this[_0x12d57a(0x6f7)][_0x12d57a(0x431)](),this[_0x12d57a(0x6f7)]=null),this[_0x12d57a(0x1e8)]['dispose'](),this[_0x12d57a(0x35e)][_0x12d57a(0x431)](),this[_0x12d57a(0x75c)]['dispose'](),this[_0x12d57a(0x30a)][_0x12d57a(0x431)]();}}},0x1796e:(_0x272d23,_0x24542e,_0x22169b)=>{var _0x5b3eb7=a6_0x1e64fa;_0x22169b['d'](_0x24542e,{'l':()=>_0x3d16a4});class _0x3d16a4{constructor(){var _0x249d71=a6_0x2304;this[_0x249d71(0xca4)]=0x1,this[_0x249d71(0x43d)]=0x1,this[_0x249d71(0x54d)]=0x0,this[_0x249d71(0xc34)]=!0x1,this[_0x249d71(0x2fb)]=!0x1,this[_0x249d71(0x2d1)]=!0x0,this[_0x249d71(0xa30)]=!0x1,this['_loopAnimation']=!0x1,this[_0x249d71(0x9d2)]=0x0,this[_0x249d71(0x97f)]=0x0,this['_delay']=0x0,this[_0x249d71(0x760)]=0x1,this[_0x249d71(0x28f)]=0x0,this[_0x249d71(0xafc)]=null,this[_0x249d71(0x3f5)]={'x':0x1,'y':0x1,'z':0x1},this[_0x249d71(0x84f)]={'r':0x1,'g':0x1,'b':0x1,'a':0x1};}get[_0x5b3eb7(0xc83)](){return this['_animationStarted'];}get[_0x5b3eb7(0xa38)](){var _0x13930c=_0x5b3eb7;return this[_0x13930c(0x9d2)];}get[_0x5b3eb7(0x256)](){var _0x54e695=_0x5b3eb7;return this[_0x54e695(0x97f)];}get[_0x5b3eb7(0x1ec)](){return this['_loopAnimation'];}get[_0x5b3eb7(0x296)](){var _0x4c3f79=_0x5b3eb7;return Math[_0x4c3f79(0x89f)](this[_0x4c3f79(0xcfd)],0x1);}[_0x5b3eb7(0x7f1)](_0x169faf,_0x398e8a,_0x1e99e4,_0x58e3f0,_0x112524){var _0x115d44=_0x5b3eb7;this['_fromIndex']=_0x169faf,this[_0x115d44(0x97f)]=_0x398e8a,this[_0x115d44(0x27b)]=_0x1e99e4,this[_0x115d44(0xcfd)]=_0x58e3f0||0x1,this[_0x115d44(0xa30)]=!0x0,this[_0x115d44(0xafc)]=_0x112524,_0x169faf<_0x398e8a?this['_direction']=0x1:(this[_0x115d44(0x760)]=-0x1,this['_toIndex']=_0x169faf,this[_0x115d44(0x9d2)]=_0x398e8a),this[_0x115d44(0x16f)]=_0x169faf,this[_0x115d44(0x28f)]=0x0;}[_0x5b3eb7(0x1a6)](){var _0xb11773=_0x5b3eb7;this[_0xb11773(0xa30)]=!0x1;}[_0x5b3eb7(0x682)](_0x36c3a2){var _0x8135d=_0x5b3eb7;this[_0x8135d(0xa30)]&&(this[_0x8135d(0x28f)]+=_0x36c3a2,this['_time']>this['_delay']&&(this['_time']=this['_time']%this['_delay'],this[_0x8135d(0x16f)]+=this[_0x8135d(0x760)],(0x0<this['_direction']&&this[_0x8135d(0x16f)]>this[_0x8135d(0x97f)]||this[_0x8135d(0x760)]<0x0&&this[_0x8135d(0x16f)]<this[_0x8135d(0x9d2)])&&(this['_loopAnimation']?this[_0x8135d(0x16f)]=0x0<this['_direction']?this['_fromIndex']:this[_0x8135d(0x97f)]:(this[_0x8135d(0x16f)]=this['_toIndex'],this[_0x8135d(0xa30)]=!0x1,this[_0x8135d(0xafc)]&&this[_0x8135d(0xafc)]()))));}}},0x91e:(_0x3fd39c,_0x14cf96,_0x4694e7)=>{var _0x436561=a6_0x1e64fa;_0x4694e7['d'](_0x14cf96,{'Q':()=>_0x1fb6ce});class _0x1fb6ce{constructor(){var _0x173085=a6_0x2304;this[_0x173085(0x66e)]=new Array(0x4),this[_0x173085(0x46a)]=new Array(0x2),this[_0x173085(0x6ca)]=new Array(0x4),this[_0x173085(0x76d)]=!0x1,this[_0x173085(0x7ee)]=!0x1,this[_0x173085(0x36f)]=!0x1,this[_0x173085(0x13a)]=!0x1,this[_0x173085(0xaab)]=!0x1,this[_0x173085(0x22b)]();}get[_0x436561(0x23f)](){var _0x249337=_0x436561;return this['_isAlphaBlendDirty']||this[_0x249337(0x13a)]||this[_0x249337(0xaab)];}get['alphaBlend'](){var _0x4e8642=_0x436561;return this[_0x4e8642(0x7ee)];}set['alphaBlend'](_0x416680){var _0x47eced=_0x436561;this[_0x47eced(0x7ee)]!==_0x416680&&(this['_alphaBlend']=_0x416680,this[_0x47eced(0x36f)]=!0x0);}['setAlphaBlendConstants'](_0x49da76,_0x74e789,_0x33829e,_0x389163){var _0x1d7196=_0x436561;this[_0x1d7196(0x6ca)][0x0]===_0x49da76&&this[_0x1d7196(0x6ca)][0x1]===_0x74e789&&this['_blendConstants'][0x2]===_0x33829e&&this[_0x1d7196(0x6ca)][0x3]===_0x389163||(this[_0x1d7196(0x6ca)][0x0]=_0x49da76,this[_0x1d7196(0x6ca)][0x1]=_0x74e789,this[_0x1d7196(0x6ca)][0x2]=_0x33829e,this[_0x1d7196(0x6ca)][0x3]=_0x389163,this[_0x1d7196(0x76d)]=!0x0);}[_0x436561(0x503)](_0x4769f7,_0x234b35,_0x8771a1,_0x296714){var _0x34e64e=_0x436561;this[_0x34e64e(0x66e)][0x0]===_0x4769f7&&this[_0x34e64e(0x66e)][0x1]===_0x234b35&&this[_0x34e64e(0x66e)][0x2]===_0x8771a1&&this[_0x34e64e(0x66e)][0x3]===_0x296714||(this[_0x34e64e(0x66e)][0x0]=_0x4769f7,this[_0x34e64e(0x66e)][0x1]=_0x234b35,this[_0x34e64e(0x66e)][0x2]=_0x8771a1,this['_blendFunctionParameters'][0x3]=_0x296714,this[_0x34e64e(0x13a)]=!0x0);}['setAlphaEquationParameters'](_0x29359f,_0x69623b){var _0x3658d4=_0x436561;this[_0x3658d4(0x46a)][0x0]===_0x29359f&&this[_0x3658d4(0x46a)][0x1]===_0x69623b||(this[_0x3658d4(0x46a)][0x0]=_0x29359f,this[_0x3658d4(0x46a)][0x1]=_0x69623b,this[_0x3658d4(0xaab)]=!0x0);}[_0x436561(0x22b)](){var _0x2883dd=_0x436561;this[_0x2883dd(0x7ee)]=!0x1,this[_0x2883dd(0x66e)][0x0]=null,this[_0x2883dd(0x66e)][0x1]=null,this['_blendFunctionParameters'][0x2]=null,this['_blendFunctionParameters'][0x3]=null,this[_0x2883dd(0x46a)][0x0]=null,this[_0x2883dd(0x46a)][0x1]=null,this[_0x2883dd(0x6ca)][0x0]=null,this['_blendConstants'][0x1]=null,this[_0x2883dd(0x6ca)][0x2]=null,this[_0x2883dd(0x6ca)][0x3]=null,this[_0x2883dd(0x36f)]=!0x0,this[_0x2883dd(0x13a)]=!0x1,this[_0x2883dd(0xaab)]=!0x1,this[_0x2883dd(0x76d)]=!0x1;}['apply'](_0x388dac){var _0x1dea89=_0x436561;this['isDirty']&&(this[_0x1dea89(0x36f)]&&(this[_0x1dea89(0x7ee)]?_0x388dac[_0x1dea89(0x508)](_0x388dac['BLEND']):_0x388dac[_0x1dea89(0x8db)](_0x388dac[_0x1dea89(0x6fa)]),this[_0x1dea89(0x36f)]=!0x1),this[_0x1dea89(0x13a)]&&(_0x388dac[_0x1dea89(0xc59)](this[_0x1dea89(0x66e)][0x0],this[_0x1dea89(0x66e)][0x1],this['_blendFunctionParameters'][0x2],this[_0x1dea89(0x66e)][0x3]),this[_0x1dea89(0x13a)]=!0x1),this['_isBlendEquationParametersDirty']&&(_0x388dac['blendEquationSeparate'](this['_blendEquationParameters'][0x0],this[_0x1dea89(0x46a)][0x1]),this[_0x1dea89(0xaab)]=!0x1),this['_isBlendConstantsDirty']&&(_0x388dac[_0x1dea89(0x4d8)](this['_blendConstants'][0x0],this['_blendConstants'][0x1],this[_0x1dea89(0x6ca)][0x2],this['_blendConstants'][0x3]),this[_0x1dea89(0x76d)]=!0x1));}}},0x12621:(_0x111963,_0x453a45,_0x542542)=>{var _0x3395f1=a6_0x1e64fa;_0x542542['d'](_0x453a45,{'k':()=>_0x351609});class _0x351609{constructor(_0x5000e5=!0x0){var _0x3b6b15=a6_0x2304;this[_0x3b6b15(0x7b2)]=!0x1,this[_0x3b6b15(0x921)]=!0x1,this[_0x3b6b15(0x815)]=!0x1,this[_0x3b6b15(0x76a)]=!0x1,this['_isCullDirty']=!0x1,this[_0x3b6b15(0x4b4)]=!0x1,this[_0x3b6b15(0x317)]=!0x1,_0x5000e5&&this[_0x3b6b15(0x22b)]();}get[_0x3395f1(0x23f)](){var _0xbe1730=_0x3395f1;return this['_isDepthFuncDirty']||this['_isDepthTestDirty']||this[_0xbe1730(0x921)]||this[_0xbe1730(0x76a)]||this[_0xbe1730(0xc78)]||this[_0xbe1730(0x4b4)]||this[_0xbe1730(0x317)];}get[_0x3395f1(0xbbd)](){var _0x293903=_0x3395f1;return this[_0x293903(0x2e5)];}set[_0x3395f1(0xbbd)](_0x71745c){var _0x3830e4=_0x3395f1;this[_0x3830e4(0x2e5)]!==_0x71745c&&(this[_0x3830e4(0x2e5)]=_0x71745c,this[_0x3830e4(0x4b4)]=!0x0);}get[_0x3395f1(0xc4a)](){var _0x450438=_0x3395f1;return this[_0x450438(0x812)];}set[_0x3395f1(0xc4a)](_0x398aab){var _0x3a97fd=_0x3395f1;this[_0x3a97fd(0x812)]!==_0x398aab&&(this['_zOffsetUnits']=_0x398aab,this['_isZOffsetDirty']=!0x0);}get[_0x3395f1(0x4d7)](){return this['_cullFace'];}set[_0x3395f1(0x4d7)](_0x5f3339){var _0x2846e5=_0x3395f1;this['_cullFace']!==_0x5f3339&&(this[_0x2846e5(0xbd8)]=_0x5f3339,this[_0x2846e5(0x76a)]=!0x0);}get[_0x3395f1(0xb4b)](){return this['_cull'];}set['cull'](_0x16114c){var _0x12703e=_0x3395f1;this[_0x12703e(0x192)]!==_0x16114c&&(this['_cull']=_0x16114c,this['_isCullDirty']=!0x0);}get[_0x3395f1(0x3dd)](){var _0x17fc39=_0x3395f1;return this[_0x17fc39(0x679)];}set[_0x3395f1(0x3dd)](_0x8d1fc2){var _0xb5152b=_0x3395f1;this['_depthFunc']!==_0x8d1fc2&&(this[_0xb5152b(0x679)]=_0x8d1fc2,this['_isDepthFuncDirty']=!0x0);}get[_0x3395f1(0x828)](){var _0x4945a2=_0x3395f1;return this[_0x4945a2(0xcf6)];}set[_0x3395f1(0x828)](_0x1a60d7){var _0x29cab7=_0x3395f1;this[_0x29cab7(0xcf6)]!==_0x1a60d7&&(this['_depthMask']=_0x1a60d7,this[_0x29cab7(0x921)]=!0x0);}get[_0x3395f1(0x71f)](){return this['_depthTest'];}set['depthTest'](_0x4d7b27){var _0x7c25f1=_0x3395f1;this[_0x7c25f1(0x4d3)]!==_0x4d7b27&&(this[_0x7c25f1(0x4d3)]=_0x4d7b27,this[_0x7c25f1(0x7b2)]=!0x0);}get[_0x3395f1(0x2ef)](){var _0x1c6ade=_0x3395f1;return this[_0x1c6ade(0x7a5)];}set[_0x3395f1(0x2ef)](_0x5189c5){var _0x560a30=_0x3395f1;this[_0x560a30(0x7a5)]!==_0x5189c5&&(this['_frontFace']=_0x5189c5,this[_0x560a30(0x317)]=!0x0);}[_0x3395f1(0x22b)](){var _0x4c8058=_0x3395f1;this[_0x4c8058(0xcf6)]=!0x0,this[_0x4c8058(0x4d3)]=!0x0,this[_0x4c8058(0x679)]=null,this['_cullFace']=null,this[_0x4c8058(0x192)]=null,this[_0x4c8058(0x2e5)]=0x0,this['_zOffsetUnits']=0x0,this[_0x4c8058(0x7a5)]=null,this['_isDepthTestDirty']=!0x0,this[_0x4c8058(0x921)]=!0x0,this[_0x4c8058(0x815)]=!0x1,this['_isCullFaceDirty']=!0x1,this[_0x4c8058(0xc78)]=!0x1,this[_0x4c8058(0x4b4)]=!0x0,this[_0x4c8058(0x317)]=!0x1;}['apply'](_0x4b4438){var _0xb8277e=_0x3395f1;this[_0xb8277e(0x23f)]&&(this['_isCullDirty']&&(this['cull']?_0x4b4438['enable'](_0x4b4438[_0xb8277e(0x81d)]):_0x4b4438[_0xb8277e(0x8db)](_0x4b4438[_0xb8277e(0x81d)]),this[_0xb8277e(0xc78)]=!0x1),this[_0xb8277e(0x76a)]&&(_0x4b4438['cullFace'](this[_0xb8277e(0x4d7)]),this[_0xb8277e(0x76a)]=!0x1),this[_0xb8277e(0x921)]&&(_0x4b4438[_0xb8277e(0x828)](this[_0xb8277e(0x828)]),this[_0xb8277e(0x921)]=!0x1),this[_0xb8277e(0x7b2)]&&(this[_0xb8277e(0x71f)]?_0x4b4438[_0xb8277e(0x508)](_0x4b4438['DEPTH_TEST']):_0x4b4438[_0xb8277e(0x8db)](_0x4b4438['DEPTH_TEST']),this['_isDepthTestDirty']=!0x1),this['_isDepthFuncDirty']&&(_0x4b4438[_0xb8277e(0x3dd)](this[_0xb8277e(0x3dd)]),this[_0xb8277e(0x815)]=!0x1),this[_0xb8277e(0x4b4)]&&(this[_0xb8277e(0xbbd)]||this['zOffsetUnits']?(_0x4b4438['enable'](_0x4b4438['POLYGON_OFFSET_FILL']),_0x4b4438[_0xb8277e(0x2c3)](this[_0xb8277e(0xbbd)],this[_0xb8277e(0xc4a)])):_0x4b4438['disable'](_0x4b4438[_0xb8277e(0x4c2)]),this[_0xb8277e(0x4b4)]=!0x1),this[_0xb8277e(0x317)]&&(_0x4b4438[_0xb8277e(0x2ef)](this[_0xb8277e(0x2ef)]),this[_0xb8277e(0x317)]=!0x1));}}},0x2902:(_0x3055aa,_0x61f6aa,_0x582125)=>{var _0x3b602c=a6_0x1e64fa;_0x582125['d'](_0x61f6aa,{'C':()=>_0x3aeb9a});class _0x3aeb9a{constructor(_0x205551=!0x0){var _0x4b6f2c=a6_0x2304;this[_0x4b6f2c(0x50f)]=!0x1,this['_isStencilMaskDirty']=!0x1,this[_0x4b6f2c(0x7d2)]=!0x1,this['_isStencilOpDirty']=!0x1,this['useStencilGlobalOnly']=!0x1,_0x205551&&this[_0x4b6f2c(0x22b)]();}get[_0x3b602c(0x23f)](){var _0x5cf0a1=_0x3b602c;return this[_0x5cf0a1(0x50f)]||this[_0x5cf0a1(0x4ab)]||this[_0x5cf0a1(0x7d2)]||this[_0x5cf0a1(0x548)];}get[_0x3b602c(0xb06)](){var _0x2fef18=_0x3b602c;return this[_0x2fef18(0x6f6)];}set[_0x3b602c(0xb06)](_0x4ef9dc){var _0x2467bf=_0x3b602c;this[_0x2467bf(0x6f6)]!==_0x4ef9dc&&(this[_0x2467bf(0x6f6)]=_0x4ef9dc,this[_0x2467bf(0x7d2)]=!0x0);}get[_0x3b602c(0x7c5)](){return this['_funcRef'];}set[_0x3b602c(0x7c5)](_0x57b84c){var _0x13f2e3=_0x3b602c;this[_0x13f2e3(0x2ea)]!==_0x57b84c&&(this['_funcRef']=_0x57b84c,this[_0x13f2e3(0x7d2)]=!0x0);}get[_0x3b602c(0x851)](){return this['_funcMask'];}set[_0x3b602c(0x851)](_0x3b6a09){var _0x1877b3=_0x3b602c;this[_0x1877b3(0x823)]!==_0x3b6a09&&(this[_0x1877b3(0x823)]=_0x3b6a09,this['_isStencilFuncDirty']=!0x0);}get[_0x3b602c(0x1d1)](){return this['_opStencilFail'];}set[_0x3b602c(0x1d1)](_0x14bb31){var _0x54c050=_0x3b602c;this[_0x54c050(0x665)]!==_0x14bb31&&(this[_0x54c050(0x665)]=_0x14bb31,this[_0x54c050(0x548)]=!0x0);}get[_0x3b602c(0xc3b)](){var _0x333778=_0x3b602c;return this[_0x333778(0x252)];}set[_0x3b602c(0xc3b)](_0x1b2f7b){var _0x5ef162=_0x3b602c;this['_opDepthFail']!==_0x1b2f7b&&(this['_opDepthFail']=_0x1b2f7b,this[_0x5ef162(0x548)]=!0x0);}get['opStencilDepthPass'](){var _0x46ceb0=_0x3b602c;return this[_0x46ceb0(0xcfb)];}set[_0x3b602c(0x724)](_0x7d4cdf){var _0x147494=_0x3b602c;this['_opStencilDepthPass']!==_0x7d4cdf&&(this['_opStencilDepthPass']=_0x7d4cdf,this[_0x147494(0x548)]=!0x0);}get[_0x3b602c(0xc5e)](){var _0x452d26=_0x3b602c;return this[_0x452d26(0x22e)];}set[_0x3b602c(0xc5e)](_0x47863f){var _0x3c096a=_0x3b602c;this[_0x3c096a(0x22e)]!==_0x47863f&&(this[_0x3c096a(0x22e)]=_0x47863f,this[_0x3c096a(0x4ab)]=!0x0);}get['enabled'](){var _0x4cb70e=_0x3b602c;return this[_0x4cb70e(0x747)];}set[_0x3b602c(0x4d2)](_0x9afe9e){var _0x20a133=_0x3b602c;this[_0x20a133(0x747)]!==_0x9afe9e&&(this[_0x20a133(0x747)]=_0x9afe9e,this[_0x20a133(0x50f)]=!0x0);}[_0x3b602c(0x22b)](){var _0x12f04b=_0x3b602c,_0x25396b;this[_0x12f04b(0x2c4)]=void 0x0,null!=(_0x25396b=this[_0x12f04b(0x1c6)])&&_0x25396b['reset'](),this[_0x12f04b(0x50f)]=!0x0,this[_0x12f04b(0x4ab)]=!0x0,this[_0x12f04b(0x7d2)]=!0x0,this[_0x12f04b(0x548)]=!0x0;}[_0x3b602c(0x7f9)](_0x3f4122){var _0x15547a=_0x3b602c,_0x52c1d5;_0x3f4122&&(_0x52c1d5=!this[_0x15547a(0x25b)]&&!(null==(_0x52c1d5=this[_0x15547a(0x2c4)])||!_0x52c1d5[_0x15547a(0x4d2)]),this['enabled']=(_0x52c1d5?this[_0x15547a(0x2c4)]:this[_0x15547a(0x1c6)])[_0x15547a(0x4d2)],this['func']=(_0x52c1d5?this[_0x15547a(0x2c4)]:this[_0x15547a(0x1c6)])[_0x15547a(0xb06)],this['funcRef']=(_0x52c1d5?this[_0x15547a(0x2c4)]:this[_0x15547a(0x1c6)])[_0x15547a(0x7c5)],this[_0x15547a(0x851)]=(_0x52c1d5?this[_0x15547a(0x2c4)]:this[_0x15547a(0x1c6)])['funcMask'],this['opStencilFail']=(_0x52c1d5?this['stencilMaterial']:this['stencilGlobal'])[_0x15547a(0x1d1)],this[_0x15547a(0xc3b)]=(_0x52c1d5?this['stencilMaterial']:this[_0x15547a(0x1c6)])[_0x15547a(0xc3b)],this['opStencilDepthPass']=(_0x52c1d5?this[_0x15547a(0x2c4)]:this[_0x15547a(0x1c6)])[_0x15547a(0x724)],this[_0x15547a(0xc5e)]=(_0x52c1d5?this['stencilMaterial']:this[_0x15547a(0x1c6)])[_0x15547a(0xc5e)],this['isDirty']&&(this[_0x15547a(0x50f)]&&(this[_0x15547a(0x4d2)]?_0x3f4122[_0x15547a(0x508)](_0x3f4122['STENCIL_TEST']):_0x3f4122[_0x15547a(0x8db)](_0x3f4122['STENCIL_TEST']),this[_0x15547a(0x50f)]=!0x1),this[_0x15547a(0x4ab)]&&(_0x3f4122[_0x15547a(0x90b)](this['mask']),this[_0x15547a(0x4ab)]=!0x1),this[_0x15547a(0x7d2)]&&(_0x3f4122[_0x15547a(0x8c8)](this[_0x15547a(0xb06)],this[_0x15547a(0x7c5)],this['funcMask']),this[_0x15547a(0x7d2)]=!0x1),this[_0x15547a(0x548)]&&(_0x3f4122[_0x15547a(0x701)](this[_0x15547a(0x1d1)],this[_0x15547a(0xc3b)],this[_0x15547a(0x724)]),this[_0x15547a(0x548)]=!0x1)));}}},0xde31:(_0x3eb3ae,_0x4abf98,_0x15a373)=>{var _0x46ba59=a6_0x1e64fa;_0x15a373['d'](_0x4abf98,{'F':()=>_0x3a66a9});class _0x3a66a9{constructor(_0x3d8e15){var _0x4b7f91=a6_0x2304;this[_0x4b7f91(0x509)]=_0x3d8e15,this[_0x4b7f91(0xbd1)]=!0x1,this['_removeOnDetach']=[],this[_0x4b7f91(0x9c8)]=!0x1,this[_0x4b7f91(0x240)]=!0x1,this[_0x4b7f91(0x507)]='';}get['attached'](){var _0x37ef72=a6_0x2304;return this[_0x37ef72(0xbd1)];}[_0x46ba59(0x301)](_0x5b488e){var _0x3b22ff=_0x46ba59;if(this[_0x3b22ff(0x9c8)])return!0x1;if(_0x5b488e)this[_0x3b22ff(0x2fa)]&&this[_0x3b22ff(0x632)]();else{if(this['attached'])return!0x1;}return this[_0x3b22ff(0xbd1)]=!0x0,this[_0x3b22ff(0x422)](this[_0x3b22ff(0x509)]['onXRFrameObservable'],_0x4d86c9=>this[_0x3b22ff(0x6b0)](_0x4d86c9)),!0x0;}[_0x46ba59(0x632)](){var _0x1bc250=_0x46ba59;return this[_0x1bc250(0xbd1)]?(this['_attached']=!0x1,this['_removeOnDetach'][_0x1bc250(0x497)](_0x62088f=>{var _0x1de0cc=_0x1bc250;_0x62088f[_0x1de0cc(0x32c)][_0x1de0cc(0x36a)](_0x62088f['observer']);}),!0x0):!(this['disableAutoAttach']=!0x0);}[_0x46ba59(0x431)](){this['detach'](),this['isDisposed']=!0x0;}[_0x46ba59(0x354)](){return!0x0;}[_0x46ba59(0x422)](_0xdc955c,_0xdc1784){var _0x25bd63=_0x46ba59;this[_0x25bd63(0x3ca)]['push']({'observable':_0xdc955c,'observer':_0xdc955c[_0x25bd63(0x526)](_0xdc1784)});}}},0x3a6b:(_0x1959bd,_0x5ed689,_0x164aa3)=>{var _0x5e2b7d=a6_0x1e64fa;_0x164aa3['d'](_0x5ed689,{'s':()=>_0x3d494e});class _0x3d494e{constructor(_0x1f270e,_0xf5a9b3,_0x164582,_0x167c3f,_0x2cc3fd){var _0x34c072=a6_0x2304;this['getWidth']=_0x1f270e,this['getHeight']=_0xf5a9b3,this[_0x34c072(0x75f)]=_0x164582,this[_0x34c072(0xcf4)]=_0x167c3f,this[_0x34c072(0x8c4)]=_0x2cc3fd;}get['isFixedFoveationSupported'](){var _0x20c0cd=a6_0x2304;return _0x20c0cd(0x8ef)==this[_0x20c0cd(0xcf4)]&&_0x20c0cd(0x943)==typeof this['layer'][_0x20c0cd(0x731)];}get[_0x5e2b7d(0x731)](){var _0x37aca2=_0x5e2b7d;return this[_0x37aca2(0x6d2)]?this[_0x37aca2(0x75f)][_0x37aca2(0x731)]:null;}set[_0x5e2b7d(0x731)](_0x20fe2e){var _0x524039=_0x5e2b7d;this[_0x524039(0x6d2)]&&(_0x20fe2e=Math[_0x524039(0x89f)](0x0,Math[_0x524039(0xbab)](0x1,_0x20fe2e||0x0)),this[_0x524039(0x75f)][_0x524039(0x731)]=_0x20fe2e);}}},0x43e9:(_0x519cf3,_0x38bf19,_0x2c7b7e)=>{var _0x105b95=a6_0x1e64fa;_0x2c7b7e['d'](_0x38bf19,{'T':()=>_0x53e58e});var _0x2e0d03=_0x2c7b7e(0x2f9d);class _0x53e58e{constructor(_0x3d65ef,_0x5d84ee){var _0x3ad693=a6_0x2304;this['modelTotalCount']=0x0,this[_0x3ad693(0x8e8)]={},this[_0x3ad693(0x8a7)]=0x0,_0x3d65ef instanceof SharedArrayBuffer?(this['modelArrayBuff']=_0x3d65ef,this[_0x3ad693(0xc6a)]=_0x3d65ef[_0x3ad693(0x4d6)]/(0x4*_0x53e58e[_0x3ad693(0xb76)]),this[_0x3ad693(0x8e8)]=_0x5d84ee):(this[_0x3ad693(0xbfd)]=new SharedArrayBuffer(_0x3d65ef*(0x4*_0x53e58e[_0x3ad693(0xb76)])),this[_0x3ad693(0xc6a)]=_0x3d65ef),this[_0x3ad693(0xbf6)]=new TextEncoder(),this[_0x3ad693(0x369)]=new TextDecoder(),this[_0x3ad693(0x1b8)]=new Float32Array(this[_0x3ad693(0xbfd)]),this['i32d']=new Int32Array(this[_0x3ad693(0xbfd)]),this[_0x3ad693(0x662)]=new Uint8Array(this['modelArrayBuff']),this[_0x3ad693(0x1db)]=new Uint8Array(0xc8);}[_0x105b95(0x8a1)](_0x80164a){var _0x1a6547=_0x105b95;return _0x80164a=this[_0x1a6547(0x8e8)][_0x80164a],this[_0x1a6547(0x1b8)][_0x1a6547(0x25f)](_0x80164a,_0x80164a+0x3);}[_0x105b95(0x575)](_0x395bf6){var _0x293243=_0x105b95;return _0x395bf6=this[_0x293243(0x8e8)][_0x395bf6]+0x3,this[_0x293243(0x1b8)][_0x293243(0x25f)](_0x395bf6,_0x395bf6+0x3);}[_0x105b95(0xb90)](_0x1b4a68){var _0x2acd01=_0x105b95;return _0x1b4a68=this[_0x2acd01(0x8e8)][_0x1b4a68]+0x6,this[_0x2acd01(0x1b8)][_0x2acd01(0x25f)](_0x1b4a68,_0x1b4a68+0x10);}['customizeMaterialCount'](_0x2bc333){var _0x568697=_0x105b95;return _0x2bc333=this[_0x568697(0x8e8)][_0x2bc333]+0x1d,this[_0x568697(0x149)][_0x568697(0x25f)](_0x2bc333,_0x2bc333+0x1);}[_0x105b95(0xab2)](_0x58423c){var _0x4760fc=_0x105b95;return _0x58423c=this[_0x4760fc(0x8e8)][_0x58423c]+0x1c,this[_0x4760fc(0x149)][_0x4760fc(0x25f)](_0x58423c,_0x58423c+0x1);}[_0x105b95(0x33d)](_0x70035f){var _0x3d2ba6=_0x105b95;return _0x70035f=this['modelIndexOffsetStart'][_0x70035f]+0x1b,this['i32d'][_0x3d2ba6(0x25f)](_0x70035f,_0x70035f+0x1);}['废弃'](_0x12b8ee){var _0x58e41c=_0x105b95;return _0x12b8ee=this[_0x58e41c(0x8e8)][_0x12b8ee]+0x1a,this['i32d'][_0x58e41c(0x25f)](_0x12b8ee,_0x12b8ee+0x1);}['materialCount'](_0x14b318){var _0x5584fc=_0x105b95;return _0x14b318=this[_0x5584fc(0x8e8)][_0x14b318]+0x19,this[_0x5584fc(0x149)][_0x5584fc(0x25f)](_0x14b318,_0x14b318+0x1);}[_0x105b95(0x204)](_0x4b81ce){var _0x591d95=_0x105b95;return _0x4b81ce=this[_0x591d95(0x8e8)][_0x4b81ce]+0x18,this[_0x591d95(0x149)][_0x591d95(0x25f)](_0x4b81ce,_0x4b81ce+0x1);}[_0x105b95(0x46d)](_0x43bca7){var _0x2a842e=_0x105b95;return _0x43bca7=this[_0x2a842e(0x8e8)][_0x43bca7]+0x17,this[_0x2a842e(0x149)][_0x2a842e(0x25f)](_0x43bca7,_0x43bca7+0x1);}['componentCount'](_0x4f26a8){var _0x1689b3=_0x105b95;return _0x4f26a8=this[_0x1689b3(0x8e8)][_0x4f26a8]+0x16,this[_0x1689b3(0x149)]['subarray'](_0x4f26a8,_0x4f26a8+0x1);}[_0x105b95(0xacb)](_0x232f68){var _0x1ed424=_0x105b95;return _0x232f68=0x4*this['modelIndexOffsetStart'][_0x232f68]+0x78,_0x232f68=this[_0x1ed424(0x662)][_0x1ed424(0x25f)](_0x232f68,0xc8+_0x232f68),(this[_0x1ed424(0x1db)][_0x1ed424(0x970)](_0x232f68),this[_0x1ed424(0x369)][_0x1ed424(0xb0d)](this['textBuffer'])[_0x1ed424(0x3cd)](/\x00/g,''));}[_0x105b95(0xcf2)](_0x3aafbb,_0x4f9cac){var _0x3b7e0f=_0x105b95;if(_0x4f9cac){_0x3aafbb=0x4*this[_0x3b7e0f(0x8e8)][_0x3aafbb]+0x78;let _0x5a32c6=this[_0x3b7e0f(0x662)][_0x3b7e0f(0x25f)](_0x3aafbb,0xc8+_0x3aafbb);_0x5a32c6[_0x3b7e0f(0x970)](this['textE'][_0x3b7e0f(0x685)](_0x4f9cac));}}[_0x105b95(0xac9)](_0x961791){var _0x5b7103=_0x105b95;return _0x961791=0x4*this[_0x5b7103(0x8e8)][_0x961791]+0x140,_0x961791=this[_0x5b7103(0x662)][_0x5b7103(0x25f)](_0x961791,0x20+_0x961791),0x0!==_0x961791[0x0]?(this['textBuffer'][_0x5b7103(0x970)](_0x961791),this[_0x5b7103(0x369)][_0x5b7103(0xb0d)](this[_0x5b7103(0x1db)][_0x5b7103(0x25f)](0x0,0x20))):'';}[_0x105b95(0x92d)](_0x21b6bc,_0xe8a5c2){var _0x172560=_0x105b95;if(_0xe8a5c2){_0x21b6bc=0x4*this[_0x172560(0x8e8)][_0x21b6bc]+0x140;let _0x286e78=this[_0x172560(0x662)]['subarray'](_0x21b6bc,0x20+_0x21b6bc);_0x286e78[_0x172560(0x970)](this[_0x172560(0xbf6)][_0x172560(0x685)](_0xe8a5c2));}}[_0x105b95(0x7b6)](_0x5af9cf){var _0x36cb21=_0x105b95;this[_0x36cb21(0x8e8)][_0x5af9cf['id']]=this[_0x36cb21(0x8a7)],this[_0x36cb21(0x8a7)]+=_0x53e58e['modelDataLength'];var _0x3e0deb=this[_0x36cb21(0x8e8)][_0x5af9cf['id']];let _0x3b5db8=this[_0x36cb21(0x1b8)][_0x36cb21(0x25f)](_0x3e0deb,_0x3e0deb+0x16),_0x8692d6=[0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x1];_0x5af9cf[_0x36cb21(0xb90)]&&(_0x8692d6=(0x0,_0x2e0d03['ux'])(_0x5af9cf[_0x36cb21(0xb90)][_0x36cb21(0x1f6)]('\x20'))),_0x3b5db8[_0x36cb21(0x970)]([...(0x0,_0x2e0d03['ux'])(_0x5af9cf['boxMin'][_0x36cb21(0x1f6)]('\x20')),...(0x0,_0x2e0d03['ux'])(_0x5af9cf[_0x36cb21(0x575)][_0x36cb21(0x1f6)]('\x20')),..._0x8692d6]),_0x3e0deb=this[_0x36cb21(0x8e8)][_0x5af9cf['id']]+0x16;let _0x54cf7a=this[_0x36cb21(0x149)][_0x36cb21(0x25f)](_0x3e0deb,_0x3e0deb+0x7);_0x54cf7a[_0x36cb21(0x970)]([_0x5af9cf[_0x36cb21(0x716)],_0x5af9cf[_0x36cb21(0x46d)],_0x5af9cf[_0x36cb21(0x204)],_0x5af9cf[_0x36cb21(0x827)],0x0,-0x1,_0x5af9cf[_0x36cb21(0xab2)]||0x1]),this['setFileName'](_0x5af9cf['id'],_0x5af9cf[_0x36cb21(0x9b4)]),this[_0x36cb21(0x92d)](_0x5af9cf['id'],_0x5af9cf[_0x36cb21(0x155)]);}[_0x105b95(0x95f)](){var _0xb96973=_0x105b95;let _0x48e944={};for(var _0x39f465 in this[_0xb96973(0x8e8)]){var _0x39f465=~~_0x39f465,_0x4f8ae1=this[_0xb96973(0x8e8)][_0x39f465];let _0x2a59ea=this[_0xb96973(0x1b8)][_0xb96973(0x25f)](_0x4f8ae1,_0x4f8ae1+0x16);_0x4f8ae1=this[_0xb96973(0x8e8)][_0x39f465]+0x16,_0x4f8ae1=this['i32d']['subarray'](_0x4f8ae1,_0x4f8ae1+0x7),_0x48e944[_0x39f465]={'id':_0x39f465,'boxMin':_0x2a59ea['subarray'](0x0,0x3),'boxMax':_0x2a59ea[_0xb96973(0x25f)](0x3,0x6),'transform':_0x2a59ea[_0xb96973(0x25f)](0x6,0x16),'componentCount':_0x4f8ae1[0x0],'meshInstancesCount':_0x4f8ae1[0x1],'meshCount':_0x4f8ae1[0x2],'materialCount':_0x4f8ae1[0x3],'fileName':this[_0xb96973(0xacb)](_0x39f465),'uniqueId':this[_0xb96973(0xac9)](_0x39f465),'status':_0x4f8ae1[0x6]};}return _0x48e944;}[_0x105b95(0x172)](_0x100f33){var _0x55063d=_0x105b95,_0x4c4bfe=this[_0x55063d(0x8e8)][_0x100f33];let _0x1a22a8=this['f32d'][_0x55063d(0x25f)](_0x4c4bfe,_0x4c4bfe+0x16);return _0x4c4bfe=this[_0x55063d(0x8e8)][_0x100f33]+0x16,_0x4c4bfe=this['i32d']['subarray'](_0x4c4bfe,_0x4c4bfe+0x7),{'id':_0x100f33,'boxMin':_0x1a22a8[_0x55063d(0x25f)](0x0,0x3),'boxMax':_0x1a22a8['subarray'](0x3,0x6),'transform':_0x1a22a8[_0x55063d(0x25f)](0x6,0x16),'componentCount':_0x4c4bfe[0x0],'meshInstancesCount':_0x4c4bfe[0x1],'meshCount':_0x4c4bfe[0x2],'materialCount':_0x4c4bfe[0x3],'fileName':this[_0x55063d(0xacb)](_0x100f33),'uniqueId':this['getUniqueId'](_0x100f33),'status':_0x4c4bfe[0x6]};}[_0x105b95(0x732)](_0x4d2718){var _0x2b210d=_0x105b95;return this[_0x2b210d(0x8e8)][_0x2b210d(0x1b7)](_0x4d2718);}}_0x53e58e['modelDataLength']=0x58;},0x15a31:(_0x53ac41,_0xefde20,_0x5d0a2c)=>{var _0x192582=a6_0x1e64fa,_0x49f26a;_0x5d0a2c['d'](_0xefde20,{'p':()=>_0x50b0de}),_0x49f26a={'cameraId':0x0,0x0:_0x192582(0x726),'worldPosition':0x1,0x1:_0x192582(0x1fc),'worldDirection':0x2,0x2:_0x192582(0x3b1),'worldUp':0x3,0x3:_0x192582(0xaf4),'viewMatrix':0x4,0x4:'viewMatrix','projectionMatrix':0x5,0x5:'projectionMatrix','heartbeat':0x6,0x6:_0x192582(0x568),'useCache':0x7,0x7:'useCache','maxRenderTriangleCount':0x8,0x8:_0x192582(0xbeb),'frameMaxRenderMemoryLength':0x9,0x9:'frameMaxRenderMemoryLength','pickId':0xa,0xa:'pickId','pickWorldPosition':0xb,0xb:'pickWorldPosition','pickWorldNormal':0xc,0xc:_0x192582(0x6a9),'getBox':0xd,0xd:_0x192582(0x977),'maxTextureSize':0xe,0xe:_0x192582(0x185),'renderPageFocus':0xf,0xf:_0x192582(0x642),'renderWidthHeight':0x10,0x10:'renderWidthHeight','allowSingleMeshMaxTriangleFaceQuantity':0x11,0x11:_0x192582(0xa8e),'visibleModelBox':0x12,0x12:_0x192582(0x586),'isMainRender':0x13,0x13:_0x192582(0x2c5),'mousePosition':0x14,0x14:_0x192582(0x28a),'sunDirectionalLight':0x15,0x15:_0x192582(0x77d)};class _0x50b0de{constructor(_0x11deb6,_0x4dde99){var _0x5ef896=_0x192582;if(this[_0x5ef896(0x4a3)]={},this['dataStoreDataCurrentBufferBlockIndex']=0x0,this[_0x5ef896(0x83d)]=0x0,this[_0x5ef896(0x15b)]=0x7fe00000,this[_0x5ef896(0x5cb)]=0x0,this['dataType']=Float64Array,_0x11deb6||_0x4dde99){for(var _0x3d6fed in(this[_0x5ef896(0x1fb)]=_0x4dde99,_0x11deb6))this[_0x5ef896(0x1f5)](_0x3d6fed,_0x11deb6[_0x3d6fed][_0x5ef896(0x3ef)]);}else{this[_0x5ef896(0x1fb)]=[],_0x4dde99=0x5b*Float64Array['BYTES_PER_ELEMENT'];if(this['arrayBufferBlockCount']=Math['floor'](_0x4dde99/this[_0x5ef896(0x15b)]),0x0===this['arrayBufferBlockCount'])this[_0x5ef896(0x1fb)][_0x5ef896(0x83f)](new SharedArrayBuffer(_0x4dde99));else{for(let _0x383e4a=0x0;_0x383e4a<this[_0x5ef896(0x5cb)];_0x383e4a++)this[_0x5ef896(0x1fb)]['push'](new SharedArrayBuffer(this[_0x5ef896(0x15b)]));this[_0x5ef896(0x1fb)][_0x5ef896(0x83f)](new SharedArrayBuffer(_0x4dde99%this[_0x5ef896(0x15b)]));}this[_0x5ef896(0x1f5)](_0x49f26a[_0x5ef896(0x726)],0x1),this[_0x5ef896(0x1f5)](_0x49f26a[_0x5ef896(0x1fc)],0x3),this['AddStore'](_0x49f26a[_0x5ef896(0x3b1)],0x3),this[_0x5ef896(0x1f5)](_0x49f26a['worldUp'],0x3),this[_0x5ef896(0x1f5)](_0x49f26a[_0x5ef896(0x392)],0x10),this[_0x5ef896(0x1f5)](_0x49f26a['projectionMatrix'],0x15),this[_0x5ef896(0x1f5)](_0x49f26a[_0x5ef896(0x568)],0x1),this[_0x5ef896(0x1f5)](_0x49f26a['useCache'],0x1),this[_0x5ef896(0x1f5)](_0x49f26a[_0x5ef896(0xbeb)],0x1),this['AddStore'](_0x49f26a['frameMaxRenderMemoryLength'],0x1),this[_0x5ef896(0x1f5)](_0x49f26a['pickId'],0x5),this[_0x5ef896(0x1f5)](_0x49f26a[_0x5ef896(0x2a7)],0x4),this[_0x5ef896(0x1f5)](_0x49f26a['pickWorldNormal'],0x4),this['AddStore'](_0x49f26a[_0x5ef896(0x977)],0x7),this[_0x5ef896(0x1f5)](_0x49f26a[_0x5ef896(0x185)],0x1),this['AddStore'](_0x49f26a[_0x5ef896(0x642)],0x1),this[_0x5ef896(0x1f5)](_0x49f26a[_0x5ef896(0x4c7)],0x2),this[_0x5ef896(0x1f5)](_0x49f26a[_0x5ef896(0xa8e)],0x1),this[_0x5ef896(0x1f5)](_0x49f26a[_0x5ef896(0x586)],0x9),this['AddStore'](_0x49f26a[_0x5ef896(0x2c5)],0x1),this['AddStore'](_0x49f26a[_0x5ef896(0x28a)],0x2),this[_0x5ef896(0x1f5)](_0x49f26a[_0x5ef896(0x77d)],0x3);}}set['sunDirectionalLight'](_0x652f0a){var _0x4e4c78=_0x192582;this[_0x4e4c78(0x373)](_0x49f26a[_0x4e4c78(0x77d)],_0x652f0a);}get['sunDirectionalLight'](){var _0x22cd67=_0x192582;return this['GetData'](_0x49f26a[_0x22cd67(0x77d)]);}set['mousePosition'](_0x2c7f0f){var _0x2d7fab=_0x192582;this[_0x2d7fab(0x373)](_0x49f26a[_0x2d7fab(0x28a)],_0x2c7f0f);}get['mousePosition'](){return this['GetData'](_0x49f26a['mousePosition']);}get[_0x192582(0x2c5)](){return this['GetData'](_0x49f26a['isMainRender'])[0x0];}set[_0x192582(0x2c5)](_0x218f6a){var _0x58e85b=_0x192582;this[_0x58e85b(0xa59)](_0x49f26a[_0x58e85b(0x2c5)])[0x0]=_0x218f6a;}get['allowSingleMeshMaxTriangleFaceQuantity'](){var _0x169004=_0x192582;return this[_0x169004(0xa59)](_0x49f26a[_0x169004(0xa8e)])[0x0];}set[_0x192582(0xa8e)](_0x4021a2){var _0x2f1dd6=_0x192582;this[_0x2f1dd6(0xa59)](_0x49f26a[_0x2f1dd6(0xa8e)])[0x0]=_0x4021a2;}get[_0x192582(0x586)](){var _0x1f63b5=_0x192582;return this[_0x1f63b5(0xa59)](_0x49f26a[_0x1f63b5(0x586)]);}set[_0x192582(0x586)](_0x4fbe16){var _0x116cf7=_0x192582;this[_0x116cf7(0x373)](_0x49f26a[_0x116cf7(0x586)],_0x4fbe16);}get['renderWidthHeight'](){var _0xd0ddd3=_0x192582;return this['GetData'](_0x49f26a[_0xd0ddd3(0x4c7)]);}set[_0x192582(0x4c7)](_0x186ab0){var _0x91a66f=_0x192582;this[_0x91a66f(0x373)](_0x49f26a[_0x91a66f(0x4c7)],_0x186ab0);}get[_0x192582(0x642)](){var _0x14b5d3=_0x192582;return this[_0x14b5d3(0xa59)](_0x49f26a[_0x14b5d3(0x642)])[0x0];}set[_0x192582(0x642)](_0x13bc0d){var _0x759a3f=_0x192582;this[_0x759a3f(0xa59)](_0x49f26a[_0x759a3f(0x642)])[0x0]=_0x13bc0d;}get[_0x192582(0x185)](){var _0x2cf4d2=_0x192582;return this[_0x2cf4d2(0xa59)](_0x49f26a['maxTextureSize'])[0x0];}set[_0x192582(0x185)](_0x2a5a33){var _0x122839=_0x192582;this['GetData'](_0x49f26a[_0x122839(0x185)])[0x0]=_0x2a5a33;}get['getBox'](){var _0x59eae6=_0x192582;return this['GetData'](_0x49f26a[_0x59eae6(0x977)]);}set[_0x192582(0x977)](_0x54ef75){var _0x2af3e0=_0x192582;this[_0x2af3e0(0x373)](_0x49f26a[_0x2af3e0(0x977)],_0x54ef75);}get[_0x192582(0x6a9)](){var _0x33348b=_0x192582;return this[_0x33348b(0xa59)](_0x49f26a[_0x33348b(0x6a9)]);}set['pickWorldNormal'](_0x9bbcfd){var _0x714378=_0x192582;this[_0x714378(0x373)](_0x49f26a[_0x714378(0x6a9)],_0x9bbcfd);}get[_0x192582(0x2a7)](){return this['GetData'](_0x49f26a['pickWorldPosition']);}set[_0x192582(0x2a7)](_0xa475ff){var _0x108353=_0x192582;this[_0x108353(0x373)](_0x49f26a['pickWorldPosition'],_0xa475ff);}get['pickId'](){var _0x46fe81=_0x192582;return this[_0x46fe81(0xa59)](_0x49f26a[_0x46fe81(0x3d1)]);}set[_0x192582(0x3d1)](_0x100ef4){var _0x29abf6=_0x192582;this[_0x29abf6(0x373)](_0x49f26a[_0x29abf6(0x3d1)],_0x100ef4);}get[_0x192582(0x714)](){var _0x564732=_0x192582;return this[_0x564732(0xa59)](_0x49f26a['frameMaxRenderMemoryLength'])[0x0];}set[_0x192582(0x714)](_0x4ab5aa){this['GetData'](_0x49f26a['frameMaxRenderMemoryLength'])[0x0]=_0x4ab5aa;}get['maxRenderTriangleCount'](){var _0x19d38f=_0x192582;return this['GetData'](_0x49f26a[_0x19d38f(0xbeb)])[0x0];}set[_0x192582(0xbeb)](_0x62a07a){var _0x4da030=_0x192582;this[_0x4da030(0xa59)](_0x49f26a[_0x4da030(0xbeb)])[0x0]=_0x62a07a;}get[_0x192582(0x6b5)](){var _0x8b0cff=_0x192582;return this[_0x8b0cff(0xa59)](_0x49f26a['useCache'])[0x0];}set[_0x192582(0x6b5)](_0x50ef91){var _0x3ff9c7=_0x192582;this[_0x3ff9c7(0xa59)](_0x49f26a[_0x3ff9c7(0x6b5)])[0x0]=_0x50ef91;}get['cameraId'](){var _0x28a9af=_0x192582;return this['GetData'](_0x49f26a[_0x28a9af(0x726)])[0x0];}set[_0x192582(0x726)](_0x29eb40){var _0x48b7bf=_0x192582;this[_0x48b7bf(0xa59)](_0x49f26a[_0x48b7bf(0x726)])[0x0]=0xf423f<_0x29eb40?0x2:_0x29eb40;}get[_0x192582(0x1fc)](){var _0x2eb162=_0x192582;return this['GetData'](_0x49f26a[_0x2eb162(0x1fc)]);}set['worldPosition'](_0x55c9a1){var _0x481008=_0x192582;this[_0x481008(0x373)](_0x49f26a[_0x481008(0x1fc)],_0x55c9a1);}get[_0x192582(0x3b1)](){var _0x1d88f9=_0x192582;return this[_0x1d88f9(0xa59)](_0x49f26a[_0x1d88f9(0x3b1)]);}set[_0x192582(0x3b1)](_0x4d7abf){var _0x33de8a=_0x192582;this['SetData'](_0x49f26a[_0x33de8a(0x3b1)],_0x4d7abf);}get[_0x192582(0xaf4)](){var _0x25cbbe=_0x192582;return this['GetData'](_0x49f26a[_0x25cbbe(0xaf4)]);}set[_0x192582(0xaf4)](_0x2212a4){var _0x4f3d09=_0x192582;this['SetData'](_0x49f26a[_0x4f3d09(0xaf4)],_0x2212a4);}get[_0x192582(0x392)](){var _0x26254c=_0x192582;return this[_0x26254c(0xa59)](_0x49f26a[_0x26254c(0x392)]);}set[_0x192582(0x392)](_0x35f849){var _0x2f8089=_0x192582;this[_0x2f8089(0x373)](_0x49f26a[_0x2f8089(0x392)],_0x35f849);}get[_0x192582(0x806)](){var _0x576e32=_0x192582;return this[_0x576e32(0xa59)](_0x49f26a[_0x576e32(0x806)]);}set[_0x192582(0x806)](_0x46b94d){var _0x388165=_0x192582;this[_0x388165(0x373)](_0x49f26a[_0x388165(0x806)],_0x46b94d);}get[_0x192582(0x568)](){var _0x52d6e6=_0x192582;return this[_0x52d6e6(0xa59)](_0x49f26a[_0x52d6e6(0x568)])[0x0];}set[_0x192582(0x568)](_0x56a44f){var _0x28f82d=_0x192582;this[_0x28f82d(0xa59)](_0x49f26a['heartbeat'])[0x0]=_0x56a44f;}['AddStore'](_0x4a3294,_0x4e2e20){var _0x109ad7=_0x192582;this['dataStoreObject'][_0x109ad7(0x1b7)](_0x4a3294)||(this[_0x109ad7(0x4a3)][_0x4a3294]={},this[_0x109ad7(0x4a3)][_0x4a3294][_0x109ad7(0x3ef)]=_0x4e2e20,this[_0x109ad7(0x83d)]+_0x4e2e20*this[_0x109ad7(0x671)][_0x109ad7(0x686)]>this[_0x109ad7(0x15b)]&&(this[_0x109ad7(0x3ea)]++,this['dataStoreDataByteOffset']=0x0),this[_0x109ad7(0x4a3)][_0x4a3294][_0x109ad7(0x481)]=new this[(_0x109ad7(0x671))](this[_0x109ad7(0x1fb)][this[_0x109ad7(0x3ea)]],this[_0x109ad7(0x83d)],this[_0x109ad7(0x4a3)][_0x4a3294][_0x109ad7(0x3ef)]),this['dataStoreObject'][_0x4a3294][_0x109ad7(0x52d)]=this[_0x109ad7(0x83d)],this['dataStoreDataByteOffset']+=this[_0x109ad7(0x671)][_0x109ad7(0x686)]*this[_0x109ad7(0x4a3)][_0x4a3294]['length']);}[_0x192582(0x373)](_0x481981,_0x4c61bb){var _0x362cd7=_0x192582;_0x4c61bb&&this[_0x362cd7(0x4a3)][_0x481981][_0x362cd7(0x481)][_0x362cd7(0x970)](_0x4c61bb);}[_0x192582(0xa59)](_0x44bed2){var _0x5c2203=_0x192582;return null==(_0x44bed2=this[_0x5c2203(0x4a3)][_0x44bed2])?void 0x0:_0x44bed2[_0x5c2203(0x481)];}}}}]);