@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.
3 lines (2 loc) • 7.52 kB
JavaScript
import{C as e,M as i}from"./index-BPURObVq.esm.min.js";class r{constructor(){this.previousWorldMatrices={},this.previousBones={}}static AddUniforms(e){e.push("previousWorld","previousViewProjection","mPreviousBones")}static AddSamplers(e){}bindForSubMesh(i,r,t,E,s){if(r.prePassRenderer&&r.prePassRenderer.enabled&&r.prePassRenderer.currentRTisSceneRT&&(-1!==r.prePassRenderer.getIndex(e.PREPASS_VELOCITY_TEXTURE_TYPE)||-1!==r.prePassRenderer.getIndex(e.PREPASS_VELOCITY_LINEAR_TEXTURE_TYPE))){this.previousWorldMatrices[t.uniqueId]||(this.previousWorldMatrices[t.uniqueId]=E.clone()),this.previousViewProjection||(this.previousViewProjection=r.getTransformMatrix().clone(),this.currentViewProjection=r.getTransformMatrix().clone());const e=r.getEngine();this.currentViewProjection.updateFlag!==r.getTransformMatrix().updateFlag?(this._lastUpdateFrameId=e.frameId,this.previousViewProjection.copyFrom(this.currentViewProjection),this.currentViewProjection.copyFrom(r.getTransformMatrix())):this._lastUpdateFrameId!==e.frameId&&(this._lastUpdateFrameId=e.frameId,this.previousViewProjection.copyFrom(this.currentViewProjection)),i.setMatrix("previousWorld",this.previousWorldMatrices[t.uniqueId]),i.setMatrix("previousViewProjection",this.previousViewProjection),this.previousWorldMatrices[t.uniqueId]=E.clone()}}}var t;!function(e){e[e.Zero=0]="Zero",e[e.One=1]="One",e[e.MaxViewZ=2]="MaxViewZ",e[e.NoClear=3]="NoClear"}(t||(t={}));class E{static CreateConfiguration(e){return E._Configurations[e]={defines:{},previousWorldMatrices:{},previousViewProjection:i.Zero(),currentViewProjection:i.Zero(),previousBones:{},lastUpdateFrameId:-1,excludedSkinnedMesh:[],reverseCulling:!1},E._Configurations[e]}static DeleteConfiguration(e){delete E._Configurations[e]}static GetConfiguration(e){return E._Configurations[e]}static AddUniformsAndSamplers(e,i){e.push("previousWorld","previousViewProjection","mPreviousBones")}static MarkAsDirty(e,i){for(const r of i)if(r.subMeshes)for(const i of r.subMeshes)i._removeDrawWrapper(e)}static PrepareDefines(e,i,r){if(!r._arePrePassDirty)return;const t=E._Configurations[e];if(!t)return;r.PREPASS=!0;let s=0;for(let e=0;e<E.GeometryTextureDescriptions.length;e++){const i=E.GeometryTextureDescriptions[e],P=i.define,n=i.defineIndex,o=t.defines[n];void 0!==o?(r[P]=!0,r[n]=o,s++):(r[P]=!1,delete r[n])}r.SCENE_MRT_COUNT=s,r.BONES_VELOCITY_ENABLED=i.useBones&&i.computeBonesUsingShaders&&i.skeleton&&!i.skeleton.isUsingTextureForMatrices&&-1===t.excludedSkinnedMesh.indexOf(i)}static Bind(e,i,r,t,s){const P=E._Configurations[e];if(!P)return;const n=r.getScene(),o=n.getEngine();if(P.reverseCulling&&o.setStateCullFaceType(n._mirroredCameraPosition?s.cullBackFaces:!s.cullBackFaces),(void 0!==P.defines.PREPASS_VELOCITY_INDEX||void 0!==P.defines.PREPASS_VELOCITY_LINEAR_INDEX)&&(P.previousWorldMatrices[r.uniqueId]||(P.previousWorldMatrices[r.uniqueId]=t.clone()),P.previousViewProjection||(P.previousViewProjection=n.getTransformMatrix().clone(),P.currentViewProjection=n.getTransformMatrix().clone()),P.currentViewProjection.updateFlag!==n.getTransformMatrix().updateFlag?(P.lastUpdateFrameId=o.frameId,P.previousViewProjection.copyFrom(P.currentViewProjection),P.currentViewProjection.copyFrom(n.getTransformMatrix())):P.lastUpdateFrameId!==o.frameId&&(P.lastUpdateFrameId=o.frameId,P.previousViewProjection.copyFrom(P.currentViewProjection)),i.setMatrix("previousWorld",P.previousWorldMatrices[r.uniqueId]),i.setMatrix("previousViewProjection",P.previousViewProjection),P.previousWorldMatrices[r.uniqueId]=t.clone(),r.useBones&&r.computeBonesUsingShaders&&r.skeleton)){const e=r.skeleton;if(!e.isUsingTextureForMatrices||-1===i.getUniformIndex("boneTextureInfo")){const t=e.getTransformMatrices(r);t&&(P.previousBones[r.uniqueId]||(P.previousBones[r.uniqueId]=t.slice()),i.setMatrices("mPreviousBones",P.previousBones[r.uniqueId]),P.previousBones[r.uniqueId].set(t))}}}}function s(e){return class extends e{constructor(){super(...arguments),this.MAINUV1=!1,this.MAINUV2=!1,this.MAINUV3=!1,this.MAINUV4=!1,this.MAINUV5=!1,this.MAINUV6=!1,this.UV1=!1,this.UV2=!1,this.UV3=!1,this.UV4=!1,this.UV5=!1,this.UV6=!1}}}function P(e){return class extends e{constructor(){super(...arguments),this.PREPASS=!1,this.PREPASS_COLOR=!1,this.PREPASS_COLOR_INDEX=-1,this.PREPASS_IRRADIANCE_LEGACY=!1,this.PREPASS_IRRADIANCE_LEGACY_INDEX=-1,this.PREPASS_IRRADIANCE=!1,this.PREPASS_IRRADIANCE_INDEX=-1,this.PREPASS_ALBEDO=!1,this.PREPASS_ALBEDO_INDEX=-1,this.PREPASS_ALBEDO_SQRT=!1,this.PREPASS_ALBEDO_SQRT_INDEX=-1,this.PREPASS_DEPTH=!1,this.PREPASS_DEPTH_INDEX=-1,this.PREPASS_SCREENSPACE_DEPTH=!1,this.PREPASS_SCREENSPACE_DEPTH_INDEX=-1,this.PREPASS_NORMALIZED_VIEW_DEPTH=!1,this.PREPASS_NORMALIZED_VIEW_DEPTH_INDEX=-1,this.PREPASS_NORMAL=!1,this.PREPASS_NORMAL_INDEX=-1,this.PREPASS_NORMAL_WORLDSPACE=!1,this.PREPASS_WORLD_NORMAL=!1,this.PREPASS_WORLD_NORMAL_INDEX=-1,this.PREPASS_POSITION=!1,this.PREPASS_POSITION_INDEX=-1,this.PREPASS_LOCAL_POSITION=!1,this.PREPASS_LOCAL_POSITION_INDEX=-1,this.PREPASS_VELOCITY=!1,this.PREPASS_VELOCITY_INDEX=-1,this.PREPASS_VELOCITY_LINEAR=!1,this.PREPASS_VELOCITY_LINEAR_INDEX=-1,this.PREPASS_REFLECTIVITY=!1,this.PREPASS_REFLECTIVITY_INDEX=-1,this.SCENE_MRT_COUNT=0}}}E.GeometryTextureDescriptions=[{type:e.PREPASS_IRRADIANCE_LEGACY_TEXTURE_TYPE,name:"IrradianceLegacy",clearType:0,define:"PREPASS_IRRADIANCE_LEGACY",defineIndex:"PREPASS_IRRADIANCE_LEGACY_INDEX"},{type:e.PREPASS_POSITION_TEXTURE_TYPE,name:"WorldPosition",clearType:0,define:"PREPASS_POSITION",defineIndex:"PREPASS_POSITION_INDEX"},{type:e.PREPASS_VELOCITY_TEXTURE_TYPE,name:"Velocity",clearType:0,define:"PREPASS_VELOCITY",defineIndex:"PREPASS_VELOCITY_INDEX"},{type:e.PREPASS_REFLECTIVITY_TEXTURE_TYPE,name:"Reflectivity",clearType:0,define:"PREPASS_REFLECTIVITY",defineIndex:"PREPASS_REFLECTIVITY_INDEX"},{type:e.PREPASS_DEPTH_TEXTURE_TYPE,name:"ViewDepth",clearType:2,define:"PREPASS_DEPTH",defineIndex:"PREPASS_DEPTH_INDEX"},{type:e.PREPASS_NORMAL_TEXTURE_TYPE,name:"ViewNormal",clearType:0,define:"PREPASS_NORMAL",defineIndex:"PREPASS_NORMAL_INDEX"},{type:e.PREPASS_ALBEDO_SQRT_TEXTURE_TYPE,name:"AlbedoSqrt",clearType:0,define:"PREPASS_ALBEDO_SQRT",defineIndex:"PREPASS_ALBEDO_SQRT_INDEX"},{type:e.PREPASS_WORLD_NORMAL_TEXTURE_TYPE,name:"WorldNormal",clearType:0,define:"PREPASS_WORLD_NORMAL",defineIndex:"PREPASS_WORLD_NORMAL_INDEX"},{type:e.PREPASS_LOCAL_POSITION_TEXTURE_TYPE,name:"LocalPosition",clearType:0,define:"PREPASS_LOCAL_POSITION",defineIndex:"PREPASS_LOCAL_POSITION_INDEX"},{type:e.PREPASS_SCREENSPACE_DEPTH_TEXTURE_TYPE,name:"ScreenDepth",clearType:1,define:"PREPASS_SCREENSPACE_DEPTH",defineIndex:"PREPASS_SCREENSPACE_DEPTH_INDEX"},{type:e.PREPASS_VELOCITY_LINEAR_TEXTURE_TYPE,name:"LinearVelocity",clearType:0,define:"PREPASS_VELOCITY_LINEAR",defineIndex:"PREPASS_VELOCITY_LINEAR_INDEX"},{type:e.PREPASS_ALBEDO_TEXTURE_TYPE,name:"Albedo",clearType:0,define:"PREPASS_ALBEDO",defineIndex:"PREPASS_ALBEDO_INDEX"},{type:e.PREPASS_NORMALIZED_VIEW_DEPTH_TEXTURE_TYPE,name:"NormalizedViewDepth",clearType:1,define:"PREPASS_NORMALIZED_VIEW_DEPTH",defineIndex:"PREPASS_NORMALIZED_VIEW_DEPTH_INDEX"},{type:e.PREPASS_COLOR_TEXTURE_TYPE,name:"Color",clearType:3,define:"PREPASS_COLOR",defineIndex:"PREPASS_COLOR_INDEX"},{type:e.PREPASS_IRRADIANCE_TEXTURE_TYPE,name:"Irradiance",clearType:0,define:"PREPASS_IRRADIANCE",defineIndex:"PREPASS_IRRADIANCE_INDEX"}],E._Configurations={};export{E as M,r as P,s as U,P as a};
//# sourceMappingURL=prepass.defines-DBIG3K_p.esm.min.js.map