From cebd6877bba985b1716b70dc9afd0e6614b36903 Mon Sep 17 00:00:00 2001 From: Rezmason Date: Fri, 12 Nov 2021 00:03:06 -0800 Subject: [PATCH] Just learned about the private storage class. The rain pass can use it to look up the corner positions of quads, rather than derive them mathematically. --- shaders/wgsl/rainPass.wgsl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/shaders/wgsl/rainPass.wgsl b/shaders/wgsl/rainPass.wgsl index 971e283..256ac48 100644 --- a/shaders/wgsl/rainPass.wgsl +++ b/shaders/wgsl/rainPass.wgsl @@ -285,6 +285,11 @@ fn computeResult (isFirstFrame : bool, previousResult : vec4, glyphPos : ve // Vertex shader +var quadCorners : array, NUM_VERTICES_PER_QUAD> = array, NUM_VERTICES_PER_QUAD>( + vec2(0.0, 0.0), vec2(1.0, 0.0), vec2(0.0, 1.0), + vec2(1.0, 1.0), vec2(0.0, 1.0), vec2(1.0, 0.0) +); + [[stage(vertex)]] fn vertMain(input : VertInput) -> VertOutput { var volumetric = bool(config.volumetric); @@ -295,10 +300,7 @@ fn computeResult (isFirstFrame : bool, previousResult : vec4, glyphPos : ve var i = i32(input.index); var quadIndex = i / NUM_VERTICES_PER_QUAD; - var quadCorner = vec2( - f32(i % 2), - f32((i + 1) % NUM_VERTICES_PER_QUAD / 3) - ); + var quadCorner = quadCorners[i % NUM_VERTICES_PER_QUAD]; var quadPosition = vec2( f32(quadIndex % i32(quadGridSize.x)),