@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) • 1.86 kB
JavaScript
import{i as e,bo as s,bp as t}from"./index-BPURObVq.esm.min.js";import{b as n}from"./glTFLoader.pure-Bdyl6AcK.esm.min.js";import"./morphTargetManager-CdEb1BHc.esm.min.js";import"./bone.pure-BcPT5kCP.esm.min.js";import"./skeleton-DinTjF3y.esm.min.js";import"./assetContainer-CAncviZo.esm.min.js";import"./objectModelMapping-ClgDmo5Q.esm.min.js";import"./spotLight.pure-5s2DDDIt.esm.min.js";const o="KHR_materials_volume";class i{constructor(e){this.name=o,this.order=173,this._loader=e,this.enabled=this._loader.isExtensionUsed(o),this.enabled&&this._loader._disableInstancedMesh++}dispose(){this.enabled&&this._loader._disableInstancedMesh--,this._loader=null}loadMaterialPropertiesAsync(e,s,t){return n.LoadExtensionAsync(e,s,this.name,async(n,o)=>{const i=new Array;return i.push(this._loader.loadMaterialPropertiesAsync(e,s,t)),i.push(this._loadVolumePropertiesAsync(n,s,t,o)),await Promise.all(i).then(()=>{})})}_loadVolumePropertiesAsync(s,t,n,o){const i=this._loader._getOrCreateMaterialAdapter(n);if(0===i.transmissionWeight&&0===i.subsurfaceWeight||!o.thicknessFactor)return Promise.resolve();i.geometryThinWalled=!1;const r=void 0!==o.attenuationDistance?o.attenuationDistance:Number.MAX_VALUE,a=void 0!==o.attenuationColor&&3==o.attenuationColor.length?e.FromArray(o.attenuationColor):e.White();i.configureVolume(),i.transmissionColor=a,i.transmissionDepth=r,i.volumeThickness=o.thicknessFactor??0;const l=new Array;return o.thicknessTexture&&(o.thicknessTexture.nonColorData=!0,l.push(this._loader.loadTextureInfoAsync(`${s}/thicknessTexture`,o.thicknessTexture,e=>{e.name=`${n.name} (Thickness)`,i.volumeThicknessTexture=e}))),Promise.all(l).then(()=>{})}}let r=!1;function a(){r||(r=!0,s(o),t(o,!0,e=>new i(e)))}a();export{i as KHR_materials_volume,a as RegisterKHR_materials_volume};
//# sourceMappingURL=KHR_materials_volume-Veob9JH8.esm.min.js.map