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.

3 lines (2 loc) 2.89 kB
import{b as o}from"./glTFLoader.pure-Bdyl6AcK.esm.min.js";import{i as e,bo as t,bp as a}from"./index-BPURObVq.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 r="KHR_materials_coat";class s{constructor(o){this.name=r,this.order=191,this.useOpenPBR=!1,this._loader=o,this.enabled=this._loader.isExtensionUsed(r)}dispose(){this._loader=null}loadMaterialPropertiesAsync(e,t,a){return o.LoadExtensionAsync(e,t,this.name,async(o,r)=>{const s=new Array;s.push(this._loader.loadMaterialPropertiesAsync(e,t,a)),t.extensions&&t.extensions.KHR_materials_openpbr&&(this.useOpenPBR=!0),s.push(this._loadCoatPropertiesAsync(o,r,a)),await Promise.all(s)})}_loadCoatPropertiesAsync(o,t,a){const r=this._loader._getOrCreateMaterialAdapter(a),s=new Array;r.configureCoat(),r.coatWeight=void 0!==t.coatFactor?t.coatFactor:0,r.coatRoughness=void 0!==t.coatRoughnessFactor?t.coatRoughnessFactor:0,t.coatTexture&&s.push(this._loader.loadTextureInfoAsync(`${o}/coatTexture`,t.coatTexture,o=>{o.name=`${a.name} (Coat)`,r.coatWeightTexture=o})),t.coatRoughnessTexture&&(t.coatRoughnessTexture.nonColorData=!0,s.push(this._loader.loadTextureInfoAsync(`${o}/coatRoughnessTexture`,t.coatRoughnessTexture,o=>{o.name=`${a.name} (Coat Roughness)`,r.coatRoughnessTexture=o}))),t.coatNormalTexture&&(t.coatNormalTexture.nonColorData=!0,s.push(this._loader.loadTextureInfoAsync(`${o}/coatNormalTexture`,t.coatNormalTexture,o=>{o.name=`${a.name} (Coat Normal)`,r.geometryCoatNormalTexture=o,null!=t.coatNormalTexture?.scale&&(r.geometryCoatNormalTextureScale=t.coatNormalTexture.scale)})),r.setNormalMapInversions(!a.getScene().useRightHandedSystem,a.getScene().useRightHandedSystem)),r.coatDarkening=void 0!==t.coatDarkeningFactor?t.coatDarkeningFactor:1,r.coatIor=void 0!==t.coatIor?t.coatIor:1.5;const n=e.White();void 0!==t.coatColorFactor&&n.fromArray(t.coatColorFactor),r.coatColor=n,t.coatColorTexture&&s.push(this._loader.loadTextureInfoAsync(`${o}/coatColorTexture`,t.coatColorTexture,o=>{o.name=`${a.name} (Coat Color)`,r.coatColorTexture=o}));const i=t.coatAnisotropyStrength??0,c=t.coatAnisotropyRotation??0;return r.coatRoughnessAnisotropy=i,r.geometryCoatTangentAngle=c,this.useOpenPBR||r.configureGltfStyleAnisotropy(!0),t.coatAnisotropyTexture&&(t.coatAnisotropyTexture.nonColorData=!0,s.push(this._loader.loadTextureInfoAsync(`${o}/coatAnisotropyTexture`,t.coatAnisotropyTexture,o=>{o.name=`${a.name} (Coat Anisotropy)`,r.geometryCoatTangentTexture=o}))),Promise.all(s).then(()=>{})}}let n=!1;function i(){n||(n=!0,t(r),a(r,!0,o=>new s(o)))}i();export{s as KHR_materials_coat,i as RegisterKHR_materials_coat}; //# sourceMappingURL=KHR_materials_coat-C4nFpMcV.esm.min.js.map