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) 3.52 kB
import{c as e}from"./texture-2d-CDxp0Tab.esm.min.js";import{at as o,an as r,ao as s,au as t}from"./index-DFZFpUG-.esm.min.js";function a(o,a,l,u,n,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 n(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,u),l.set(m,g)),g},d=a._rawMatDef??{},h=d.pbrMetallicRoughness??{},C=a._baseColorImage?m(g(a._baseColorImage,!0,h.baseColorTexture),h.baseColorTexture):r(o,a._baseColorFactor,l,u),v=a._normalImage?m(g(a._normalImage,!1,d.normalTexture),d.normalTexture):void 0,I=a._emissiveImage?m(g(a._emissiveImage,!0,d.emissiveTexture),d.emissiveTexture):void 0,b=0!==a._occlusionTexCoord&&a._occlusionImage&&!a._metallicRoughnessImage;let f;const p=a._metallicRoughnessImage??(b?null:a._occlusionImage);let R;if(b)R=s(o,a._roughnessFactor,a._metallicFactor,l,u),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,u);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:C,ormTexture:R,normalTexture:v,emissiveTexture:I,occlusionTexture:f}}function l(e,r,s){const t=e._emissiveFactor,a=0===t[0]&&0===t[1]&&0===t[2]||!!r.emissiveTexture&&1===t[0]&&1===t[1]&&1===t[2],l=!!(r.baseColorTexture._hasTx||r.normalTexture?._hasTx||r.ormTexture._hasTx||r.emissiveTexture?._hasTx||r.occlusionTexture?._hasTx),u=e=>1===e?._texCoord,n=(u(r.baseColorTexture)?1:0)|(u(r.ormTexture)?2:0)|(u(r.normalTexture)?4:0)|(u(r.emissiveTexture)?8:0)|(u(s?.specGlossTexture)?16:0)|(1===e._occlusionTexCoord?32:0);return{baseColorTexture:r.baseColorTexture,normalTexture:r.normalTexture,ormTexture:r.ormTexture,emissiveTexture:r.emissiveTexture,...e._baseColorImage&&(c=e._baseColorFactor,1!==c[0]||1!==c[1]||1!==c[2]||1!==c[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,...a?void 0:{emissiveColor:[t[0],t[1],t[2]]},enableSpecularAA:!0,..."BLEND"===e._alphaMode?{alphaBlend:!0,alpha:e._baseColorFactor[3]}:void 0,..."MASK"===e._alphaMode?{alpha:e._baseColorFactor[3],alphaCutOff:e._alphaCutoff}:void 0,...l?{_hasUvTx:!0}:void 0,...e._rawMatDef?.name?{name:e._rawMatDef.name}:void 0,...s,...n?{_uv2Mask:n}:void 0,_buildGroup:o(),_uboVersion:0};var c}export{l as assemblePbrPropsExt,a as buildDefaultPbrTexturesExt}; //# sourceMappingURL=gltf-pbr-builder-ext-DmTSbcV9.esm.min.js.map