@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) • 2.3 kB
JavaScript
import{bM as s,aH as e,bJ as r,bI as n}from"./index-Bw2N6w1y.esm.min.js";import{GLTFLoader as i}from"./glTFLoader-DEYqxGxH.esm.min.js";import"./bone-BwMp7T0B.esm.min.js";import"./skeleton-CkTZwWbM.esm.min.js";import"./rawTexture-CPAqHIA7.esm.min.js";import"./assetContainer-21j7tcC8.esm.min.js";import"./objectModelMapping-DX92iJ8M.esm.min.js";const a="KHR_materials_diffuse_transmission";class o{constructor(s){this.name=a,this.order=174,this._loader=s,this.enabled=this._loader.isExtensionUsed(a),this.enabled&&(s.parent.transparencyAsCoverage=!0)}dispose(){this._loader=null}loadMaterialPropertiesAsync(s,e,r){return i.LoadExtensionAsync(s,e,this.name,(async(n,i)=>{const a=new Array;return a.push(this._loader.loadMaterialPropertiesAsync(s,e,r)),a.push(this._loadTranslucentPropertiesAsync(n,e,r,i)),await Promise.all(a).then((()=>{}))}))}_loadTranslucentPropertiesAsync(r,n,i,a){if(!(i instanceof s))throw new Error(`${r}: Material type not supported`);const o=i;if(o.subSurface.isTranslucencyEnabled=!0,o.subSurface.volumeIndexOfRefraction=1,o.subSurface.minimumThickness=0,o.subSurface.maximumThickness=0,o.subSurface.useAlbedoToTintTranslucency=!1,void 0===a.diffuseTransmissionFactor)return o.subSurface.translucencyIntensity=0,o.subSurface.isTranslucencyEnabled=!1,Promise.resolve();o.subSurface.translucencyIntensity=a.diffuseTransmissionFactor;const t=new Array;return o.subSurface.useGltfStyleTextures=!0,a.diffuseTransmissionTexture&&(a.diffuseTransmissionTexture.nonColorData=!0,t.push(this._loader.loadTextureInfoAsync(`${r}/diffuseTransmissionTexture`,a.diffuseTransmissionTexture).then((s=>{s.name=`${i.name} (Diffuse Transmission)`,o.subSurface.translucencyIntensityTexture=s})))),void 0!==a.diffuseTransmissionColorFactor?o.subSurface.translucencyColor=e.FromArray(a.diffuseTransmissionColorFactor):o.subSurface.translucencyColor=e.White(),a.diffuseTransmissionColorTexture&&t.push(this._loader.loadTextureInfoAsync(`${r}/diffuseTransmissionColorTexture`,a.diffuseTransmissionColorTexture).then((s=>{s.name=`${i.name} (Diffuse Transmission Color)`,o.subSurface.translucencyColorTexture=s}))),Promise.all(t).then((()=>{}))}}r(a),n(a,!0,(s=>new o(s)));export{o as KHR_materials_diffuse_transmission};
//# sourceMappingURL=KHR_materials_diffuse_transmission-CZZnS_tY.esm.min.js.map