@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.5 kB
JavaScript
import{i as e,k as t,S as i}from"./index-DFZFpUG-.esm.min.js";import{_ as r}from"./pbr-transmission-ext-DPZWUwNK.esm.min.js";import"./generate-mipmaps-Ciyl8G8r.esm.min.js";let n=null,a=null,l=null,o=null,s=null,u=null;r({create:function(r,c,p,d,f){const m=r._device,v=m.createTexture({label:"transmission-depth-grab",size:{width:p,height:d},format:"r32float",usage:e.RENDER_ATTACHMENT|e.TEXTURE_BINDING}),b=v.createView(),g={texture:v,view:b,sampler:t(r,{magFilter:"nearest",minFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}),width:p,height:d,invertY:!1,_sampleType:"float"},_=function(e,t){const r=e._device;r!==u&&(n?.clear(),n=null,a=null,l=null,o=null,s=null,u=r),t?(l??=r.createShaderModule({code:"@group(0)@binding(0)var t:texture_depth_multisampled_2d;struct V{@builtin(position)p:vec4f};@vertex fn vs(@builtin(vertex_index)i:u32)->V{let p=array<vec2f,3>(vec2f(-1,-1),vec2f(3,-1),vec2f(-1,3))[i];return V(vec4f(p,0,1));}@fragment fn fs(@builtin(position)fc:vec4f)->@location(0)f32{return textureLoad(t,vec2<i32>(fc.xy),0);}"}),s??=r.createBindGroupLayout({entries:[{binding:0,visibility:i.FRAGMENT,texture:{sampleType:"depth",multisampled:!0}}]})):(a??=r.createShaderModule({code:"@group(0)@binding(0)var t:texture_depth_2d;struct V{@builtin(position)p:vec4f};@vertex fn vs(@builtin(vertex_index)i:u32)->V{let p=array<vec2f,3>(vec2f(-1,-1),vec2f(3,-1),vec2f(-1,3))[i];return V(vec4f(p,0,1));}@fragment fn fs(@builtin(position)fc:vec4f)->@location(0)f32{return textureLoad(t,vec2<i32>(fc.xy),0);}"}),o??=r.createBindGroupLayout({entries:[{binding:0,visibility:i.FRAGMENT,texture:{sampleType:"depth"}}]})),n??=new Map;const c=t?"msaa":"1x";let p=n.get(c);if(!p){const e=t?l:a;p=r.createRenderPipeline({label:"transmission-depth-grab",layout:r.createPipelineLayout({bindGroupLayouts:[t?s:o]}),vertex:{module:e,entryPoint:"vs"},fragment:{module:e,entryPoint:"fs",targets:[{format:"r32float"}]},primitive:{topology:"triangle-list"}}),n.set(c,p)}return p}(r,f);return{texture:g,_view:b,_blit:{_pipeline:_,_bindGroup:m.createBindGroup({layout:f?s:o,entries:[{binding:0,resource:c.createView({aspect:"depth-only"})}]})}}},record:function(e,t){const i=e._currentEncoder.beginRenderPass({label:"transmission-depth-grab",colorAttachments:[{view:t._view,loadOp:"clear",storeOp:"store",clearValue:{r:0,g:0,b:0,a:0}}]});i.setPipeline(t._blit._pipeline),i.setBindGroup(0,t._blit._bindGroup),i.draw(3),i.end()}});
//# sourceMappingURL=transmission-depth-grab-2hhJB7Pj.esm.min.js.map