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) 4.02 kB
import{_ as e}from"./gltf-feature-animation-pointer-igoMl73F.esm.min.js";import"./index-DFZFpUG-.esm.min.js";import"./visibility-uC4EArTl.esm.min.js";import"./gltf-animation-hYBmlaQq.esm.min.js";function t(e){return((e-1)/(e+1))**2/.04}function s(e){e._uboVersion++}function i(e,s){const i=new Set,n=new Set,a=new Set,r=new Set,o=new Set;for(const t of e.animations??[])for(const e of t.channels??[]){const t=e.target?.extensions?.KHR_animation_pointer?.pointer,s=t&&/^\/materials\/(\d+)\/occlusionTexture\/strength$/.exec(t);s&&i.add(+s[1]);const c=t&&/^\/materials\/(\d+)\/extensions\/KHR_materials_transmission\/transmissionFactor$/.exec(t);c&&n.add(+c[1]);const l=t&&/^\/materials\/(\d+)\/extensions\/KHR_materials_ior\/ior$/.exec(t);l&&a.add(+l[1]);const u=t&&/^\/materials\/(\d+)\/extensions\/KHR_materials_volume\/thicknessFactor$/.exec(t);u&&r.add(+u[1]);const m=t&&/^\/materials\/(\d+)\/extensions\/KHR_materials_volume\/(attenuationColor|attenuationDistance)$/.exec(t);m&&o.add(+m[1])}for(let c=0;c<s.length;c++){const l=s[c];if(!l)continue;const u=e.materials?.[c];if(i.has(c)&&(l.occlusionStrength=u?.occlusionTexture?.strength??1,l._hasReflExt=!0,l._occlStrengthAnimated=!0),n.has(c)&&(l.transmissive=!0,l.subsurface??={},l.subsurface.refraction??={intensity:u?.extensions?.KHR_materials_transmission?.transmissionFactor??0,indexOfRefraction:u?.extensions?.KHR_materials_ior?.ior??1.5}),a.has(c)){l.subsurface??={},l.subsurface.refraction??={intensity:0,indexOfRefraction:u?.extensions?.KHR_materials_ior?.ior??1.5};const e=u?.extensions?.KHR_materials_ior?.ior??1.5;l.metallicF0Factor=t(e),l.specularWeight=1,l._hasReflExt=!0}if(r.has(c)||o.has(c)){l.subsurface??={};const e=u?.extensions?.KHR_materials_volume;r.has(c)&&(l.subsurface.thickness??={min:0,max:e?.thicknessFactor??0,useGlTFChannel:!0},l.subsurface.refraction&&(l.subsurface.refraction.useThicknessAsDepth=!0)),o.has(c)&&(l.subsurface.tint??={color:e?.attenuationColor??[1,1,1],atDistance:e?.attenuationDistance??1})}}}e([[/^\/materials\/(\d+)\/pbrMetallicRoughness\/metallicFactor$/,(e,t)=>{const s=t.materials?.[+e[1]];return s?{arity:1,writer:(e,t)=>{s.roughnessFactor=e[t],s._uboVersion++}}:null}],[/^\/materials\/(\d+)\/normalTexture\/scale$/,(e,t)=>{const s=t.materials?.[+e[1]];return s?{arity:1,writer:(e,t)=>{s.normalTextureScale=e[t],s._uboVersion++}}:null}],[/^\/materials\/(\d+)\/extensions\/KHR_materials_transmission\/transmissionFactor$/,(e,t)=>{const i=t.materials?.[+e[1]],n=i?.subsurface?.refraction;return i&&n?{arity:1,writer:(e,t)=>{i.transmissive=!0,n.intensity=e[t],s(i)}}:null}],[/^\/materials\/(\d+)\/extensions\/KHR_materials_ior\/ior$/,(e,i)=>{const n=i.materials?.[+e[1]];return n?{arity:1,writer:(e,i)=>{const a=e[i];n.subsurface?.refraction&&(n.subsurface.refraction.indexOfRefraction=a),n.metallicF0Factor=t(a),n.specularWeight=1,n._hasReflExt=!0,s(n)}}:null}],[/^\/materials\/(\d+)\/extensions\/KHR_materials_volume\/(thicknessFactor|attenuationDistance|attenuationColor)$/,(e,t)=>{const i=t.materials?.[+e[1]];return i?.subsurface?{arity:"attenuationColor"===e[2]?3:1,writer:(t,n)=>{const a=i.subsurface;"thicknessFactor"===e[2]?(a.thickness??={min:0,max:0,useGlTFChannel:!0},a.thickness.max=t[n],a.refraction&&(a.refraction.useThicknessAsDepth=!0)):(a.tint??={color:[1,1,1],atDistance:1},"attenuationDistance"===e[2]?a.tint.atDistance=t[n]:a.tint.color=[t[n],t[n+1],t[n+2]]),s(i)}}:null}],[/^\/materials\/(\d+)\/extensions\/KHR_materials_iridescence\/(iridescenceFactor|iridescenceIor|iridescenceThicknessMaximum)$/,(e,t)=>{const i=t.materials?.[+e[1]],n=i?.iridescence;return i&&n?{arity:1,writer:(t,a)=>{const r=t[a];"iridescenceFactor"===e[2]?n.intensity=r:"iridescenceIor"===e[2]?n.indexOfRefraction=r:n.maximumThickness=r,s(i)}}:null}],[/^\/materials\/(\d+)\/occlusionTexture\/strength$/,(e,t)=>{const s=t.materials?.[+e[1]];return s?{arity:1,writer:(e,t)=>{s.occlusionStrength=e[t],s._uboVersion++}}:null}]]);export{i as seedExtMaterials}; //# sourceMappingURL=animation-pointer-ext-9kVs13AP.esm.min.js.map