TASK 51 slice 2: Blur — background at 1/4 res, 3 separable box passes (~gaussian, radius by strength), mask-blended; person untouched; Remove gains strength = edge feather; mask computed once, rendered per effect (Unit: bg blur)
This commit is contained in:
@@ -634,9 +634,13 @@ This replaces the old five-seeder cluster (`Seed{Starting,Brb,Ending,Chat}Backgr
|
||||
resource; **never throws** — a load/run failure logs once and returns null forever after);
|
||||
`BackgroundEffectProcessor.Apply(frame, BackgroundEffect)` — `None` = same instance (true
|
||||
passthrough), `Remove` = copy with alpha = bilinear-upscaled mask × source alpha, RGB untouched,
|
||||
`IsOpaque = false` (the compositor's straight-alpha blend shows the layers below); `Blur` passes
|
||||
through until slice 2. No mask / segmenter exception → passthrough + one log line, never a dropped
|
||||
layer.
|
||||
`IsOpaque = false` (the compositor's straight-alpha blend shows the layers below), strength =
|
||||
edge feather (mask band 0.5±(0.05+0.45·s) → alpha); `Blur` (slice 2) = background downscaled 4×
|
||||
by box average, 3 separable box-blur passes (radius 1→12 small px by strength ≈ gaussian, up to
|
||||
~48 full px), bilinear-upsampled and blended by the mask — person pixels (mask = 1) are copied
|
||||
untouched, opacity preserved. The mask is computed once per frame (`TrySegment`) and rendered per
|
||||
effect (`Render`), so several variants share one inference. No mask / segmenter exception →
|
||||
passthrough + one log line, never a dropped layer.
|
||||
- **Not wired yet:** nothing calls the processor — no config, no UI, no `CameraManager` hookup. The
|
||||
next slices add Blur, the per-webcam `BackgroundEffect` config + persistence, then the single
|
||||
processing point on the camera path (both preview and compositor consume the processed frame).
|
||||
|
||||
Reference in New Issue
Block a user