From 89b748958e35ffbbf12d8de1ee40b5c29db239d2 Mon Sep 17 00:00:00 2001 From: gnikoloff Date: Thu, 19 Dec 2024 16:23:29 +0100 Subject: [PATCH] deploy --- .../{index-CcD6bekL.js => index-BeB41sTJ.js} | 2 +- ...ex-CcD6bekL.js.gz => index-BeB41sTJ.js.gz} | Bin 138358 -> 138361 bytes docs/index.html | 2 +- docs/index.html.gz | Bin 1488 -> 1489 bytes 4 files changed, 2 insertions(+), 2 deletions(-) rename docs/assets/{index-CcD6bekL.js => index-BeB41sTJ.js} (98%) rename docs/assets/{index-CcD6bekL.js.gz => index-BeB41sTJ.js.gz} (78%) diff --git a/docs/assets/index-CcD6bekL.js b/docs/assets/index-BeB41sTJ.js similarity index 98% rename from docs/assets/index-CcD6bekL.js rename to docs/assets/index-BeB41sTJ.js index faba877..28b28e7 100644 --- a/docs/assets/index-CcD6bekL.js +++ b/docs/assets/index-BeB41sTJ.js @@ -638,7 +638,7 @@ EXPOSURE=1.0 #endif return color; } -`)),entryPoint:Rc,targets:t},layout:B.device.createPipelineLayout({label:`Debug Canvas ${e} Render PSO Layout`,bindGroupLayouts:[this.samplerTextureBindGroupLayout]})}),this.renderPassDescriptor={label:`Debug Canvas ${e} Render Pass Descriptor`,colorAttachments:[{loadOp:"load",storeOp:"store",view:null}]}}get isDepthTexture(){return this.type===Y.Depth||this.type===Y.ShadowDepthCascade0||this.type===Y.ShadowDepthCascade1}appendTo(e){e.appendChild(this.$rootEl)}setTexture(e,t=e.width,r=e.height){this.debugTexture=e,this.$canvas.width=t,this.$canvas.height=r;let n=0;this.type===Y.ShadowDepthCascade0?n=0:this.type===Y.ShadowDepthCascade1&&(n=1);const i=[{binding:0,resource:Xe.createSampler({magFilter:"linear",minFilter:"linear"})},{binding:1,resource:e.createView({aspect:this.isDepthTexture?"depth-only":"all",baseArrayLayer:n,dimension:"2d"})}];this.samplerTextureBindGroup=B.device.createBindGroup({layout:this.samplerTextureBindGroupLayout,entries:i})}render(e){if(!this.debugTexture)return;this.renderPassDescriptor.colorAttachments[0].view=this.ctx.getCurrentTexture().createView();const t=e.beginRenderPass(this.renderPassDescriptor);B.ENABLE_DEBUG_GROUPS&&t.pushDebugGroup(`Display Debug Texture ${this.type}`),t.setPipeline(this.renderPSO),t.setBindGroup(0,this.samplerTextureBindGroup),t.draw(3),B.ENABLE_DEBUG_GROUPS&&t.popDebugGroup(),t.end()}}var Yi=(s=>(s[s.GBuffer=0]="GBuffer",s[s.Shadow=1]="Shadow",s))(Yi||{});const Dp=new Map([[0,"G-Buffer Debug"],[1,"Shadows Debug"]]);class Qs{constructor(e){this.canvases=new Map,this.$root=Qs.createRootElement(),this.$main=document.createElement("div"),this.$main.classList.add("section");const t=document.createElement("h2");t.textContent=Dp.get(e),t.classList.add("section-headline"),this.$root.appendChild(t),this.$root.appendChild(this.$main)}static createRootElement(){const e=document.createElement("div");return e.classList.add("texture-debug-wrapper"),e}appendTo(e){e.appendChild(this.$root)}setTextureFor(e,t,r=.2*t.width,n=.2*t.height){return this.canvases.get(e).setTexture(t,r,n),this}render(e){for(const t of this.canvases.values())t.render(e)}}class Up extends Qs{constructor(){super(Yi.GBuffer);const e=new ct(Y.Albedo);e.appendTo(this.$main),this.canvases.set(Y.Albedo,e);const t=new ct(Y.Normal);t.appendTo(this.$main),this.canvases.set(Y.Normal,t);const r=new ct(Y.Metallic);r.appendTo(this.$main),this.canvases.set(Y.Metallic,r);const n=new ct(Y.Roughness);n.appendTo(this.$main),this.canvases.set(Y.Roughness,n);const i=new ct(Y.AO);i.appendTo(this.$main),this.canvases.set(Y.AO,i);const o=new ct(Y.Reflectance);o.appendTo(this.$main),this.canvases.set(Y.Reflectance,o);const u=new ct(Y.Depth);u.appendTo(this.$main),this.canvases.set(Y.Depth,u);const l=new ct(Y.Velocity);l.appendTo(this.$main),this.canvases.set(Y.Velocity,l)}}class kp extends Qs{constructor(){super(Yi.Shadow);const e=new ct(Y.ShadowDepthCascade0);e.appendTo(this.$main),this.canvases.set(Y.ShadowDepthCascade0,e);const t=new ct(Y.ShadowDepthCascade1);t.appendTo(this.$main),this.canvases.set(Y.ShadowDepthCascade1,t)}}const gn=class gn{constructor(){this.open=!1,this.$root=document.createElement("div"),this.$root.id=gn.ROOT_EL_ID,document.body.appendChild(this.$root),this.gbufferDebugSection=new Up,this.gbufferDebugSection.appendTo(this.$root),this.shadowDebugSection=new kp,this.shadowDebugSection.appendTo(this.$root)}reveal(){this.open=!0,this.$root.classList.add("open")}hide(){this.open=!1,this.$root.classList.remove("open")}scrollToShadowSection(){this.shadowDebugSection.$root.scrollIntoView({block:"start",inline:"nearest"})}scrollIntoGbufferSection(){this.gbufferDebugSection.$root.scrollIntoView({block:"start",inline:"nearest"})}setTextureGBufferSection(e,t,r=.2*t.width,n=.2*t.height){return this.open?(this.gbufferDebugSection.setTextureFor(e,t,r,n),this):this}setTextureShadowSection(e,t,r=.2*t.width,n=.2*t.height){return this.open?(this.shadowDebugSection.setTextureFor(e,t,r,n),this):this}render(e){this.open&&(this.gbufferDebugSection.render(e),this.shadowDebugSection.render(e))}};gn.ROOT_EL_ID="webgpu-debug-root";let qi=gn;const Np=new Map([[se.CPUTotal,"cpu-total"],[se.GPUTotal,"gpu-total"],[se.FPS,"fps"],[se.VRAM,"vram"],[se.VisibleMeshes,"culled-meshes"],[se.LightsCount,"lights-count"],[se.DeferredRenderPass,"deferred"],[se.DirectionalAmbientLightingRenderPass,"directional-ambient-light"],[se.PointLightsStencilMask,"point-lights-stencil-mask"],[se.PointLightsLighting,"point-lights-lighting"],[se.SSAORenderPass,"ssao"],[se.TransparentRenderPass,"transparent"],[se.ShadowRenderPass,"shadow"],[se.TAAResolveRenderPass,"taa-resolve"],[se.ReflectionRenderPass,"reflection"],[se.BlitRenderPass,"blit"]]),Vp=new Map([[se.CPUTotal,"CPU"],[se.GPUTotal,"GPU"],[se.FPS,"FPS"],[se.VRAM,"VRAM Usage"],[se.VisibleMeshes,"Visible Meshes"],[se.LightsCount,"Lights Count"],[se.DeferredRenderPass,"G-Buffer Render Pass"],[se.DirectionalAmbientLightingRenderPass,"Directional + Ambient Render Pass"],[se.PointLightsStencilMask,"Point Lights Stencil Mask Pass"],[se.PointLightsLighting,"Point Lights Render Pass"],[se.SSAORenderPass,"SSAO Render Pass"],[se.TransparentRenderPass,"Transparent Render Pass"],[se.ShadowRenderPass,"Directional Shadow Render Pass"],[se.TAAResolveRenderPass,"TAA Resolve Render Pass"],[se.ReflectionRenderPass,"Reflection Render Pass"],[se.BlitRenderPass,"Blit Render Pass"]]),Bo=class Bo{constructor(){this.$renderPassTimingDisplayEls=new Map,this.$root=document.createElement("div"),this.$root.id="timings-debug-container",this.$root.classList.add("fadable"),document.body.appendChild(this.$root);for(const e of Rd){const t=Np.get(e),r=document.createElement("div");r.id=`${t}-debug-timing`,r.classList.add("timing-container"),this.$root.appendChild(r);const n=document.createElement("div");n.classList.add("timing-label"),n.innerText=`${Vp.get(e)}:`,r.appendChild(n);const i=document.createElement("div");i.classList.add("timing-value"),r.appendChild(i);const o={root:r,label:n,value:i};this.$renderPassTimingDisplayEls.set(e,o)}}toggleVisibility(){this.$root.classList.toggle("hidden")}setDisplayValue(e,t){return this.$renderPassTimingDisplayEls.get(e).value.innerText=t,this}};Bo.NOT_AVAILABLE_STR="N/A";let Qi=Bo;const Hp=vt(kt(W.Light).structs.Light);class br extends ar{constructor(e){super(),this.lightType=e,this._color=D.create(1,1,0),this._intensity=1;const t=kt(W.Light);this.lightsStorageView=vt(t.structs.Light),this.lightsStorageView.set({color:this._color,position:this.position,lightType:Pd.get(e),intensity:1})}static get STRUCT_BYTE_SIZE(){return Hp.arrayBuffer.byteLength}get intensity(){return this._intensity}set intensity(e){this._intensity=e,this.lightsStorageView.set({intensity:e})}get color(){return this.getColor()}set color(e){this.setColor(e[0],e[1],e[2])}setColor(e,t,r){this._color[0]=e,this._color[1]=t,this._color[2]=r,this.lightsStorageView.set({color:this._color})}setColorAsVec3(e){D.copy(e,this._color),this.lightsStorageView.set({color:this._color})}getColor(){return this._color}setPosition(e,t,r){return super.setPosition(e,t,r),this.lightsStorageView.set({position:this.position}),this}setPositionAsVec3(e){return super.setPositionAsVec3(e),this.lightsStorageView.set({position:this.position}),this}setPositionX(e){return super.setPositionX(e),this.lightsStorageView.set({position:this.position}),this}setPositionY(e){return super.setPositionY(e),this.lightsStorageView.set({position:this.position}),this}setPositionZ(e){return super.setPositionZ(e),this.lightsStorageView.set({position:this.position}),this}}class Zi extends br{constructor(){super(Nt.Directional)}}class Yt extends br{get radius(){return this._radius}set radius(e){this._radius=e,this.lightsStorageView.set({radius:e})}constructor(){super(Nt.Point),this.intensity=1,this.radius=1}}class gt extends Yt{static get bindGroupLayout(){if(this._bindGroupLayout)return this._bindGroupLayout;const e=[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{}}];return this._bindGroupLayout=B.device.createBindGroupLayout({label:"Camera Face Culled Point Light Bind Group Layout",entries:e}),this._bindGroupLayout}updateGPUBuffer(){B.device.queue.writeBuffer(this.gpuBuffer,0,this.lightsStorageView.arrayBuffer)}constructor(){super(),this.gpuBuffer=B.device.createBuffer({label:"Camera Face Culled Point Light GPU Buffer",size:br.STRUCT_BYTE_SIZE,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),$.addBufferBytes(this.gpuBuffer),this.lightsStorageView.set({type:1,intensity:1,radius:1,color:D.create(1,1,1),position:D.create(0,1,0)}),this.updateGPUBuffer();const e=[{binding:0,resource:{buffer:this.gpuBuffer}}];this.bindGroup=B.device.createBindGroup({label:"Camera Face Culled Point Light Bind Group",entries:e,layout:gt.bindGroupLayout})}}class Jp{constructor(){this.pointLights=[],this.cameraFaceCulledPointLights=[],this.directionalLights=[],this.allLights=[]}get lightsCount(){return this.allLights.length}get pointLightsCount(){return this.pointLights.length}get directionalLightsCount(){return this.directionalLights.length}updateGPUBuffer(){if(!this.allLights.length)return void console.warn("No lights, skip creating GPUBuffer");this.gpuBuffer&&($.removeBufferBytes(this.gpuBuffer),this.gpuBuffer.destroy()),this.gpuBuffer=B.device.createBuffer({label:"Lights GPU Buffer",size:br.STRUCT_BYTE_SIZE*this.allLights.length,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.STORAGE}),$.addBufferBytes(this.gpuBuffer);let e=0;for(let t=0;tr.id!==e.id;return e instanceof gt?this.cameraFaceCulledPointLights=this.cameraFaceCulledPointLights.filter(t):e instanceof Yt?this.pointLights=this.pointLights.filter(t):e instanceof Zi&&(this.directionalLights=this.directionalLights.filter(t)),this.allLights=this.allLights.filter(t),this}render(e){throw new Error("Needs implementation")}}const qt=vt(kt(W.Particle).structs.Particle),Ze=class Ze{constructor({radius:e,position:t,velocity:r,lifeSpeed:n,life:i}={radius:1,position:D.create(0,3,0),velocity:D.create(0,1,0),lifeSpeed:1,life:0}){this.radius=e,this.position=t,this.origPosition=t,this.velocity=r,this.lifeSpeed=n,this.life=i}};Ze.STRUCT_BYTE_SIZE=qt.arrayBuffer.byteLength,Ze.STRUCT_FLOATS_COUNT=Ze.STRUCT_BYTE_SIZE/Float32Array.BYTES_PER_ELEMENT,Ze.RADIUS_OFFSET=qt.views.radius.byteOffset/Float32Array.BYTES_PER_ELEMENT,Ze.POSITION_OFFSET=qt.views.position.byteOffset/Float32Array.BYTES_PER_ELEMENT,Ze.ORIG_POSITION_OFFSET=qt.views.origPosition.byteOffset/Float32Array.BYTES_PER_ELEMENT,Ze.VELOCITY_OFFSET=qt.views.velocity.byteOffset/Float32Array.BYTES_PER_ELEMENT,Ze.LIFE_OFFSET=qt.views.life.byteOffset/Float32Array.BYTES_PER_ELEMENT,Ze.LIFE_SPEED_OFFSET=qt.views.lifeSpeed.byteOffset/Float32Array.BYTES_PER_ELEMENT;let Qe=Ze;const Gc="vertexMain",Lc="fragMain",zp=` +`)),entryPoint:Rc,targets:t},layout:B.device.createPipelineLayout({label:`Debug Canvas ${e} Render PSO Layout`,bindGroupLayouts:[this.samplerTextureBindGroupLayout]})}),this.renderPassDescriptor={label:`Debug Canvas ${e} Render Pass Descriptor`,colorAttachments:[{loadOp:"load",storeOp:"store",view:null}]}}get isDepthTexture(){return this.type===Y.Depth||this.type===Y.ShadowDepthCascade0||this.type===Y.ShadowDepthCascade1}appendTo(e){e.appendChild(this.$rootEl)}setTexture(e,t=e.width,r=e.height){this.debugTexture=e,this.$canvas.width=t,this.$canvas.height=r;let n=0;this.type===Y.ShadowDepthCascade0?n=0:this.type===Y.ShadowDepthCascade1&&(n=1);const i=[{binding:0,resource:Xe.createSampler({magFilter:"linear",minFilter:"linear"})},{binding:1,resource:e.createView({aspect:this.isDepthTexture?"depth-only":"all",baseArrayLayer:n,dimension:"2d"})}];this.samplerTextureBindGroup=B.device.createBindGroup({layout:this.samplerTextureBindGroupLayout,entries:i})}render(e){if(!this.debugTexture)return;this.renderPassDescriptor.colorAttachments[0].view=this.ctx.getCurrentTexture().createView();const t=e.beginRenderPass(this.renderPassDescriptor);B.ENABLE_DEBUG_GROUPS&&t.pushDebugGroup(`Display Debug Texture ${this.type}`),t.setPipeline(this.renderPSO),t.setBindGroup(0,this.samplerTextureBindGroup),t.draw(3),B.ENABLE_DEBUG_GROUPS&&t.popDebugGroup(),t.end()}}var Yi=(s=>(s[s.GBuffer=0]="GBuffer",s[s.Shadow=1]="Shadow",s))(Yi||{});const Dp=new Map([[0,"G-Buffer Debug"],[1,"Shadows Debug"]]);class Qs{constructor(e){this.canvases=new Map,this.$root=Qs.createRootElement(),this.$main=document.createElement("div"),this.$main.classList.add("section");const t=document.createElement("h2");t.textContent=Dp.get(e),t.classList.add("section-headline"),this.$root.appendChild(t),this.$root.appendChild(this.$main)}static createRootElement(){const e=document.createElement("div");return e.classList.add("texture-debug-wrapper"),e}appendTo(e){e.appendChild(this.$root)}setTextureFor(e,t,r=.2*t.width,n=.2*t.height){return this.canvases.get(e).setTexture(t,r,n),this}render(e){for(const t of this.canvases.values())t.render(e)}}class Up extends Qs{constructor(){super(Yi.GBuffer);const e=new ct(Y.Albedo);e.appendTo(this.$main),this.canvases.set(Y.Albedo,e);const t=new ct(Y.Normal);t.appendTo(this.$main),this.canvases.set(Y.Normal,t);const r=new ct(Y.Metallic);r.appendTo(this.$main),this.canvases.set(Y.Metallic,r);const n=new ct(Y.Roughness);n.appendTo(this.$main),this.canvases.set(Y.Roughness,n);const i=new ct(Y.AO);i.appendTo(this.$main),this.canvases.set(Y.AO,i);const o=new ct(Y.Reflectance);o.appendTo(this.$main),this.canvases.set(Y.Reflectance,o);const u=new ct(Y.Depth);u.appendTo(this.$main),this.canvases.set(Y.Depth,u);const l=new ct(Y.Velocity);l.appendTo(this.$main),this.canvases.set(Y.Velocity,l)}}class kp extends Qs{constructor(){super(Yi.Shadow);const e=new ct(Y.ShadowDepthCascade0);e.appendTo(this.$main),this.canvases.set(Y.ShadowDepthCascade0,e);const t=new ct(Y.ShadowDepthCascade1);t.appendTo(this.$main),this.canvases.set(Y.ShadowDepthCascade1,t)}}const gn=class gn{constructor(){this.open=!1,this.$root=document.createElement("div"),this.$root.id=gn.ROOT_EL_ID,document.body.appendChild(this.$root),this.gbufferDebugSection=new Up,this.gbufferDebugSection.appendTo(this.$root),this.shadowDebugSection=new kp,this.shadowDebugSection.appendTo(this.$root)}reveal(){this.open=!0,this.$root.classList.add("open")}hide(){this.open=!1,this.$root.classList.remove("open")}scrollToShadowSection(){this.shadowDebugSection.$root.scrollIntoView({block:"start",inline:"nearest"})}scrollIntoGbufferSection(){this.gbufferDebugSection.$root.scrollIntoView({block:"start",inline:"nearest"})}setTextureGBufferSection(e,t,r=.2*t.width,n=.2*t.height){return this.open?(this.gbufferDebugSection.setTextureFor(e,t,r,n),this):this}setTextureShadowSection(e,t,r=.2*t.width,n=.2*t.height){return this.open?(this.shadowDebugSection.setTextureFor(e,t,r,n),this):this}render(e){this.open&&(this.gbufferDebugSection.render(e),this.shadowDebugSection.render(e))}};gn.ROOT_EL_ID="webgpu-debug-root";let qi=gn;const Np=new Map([[se.CPUTotal,"cpu-total"],[se.GPUTotal,"gpu-total"],[se.FPS,"fps"],[se.VRAM,"vram"],[se.VisibleMeshes,"culled-meshes"],[se.LightsCount,"lights-count"],[se.DeferredRenderPass,"deferred"],[se.DirectionalAmbientLightingRenderPass,"directional-ambient-light"],[se.PointLightsStencilMask,"point-lights-stencil-mask"],[se.PointLightsLighting,"point-lights-lighting"],[se.SSAORenderPass,"ssao"],[se.TransparentRenderPass,"transparent"],[se.ShadowRenderPass,"shadow"],[se.TAAResolveRenderPass,"taa-resolve"],[se.ReflectionRenderPass,"reflection"],[se.BlitRenderPass,"blit"]]),Vp=new Map([[se.CPUTotal,"CPU"],[se.GPUTotal,"GPU"],[se.FPS,"FPS"],[se.VRAM,"VRAM Usage"],[se.VisibleMeshes,"Visible Meshes"],[se.LightsCount,"Lights Count"],[se.DeferredRenderPass,"G-Buffer Render Pass"],[se.DirectionalAmbientLightingRenderPass,"Directional + Ambient Render Pass"],[se.PointLightsStencilMask,"Point Lights Stencil Mask Pass"],[se.PointLightsLighting,"Point Lights Render Pass"],[se.SSAORenderPass,"SSAO Render Pass"],[se.TransparentRenderPass,"Transparent Render Pass"],[se.ShadowRenderPass,"Directional Shadow Render Pass"],[se.TAAResolveRenderPass,"TAA Resolve Render Pass"],[se.ReflectionRenderPass,"Reflection Render Pass"],[se.BlitRenderPass,"Blit Render Pass"]]),Bo=class Bo{constructor(){this.$renderPassTimingDisplayEls=new Map,this.$root=document.createElement("div"),this.$root.id="timings-debug-container",this.$root.classList.add("fadable","hidden"),document.body.appendChild(this.$root);for(const e of Rd){const t=Np.get(e),r=document.createElement("div");r.id=`${t}-debug-timing`,r.classList.add("timing-container"),this.$root.appendChild(r);const n=document.createElement("div");n.classList.add("timing-label"),n.innerText=`${Vp.get(e)}:`,r.appendChild(n);const i=document.createElement("div");i.classList.add("timing-value"),r.appendChild(i);const o={root:r,label:n,value:i};this.$renderPassTimingDisplayEls.set(e,o)}}toggleVisibility(){this.$root.classList.toggle("hidden")}setDisplayValue(e,t){return this.$renderPassTimingDisplayEls.get(e).value.innerText=t,this}};Bo.NOT_AVAILABLE_STR="N/A";let Qi=Bo;const Hp=vt(kt(W.Light).structs.Light);class br extends ar{constructor(e){super(),this.lightType=e,this._color=D.create(1,1,0),this._intensity=1;const t=kt(W.Light);this.lightsStorageView=vt(t.structs.Light),this.lightsStorageView.set({color:this._color,position:this.position,lightType:Pd.get(e),intensity:1})}static get STRUCT_BYTE_SIZE(){return Hp.arrayBuffer.byteLength}get intensity(){return this._intensity}set intensity(e){this._intensity=e,this.lightsStorageView.set({intensity:e})}get color(){return this.getColor()}set color(e){this.setColor(e[0],e[1],e[2])}setColor(e,t,r){this._color[0]=e,this._color[1]=t,this._color[2]=r,this.lightsStorageView.set({color:this._color})}setColorAsVec3(e){D.copy(e,this._color),this.lightsStorageView.set({color:this._color})}getColor(){return this._color}setPosition(e,t,r){return super.setPosition(e,t,r),this.lightsStorageView.set({position:this.position}),this}setPositionAsVec3(e){return super.setPositionAsVec3(e),this.lightsStorageView.set({position:this.position}),this}setPositionX(e){return super.setPositionX(e),this.lightsStorageView.set({position:this.position}),this}setPositionY(e){return super.setPositionY(e),this.lightsStorageView.set({position:this.position}),this}setPositionZ(e){return super.setPositionZ(e),this.lightsStorageView.set({position:this.position}),this}}class Zi extends br{constructor(){super(Nt.Directional)}}class Yt extends br{get radius(){return this._radius}set radius(e){this._radius=e,this.lightsStorageView.set({radius:e})}constructor(){super(Nt.Point),this.intensity=1,this.radius=1}}class gt extends Yt{static get bindGroupLayout(){if(this._bindGroupLayout)return this._bindGroupLayout;const e=[{binding:0,visibility:GPUShaderStage.VERTEX|GPUShaderStage.FRAGMENT,buffer:{}}];return this._bindGroupLayout=B.device.createBindGroupLayout({label:"Camera Face Culled Point Light Bind Group Layout",entries:e}),this._bindGroupLayout}updateGPUBuffer(){B.device.queue.writeBuffer(this.gpuBuffer,0,this.lightsStorageView.arrayBuffer)}constructor(){super(),this.gpuBuffer=B.device.createBuffer({label:"Camera Face Culled Point Light GPU Buffer",size:br.STRUCT_BYTE_SIZE,usage:GPUBufferUsage.UNIFORM|GPUBufferUsage.COPY_DST}),$.addBufferBytes(this.gpuBuffer),this.lightsStorageView.set({type:1,intensity:1,radius:1,color:D.create(1,1,1),position:D.create(0,1,0)}),this.updateGPUBuffer();const e=[{binding:0,resource:{buffer:this.gpuBuffer}}];this.bindGroup=B.device.createBindGroup({label:"Camera Face Culled Point Light Bind Group",entries:e,layout:gt.bindGroupLayout})}}class Jp{constructor(){this.pointLights=[],this.cameraFaceCulledPointLights=[],this.directionalLights=[],this.allLights=[]}get lightsCount(){return this.allLights.length}get pointLightsCount(){return this.pointLights.length}get directionalLightsCount(){return this.directionalLights.length}updateGPUBuffer(){if(!this.allLights.length)return void console.warn("No lights, skip creating GPUBuffer");this.gpuBuffer&&($.removeBufferBytes(this.gpuBuffer),this.gpuBuffer.destroy()),this.gpuBuffer=B.device.createBuffer({label:"Lights GPU Buffer",size:br.STRUCT_BYTE_SIZE*this.allLights.length,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.STORAGE}),$.addBufferBytes(this.gpuBuffer);let e=0;for(let t=0;tr.id!==e.id;return e instanceof gt?this.cameraFaceCulledPointLights=this.cameraFaceCulledPointLights.filter(t):e instanceof Yt?this.pointLights=this.pointLights.filter(t):e instanceof Zi&&(this.directionalLights=this.directionalLights.filter(t)),this.allLights=this.allLights.filter(t),this}render(e){throw new Error("Needs implementation")}}const qt=vt(kt(W.Particle).structs.Particle),Ze=class Ze{constructor({radius:e,position:t,velocity:r,lifeSpeed:n,life:i}={radius:1,position:D.create(0,3,0),velocity:D.create(0,1,0),lifeSpeed:1,life:0}){this.radius=e,this.position=t,this.origPosition=t,this.velocity=r,this.lifeSpeed=n,this.life=i}};Ze.STRUCT_BYTE_SIZE=qt.arrayBuffer.byteLength,Ze.STRUCT_FLOATS_COUNT=Ze.STRUCT_BYTE_SIZE/Float32Array.BYTES_PER_ELEMENT,Ze.RADIUS_OFFSET=qt.views.radius.byteOffset/Float32Array.BYTES_PER_ELEMENT,Ze.POSITION_OFFSET=qt.views.position.byteOffset/Float32Array.BYTES_PER_ELEMENT,Ze.ORIG_POSITION_OFFSET=qt.views.origPosition.byteOffset/Float32Array.BYTES_PER_ELEMENT,Ze.VELOCITY_OFFSET=qt.views.velocity.byteOffset/Float32Array.BYTES_PER_ELEMENT,Ze.LIFE_OFFSET=qt.views.life.byteOffset/Float32Array.BYTES_PER_ELEMENT,Ze.LIFE_SPEED_OFFSET=qt.views.lifeSpeed.byteOffset/Float32Array.BYTES_PER_ELEMENT;let Qe=Ze;const Gc="vertexMain",Lc="fragMain",zp=` ${W.Particle} ${W.Light} ${W.Camera} diff --git a/docs/assets/index-CcD6bekL.js.gz b/docs/assets/index-BeB41sTJ.js.gz similarity index 78% rename from docs/assets/index-CcD6bekL.js.gz rename to docs/assets/index-BeB41sTJ.js.gz index 4133f25dbafaf05b0ef1e3bfe807e1fb0c375fe2..2ef63a2f5b60bed6a52a63ff8df1b2b1203db4e1 100644 GIT binary patch delta 30507 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 delta 30518 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 - + diff --git a/docs/index.html.gz b/docs/index.html.gz index 74efaba375cf33546fd7e234165da34d80419c61..69ef2d2cc79b722ac72abdb29107a767deda036c 100644 GIT binary patch delta 1288 zcmV+j1^4>U3(*UZ6@S$}Bmp9+UOFI6Y!7Mk(iVNm=A=b236=d0X2VhvC zVUQL~X*8qY=K3N$3T`(9t8f&|IWB6cOaQ4A1_cQ&cxH-GhJSOOV(2~&fD3LoD?^>K z5=VpR;Q@3f!znkTRL)UZ>!jUqQ{wm?CYM(?FsY^Z!r%-mIgI_zh6ir3XMX!&0P*Ib z40Wn_ZMYQMN3St0+(DQWa*;C4MGkM7;1n6ndqk?!eeZB}3jUXvb;iC^;QS51X3!|8WY#!Hlz-G(DxPxzTBV~PikYVRq+?Eg ze-5AElSc!6{UZ9PgYhu-I-K(*7c)>;QmoCgL|q`7b$x}x>6XH?!9;$(JmpcUN#o8i z_T_PBn8491&rAf$_pF0@fiYU!HB&6lZ3fs=&S2Dcdl*y1Jw$C2xTYp?+&LVs$wLf!gG=!wo$POcO@)o^gF>hUuqIx^KFX|UF95))9)Jsk{tk=G}>cFA!590W28uKY=h#>UmX!_NhiSp*vg3#!%)<>*C|dju;n9vvP16t{{(rzj*v zp$8}21}7Yl{JjAJI_*IEX8Nq~vOsV`Y;e?qWm9*~ZSv9TkCWE~C4ak%$y-$J2;OTc zDHC%WV(J5_t^5A_w%xQ1u^lqH@q*d5x#|*D_CXlJrIb0{&9EHya{8sAXdgo7e>Yt* zy%edRr26sB-AOu9F+szf@{j6R+r9n$lbzls&81VGlfZ7@>)rhm2Ylx)O?G~wvm>7U*Z41$pkSpc4*&orx^|ub delta 1287 zcmV+i1^D{W3(yOY6@Sw{Bmp9+Ub-PoY!5-+S|Dw+IcZT0LqSPriM2$kBxToK_uqFU zB}cZ?y#(m;!IH@1-SN5SUNZdd{Po%GyPFFrOjV9|hV}s^6Zt4W5sY_e1z9%U0T@k~)cQD%bHQh_l+$UHb5k@)#AQsX^12DNyJwh@yYbi6 z{zs73&VB=|9<;+NmgD0uPfKB~(9$ZZMgFyzm<2Zm)p5#H)-$G?s$y#SzGN!L_pK`r zdfF-Y7Ln?7KRR5Ug8wCEow08eIDZ4M88iwinKcd)C4aS+isxK_R_Q2+Vy3A+>6nw> zpTe{B{HFwG*U<+ZjEAw;;hZnIn1RBQVr`Zs>H^WM>njvaw-lZaCi2tODUVW38h3`V zFONIJL}p8;IOB6jOFA?PN|{TTvWz7q+9wjlc;?q#=_K)DFy4#MV0^{R^ClU_tg|~z zl#jOkJ5$IEW{@l&Fo{y-JoMJ)*7O6~oeaG4GAk>?xbDDEedxkODk5LdIWVld-5D+u zNf{ef#8C{n&_*?>rMC_`XYVw^FKkWJ#@`$DQCcx zY=paNrdXca46vu1!Km-{Fs6umirUcI_zD@eU@sJ_YuC!UVBZy?qz>4|Tu1}DscqvU zT#xsB=)Lf^wl*y+lRKM^BewA?Tq$^};q>N(1w%C=f(c@! zp?~Bvge7qb5+xTJ6=afh^qd23qWdt_cNccdr(q!|_?6WW}2b_S_pDz(tnR?`r~*9RQj%+9#Y2d#CQTZE3WBEdmA8kYG+u z>Vns`3#o*cEQJ`}QhJlO^yZDeo&eQB$`djF34_6*_rt!q9CYr$vu6?9l#`+ZB?U?0 zp2|;?%mW`XXI_>pqFjzqgm;s8>V1f5I1~cQnA*+E$U6RB@VqePa=Q||@*A-7o~=hL zX?U6G=#i5h1TqV5{7H+(#?`&UF9efX1RDoSs@4tV=w*|91S>I~9v%G{w~9iiC?rLp z2PfPHCmfLcqX7as?Lhi!`mFG>KyX5AaMXfjQ+Lj7^3m!Klh_0$e|w0@TU71{-fJl- z6LTA4>I12*`~LgB-Lws{9WuJ{g4wpY>JnD=yD)?+DRa7;VL9yO^h-n0K7`KyZn|Q6 zDN;X4_2ZqplXRqFf`&WgCky(HKj@#y0Y)#1}8*Kcl~Uu?`-_pbm8S7ak9lkA!; zsU(iJm%e;~-+n)FRpQe|xSkHy(%wG&0V}bnZgjCnd}%70G4=il{OOK3$=wfn_W%U( x{1@5B^E)aJ006ryet`f0