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