From c4cd9f1c2eff1e19d0848c6114da2f97450de93a Mon Sep 17 00:00:00 2001 From: arnav-hiwarkar Date: Thu, 12 Nov 2026 15:47:15 +0530 Subject: [PATCH] #3477: Scatter: Scatter Amount takes After Effects' range Scatter Amount takes 0..1000, After Effects' recorded valid range in the same units (pixels); the slider stays 0..127. The CPU and GPU renderers move each pixel by one random offset of up to the amount, so a larger amount costs the same; samples outside the layer are transparent. Default and slider are unchanged. --- crates/aep/src/export/fx_defs.rs | 1 - crates/effects/src/stylize2.rs | 2 +- crates/engine/src/tests/effect_ranges.rs | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/aep/src/export/fx_defs.rs b/crates/aep/src/export/fx_defs.rs index a741397ff..3c7464009 100644 --- a/crates/aep/src/export/fx_defs.rs +++ b/crates/aep/src/export/fx_defs.rs @@ -738,7 +738,6 @@ mod tests { ("ec.distort.transform", "scaleWidth", 3471), ("ec.generate.beam", "startThickness", 3475), ("ec.generate.beam", "endThickness", 3475), - ("ec.stylize.scatter", "amount", 3477), ("ec.time.pixelmotionblur", "shutterAngle", 3481), ("ec.time.pixelmotionblur", "shutterSamples", 3482), ("ec.noise.fractal", "subSettings/subInfluence", 3485), diff --git a/crates/effects/src/stylize2.rs b/crates/effects/src/stylize2.rs index 247854352..a2de2c35e 100644 --- a/crates/effects/src/stylize2.rs +++ b/crates/effects/src/stylize2.rs @@ -612,7 +612,7 @@ pub fn specs() -> Vec { "ec.stylize.scatter", "Scatter", vec![ - p("amount", "Scatter Amount", num(0.0), slider(0.0, 127.0, 0.0, 127.0, 1)), + p("amount", "Scatter Amount", num(0.0), slider(0.0, 1000.0, 0.0, 127.0, 1)), p("grain", "Grain", Value::Enum(0), popup(&["Both", "Horizontal", "Vertical"])), p("randomizeEveryFrame", "Scatter Randomness", Value::Bool(false), ParamUi::Checkbox), ], diff --git a/crates/engine/src/tests/effect_ranges.rs b/crates/engine/src/tests/effect_ranges.rs index 3ba91dc5f..c783478fb 100644 --- a/crates/engine/src/tests/effect_ranges.rs +++ b/crates/engine/src/tests/effect_ranges.rs @@ -54,6 +54,7 @@ const ROWS: &[(u32, &str, &str, f64, f64)] = &[ (3472, "ec.transition.venetian", "width", 1.0, 32000.0), (3473, "ec.transition.venetian", "feather", 0.0, 32000.0), (3474, "ec.transition.radialwipe", "feather", 0.0, 32000.0), + (3477, "ec.stylize.scatter", "amount", 0.0, 1000.0), ]; fn path(effect: &str, param: &str) -> String {