@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) • 3.51 kB
JavaScript
import{c as e}from"./texture-2d-CDxp0Tab.esm.min.js";import{az as o,av as r,aw as s,aA as t}from"./index-B8IgtevW.esm.min.js";function a(o,a,l,n,u,c,i){const m=(o,r)=>function(o,r){if(!r)return o;if(1===o._texCoord)return o;const s=r;return 1===(s.extensions?.KHR_texture_transform?.texCoord??s.texCoord)?e(o,{_texCoord:1}):o}(c(o,r),r),x=i?new Map:null,_=i?new Map:null;let T=0;const g=(e,r,s)=>{if(!i)return u(e,r);const a=i(s);let l=x.get(a);l||x.set(a,l=new Map);let c=_.get(e);void 0===c&&_.set(e,c=T++);const m=2*c+(r?1:0);let g=l.get(m);return g||(g=t(o,e,r,a,n),l.set(m,g)),g},d=a._rawMatDef??{},h=d.pbrMetallicRoughness??{},v=a._baseColorImage?m(g(a._baseColorImage,!0,h.baseColorTexture),h.baseColorTexture):r(o,a._baseColorFactor,l,n),C=a._normalImage?m(g(a._normalImage,!1,d.normalTexture),d.normalTexture):void 0,b=a._emissiveImage?m(g(a._emissiveImage,!0,d.emissiveTexture),d.emissiveTexture):void 0,I=0!==a._occlusionTexCoord&&a._occlusionImage&&!a._metallicRoughnessImage;let f;const p=a._metallicRoughnessImage??(I?null:a._occlusionImage);let R;if(I)R=s(o,a._roughnessFactor,a._metallicFactor,l,n),f=m(g(a._occlusionImage,!1,d.occlusionTexture),d.occlusionTexture);else if(!p||a._metallicRoughnessImage&&a._occlusionImage&&a._metallicRoughnessImage!==a._occlusionImage)R=p?m(g(a._metallicRoughnessImage,!1,h.metallicRoughnessTexture),h.metallicRoughnessTexture):s(o,a._roughnessFactor,a._metallicFactor,l,n);else{const e=a._metallicRoughnessImage?h.metallicRoughnessTexture:d.occlusionTexture;R=m(g(p,!1,e),e)}return!f&&a._occlusionImage&&a._occlusionImage===a._metallicRoughnessImage&&function(e){const o=e.occlusionTexture,r=e.pbrMetallicRoughness?.metallicRoughnessTexture;return!(!o||!r||o.index===r.index&&null==o.extensions?.KHR_texture_transform)}(d)&&(f=m(g(a._occlusionImage,!1,d.occlusionTexture),d.occlusionTexture)),{baseColorTexture:v,ormTexture:R,normalTexture:C,emissiveTexture:b,occlusionTexture:f}}async function l(e,o){if(!function(e){return!!(e.baseColorTexture._hasTx||e.normalTexture?._hasTx||e.ormTexture._hasTx||e.emissiveTexture?._hasTx||e.occlusionTexture?._hasTx)}(o))return;const{enableMaterialUvTransform:r}=await import("./enable-material-uv-transform-ClNrLp0e.esm.min.js");r(e)}function n(e,r,s){const t=e=>1===e?._texCoord,a=(t(r.baseColorTexture)?1:0)|(t(r.ormTexture)?2:0)|(t(r.normalTexture)?4:0)|(t(r.emissiveTexture)?8:0)|(t(s?.specGlossTexture)?16:0)|(1===e._occlusionTexCoord?32:0);var l;return{baseColorTexture:r.baseColorTexture,normalTexture:r.normalTexture,ormTexture:r.ormTexture,emissiveTexture:r.emissiveTexture,...e._baseColorImage&&(l=e._baseColorFactor,1!==l[0]||1!==l[1]||1!==l[2]||1!==l[3])?{baseColorFactor:e._baseColorFactor}:void 0,doubleSided:e._doubleSided,occlusionStrength:e._occlusionImage?1:0,...e._occlusionTexCoord?{occlusionTexCoord:e._occlusionTexCoord}:void 0,...r.occlusionTexture?{occlusionTexture:r.occlusionTexture}:void 0,...1!==e._normalScale?{normalTextureScale:e._normalScale}:void 0,...e._metallicRoughnessImage?{metallicFactor:e._metallicFactor,roughnessFactor:e._roughnessFactor}:void 0,enableSpecularAA:!0,..."BLEND"===e._alphaMode?{alphaBlend:!0,alpha:e._baseColorFactor[3]}:void 0,..."MASK"===e._alphaMode?{alpha:e._baseColorFactor[3]}:void 0,...e._rawMatDef?.name?{name:e._rawMatDef.name}:void 0,...s,...a?{_uv2Mask:a}:void 0,_buildGroup:o(),_uboVersion:0}}export{l as applyGltfUvTransform,n as assemblePbrPropsExt,a as buildDefaultPbrTexturesExt};
//# sourceMappingURL=gltf-pbr-builder-ext-CGEH1DFB.esm.min.js.map