WIP: noise reduction

Checkpoint committed by the coordinator, not by the authoring agent: the
session hit its API limit mid-task and left this work uncommitted. Committed
so it survives, NOT because it is finished - expect failing tests and
half-applied changes. The agent resumes from here.
This commit is contained in:
2026-08-22 19:01:18 +02:00
parent c963dafd09
commit b4e55b47c1
6 changed files with 1469 additions and 5 deletions
+8
View File
@@ -26,6 +26,12 @@
//! parameters at all. A schema stretched to cover those would be a worse
//! language than Rust, aimed at one caller each.
//!
//! [`noise_reduction`] is an exception for a different reason again: it is a
//! *kernel*, and a declared node's `wgsl:` is handed a colour with no way back
//! to a coordinate. It runs in [`crate::detail`] instead, deciding at each
//! render how many dispatches to emit and converting a radius stated in sensor
//! pixels into the render pixels this frame is being drawn at.
//!
//! Both publish the same [`crate::descriptor::OpDescriptor`], so nothing
//! downstream can tell them apart. A hand-written node still declares its
//! place in the chain in `ops/<id>.yaml` with `rust:`, so the directory
@@ -44,12 +50,14 @@ pub mod aberration;
pub mod colour_mixer;
pub mod curve;
pub mod distortion;
pub mod noise_reduction;
pub mod vignetting;
pub use aberration::Aberration;
pub use colour_mixer::ColourMixer;
pub use curve::ToneCurve;
pub use distortion::Distortion;
pub use noise_reduction::NoiseReduction;
pub use vignetting::Vignetting;
// The declared nodes, plus `helpers` and `chain`. Generated into OUT_DIR by