UNPKG

@babylonjs/viewer

Version:

The Babylon Viewer aims to simplify a specific but common Babylon.js use case: loading, viewing, and interacting with a 3D model.

1 lines 89.8 kB
import{z as e,D as t,b3 as s,C as i,i as a,F as r,l as n,bc as o,Q as h,y as u,m as l,aY as c,as as m,o as T,a7 as _,W as g,ag as f,T as A,ah as p,ai as d,ak as R,al as E,bf as S,am as x,an as M,ap as I,aq as b,ar as C,a4 as L,a5 as y,a6 as O,a8 as F,a9 as N,aa as k,ab as D,ae as v,af as P,ac as U,ad as W,U as w,X as B,Y as G,Z as H,$ as z,a0 as V,a1 as X,a2 as Y,a3 as Z,q as Q,at as j,au as K,av as q,V as $,b1 as J,aw as ee,bg as te,s as se,H as ie,N as ae,u as re}from"./index-BPURObVq.esm.min.js";import{a as ne,b as oe}from"./brdfTextureTools-CdNQgSAC.esm.min.js";import{P as he,M as ue,a as le,U as ce}from"./prepass.defines-DBIG3K_p.esm.min.js";import{G as me}from"./geometryBufferRenderer.pure-BG473DMM.esm.min.js";const Te={effect:null,subMesh:null};function _e(e){if("number"==typeof e)return 1;if(e instanceof s)return 2;if(e instanceof $||e instanceof a)return 3;if(e instanceof o||e instanceof J)return 4;throw new Error("Unsupported OpenPBR property type.")}class ge{populateVectorFromLinkedProperties(e){const t=_e(e);for(const e in this.linkedProperties){const s=this.linkedProperties[e],i=s.numComponents;if(t<i||s.targetUniformComponentOffset>t-i)return void(1==i?u.Error(`Float property ${s.name} has an offset that is too large.`):u.Error(`Vector${i} property ${s.name} won't fit in Vector${t} or has an offset that is too large.`));"number"==typeof s.value?ge._tmpArray[s.targetUniformComponentOffset]=s.value:s.value.toArray(ge._tmpArray,s.targetUniformComponentOffset)}e.fromArray(ge._tmpArray)}constructor(e,t){this.linkedProperties={},this.firstLinkedKey="",this.name=e,this.numComponents=t}}ge._tmpArray=[0,0,0,0];class fe{constructor(e,t,s,i,a=0,r){this.targetUniformComponentNum=4,this.targetUniformComponentOffset=0,this.name=e,this.targetUniformName=s,this.defaultValue=t,this.value=t,this.targetUniformComponentNum=i,this.targetUniformComponentOffset=a,this.requiredDefine=r}get numComponents(){return"number"==typeof this.defaultValue?1:_e(this.defaultValue)}}class Ae{get samplerName(){return this.samplerPrefix+"Sampler"}get samplerInfoName(){return"v"+this.samplerPrefix.charAt(0).toUpperCase()+this.samplerPrefix.slice(1)+"Infos"}get samplerMatrixName(){return this.samplerPrefix+"Matrix"}constructor(e,t,s){this.value=null,this.samplerPrefix="",this.textureDefine="",this.name=e,this.samplerPrefix=t,this.textureDefine=s}}class pe extends(le(ce(ee))){}class de extends(function(e){return class extends e{constructor(){super(...arguments),this.REFLECTION=!1,this.REFLECTIONMAP_3D=!1,this.REFLECTIONMAP_SPHERICAL=!1,this.REFLECTIONMAP_PLANAR=!1,this.REFLECTIONMAP_CUBIC=!1,this.USE_LOCAL_REFLECTIONMAP_CUBIC=!1,this.REFLECTIONMAP_PROJECTION=!1,this.REFLECTIONMAP_SKYBOX=!1,this.REFLECTIONMAP_EXPLICIT=!1,this.REFLECTIONMAP_EQUIRECTANGULAR=!1,this.REFLECTIONMAP_EQUIRECTANGULAR_FIXED=!1,this.REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED=!1,this.INVERTCUBICMAP=!1,this.USESPHERICALFROMREFLECTIONMAP=!1,this.USEIRRADIANCEMAP=!1,this.USE_IRRADIANCE_DOMINANT_DIRECTION=!1,this.USESPHERICALINVERTEX=!1,this.REFLECTIONMAP_OPPOSITEZ=!1,this.LODINREFLECTIONALPHA=!1,this.GAMMAREFLECTION=!1,this.RGBDREFLECTION=!1}}}(pe)){}class Re extends(j(de)){constructor(e){super(e),this.NUM_SAMPLES="0",this.REALTIME_FILTERING=!1,this.IBL_CDF_FILTERING=!1,this.LIGHTCOUNT=0,this.VERTEXCOLOR=!1,this.BAKED_VERTEX_ANIMATION_TEXTURE=!1,this.VERTEXALPHA=!1,this.ALPHATEST=!1,this.DEPTHPREPASS=!1,this.ALPHABLEND=!1,this.ALPHA_FROM_BASE_COLOR_TEXTURE=!1,this.ALPHATESTVALUE="0.5",this.PREMULTIPLYALPHA=!1,this.REFLECTIVITY_GAMMA=!1,this.REFLECTIVITYDIRECTUV=0,this.SPECULARTERM=!1,this.LODBASEDMICROSFURACE=!0,this.SPECULAR_ROUGHNESS_FROM_METALNESS_TEXTURE_GREEN=!1,this.BASE_METALNESS_FROM_METALNESS_TEXTURE_BLUE=!1,this.AOSTOREINMETALMAPRED=!1,this.SPECULAR_WEIGHT_IN_ALPHA=!1,this.SPECULAR_WEIGHT_FROM_SPECULAR_COLOR_TEXTURE=!1,this.SPECULAR_ROUGHNESS_ANISOTROPY_FROM_TANGENT_TEXTURE=!1,this.COAT_ROUGHNESS_FROM_GREEN_CHANNEL=!1,this.COAT_ROUGHNESS_ANISOTROPY_FROM_TANGENT_TEXTURE=!1,this.USE_GLTF_STYLE_ANISOTROPY=!1,this.THIN_FILM_THICKNESS_FROM_THIN_FILM_TEXTURE=!1,this.FUZZ_ROUGHNESS_FROM_TEXTURE_ALPHA=!1,this.SUBSURFACE_WEIGHT_FROM_TEXTURE_ALPHA=!1,this.GEOMETRY_THICKNESS_FROM_GREEN_CHANNEL=!1,this.ENVIRONMENTBRDF=!1,this.ENVIRONMENTBRDF_RGBD=!1,this.FUZZENVIRONMENTBRDF=!1,this.NORMAL=!1,this.TANGENT=!1,this.OBJECTSPACE_NORMALMAP=!1,this.PARALLAX=!1,this.PARALLAX_RHS=!1,this.PARALLAXOCCLUSION=!1,this.NORMALXYSCALE=!0,this.ANISOTROPIC=!1,this.ANISOTROPIC_OPENPBR=!0,this.ANISOTROPIC_BASE=!1,this.ANISOTROPIC_COAT=!1,this.FUZZ_IBL_SAMPLES=6,this.REFRACTION_HIGH_QUALITY_BLUR=!1,this.FUZZ=!1,this.THIN_FILM=!1,this.IRIDESCENCE=!1,this.DISPERSION=!1,this.SCATTERING=!1,this.USE_IRRADIANCE_TEXTURE_FOR_SCATTERING=!1,this.SSS_SAMPLE_COUNT=16,this.USE_IRRADIANCE_TEXTURE_FOR_SCATTERING_GBUFFER=!1,this.TRANSMISSION_SLAB=!1,this.TRANSMISSION_SLAB_VOLUME=!1,this.SUBSURFACE_SLAB=!1,this.GEOMETRY_THIN_WALLED=!1,this.REFRACTED_BACKGROUND=!1,this.REFRACTED_LIGHTS=!1,this.REFRACTED_ENVIRONMENT=!1,this.REFRACTED_ENVIRONMENT_OPPOSITEZ=!1,this.REFRACTED_ENVIRONMENT_LOCAL_CUBE=!1,this.RADIANCEOCCLUSION=!1,this.HORIZONOCCLUSION=!1,this.INSTANCES=!1,this.THIN_INSTANCES=!1,this.INSTANCESCOLOR=!1,this.NUM_BONE_INFLUENCERS=0,this.BonesPerMesh=0,this.BONETEXTURE=!1,this.BONES_VELOCITY_ENABLED=!1,this.NONUNIFORMSCALING=!1,this.MORPHTARGETS=!1,this.MORPHTARGETS_POSITION=!1,this.MORPHTARGETS_NORMAL=!1,this.MORPHTARGETS_TANGENT=!1,this.MORPHTARGETS_UV=!1,this.MORPHTARGETS_UV2=!1,this.MORPHTARGETS_COLOR=!1,this.MORPHTARGETTEXTURE_HASPOSITIONS=!1,this.MORPHTARGETTEXTURE_HASNORMALS=!1,this.MORPHTARGETTEXTURE_HASTANGENTS=!1,this.MORPHTARGETTEXTURE_HASUVS=!1,this.MORPHTARGETTEXTURE_HASUV2S=!1,this.MORPHTARGETTEXTURE_HASCOLORS=!1,this.NUM_MORPH_INFLUENCERS=0,this.MORPHTARGETS_TEXTURE=!1,this.USEPHYSICALLIGHTFALLOFF=!1,this.USEGLTFLIGHTFALLOFF=!1,this.TWOSIDEDLIGHTING=!1,this.MIRRORED=!1,this.SHADOWFLOAT=!1,this.CLIPPLANE=!1,this.CLIPPLANE2=!1,this.CLIPPLANE3=!1,this.CLIPPLANE4=!1,this.CLIPPLANE5=!1,this.CLIPPLANE6=!1,this.POINTSIZE=!1,this.FOG=!1,this.LOGARITHMICDEPTH=!1,this.CAMERA_ORTHOGRAPHIC=!1,this.CAMERA_PERSPECTIVE=!1,this.AREALIGHTSUPPORTED=!0,this.FORCENORMALFORWARD=!1,this.SPECULARAA=!1,this.UNLIT=!1,this.DECAL_AFTER_DETAIL=!1,this.TEXTURE_REPETITION_MODE=0,this.DEBUGMODE=0,this.USE_VERTEX_PULLING=!1,this.VERTEX_PULLING_USE_INDEX_BUFFER=!1,this.VERTEX_PULLING_INDEX_BUFFER_32BITS=!1,this.RIGHT_HANDED=!1,this.CLUSTLIGHT_SLICES=0,this.CLUSTLIGHT_BATCH=0,this.BRDF_V_HEIGHT_CORRELATED=!0,this.MS_BRDF_ENERGY_CONSERVATION=!0,this.SPHERICAL_HARMONICS=!0,this.SPECULAR_GLOSSINESS_ENERGY_CONSERVATION=!0,this.MIX_IBL_RADIANCE_WITH_IRRADIANCE=!0,this.LEGACY_SPECULAR_ENERGY_CONSERVATION=!1,this.BASE_DIFFUSE_MODEL=i.MATERIAL_DIFFUSE_MODEL_E_OREN_NAYAR,this.DIELECTRIC_SPECULAR_MODEL=i.MATERIAL_DIELECTRIC_SPECULAR_MODEL_OPENPBR,this.CONDUCTOR_SPECULAR_MODEL=i.MATERIAL_CONDUCTOR_SPECULAR_MODEL_OPENPBR,this.rebuild()}reset(){super.reset(),this.ALPHATESTVALUE="0.5",this.NORMALXYSCALE=!0}}class Ee extends(K(q)){}let Se=(()=>{var j,K,q,$,J,ee,ae,re,le,ce,_e,pe,de,Se,xe,Me,Ie,be,Ce,Le,ye,Oe,Fe,Ne,ke,De,ve,Pe,Ue,We,we,Be,Ge,He,ze,Ve,Xe,Ye,Ze,Qe,je,Ke,qe,$e,Je,et,tt,st,it,at,rt,nt,ot,ht,ut,lt,ct,mt,Tt,_t,gt,ft,At,pt,dt,Rt,Et,St,xt,Mt,It,bt,Ct,Lt,yt,Ot,Ft,Nt,kt,Dt,vt,Pt,Ut,Wt,wt,Bt,Gt,Ht,zt,Vt,Xt,Yt,Zt,Qt,jt,Kt,qt,$t,Jt,es,ts,ss,is;let as,rs,ns,os,hs,us,ls,cs,ms,Ts,_s,gs,fs,As,ps,ds,Rs,Es,Ss,xs,Ms,Is,bs,Cs,Ls,ys,Os,Fs,Ns,ks,Ds,vs,Ps,Us,Ws,ws,Bs,Gs,Hs,zs,Vs,Xs,Ys,Zs,Qs,js,Ks,qs,$s,Js,ei,ti,si,ii,ai,ri,ni,oi,hi,ui,li,ci,mi,Ti,_i,gi,fi,Ai,pi,di,Ri,Ei,Si,xi,Mi,Ii,bi,Ci,Li,yi,Oi,Fi,Ni,ki,Di,vi,Pi,Ui,Wi,wi,Bi,Gi,Hi,zi,Vi,Xi,Yi,Zi,Qi,ji,Ki,qi,$i,Ji,ea,ta=Ee,sa=[],ia=[],aa=[],ra=[],na=[],oa=[],ha=[],ua=[],la=[],ca=[],ma=[],Ta=[],_a=[],ga=[],fa=[],Aa=[],pa=[],da=[],Ra=[],Ea=[],Sa=[],xa=[],Ma=[],Ia=[],ba=[],Ca=[],La=[],ya=[],Oa=[],Fa=[],Na=[],ka=[],Da=[],va=[],Pa=[],Ua=[],Wa=[],wa=[],Ba=[],Ga=[],Ha=[],za=[],Va=[],Xa=[],Ya=[],Za=[],Qa=[],ja=[],Ka=[],qa=[],$a=[],Ja=[],er=[],tr=[],sr=[],ir=[],ar=[],rr=[],nr=[],or=[],hr=[],ur=[],lr=[],cr=[],mr=[],Tr=[],_r=[],gr=[],fr=[],Ar=[],pr=[],dr=[],Rr=[],Er=[],Sr=[],xr=[],Mr=[],Ir=[],br=[],Cr=[],Lr=[],yr=[],Or=[],Fr=[],Nr=[],kr=[],Dr=[],vr=[],Pr=[],Ur=[],Wr=[],wr=[],Br=[],Gr=[],Hr=[],zr=[],Vr=[],Xr=[],Yr=[],Zr=[],Qr=[],jr=[],Kr=[],qr=[],$r=[],Jr=[],en=[],tn=[],sn=[],an=[],rn=[],nn=[],on=[],hn=[],un=[],ln=[],cn=[],mn=[],Tn=[],_n=[],gn=[],fn=[],An=[],pn=[],dn=[],Rn=[],En=[],Sn=[],xn=[],Mn=[],In=[],bn=[],Cn=[],Ln=[],yn=[],On=[],Fn=[],Nn=[],kn=[],Dn=[],vn=[],Pn=[],Un=[],Wn=[],wn=[],Bn=[],Gn=[],Hn=[],zn=[],Vn=[],Xn=[],Yn=[],Zn=[],Qn=[],jn=[],Kn=[],qn=[],$n=[],Jn=[],eo=[],to=[],so=[],io=[],ao=[],ro=[],no=[],oo=[],ho=[],uo=[],lo=[],co=[],mo=[],To=[],_o=[],go=[],fo=[],Ao=[],po=[],Ro=[],Eo=[],So=[],xo=[],Mo=[],Io=[],bo=[],Co=[],Lo=[],yo=[],Oo=[],Fo=[],No=[],ko=[],Do=[],vo=[],Po=[],Uo=[],Wo=[],wo=[],Bo=[],Go=[],Ho=[],zo=[],Vo=[],Xo=[],Yo=[];return j=class extends ta{get baseWeight(){return e(this,K,"f")}set baseWeight(e){t(this,K,e,"f")}get baseWeightTexture(){return e(this,q,"f")}set baseWeightTexture(e){t(this,q,e,"f")}get baseColor(){return e(this,$,"f")}set baseColor(e){t(this,$,e,"f")}get baseColorTexture(){return e(this,J,"f")}set baseColorTexture(e){t(this,J,e,"f")}get baseDiffuseRoughness(){return e(this,ee,"f")}set baseDiffuseRoughness(e){t(this,ee,e,"f")}get baseDiffuseRoughnessTexture(){return e(this,ae,"f")}set baseDiffuseRoughnessTexture(e){t(this,ae,e,"f")}get baseMetalness(){return e(this,re,"f")}set baseMetalness(e){t(this,re,e,"f")}get baseMetalnessTexture(){return e(this,le,"f")}set baseMetalnessTexture(e){t(this,le,e,"f")}get specularWeight(){return e(this,ce,"f")}set specularWeight(e){t(this,ce,e,"f")}get specularWeightTexture(){return e(this,_e,"f")}set specularWeightTexture(e){t(this,_e,e,"f")}get specularColor(){return e(this,pe,"f")}set specularColor(e){t(this,pe,e,"f")}get specularColorTexture(){return e(this,de,"f")}set specularColorTexture(e){t(this,de,e,"f")}get specularRoughness(){return e(this,Se,"f")}set specularRoughness(e){t(this,Se,e,"f")}get specularRoughnessTexture(){return e(this,xe,"f")}set specularRoughnessTexture(e){t(this,xe,e,"f")}get specularRoughnessAnisotropy(){return e(this,Me,"f")}set specularRoughnessAnisotropy(e){t(this,Me,e,"f")}get specularRoughnessAnisotropyTexture(){return e(this,Ie,"f")}set specularRoughnessAnisotropyTexture(e){t(this,Ie,e,"f")}get specularIor(){return e(this,be,"f")}set specularIor(e){t(this,be,e,"f")}get transmissionWeight(){return e(this,Ce,"f")}set transmissionWeight(e){t(this,Ce,e,"f")}get transmissionWeightTexture(){return e(this,Le,"f")}set transmissionWeightTexture(e){t(this,Le,e,"f")}get transmissionColor(){return e(this,ye,"f")}set transmissionColor(e){t(this,ye,e,"f")}get transmissionColorTexture(){return e(this,Oe,"f")}set transmissionColorTexture(e){t(this,Oe,e,"f")}get transmissionDepth(){return e(this,Fe,"f")}set transmissionDepth(e){t(this,Fe,e,"f")}get transmissionDepthTexture(){return e(this,Ne,"f")}set transmissionDepthTexture(e){t(this,Ne,e,"f")}get transmissionScatter(){return e(this,ke,"f")}set transmissionScatter(e){t(this,ke,e,"f")}get transmissionScatterTexture(){return e(this,De,"f")}set transmissionScatterTexture(e){t(this,De,e,"f")}get transmissionScatterAnisotropy(){return e(this,ve,"f")}set transmissionScatterAnisotropy(e){t(this,ve,e,"f")}get transmissionDispersionScale(){return e(this,Pe,"f")}set transmissionDispersionScale(e){t(this,Pe,e,"f")}get transmissionDispersionScaleTexture(){return e(this,Ue,"f")}set transmissionDispersionScaleTexture(e){t(this,Ue,e,"f")}get transmissionDispersionAbbeNumber(){return e(this,We,"f")}set transmissionDispersionAbbeNumber(e){t(this,We,e,"f")}get subsurfaceWeight(){return e(this,we,"f")}set subsurfaceWeight(e){t(this,we,e,"f")}get subsurfaceWeightTexture(){return e(this,Be,"f")}set subsurfaceWeightTexture(e){t(this,Be,e,"f")}get subsurfaceColor(){return e(this,Ge,"f")}set subsurfaceColor(e){t(this,Ge,e,"f")}get subsurfaceColorTexture(){return e(this,He,"f")}set subsurfaceColorTexture(e){t(this,He,e,"f")}get subsurfaceRadius(){return e(this,ze,"f")}set subsurfaceRadius(e){t(this,ze,e,"f")}get subsurfaceRadiusScale(){return e(this,Ve,"f")}set subsurfaceRadiusScale(e){t(this,Ve,e,"f")}get subsurfaceRadiusScaleTexture(){return e(this,Xe,"f")}set subsurfaceRadiusScaleTexture(e){t(this,Xe,e,"f")}get subsurfaceScatterAnisotropy(){return e(this,Ye,"f")}set subsurfaceScatterAnisotropy(e){t(this,Ye,e,"f")}get coatWeight(){return e(this,Ze,"f")}set coatWeight(e){t(this,Ze,e,"f")}get coatWeightTexture(){return e(this,Qe,"f")}set coatWeightTexture(e){t(this,Qe,e,"f")}get coatColor(){return e(this,je,"f")}set coatColor(e){t(this,je,e,"f")}get coatColorTexture(){return e(this,Ke,"f")}set coatColorTexture(e){t(this,Ke,e,"f")}get coatRoughness(){return e(this,qe,"f")}set coatRoughness(e){t(this,qe,e,"f")}get coatRoughnessTexture(){return e(this,$e,"f")}set coatRoughnessTexture(e){t(this,$e,e,"f")}get coatRoughnessAnisotropy(){return e(this,Je,"f")}set coatRoughnessAnisotropy(e){t(this,Je,e,"f")}get coatRoughnessAnisotropyTexture(){return e(this,et,"f")}set coatRoughnessAnisotropyTexture(e){t(this,et,e,"f")}get coatIor(){return e(this,tt,"f")}set coatIor(e){t(this,tt,e,"f")}get coatDarkening(){return e(this,st,"f")}set coatDarkening(e){t(this,st,e,"f")}get coatDarkeningTexture(){return e(this,it,"f")}set coatDarkeningTexture(e){t(this,it,e,"f")}get fuzzWeight(){return e(this,at,"f")}set fuzzWeight(e){t(this,at,e,"f")}get fuzzWeightTexture(){return e(this,rt,"f")}set fuzzWeightTexture(e){t(this,rt,e,"f")}get fuzzColor(){return e(this,nt,"f")}set fuzzColor(e){t(this,nt,e,"f")}get fuzzColorTexture(){return e(this,ot,"f")}set fuzzColorTexture(e){t(this,ot,e,"f")}get fuzzRoughness(){return e(this,ht,"f")}set fuzzRoughness(e){t(this,ht,e,"f")}get fuzzRoughnessTexture(){return e(this,ut,"f")}set fuzzRoughnessTexture(e){t(this,ut,e,"f")}get geometryThinWalled(){return e(this,lt,"f")}set geometryThinWalled(e){t(this,lt,e,"f")}get geometryNormalTexture(){return e(this,ct,"f")}set geometryNormalTexture(e){t(this,ct,e,"f")}get geometryTangent(){return e(this,mt,"f")}set geometryTangent(e){t(this,mt,e,"f")}get geometryTangentAngle(){return Math.atan2(this.geometryTangent.y,this.geometryTangent.x)}set geometryTangentAngle(e){this.geometryTangent=new s(Math.cos(e),Math.sin(e))}get geometryTangentTexture(){return e(this,Tt,"f")}set geometryTangentTexture(e){t(this,Tt,e,"f")}get geometryCoatNormalTexture(){return e(this,_t,"f")}set geometryCoatNormalTexture(e){t(this,_t,e,"f")}get geometryCoatTangent(){return e(this,gt,"f")}set geometryCoatTangent(e){t(this,gt,e,"f")}get geometryCoatTangentAngle(){return Math.atan2(this.geometryCoatTangent.y,this.geometryCoatTangent.x)}set geometryCoatTangentAngle(e){this.geometryCoatTangent=new s(Math.cos(e),Math.sin(e))}get geometryCoatTangentTexture(){return e(this,ft,"f")}set geometryCoatTangentTexture(e){t(this,ft,e,"f")}get geometryOpacity(){return e(this,At,"f")}set geometryOpacity(e){t(this,At,e,"f")}get geometryOpacityTexture(){return e(this,pt,"f")}set geometryOpacityTexture(e){t(this,pt,e,"f")}get geometryThickness(){return e(this,dt,"f")}set geometryThickness(e){t(this,dt,e,"f")}get geometryThicknessTexture(){return e(this,Rt,"f")}set geometryThicknessTexture(e){t(this,Rt,e,"f")}get emissionLuminance(){return e(this,Et,"f")}set emissionLuminance(e){t(this,Et,e,"f")}get emissionColor(){return e(this,St,"f")}set emissionColor(e){t(this,St,e,"f")}get emissionColorTexture(){return e(this,xt,"f")}set emissionColorTexture(e){t(this,xt,e,"f")}get thinFilmWeight(){return e(this,Mt,"f")}set thinFilmWeight(e){t(this,Mt,e,"f")}get thinFilmWeightTexture(){return e(this,It,"f")}set thinFilmWeightTexture(e){t(this,It,e,"f")}get thinFilmThickness(){return e(this,bt,"f")}set thinFilmThickness(e){t(this,bt,e,"f")}get thinFilmThicknessMin(){return e(this,Ct,"f")}set thinFilmThicknessMin(e){t(this,Ct,e,"f")}get thinFilmThicknessTexture(){return e(this,Lt,"f")}set thinFilmThicknessTexture(e){t(this,Lt,e,"f")}get thinFilmIor(){return e(this,yt,"f")}set thinFilmIor(e){t(this,yt,e,"f")}get ambientOcclusionTexture(){return e(this,Ot,"f")}set ambientOcclusionTexture(e){t(this,Ot,e,"f")}get sssQuality(){return this._sssQuality}set sssQuality(e){this._sssQuality!==e&&(this._sssQuality=e,this.markAsDirty(i.MATERIAL_TextureDirtyFlag))}get sssIrradianceTexture(){return this._sssIrradianceTexture}set sssIrradianceTexture(e){this._sssIrradianceTexture!==e&&(this._sssIrradianceTexture=e,this._markAllSubMeshesAsTexturesDirty())}get sssDepthTexture(){return this._sssDepthTexture}set sssDepthTexture(e){this._sssDepthTexture!==e&&(this._sssDepthTexture=e,this._markAllSubMeshesAsTexturesDirty())}get directIntensity(){return e(this,Ft,"f")}set directIntensity(e){t(this,Ft,e,"f")}get environmentIntensity(){return e(this,Nt,"f")}set environmentIntensity(e){t(this,Nt,e,"f")}get useSpecularWeightFromTextureAlpha(){return e(this,kt,"f")}set useSpecularWeightFromTextureAlpha(e){t(this,kt,e,"f")}get forceAlphaTest(){return e(this,Dt,"f")}set forceAlphaTest(e){t(this,Dt,e,"f")}get alphaCutOff(){return e(this,vt,"f")}set alphaCutOff(e){t(this,vt,e,"f")}get useAmbientOcclusionFromMetallicTextureRed(){return e(this,Pt,"f")}set useAmbientOcclusionFromMetallicTextureRed(e){t(this,Pt,e,"f")}get useAmbientInGrayScale(){return e(this,Ut,"f")}set useAmbientInGrayScale(e){t(this,Ut,e,"f")}get hasTransparency(){return this.subsurfaceWeight>0||this.transmissionWeight>0}get hasScattering(){return this.transmissionWeight>0&&this.transmissionDepth>0&&!this.transmissionScatter.equals(a.BlackReadOnly)||this.subsurfaceWeight>0}get usePhysicalLightFalloff(){return this._lightFalloff===r.LIGHTFALLOFF_PHYSICAL}set usePhysicalLightFalloff(e){e!==this.usePhysicalLightFalloff&&(this._markAllSubMeshesAsTexturesDirty(),this._lightFalloff=e?r.LIGHTFALLOFF_PHYSICAL:r.LIGHTFALLOFF_STANDARD)}get useGLTFLightFalloff(){return this._lightFalloff===r.LIGHTFALLOFF_GLTF}set useGLTFLightFalloff(e){e!==this.useGLTFLightFalloff&&(this._markAllSubMeshesAsTexturesDirty(),this._lightFalloff=e?r.LIGHTFALLOFF_GLTF:r.LIGHTFALLOFF_STANDARD)}get useObjectSpaceNormalMap(){return e(this,Wt,"f")}set useObjectSpaceNormalMap(e){t(this,Wt,e,"f")}get useParallax(){return e(this,wt,"f")}set useParallax(e){t(this,wt,e,"f")}get useParallaxOcclusion(){return e(this,Bt,"f")}set useParallaxOcclusion(e){t(this,Bt,e,"f")}get parallaxScaleBias(){return e(this,Gt,"f")}set parallaxScaleBias(e){t(this,Gt,e,"f")}get disableLighting(){return e(this,Ht,"f")}set disableLighting(e){t(this,Ht,e,"f")}get forceIrradianceInFragment(){return e(this,zt,"f")}set forceIrradianceInFragment(e){t(this,zt,e,"f")}get maxSimultaneousLights(){return e(this,Vt,"f")}set maxSimultaneousLights(e){t(this,Vt,e,"f")}get invertNormalMapX(){return e(this,Xt,"f")}set invertNormalMapX(e){t(this,Xt,e,"f")}get invertNormalMapY(){return e(this,Yt,"f")}set invertNormalMapY(e){t(this,Yt,e,"f")}get twoSidedLighting(){return e(this,Zt,"f")}set twoSidedLighting(e){t(this,Zt,e,"f")}get useAlphaFresnel(){return e(this,Qt,"f")}set useAlphaFresnel(e){t(this,Qt,e,"f")}get useLinearAlphaFresnel(){return e(this,jt,"f")}set useLinearAlphaFresnel(e){t(this,jt,e,"f")}get environmentBRDFTexture(){return e(this,Kt,"f")}set environmentBRDFTexture(e){t(this,Kt,e,"f")}get forceNormalForward(){return e(this,qt,"f")}set forceNormalForward(e){t(this,qt,e,"f")}get enableSpecularAntiAliasing(){return e(this,$t,"f")}set enableSpecularAntiAliasing(e){t(this,$t,e,"f")}get useHorizonOcclusion(){return e(this,Jt,"f")}set useHorizonOcclusion(e){t(this,Jt,e,"f")}get useRadianceOcclusion(){return e(this,es,"f")}set useRadianceOcclusion(e){t(this,es,e,"f")}get unlit(){return e(this,ts,"f")}set unlit(e){t(this,ts,e,"f")}get applyDecalMapAfterDetailMap(){return e(this,ss,"f")}set applyDecalMapAfterDetailMap(e){t(this,ss,e,"f")}get backgroundRefractionTexture(){return this._backgroundRefractionTexture}set backgroundRefractionTexture(e){this._backgroundRefractionTexture=e,this._markAllSubMeshesAsTexturesDirty()}get refractionHighQualityBlur(){return this._refractionHighQualityBlur}set refractionHighQualityBlur(e){this._refractionHighQualityBlur!==e&&(this._refractionHighQualityBlur=e,this.markAsDirty(i.MATERIAL_TextureDirtyFlag))}get realTimeFiltering(){return this._realTimeFiltering}set realTimeFiltering(e){this._realTimeFiltering=e,this.markAsDirty(i.MATERIAL_TextureDirtyFlag)}get realTimeFilteringQuality(){return this._realTimeFilteringQuality}set realTimeFilteringQuality(e){this._realTimeFilteringQuality=e,this.markAsDirty(i.MATERIAL_TextureDirtyFlag)}get fuzzSampleNumber(){return this._fuzzSampleNumber}set fuzzSampleNumber(e){this._fuzzSampleNumber=e,this.markAsDirty(i.MATERIAL_TextureDirtyFlag)}get canRenderToMRT(){return!0}get debugMode(){return e(this,is,"f")}set debugMode(e){t(this,is,e,"f")}constructor(e,t,T=!1){super(e,t,void 0,T||j.ForceGLSL),K.set(this,(n(this,sa),n(this,ia,void 0))),this._baseWeight=(n(this,aa),new fe("base_weight",1,"vBaseWeight",1)),q.set(this,n(this,ra,void 0)),this._baseWeightTexture=(n(this,na),new Ae("base_weight","baseWeight","BASE_WEIGHT")),$.set(this,n(this,oa,void 0)),this._baseColor=(n(this,ha),new fe("base_color",a.White(),"vBaseColor",4)),J.set(this,n(this,ua,void 0)),this._baseColorTexture=(n(this,la),new Ae("base_color","baseColor","BASE_COLOR")),ee.set(this,n(this,ca,void 0)),this._baseDiffuseRoughness=(n(this,ma),new fe("base_diffuse_roughness",0,"vBaseDiffuseRoughness",1)),ae.set(this,n(this,Ta,void 0)),this._baseDiffuseRoughnessTexture=(n(this,_a),new Ae("base_diffuse_roughness","baseDiffuseRoughness","BASE_DIFFUSE_ROUGHNESS")),re.set(this,n(this,ga,void 0)),this._baseMetalness=(n(this,fa),new fe("base_metalness",0,"vReflectanceInfo",4,0)),le.set(this,n(this,Aa,void 0)),this._baseMetalnessTexture=(n(this,pa),new Ae("base_metalness","baseMetalness","BASE_METALNESS")),ce.set(this,n(this,da,void 0)),this._specularWeight=(n(this,Ra),new fe("specular_weight",1,"vReflectanceInfo",4,3)),_e.set(this,n(this,Ea,void 0)),this._specularWeightTexture=(n(this,Sa),new Ae("specular_weight","specularWeight","SPECULAR_WEIGHT")),pe.set(this,n(this,xa,void 0)),this._specularColor=(n(this,Ma),new fe("specular_color",a.White(),"vSpecularColor",4)),de.set(this,n(this,Ia,void 0)),this._specularColorTexture=(n(this,ba),new Ae("specular_color","specularColor","SPECULAR_COLOR")),Se.set(this,n(this,Ca,void 0)),this._specularRoughness=(n(this,La),new fe("specular_roughness",.3,"vReflectanceInfo",4,1)),xe.set(this,n(this,ya,void 0)),this._specularRoughnessTexture=(n(this,Oa),new Ae("specular_roughness","specularRoughness","SPECULAR_ROUGHNESS")),Me.set(this,n(this,Fa,void 0)),this._specularRoughnessAnisotropy=(n(this,Na),new fe("specular_roughness_anisotropy",0,"vSpecularAnisotropy",3,2)),Ie.set(this,n(this,ka,void 0)),this._specularRoughnessAnisotropyTexture=(n(this,Da),new Ae("specular_roughness_anisotropy","specularRoughnessAnisotropy","SPECULAR_ROUGHNESS_ANISOTROPY")),be.set(this,n(this,va,void 0)),this._specularIor=(n(this,Pa),new fe("specular_ior",1.5,"vReflectanceInfo",4,2)),Ce.set(this,n(this,Ua,void 0)),this._transmissionWeight=(n(this,Wa),new fe("transmission_weight",0,"vTransmissionWeight",1)),Le.set(this,n(this,wa,void 0)),this._transmissionWeightTexture=(n(this,Ba),new Ae("transmission_weight","transmissionWeight","TRANSMISSION_WEIGHT")),ye.set(this,n(this,Ga,void 0)),this._transmissionColor=(n(this,Ha),new fe("transmission_color",a.White(),"vTransmissionColor",3,0)),Oe.set(this,n(this,za,void 0)),this._transmissionColorTexture=(n(this,Va),new Ae("transmission_color","transmissionColor","TRANSMISSION_COLOR")),Fe.set(this,n(this,Xa,void 0)),this._transmissionDepth=(n(this,Ya),new fe("transmission_depth",0,"vTransmissionDepth",1,0)),Ne.set(this,n(this,Za,void 0)),this._transmissionDepthTexture=(n(this,Qa),new Ae("transmission_depth","transmissionDepth","TRANSMISSION_DEPTH")),ke.set(this,n(this,ja,void 0)),this._transmissionScatter=(n(this,Ka),new fe("transmission_scatter",a.Black(),"vTransmissionScatter",3,0)),De.set(this,n(this,qa,void 0)),this._transmissionScatterTexture=(n(this,$a),new Ae("transmission_scatter","transmissionScatter","TRANSMISSION_SCATTER")),ve.set(this,n(this,Ja,void 0)),this._transmissionScatterAnisotropy=(n(this,er),new fe("transmission_scatter_anisotropy",0,"vTransmissionScatterAnisotropy",1,0)),Pe.set(this,n(this,tr,void 0)),this._transmissionDispersionScale=(n(this,sr),new fe("transmission_dispersion_scale",0,"vTransmissionDispersionScale",1,0)),Ue.set(this,n(this,ir,void 0)),this._transmissionDispersionScaleTexture=(n(this,ar),new Ae("transmission_dispersion_scale","transmissionDispersionScale","TRANSMISSION_DISPERSION_SCALE")),We.set(this,n(this,rr,void 0)),this._transmissionDispersionAbbeNumber=(n(this,nr),new fe("transmission_dispersion_abbe_number",20,"vTransmissionDispersionAbbeNumber",1,0)),we.set(this,n(this,or,void 0)),this._subsurfaceWeight=(n(this,hr),new fe("subsurface_weight",0,"vSubsurfaceWeight",1,0,"SUBSURFACE_SLAB")),Be.set(this,n(this,ur,void 0)),this._subsurfaceWeightTexture=(n(this,lr),new Ae("subsurface_weight","subsurfaceWeight","SUBSURFACE_WEIGHT")),Ge.set(this,n(this,cr,void 0)),this._subsurfaceColor=(n(this,mr),new fe("subsurface_color",new a(.8,.8,.8),"vSubsurfaceColor",3,0,"SUBSURFACE_SLAB")),He.set(this,n(this,Tr,void 0)),this._subsurfaceColorTexture=(n(this,_r),new Ae("subsurface_color","subsurfaceColor","SUBSURFACE_COLOR")),ze.set(this,n(this,gr,void 0)),this._subsurfaceRadius=(n(this,fr),new fe("subsurface_radius",.1,"vSubsurfaceRadius",1,0,"SUBSURFACE_SLAB")),Ve.set(this,n(this,Ar,void 0)),this._subsurfaceRadiusScale=(n(this,pr),new fe("subsurface_radius_scale",new a(1,.5,.25),"vSubsurfaceRadiusScale",3,0,"SUBSURFACE_SLAB")),Xe.set(this,n(this,dr,void 0)),this._subsurfaceRadiusScaleTexture=(n(this,Rr),new Ae("subsurface_radius_scale","subsurfaceRadiusScale","SUBSURFACE_RADIUS_SCALE")),Ye.set(this,n(this,Er,void 0)),this._subsurfaceScatterAnisotropy=(n(this,Sr),new fe("subsurface_scatter_anisotropy",0,"vSubsurfaceScatterAnisotropy",1,0,"SUBSURFACE_SLAB")),Ze.set(this,n(this,xr,void 0)),this._coatWeight=(n(this,Mr),new fe("coat_weight",0,"vCoatWeight",1,0)),Qe.set(this,n(this,Ir,void 0)),this._coatWeightTexture=(n(this,br),new Ae("coat_weight","coatWeight","COAT_WEIGHT")),je.set(this,n(this,Cr,void 0)),this._coatColor=(n(this,Lr),new fe("coat_color",a.White(),"vCoatColor",3,0)),Ke.set(this,n(this,yr,void 0)),this._coatColorTexture=(n(this,Or),new Ae("coat_color","coatColor","COAT_COLOR")),qe.set(this,n(this,Fr,void 0)),this._coatRoughness=(n(this,Nr),new fe("coat_roughness",0,"vCoatRoughness",1,0)),$e.set(this,n(this,kr,void 0)),this._coatRoughnessTexture=(n(this,Dr),new Ae("coat_roughness","coatRoughness","COAT_ROUGHNESS")),Je.set(this,n(this,vr,void 0)),this._coatRoughnessAnisotropy=(n(this,Pr),new fe("coat_roughness_anisotropy",0,"vCoatRoughnessAnisotropy",1)),et.set(this,n(this,Ur,void 0)),this._coatRoughnessAnisotropyTexture=(n(this,Wr),new Ae("coat_roughness_anisotropy","coatRoughnessAnisotropy","COAT_ROUGHNESS_ANISOTROPY")),tt.set(this,n(this,wr,void 0)),this._coatIor=(n(this,Br),new fe("coat_ior",1.5,"vCoatIor",1,0)),st.set(this,n(this,Gr,void 0)),this._coatDarkening=(n(this,Hr),new fe("coat_darkening",1,"vCoatDarkening",1,0)),it.set(this,n(this,zr,void 0)),this._coatDarkeningTexture=(n(this,Vr),new Ae("coat_darkening","coatDarkening","COAT_DARKENING")),this.useCoatRoughnessFromWeightTexture=!1,at.set(this,n(this,Xr,void 0)),this._fuzzWeight=(n(this,Yr),new fe("fuzz_weight",0,"vFuzzWeight",1,0)),rt.set(this,n(this,Zr,void 0)),this._fuzzWeightTexture=(n(this,Qr),new Ae("fuzz_weight","fuzzWeight","FUZZ_WEIGHT")),nt.set(this,n(this,jr,void 0)),this._fuzzColor=(n(this,Kr),new fe("fuzz_color",a.White(),"vFuzzColor",3,0)),ot.set(this,n(this,qr,void 0)),this._fuzzColorTexture=(n(this,$r),new Ae("fuzz_color","fuzzColor","FUZZ_COLOR")),ht.set(this,n(this,Jr,void 0)),this._fuzzRoughness=(n(this,en),new fe("fuzz_roughness",.5,"vFuzzRoughness",1,0)),ut.set(this,n(this,tn,void 0)),this._fuzzRoughnessTexture=(n(this,sn),new Ae("fuzz_roughness","fuzzRoughness","FUZZ_ROUGHNESS")),lt.set(this,n(this,an,void 0)),this._geometryThinWalled=(n(this,rn),new fe("geometry_thin_walled",0,"vGeometryThinWalled",1,0)),ct.set(this,n(this,nn,void 0)),this._geometryNormalTexture=(n(this,on),new Ae("geometry_normal","geometryNormal","GEOMETRY_NORMAL")),mt.set(this,n(this,hn,void 0)),this._geometryTangent=(n(this,un),new fe("geometry_tangent",new s(1,0),"vSpecularAnisotropy",3,0)),Tt.set(this,n(this,ln,void 0)),this._geometryTangentTexture=(n(this,cn),new Ae("geometry_tangent","geometryTangent","GEOMETRY_TANGENT")),_t.set(this,n(this,mn,void 0)),this._geometryCoatNormalTexture=(n(this,Tn),new Ae("geometry_coat_normal","geometryCoatNormal","GEOMETRY_COAT_NORMAL")),gt.set(this,n(this,_n,void 0)),this._geometryCoatTangent=(n(this,gn),new fe("geometry_coat_tangent",new s(1,0),"vGeometryCoatTangent",2,0)),ft.set(this,n(this,fn,void 0)),this._geometryCoatTangentTexture=(n(this,An),new Ae("geometry_coat_tangent","geometryCoatTangent","GEOMETRY_COAT_TANGENT")),At.set(this,n(this,pn,void 0)),this._geometryOpacity=(n(this,dn),new fe("geometry_opacity",1,"vBaseColor",4,3)),pt.set(this,n(this,Rn,void 0)),this._geometryOpacityTexture=(n(this,En),new Ae("geometry_opacity","geometryOpacity","GEOMETRY_OPACITY")),dt.set(this,n(this,Sn,void 0)),this._geometryThickness=(n(this,xn),new fe("geometry_thickness",0,"vGeometryThickness",1,0)),Rt.set(this,n(this,Mn,void 0)),this._geometryThicknessTexture=(n(this,In),new Ae("geometry_thickness","geometryThickness","GEOMETRY_THICKNESS")),Et.set(this,n(this,bn,void 0)),this._emissionLuminance=(n(this,Cn),new fe("emission_luminance",1,"vLightingIntensity",4,1)),St.set(this,n(this,Ln,void 0)),this._emissionColor=(n(this,yn),new fe("emission_color",a.Black(),"vEmissionColor",3)),xt.set(this,n(this,On,void 0)),this._emissionColorTexture=(n(this,Fn),new Ae("emission_color","emissionColor","EMISSION_COLOR")),Mt.set(this,n(this,Nn,void 0)),this._thinFilmWeight=(n(this,kn),new fe("thin_film_weight",0,"vThinFilmWeight",1,0)),It.set(this,n(this,Dn,void 0)),this._thinFilmWeightTexture=(n(this,vn),new Ae("thin_film_weight","thinFilmWeight","THIN_FILM_WEIGHT")),bt.set(this,n(this,Pn,void 0)),this._thinFilmThickness=(n(this,Un),new fe("thin_film_thickness",.5,"vThinFilmThickness",2,0)),Ct.set(this,n(this,Wn,void 0)),this._thinFilmThicknessMin=(n(this,wn),new fe("thin_film_thickness_min",0,"vThinFilmThickness",2,1)),Lt.set(this,n(this,Bn,void 0)),this._thinFilmThicknessTexture=(n(this,Gn),new Ae("thin_film_thickness","thinFilmThickness","THIN_FILM_THICKNESS")),yt.set(this,n(this,Hn,void 0)),this._thinFilmIor=(n(this,zn),new fe("thin_film_ior",1.4,"vThinFilmIor",1,0)),Ot.set(this,n(this,Vn,void 0)),this._ambientOcclusionTexture=(n(this,Xn),new Ae("ambient_occlusion","ambientOcclusion","AMBIENT_OCCLUSION")),this._sssQuality=j.SSS_QUALITY_MEDIUM,this._sssIrradianceTexture=null,this._sssDepthTexture=null,this._uniformsList={},this._uniformsArray=[],this._samplersList={},this._samplerDefines={},Ft.set(this,n(this,Yn,1)),Nt.set(this,(n(this,Zn),n(this,Qn,1))),kt.set(this,(n(this,jn),n(this,Kn,!1))),Dt.set(this,(n(this,qn),n(this,$n,!1))),vt.set(this,(n(this,Jn),n(this,eo,.4))),Pt.set(this,(n(this,to),n(this,so,!1))),Ut.set(this,(n(this,io),n(this,ao,!1))),Wt.set(this,(n(this,ro),n(this,no,!1))),wt.set(this,(n(this,oo),n(this,ho,!1))),Bt.set(this,(n(this,uo),n(this,lo,!1))),Gt.set(this,(n(this,co),n(this,mo,.05))),Ht.set(this,(n(this,To),n(this,_o,!1))),zt.set(this,(n(this,go),n(this,fo,!1))),Vt.set(this,(n(this,Ao),n(this,po,4))),Xt.set(this,(n(this,Ro),n(this,Eo,!1))),Yt.set(this,(n(this,So),n(this,xo,!1))),Zt.set(this,(n(this,Mo),n(this,Io,!1))),Qt.set(this,(n(this,bo),n(this,Co,!1))),jt.set(this,(n(this,Lo),n(this,yo,!1))),Kt.set(this,(n(this,Oo),n(this,Fo,null))),qt.set(this,(n(this,No),n(this,ko,!1))),$t.set(this,(n(this,Do),n(this,vo,!1))),Jt.set(this,(n(this,Po),n(this,Uo,!0))),es.set(this,(n(this,Wo),n(this,wo,!0))),ts.set(this,(n(this,Bo),n(this,Go,!1))),ss.set(this,(n(this,Ho),n(this,zo,!1))),this._lightingInfos=(n(this,Vo),new o(this.directIntensity,1,this.environmentIntensity,1)),this._radianceTexture=null,this._useSpecularWeightFromAlpha=!1,this._useSpecularWeightFromSpecularColorTexture=!1,this._useSpecularRoughnessAnisotropyFromTangentTexture=!1,this._useCoatRoughnessAnisotropyFromTangentTexture=!1,this._useCoatRoughnessFromGreenChannel=!1,this._useGltfStyleAnisotropy=!1,this._useFuzzRoughnessFromTextureAlpha=!1,this._useSubsurfaceWeightFromTextureAlpha=!1,this._useHorizonOcclusion=!0,this._useRadianceOcclusion=!0,this._useAlphaFromBaseColorTexture=!1,this._useAmbientOcclusionFromMetallicTextureRed=!1,this._useRoughnessFromMetallicTextureGreen=!1,this._useMetallicFromMetallicTextureBlue=!1,this._useThinFilmThicknessFromTextureGreen=!1,this._useGeometryThicknessFromGreenChannel=!1,this._lightFalloff=r.LIGHTFALLOFF_PHYSICAL,this._useObjectSpaceNormalMap=!1,this._useParallax=!1,this._useParallaxOcclusion=!1,this._parallaxScaleBias=.05,this._disableLighting=!1,this._maxSimultaneousLights=4,this._invertNormalMapX=!1,this._invertNormalMapY=!1,this._twoSidedLighting=!1,this._alphaCutOff=.4,this._useAlphaFresnel=!1,this._useLinearAlphaFresnel=!1,this._environmentBRDFTexture=null,this._environmentFuzzBRDFTexture=null,this._backgroundRefractionTexture=null,this._refractionHighQualityBlur=!0,this._forceIrradianceInFragment=!1,this._realTimeFiltering=!1,this._realTimeFilteringQuality=i.TEXTURE_FILTERING_QUALITY_LOW,this._fuzzSampleNumber=4,this._forceNormalForward=!1,this._enableSpecularAntiAliasing=!1,this._renderTargets=new h(16),this._unlit=!1,this._applyDecalMapAfterDetailMap=!1,this._debugMode=0,this._shadersLoaded=!1,this._breakShaderLoadedCheck=!1,this._vertexPullingMetadata=null,is.set(this,n(this,Xo,0)),this.debugLimit=(n(this,Yo),-1),this.debugFactor=1,this._cacheHasRenderTargetTextures=!1,this._transparencyMode=r.MATERIAL_OPAQUE,this.getScene()&&!this.getScene()?.getEngine().isWebGPU&&this.getScene().getEngine().webGLVersion<2&&u.Error("OpenPBRMaterial: WebGL 2.0 or above is required for this material."),j._noiseTextures[this.getScene().uniqueId]||(j._noiseTextures[this.getScene().uniqueId]=new l(c.GetAssetUrl("https://assets.babylonjs.com/core/blue_noise/blue_noise_rgb.png"),this.getScene(),!1,!0,i.TEXTURE_NEAREST_SAMPLINGMODE),this.getScene().onDisposeObservable.addOnce(()=>{j._noiseTextures[this.getScene().uniqueId]?.dispose(),delete j._noiseTextures[this.getScene().uniqueId]})),this._attachImageProcessingConfiguration(null),this.getRenderTargetTextures=()=>(this._renderTargets.reset(),m.ReflectionTextureEnabled&&this._radianceTexture&&this._radianceTexture.isRenderTarget&&this._renderTargets.push(this._radianceTexture),m.RefractionTextureEnabled&&this._backgroundRefractionTexture&&this._backgroundRefractionTexture.isRenderTarget&&this._renderTargets.push(this._backgroundRefractionTexture),this._eventInfo.renderTargets=this._renderTargets,this._callbackPluginEventFillRenderTargetTextures(this._eventInfo),this._renderTargets),this._environmentBRDFTexture=ne(this.getScene()),this._environmentFuzzBRDFTexture=oe(this.getScene()),this.prePassConfiguration=new he,this._propertyList={};for(const e of Object.getOwnPropertyNames(this)){const t=this[e];t instanceof fe&&(this._propertyList[e]=t)}Object.keys(this._propertyList).forEach(e=>{const t=this._propertyList[e];let s=this._uniformsList[t.targetUniformName];s?s.numComponents!==t.targetUniformComponentNum?u.Error(`Uniform ${t.targetUniformName} already exists of size ${s.numComponents}, but trying to set it to ${t.targetUniformComponentNum}.`):s.requiredDefine!==t.requiredDefine&&(s.requiredDefine=void 0):(s=new ge(t.targetUniformName,t.targetUniformComponentNum),s.requiredDefine=t.requiredDefine,this._uniformsList[t.targetUniformName]=s),""===s.firstLinkedKey&&(s.firstLinkedKey=t.name),s.linkedProperties[t.name]=t}),this._uniformsArray=Object.values(this._uniformsList),this._samplersList={};for(const e of Object.getOwnPropertyNames(this)){const t=this[e];t instanceof Ae&&(this._samplersList[e]=t)}for(const e in this._samplersList){const t=this._samplersList[e].textureDefine;this._samplerDefines[t]={type:"boolean",default:!1},this._samplerDefines[t+"DIRECTUV"]={type:"number",default:0},this._samplerDefines[t+"_GAMMA"]={type:"boolean",default:!1}}this._baseWeight,this._baseWeightTexture,this._baseColor,this._baseColorTexture,this._baseDiffuseRoughness,this._baseDiffuseRoughnessTexture,this._baseMetalness,this._baseMetalnessTexture,this._specularWeight,this._specularWeightTexture,this._specularColor,this._specularColorTexture,this._specularRoughness,this._specularIor,this._specularRoughnessTexture,this._specularRoughnessAnisotropy,this._specularRoughnessAnisotropyTexture,this._transmissionWeight,this._transmissionWeightTexture,this._transmissionColor,this._transmissionColorTexture,this._transmissionDepth,this._transmissionDepthTexture,this._transmissionScatter,this._transmissionScatterTexture,this._transmissionScatterAnisotropy,this._transmissionDispersionScale,this._transmissionDispersionScaleTexture,this._transmissionDispersionAbbeNumber,this._subsurfaceWeight,this._subsurfaceWeightTexture,this._subsurfaceColor,this._subsurfaceColorTexture,this._subsurfaceRadius,this._subsurfaceRadiusScale,this._subsurfaceRadiusScaleTexture,this._subsurfaceScatterAnisotropy,this._coatWeight,this._coatWeightTexture,this._coatColor,this._coatColorTexture,this._coatRoughness,this._coatRoughnessTexture,this._coatRoughnessAnisotropy,this._coatRoughnessAnisotropyTexture,this._coatIor,this._coatDarkening,this._coatDarkeningTexture,this._fuzzWeight,this._fuzzWeightTexture,this._fuzzColor,this._fuzzColorTexture,this._fuzzRoughness,this._fuzzRoughnessTexture,this._geometryThinWalled,this._geometryNormalTexture,this._geometryTangent,this._geometryTangentTexture,this._geometryCoatNormalTexture,this._geometryCoatTangent,this._geometryCoatTangentTexture,this._geometryOpacity,this._geometryOpacityTexture,this._geometryThickness,this._geometryThicknessTexture,this._thinFilmWeight,this._thinFilmWeightTexture,this._thinFilmThickness,this._thinFilmThicknessMin,this._thinFilmThicknessTexture,this._thinFilmIor,this._emissionLuminance,this._emissionColor,this._emissionColorTexture,this._ambientOcclusionTexture}get hasRenderTargetTextures(){return!!(m.ReflectionTextureEnabled&&this._radianceTexture&&this._radianceTexture.isRenderTarget)||(!!(m.RefractionTextureEnabled&&this._backgroundRefractionTexture&&this._backgroundRefractionTexture.isRenderTarget)||this._cacheHasRenderTargetTextures)}get isPrePassCapable(){return!this.disableDepthWrite}getClassName(){return"OpenPBRMaterial"}get transparencyMode(){return this._transparencyMode}set transparencyMode(e){this._transparencyMode!==e&&(this._transparencyMode=e,this._markAllSubMeshesAsTexturesAndMiscDirty())}_shouldUseAlphaFromBaseColorTexture(){return this._hasAlphaChannel()&&this._transparencyMode!==r.MATERIAL_OPAQUE&&!this.geometryOpacityTexture}_hasAlphaChannel(){return null!=this.baseColorTexture&&this.baseColorTexture.hasAlpha&&this._useAlphaFromBaseColorTexture||null!=this.geometryOpacityTexture}needAlphaBlending(){return this.geometryOpacity<1||null!=this.geometryOpacityTexture}needAlphaBlendingForMesh(e){return this.geometryOpacity<1||null!=this.geometryOpacityTexture||super.needAlphaBlendingForMesh(e)}clone(e,t=!0,s=""){const i=T.Clone(()=>new j(e,this.getScene()),this,{cloneTexturesOnlyOnce:t});return i.id=e,i.name=e,this.stencil.copyTo(i.stencil),this._clonePlugins(i,s),i}serialize(){const e=super.serialize();return e.customType="BABYLON.OpenPBRMaterial",e}static Parse(e,t,s){const i=T.Parse(()=>new j(e.name,t),e,t,s);return e.stencil&&i.stencil.parse(e.stencil,t,s),r._ParsePlugins(e,i,t,s),i}forceCompilation(e,t,s){const i={clipPlane:!1,useInstances:!1,...s};this._uniformBufferLayoutBuilt||this.buildUniformLayout(),this._callbackPluginEventGeneric(4,this._eventInfo);(()=>{if(this._breakShaderLoadedCheck)return;const s=new Re({...this._eventInfo.defineNames||{},...this._samplerDefines||{}}),a=this._prepareEffect(e,e,s,void 0,void 0,i.useInstances,i.clipPlane);this._onEffectCreatedObservable&&(Te.effect=a,Te.subMesh=null,this._onEffectCreatedObservable.notifyObservers(Te)),a.isReady()?t&&t(this):a.onCompileObservable.add(()=>{t&&t(this)})})()}isReadyForSubMesh(e,t,s){this._uniformBufferLayoutBuilt||this.buildUniformLayout();const i=t._drawWrapper;if(i.effect&&this.isFrozen&&i._wasPreviouslyReady&&i._wasPreviouslyUsingInstances===s)return!0;t.materialDefines||(this._callbackPluginEventGeneric(4,this._eventInfo),t.materialDefines=new Re({...this._eventInfo.defineNames||{},...this._samplerDefines||{}}));const a=t.materialDefines;if(this._isReadyForSubMesh(t))return!0;const r=this.getScene(),n=r.getEngine();if(a._areTexturesDirty&&(this._eventInfo.hasRenderTargetTextures=!1,this._callbackPluginEventHasRenderTargetTextures(this._eventInfo),this._cacheHasRenderTargetTextures=this._eventInfo.hasRenderTargetTextures,r.texturesEnabled)){for(const e in this._samplersList){const t=this._samplersList[e];if(t.value&&!t.value.isReadyOrNotBlocking())return!1}const e=this._getRadianceTexture();if(e&&m.ReflectionTextureEnabled){if(!e.isReadyOrNotBlocking())return!1;if(e.irradianceTexture){if(!e.irradianceTexture.isReadyOrNotBlocking())return!1}else if(!e.sphericalPolynomial&&e.getInternalTexture()?._sphericalPolynomialPromise)return!1}if(this._environmentBRDFTexture&&m.ReflectionTextureEnabled&&!this._environmentBRDFTexture.isReady())return!1;if(this._environmentFuzzBRDFTexture&&m.ReflectionTextureEnabled&&!this._environmentFuzzBRDFTexture.isReady())return!1;if(this._backgroundRefractionTexture&&m.RefractionTextureEnabled&&!this._backgroundRefractionTexture.isReadyOrNotBlocking())return!1;if(j._noiseTextures[r.uniqueId]&&!j._noiseTextures[r.uniqueId].isReady())return!1;if(this._sssIrradianceTexture&&this._sssDepthTexture){if(!this._sssIrradianceTexture.isReady())return!1;if(!this._sssDepthTexture.isReady())return!1}}if(this._eventInfo.isReadyForSubMesh=!0,this._eventInfo.defines=a,this._eventInfo.subMesh=t,this._callbackPluginEventIsReadyForSubMesh(this._eventInfo),!this._eventInfo.isReadyForSubMesh)return!1;if(a._areImageProcessingDirty&&this._imageProcessingConfiguration&&!this._imageProcessingConfiguration.isReady())return!1;if(a.AREALIGHTUSED)for(let t=0;t<e.lightSources.length;t++)if(!e.lightSources[t]._isReady())return!1;if(n.getCaps().standardDerivatives||e.isVerticesDataPresent(_.NormalKind)||(e.createNormals(!0),u.Warn("OpenPBRMaterial: Normals have been created for the mesh: "+e.name)),!g(r,e,this._maxSimultaneousLights,this._disableLighting))return!1;const o=t.effect,h=a._areLightsDisposed,l=this._prepareEffect(e,t.getRenderingMesh(),a,this.onCompiled,this.onError,s,null);let c=!1;if(l)if(this._onEffectCreatedObservable&&(Te.effect=l,Te.subMesh=t,this._onEffectCreatedObservable.notifyObservers(Te)),this.allowShaderHotSwapping&&o&&!l.isReady()){if(a.markAsUnprocessed(),c=this.isFrozen,h)return a._areLightsDisposed=!0,!1}else r.resetCachedMaterial(),t.setEffect(l,a,this._materialContext);return!(!t.effect||!t.effect.isReady())&&(a._renderId=r.getRenderId(),i._wasPreviouslyReady=!c,i._wasPreviouslyUsingInstances=!!s,this._checkScenePerformancePriority(),!0)}buildUniformLayout(){const e=this._uniformBuffer;e.addUniform("vTangentSpaceParams",2),e.addUniform("vLightingIntensity",4),e.addUniform("pointSize",1),e.addUniform("vDebugMode",2),e.addUniform("renderTargetSize",2),e.addUniform("cameraInfo",4),e.addUniform("vTextureRepetitionHexTilingParams",4),e.addUniform("backgroundRefractionMatrix",16),e.addUniform("vBackgroundRefractionInfos",3),f(e,!0,!0,!0,!0,!0),Object.values(this._uniformsList).forEach(t=>{e.addUniform(t.name,t.numComponents)}),Object.values(this._samplersList).forEach(t=>{e.addUniform(t.samplerInfoName,2),e.addUniform(t.samplerMatrixName,16)}),super.buildUniformLayout()}bindPropertiesForSubMesh(e,t,s,i){if(0===this.geometryThickness)e.updateFloat("vGeometryThickness",0);else{i.getRenderingMesh().getWorldMatrix().decompose(A.Vector3[0]);const t=Math.max(Math.abs(A.Vector3[0].x),Math.abs(A.Vector3[0].y),Math.abs(A.Vector3[0].z));e.updateFloat("vGeometryThickness",this.geometryThickness*t)}}bindForSubMesh(e,t,s){const i=this.getScene(),r=s.materialDefines;if(!r)return;const n=s.effect;if(!n)return;this._activeEffect=n,t.getMeshUniformBuffer().bindToEffect(n,"Mesh"),t.transferToEffect(e);const o=i.getEngine();this._uniformBuffer.bindToEffect(n,"Material"),this.prePassConfiguration.bindForSubMesh(this._activeEffect,i,t,e,this.isFrozen),ue.Bind(o.currentRenderPassId,this._activeEffect,t,e,this);const h=i.activeCamera;h?this._uniformBuffer.updateFloat4("cameraInfo",h.minZ,h.maxZ,0,0):this._uniformBuffer.updateFloat4("cameraInfo",0,0,0,0);const u=this.textureRepetitionHexTilingParams;this._uniformBuffer.updateFloat4("vTextureRepetitionHexTilingParams",u[0],u[1],u[2],u[3]),this._eventInfo.subMesh=s,this._callbackPluginEventHardBindForSubMesh(this._eventInfo),r.OBJECTSPACE_NORMALMAP&&(e.toNormalMatrix(this._normalMatrix),this.bindOnlyNormalMatrix(this._normalMatrix));const l=this._mustRebind(i,n,s,t.visibility),c=o._features.needToAlwaysBindUniformBuffers;p(t,this._activeEffect,this.prePassConfiguration),this._vertexPullingMetadata&&d(this._activeEffect,this._vertexPullingMetadata);const m=this._uniformBuffer;if(l){this.bindViewProjection(n);const e=this._getRadianceTexture();if(!m.useUbo||!this.isFrozen||!m.isSync||s._drawWrapper._forceRebindOnNextCall){if(i.texturesEnabled){for(const e in this._samplersList){const t=this._samplersList[e];t.value&&(m.updateFloat2(t.samplerInfoName,t.value.coordinatesIndex,t.value.level),R(t.value,m,t.samplerPrefix))}(this.geometryNormalTexture||this.geometryCoatNormalTexture)&&(i._mirroredCameraPosition?m.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?1:-1,this._invertNormalMapY?1:-1):m.updateFloat2("vTangentSpaceParams",this._invertNormalMapX?-1:1,this._invertNormalMapY?-1:1)),E(i,r,m,a.White(),e,this.realTimeFiltering,!0,!0,!0,!0,!0)}this.pointsCloud&&m.updateFloat("pointSize",this.pointSize);const t=this._uniformsArray;for(let e=0,s=t.length;e<s;e++){const s=t[e];(void 0===s.requiredDefine||r[s.requiredDefine])&&(4===s.numComponents?(s.populateVectorFromLinkedProperties(A.Vector4[0]),m.updateVector4(s.name,A.Vector4[0])):3===s.numComponents?(s.populateVectorFromLinkedProperties(A.Vector3[0]),m.updateVector3(s.name,A.Vector3[0])):2===s.numComponents?(s.populateVectorFromLinkedProperties(A.Vector2[0]),m.updateFloat2(s.name,A.Vector2[0].x,A.Vector2[0].y)):1===s.numComponents&&m.updateFloat(s.name,s.linkedProperties[s.firstLinkedKey].value))}this._lightingInfos.x=this.directIntensity,this._lightingInfos.y=this.emissionLuminance,this._lightingInfos.z=this.environmentIntensity*i.environmentIntensity,this._lightingInfos.w=1,m.updateVector4("vLightingIntensity",this._lightingInfos),m.updateFloat2("vDebugMode",this.debugLimit,this.debugFactor)}if(i.texturesEnabled){for(const e in this._samplersList){const t=this._samplersList[e];t.value&&m.setTexture(t.samplerName,t.value)}if(S(i,r,m,e,this.realTimeFiltering),r.ENVIRONMENTBRDF&&m.setTexture("environmentBrdfSampler",this._environmentBRDFTexture),r.FUZZENVIRONMENTBRDF&&m.setTexture("environmentFuzzBrdfSampler",this._environmentFuzzBRDFTexture),r.REFRACTED_BACKGROUND&&(m.setTexture("backgroundRefractionSampler",this._backgroundRefractionTexture),m.updateMatrix("backgroundRefractionMatrix",this._backgroundRefractionTexture.getReflectionTextureMatrix()),A.Vector3[1].set(Math.log2(this._backgroundRefractionTexture.getSize().width),0,0),m.updateVector3("vBackgroundRefractionInfos",A.Vector3[1])),(r.ANISOTROPIC||r.FUZZ||r.REFRACTED_BACKGROUND||r.USE_IRRADIANCE_TEXTURE_FOR_SCATTERING)&&m.setTexture("blueNoiseSampler",j._noiseTextures[this.getScene().uniqueId]),r.USE_IRRADIANCE_TEXTURE_FOR_SCATTERING&&this.sssIrradianceTexture&&this.sssDepthTexture){const e=this.sssIrradianceTexture.getSize().width,t=this.sssIrradianceTexture.getSize().height;m.setTexture("sceneIrradianceSampler",this.sssIrradianceTexture),m.setTexture("sceneDepthSampler",this.sssDepthTexture),m.updateFloat2("renderTargetSize",e,t)}}this.getScene().useOrderIndependentTransparency&&this.needAlphaBlendingForMesh(t)&&this.getScene().depthPeelingRenderer.bind(n),this._eventInfo.subMesh=s,this._callbackPluginEventBindForSubMesh(this._eventInfo),x(this._activeEffect,this,i),this.bindEyePosition(n)}else c&&(this._needToBindSceneUbo=!0);this.bindPropertiesForSubMesh(this._uniformBuffer,i,i.getEngine(),s),!l&&this.isFrozen&&!c||!i.lightsEnabled||this._disableLighting||M(i,t,this._activeEffect,r,this._maxSimultaneousLights),!l&&this.isFrozen||(this.bindView(n),I(i,t,this._activeEffect,!0),r.NUM_MORPH_INFLUENCERS&&b(t,this._activeEffect),r.BAKED_VERTEX_ANIMATION_TEXTURE&&t.bakedVertexAnimationManager?.bind(n,r.INSTANCES),this._imageProcessingConfiguration.bind(this._activeEffect),C(r,this._activeEffect,i)),this._afterBind(t,this._activeEffect,s),m.update()}getAnimatables(){const e=super.getAnimatables();for(const t in this._samplersList){const s=this._samplersList[t];s.value&&s.value.animations&&s.value.animations.length>0&&e.push(s.value)}return this._radianceTexture&&this._radianceTexture.animations&&this._radianceTexture.animations.length>0&&e.push(this._radianceTexture),e}getActiveTextures(){const e=super.getActiveTextures();for(const t in this._samplersList){const s=this._samplersList[t];s.value&&e.push(s.value)}return this._radianceTexture&&e.push(this._radianceTexture),e}hasTexture(e){if(super.hasTexture(e))return!0;for(const t in this._samplersList){if(this._samplersList[t].value===e)return!0}return this._radianceTexture===e}setPrePassRenderer(){return!1}dispose(e,t){if(this._breakShaderLoadedCheck=!0,t){this._environmentBRDFTexture&&this.getScene().openPBREnvironmentBRDFTexture!