From e3f0b002c0998c8553e782273b254869107ffc0f Mon Sep 17 00:00:00 2001 From: skal Date: Tue, 17 Feb 2026 13:24:56 +0100 Subject: feat(uniforms): Add noise field with per-frame random values Replace _pad with noise field in UniformsSequenceParams, providing effects with non-deterministic random values [0..1] updated each frame. Co-Authored-By: Claude Sonnet 4.5 --- src/gpu/sequence.cc | 7 ++++++- src/gpu/sequence.h | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src/gpu') diff --git a/src/gpu/sequence.cc b/src/gpu/sequence.cc index 901d560..9de4133 100644 --- a/src/gpu/sequence.cc +++ b/src/gpu/sequence.cc @@ -4,6 +4,7 @@ #include "gpu/effect.h" #include "util/fatal_error.h" #include +#include // NodeRegistry implementation @@ -227,7 +228,11 @@ void Sequence::preprocess(float seq_time, float beat_time, float beat_phase, params_.beat_time = beat_time; params_.beat_phase = beat_phase; params_.audio_intensity = audio_intensity; - params_._pad = 0.0f; + + static std::random_device rd; + static std::mt19937 gen(rd()); + static std::uniform_real_distribution dis(0.0f, 1.0f); + params_.noise = dis(gen); uniforms_buffer_.update(ctx_.queue, params_); } diff --git a/src/gpu/sequence.h b/src/gpu/sequence.h index 3bb770f..2ad0a8f 100644 --- a/src/gpu/sequence.h +++ b/src/gpu/sequence.h @@ -38,7 +38,7 @@ struct UniformsSequenceParams { float beat_time; // Musical beats float beat_phase; // Fractional beat 0.0-1.0 float audio_intensity; - float _pad; + float noise; // Random value [0..1] }; static_assert(sizeof(UniformsSequenceParams) == 32, "UniformsSequenceParams must be 32 bytes for WGSL alignment"); -- cgit v1.2.3