@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.62 kB
JavaScript
import{k as e,an as r,ao as a}from"./index-DFZFpUG-.esm.min.js";function s(r,a,s){return o=>{if(null==o)return s;const t=function(e,r){const a=null!=e.textures?.[r.index]?.sampler?e.samplers?.[e.textures[r.index].sampler]:void 0,s=e=>33071===e?"clamp-to-edge":33648===e?"mirror-repeat":"repeat",o=a?.minFilter,t=!!o&&o%2==0,l=9984===o||9985===o,m=9728===o||9729===o,i=9728!==a?.magFilter;return{magFilter:i?"linear":"nearest",minFilter:t?"nearest":"linear",mipmapFilter:l?"nearest":"linear",addressModeU:s(a?.wrapS),addressModeV:s(a?.wrapT),...m?{lodMaxClamp:0}:void 0,maxAnisotropy:!i||t||l||m?1:4}}(a,o),l=0===t.lodMaxClamp?r._device.createSampler(t):e(r,t);return r._deviceLostRecovery?._samplerDescriptors.set(l,t),l}}function o(e,s,o,t,l,m){const i=s._rawMatDef??{},n=i.pbrMetallicRoughness??{},u=(e,r,a)=>{const s=l(a),t=m(e,r);return s===o?t:{...t,sampler:s}},c=s._baseColorImage?u(s._baseColorImage,!0,n.baseColorTexture):r(e,s._baseColorFactor,o,t),g=s._normalImage?u(s._normalImage,!1,i.normalTexture):void 0,_=s._emissiveImage?u(s._emissiveImage,!0,i.emissiveTexture):void 0,p=s._metallicRoughnessImage??s._occlusionImage,x=s._metallicRoughnessImage?n.metallicRoughnessTexture:i.occlusionTexture;let d;return d=!p||s._metallicRoughnessImage&&s._occlusionImage&&s._metallicRoughnessImage!==s._occlusionImage?p?u(s._metallicRoughnessImage,!1,n.metallicRoughnessTexture):a(e,s._roughnessFactor,s._metallicFactor,o,t):u(p,!1,x),{baseColorTexture:c,ormTexture:d,normalTexture:g,emissiveTexture:_}}export{o as buildSampledPbrTextures,s as makeSamplerFor};
//# sourceMappingURL=gltf-sampler-desc-BQPHJDzH.esm.min.js.map