From f2a54b31415904ae3ece83770accfdcfaabc471f Mon Sep 17 00:00:00 2001 From: Rezmason Date: Wed, 27 Oct 2021 20:00:39 -0700 Subject: [PATCH] A little bit of shader variable renaming and const declaration during a walkthrough of the existing code on-stream --- js/webgpu_main.js | 4 +++- shaders/rainRenderPass.wgsl | 14 +++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/js/webgpu_main.js b/js/webgpu_main.js index c057ea6..182521e 100644 --- a/js/webgpu_main.js +++ b/js/webgpu_main.js @@ -32,6 +32,8 @@ const loadTexture = async (device, url) => { export default async (canvas, config) => { console.log(config); + const NUM_VERTICES_PER_QUAD = 6; + const numColumns = config.numColumns; const numRows = config.numColumns; @@ -183,7 +185,7 @@ export default async (canvas, config) => { bundleEncoder.setBindGroup(index, bindGroup); }); const numQuads = numColumns * numRows; - bundleEncoder.draw(6 * numQuads, 1, 0, 0); + bundleEncoder.draw(NUM_VERTICES_PER_QUAD * numQuads, 1, 0, 0); const renderBundles = [bundleEncoder.finish()]; let frame = 0; diff --git a/shaders/rainRenderPass.wgsl b/shaders/rainRenderPass.wgsl index 995c62f..8325c77 100644 --- a/shaders/rainRenderPass.wgsl +++ b/shaders/rainRenderPass.wgsl @@ -1,5 +1,6 @@ +let NUM_VERTICES_PER_QUAD:i32 = 6; let PI:f32 = 3.14159265359; -let TWO_PI:f32 = 6.28318530718; +let TWO_PI:f32 = 6.28318530718; // No, I'm not using Tau. [[block]] struct Uniforms { numColumns: i32; @@ -15,7 +16,7 @@ let TWO_PI:f32 = 6.28318530718; [[group(1), binding(2)]] var msdfTexture: texture_2d; [[block]] struct TimeUniforms { - time: i32; + now: i32; frame: i32; }; [[group(2), binding(0)]] var timeUniforms:TimeUniforms; @@ -30,11 +31,11 @@ struct VertexOutput { [[stage(vertex)]] fn vertMain([[builtin(vertex_index)]] VertexIndex:u32) -> VertexOutput { var i = i32(VertexIndex); - var quadIndex = i / 6; + var quadIndex = i / NUM_VERTICES_PER_QUAD; var cornerPosition = vec2( f32(i % 2), - f32(((i + 1) % 6 / 3)) + f32(((i + 1) % NUM_VERTICES_PER_QUAD / 3)) ); var x = uniforms.numColumns; @@ -49,7 +50,6 @@ struct VertexOutput { f32(uniforms.numRows) ); position = 1.0 - position * 2.0; - // position.x = position.x + f32(quadIndex) * 0.01; return VertexOutput( vec4(position, 1.0, 1.0), @@ -61,9 +61,9 @@ struct VertexOutput { [[stage(fragment)]] fn fragMain([[location(0)]] UV:vec2) -> [[location(0)]] vec4 { var msdf:vec4 = textureSample(msdfTexture, msdfSampler, UV / f32(msdfUniforms.numColumns)); - // msdf.b = msdf.b * (sin(f32(timeUniforms.time) / 1000.0 * TWO_PI) * 0.5 + 0.5); + // msdf.b = msdf.b * (sin(f32(timeUniforms.now) / 1000.0 * TWO_PI) * 0.5 + 0.5); msdf.b = msdf.b * f32(timeUniforms.frame / 60 % 2); - var time = timeUniforms.time; + var now = timeUniforms.now; return msdf; }