diff --git a/shaders/glsl/rainPass.shine.frag.glsl b/shaders/glsl/rainPass.shine.frag.glsl index 8b28668..d32521e 100644 --- a/shaders/glsl/rainPass.shine.frag.glsl +++ b/shaders/glsl/rainPass.shine.frag.glsl @@ -55,7 +55,11 @@ float getRainTime(float simTime, vec2 glyphPos) { columnSpeedOffset = 0.5; } float columnTime = columnTimeOffset + simTime * fallSpeed * columnSpeedOffset; - return wobble((glyphPos.y * 0.01 + columnTime) / raindropLength); + float rainTime = (glyphPos.y * 0.01 + columnTime) / raindropLength; + if (!loops) { + rainTime = wobble(rainTime); + } + return rainTime; } float getBrightness(float rainTime) { diff --git a/shaders/wgsl/rainPass.wgsl b/shaders/wgsl/rainPass.wgsl index 12baea3..b16f922 100644 --- a/shaders/wgsl/rainPass.wgsl +++ b/shaders/wgsl/rainPass.wgsl @@ -138,14 +138,15 @@ fn getRainTime(simTime : f32, glyphPos : vec2) -> f32 { columnSpeedOffset = 0.5; } var columnTime = columnTimeOffset + simTime * config.fallSpeed * columnSpeedOffset; - return wobble((glyphPos.y * 0.01 + columnTime) / config.raindropLength); + var rainTime = (glyphPos.y * 0.01 + columnTime) / config.raindropLength; + if (!bool(config.loops)) { + rainTime = wobble(rainTime); + } + return rainTime; } fn getBrightness(rainTime : f32) -> f32 { var value = 1.0 - fract(rainTime); - if (bool(config.loops)) { - value = 1.0 - fract(rainTime); - } return value * config.baseContrast + config.baseBrightness; }