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) 2.26 kB
import{T as e,ba as t,i,F as n}from"./index-DFZFpUG-.esm.min.js";const r={magFilter:"linear",minFilter:"linear"},a={magFilter:"linear",minFilter:"linear",mipmapFilter:"linear"};function o(e){const t=1.4999984284682104,i=3.999982863580422,r=new n(36);for(let n=0;n<3;n++){const a=e[n],o=e[3+n],c=e[6+n],s=e[9+n],u=e[12+n],l=e[15+n],m=e[18+n],p=e[21+n],f=e[24+n];r[n]=.3333338747897695*(s+u)+.33333298856284405*l,r[4+n]=o*t,r[8+n]=c*t,r[12+n]=a*t,r[16+n]=f*i,r[20+n]=m*i,r[24+n]=1.3333326611423701*l-.6666653397393608*(s+u),r[28+n]=p*i,r[32+n]=1.999991431790211*(s-u)}return r}function c(e,t,i,n,c){return{specularCube:e,specularCubeView:e.createView({dimension:"cube"}),brdfLut:t,brdfLutView:t.createView(),cubeSampler:c._device.createSampler(a),brdfSampler:c._device.createSampler(r),irradianceSH:i,sphericalHarmonics:o(i),lodGenerationScale:n}}let s=null,u=null;function l(e){const n=e._device;s&&u===n||(s=n.createComputePipeline({layout:"auto",compute:{module:n.createShaderModule({code:t}),entryPoint:"main"}}),u=n);const r=256,a=n.createTexture({size:{width:r,height:r},format:"rgba16float",usage:i.TEXTURE_BINDING|i.STORAGE_BINDING}),o=n.createBindGroup({layout:s.getBindGroupLayout(0),entries:[{binding:0,resource:a.createView()}]}),c=n.createCommandEncoder(),l=c.beginComputePass();return l.setPipeline(s),l.setBindGroup(0,o),l.dispatchWorkgroups(Math.ceil(32),Math.ceil(32)),l.end(),n.queue.submit([c.finish()]),a}async function m(t,i,n,r){const a=t.images[n];if(void 0!==a.bufferView){const e=t.bufferViews[a.bufferView],n=i.byteOffset+(e.byteOffset??0),r=i.buffer.slice(n,n+e.byteLength),o=new Blob([r],{type:a.mimeType??"image/png"});return createImageBitmap(o,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}if(a.uri){const t=new URL(a.uri,r+"x").href,i=await fetch(t);i.ok||e(100,i.status,i.statusText);const n=await i.blob();return createImageBitmap(n,{premultiplyAlpha:"none",colorSpaceConversion:"none"})}e(101)}function p(e,t){const i=t._envTextures?.sphericalHarmonics;i&&e.set(i,40)}function f(e){const t=e._sceneUboContributors??=[];t.includes(p)||t.push(p)}export{c as assembleEnvironmentTextures,l as generateBrdfLut,f as registerEnvSceneUniforms,m as resolveImage}; //# sourceMappingURL=ibl-env-assembly-Cmi_bHX5.esm.min.js.map