@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.38 kB
JavaScript
import{bb as e,k as t,bc as s,au as a,bd as n}from"./index-DFZFpUG-.esm.min.js";import{buildDefaultPbrTexturesExt as i,assemblePbrPropsExt as r}from"./gltf-pbr-builder-ext-DmTSbcV9.esm.min.js";import"./texture-2d-CDxp0Tab.esm.min.js";async function o(o,m,p,l,c,f,d,u,g=e){const h=(await import("./generate-mipmaps-Ciyl8G8r.esm.min.js")).generateMipmaps,x=t(f,{magFilter:"linear",minFilter:"linear",mipmapFilter:"linear",addressModeU:"repeat",addressModeV:"repeat",maxAnisotropy:4}),b=[],v=[],w=n(o,m,p,v),_=(e,t)=>a(f,e,t,x,h),j={_engine:f,async _texture(e,t){if(!e)return;const s=await w(e);return s?g(a(f,s,t,x,h),e):void 0},_uploadImage:(e,t)=>a(f,e,t,x,h)},y=e=>b[e]??=s(o,m,e,p,v),M=new Map,F=e=>{let t=M.get(e);return t||(t=(async()=>{const t=i(f,e,x,h,_,g),s=await u(e,d,j);return r(e,t,s)})(),M.set(e,t)),t},k=[],A={};for(const e of l)A[e]=[];let C=0;for(let e=0;e<o.nodes.length;e++){const t=o.nodes[e];if(void 0===t.mesh)continue;const s=o.meshes[t.mesh];for(const e of s.primitives){const t=c[C],s=e.extensions?.KHR_materials_variants;if(s?.mappings){k.push({mesh:t,material:t.material});for(const e of s.mappings){const s=await y(e.material),a=await F(s);for(const s of e.variants){const e=l[s];e&&A[e].push({mesh:t,material:a})}}}C++}}return{names:l,variants:A,originals:k}}export{o as loadVariantMaterials};
//# sourceMappingURL=gltf-variants-Dt_xOwBu.esm.min.js.map