Atmik Shetty
21861c2f14
LR-EDIT-DETAIL-NR: noise reduction works in the original's pixels, so previews match the full-size render scaled down ( fixes #960 )
...
Grid thumbnails looked much more denoised than the loupe. `nr_params` sized
the radii from the output's scale relative to the source buffer it was given,
not the original: a 256-px cell drawn from the 512-px thumbnail level used
half the full-size radius on pixels that each average ~23 sensor pixels, and
below 0.4x (0.35x for colour) the radius stopped shrinking at all. The
guided filter's eps (the variance treated as noise) also stayed at its
full-size value although downscaling divides the noise variance by 1/scale²,
so texture in small previews was flattened as noise.
- `SourceInfo::native_long` (filled by the engine from the catalog's photo
size, kept when the decoder supplies its own facts, carried to web
workers) and `Plan::detail_scale` = output pixels per original pixel
(from `px_per_long`, so a crop no longer changes it).
- `nr_params(s, scale)`: radii x scale with no floor, eps x scale². Below
1 px the smallest blur the box Gaussian makes is blended in by the ratio
of variances (`blur::box_sigma`); a fade under 1% skips the filter.
At scale 1 the parameters are unchanged: 1:1 views and full-size exports
render as before. The GPU takes the same parameters.
- RENDER_CACHE_VERSION 63: cached thumbnails are redrawn.
Measured on a 1536x1024 noisy synthetic scene (tests_nr_scale.rs), error
of the preview against the full-size render scaled down, as a fraction of
leaving NR off, luminance NR 50 at preview scales 0.5 / 0.33 / 0.25 /
0.167 / 0.1 / 0.05: before 0.53 / 0.70 / 1.04 / 2.26 / 3.87 / 6.07, after
0.28 / 0.37 / 0.66 / 0.90 / 0.99 / 1.00. A 256-px render from the 512-px
level now matches one from the original (mean 0.07 LSB vs 0.71 before).
2026-10-13 16:14:19 +05:30
Brandon Thomas
4ee6a4888b
Merge PR #1126
2026-10-13 02:05:14 -04:00
Brandon Thomas
478f20054b
Merge PR #1056
2026-10-13 02:02:17 -04:00
Brandon Thomas
d8f10a1ef7
Merge PR #919
2026-10-13 02:01:30 -04:00
bflatastic
ece9bd83e4
Batch 32: one tracker row per id (rows two PRs both edited), parity summary refreshed
2026-10-13 12:05:26 +07:00
bflatastic
fa3dfbbc4a
Merge PR #1238
...
# Conflicts:
# crates/pipeline/src/spots.rs
# crates/ui-egui/src/panels/edit.rs
# docs/parity-checklist.md
2026-10-13 11:06:46 +07:00
bflatastic
84d6849cf3
Merge PR #1216
...
# Conflicts:
# crates/engine/src/files.rs
# crates/ui-egui/locales/de-formats.json
# crates/ui-egui/locales/de.json
# crates/ui-egui/locales/es-formats.json
# crates/ui-egui/locales/es.json
# crates/ui-egui/locales/fr-formats.json
# crates/ui-egui/locales/fr.json
# crates/ui-egui/locales/ja-formats.json
# crates/ui-egui/locales/ja.json
# crates/ui-egui/locales/pt-br-formats.json
# crates/ui-egui/locales/pt-br.json
# crates/ui-egui/locales/ru-formats.json
# crates/ui-egui/locales/ru.json
# crates/ui-egui/locales/uk-formats.json
# crates/ui-egui/locales/uk.json
# crates/ui-egui/locales/zh-hans-formats.json
# crates/ui-egui/locales/zh-hans.json
# crates/ui-egui/locales/zh-hant-formats.json
# crates/ui-egui/locales/zh-hant.json
# docs/parity-checklist.md
2026-10-13 11:06:28 +07:00
bflatastic
ed1d641f22
Merge PR #1174
...
# Conflicts:
# crates/catalog/src/lock.rs
# crates/pipeline/src/spots.rs
# docs/parity-checklist.md
2026-10-13 11:06:26 +07:00
bflatastic
692ab7f7c2
Merge PR #1235
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:05:55 +07:00
bflatastic
32253d862a
Merge PR #1017
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/gaps.md
# docs/parity-checklist.md
2026-10-13 11:05:54 +07:00
bflatastic
4e78514948
Merge PR #1324
...
# Conflicts:
# docs/gaps.md
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-13 11:05:53 +07:00
bflatastic
bac147a460
Merge PR #1189
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:05:48 +07:00
bflatastic
2181c69162
Merge PR #1151
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:05:47 +07:00
bflatastic
8df468bfc6
Merge PR #1246
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/parity-checklist.md
2026-10-13 11:05:44 +07:00
bflatastic
8ca6a835ec
Merge PR #1411
...
# Conflicts:
# crates/ui-egui/locales/pt-br.json
# docs/whats-new.md
2026-10-13 11:05:35 +07:00
bflatastic
94808da369
Merge PR #1250
...
# Conflicts:
# crates/ui-egui/src/tests_panels.rs
2026-10-13 11:04:33 +07:00
bflatastic
edfe7c6351
Merge PR #1242
...
# Conflicts:
# crates/ui-egui/src/tests_panels.rs
# docs/parity-checklist.md
2026-10-13 11:04:32 +07:00
bflatastic
1c473ed64c
Merge PR #1361
2026-10-13 11:03:53 +07:00
bflatastic
cb8aa0b017
Merge PR #1341
2026-10-13 11:03:11 +07:00
bflatastic
d3c024e4df
Merge PR #1047
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/gaps.md
2026-10-13 11:03:10 +07:00
bflatastic
74a0b5796a
Merge PR #1070
...
# Conflicts:
# crates/pipeline/src/spots.rs
2026-10-13 11:03:05 +07:00
bflatastic
76fd9b9ae8
Merge PR #805
...
# Conflicts:
# docs/camera-preview-colour.md
# docs/parity-checklist.md
2026-10-13 11:02:58 +07:00
bflatastic
62b1ba04d0
Merge PR #1367
2026-10-13 11:02:55 +07:00
bflatastic
6eb04f9a1c
Merge PR #1119
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:02:52 +07:00
bflatastic
c7e259b3ce
Merge PR #1297
...
# Conflicts:
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-13 11:02:49 +07:00
bflatastic
bcbcf3b968
Merge PR #1357
...
# Conflicts:
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-13 11:02:48 +07:00
bflatastic
695eb6acc5
Merge PR #1282
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:02:44 +07:00
bflatastic
5e430d057f
Merge PR #1301
2026-10-13 11:02:40 +07:00
bflatastic
9e0f00c557
Merge PR #1222
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:02:40 +07:00
bflatastic
33f03ba0f7
Merge PR #1094
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/gaps.md
# docs/hardware-parity.md
2026-10-13 11:01:54 +07:00
bflatastic
18bd8fd881
Merge PR #1397
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:01:53 +07:00
bflatastic
a39567306b
Merge PR #1071
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:01:52 +07:00
bflatastic
14b111f6f5
Merge PR #1344
...
# Conflicts:
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-13 11:01:49 +07:00
bflatastic
d3d55e8327
Merge PR #1413
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:01:48 +07:00
bflatastic
ecf1236b7c
Merge PR #1150
...
# Conflicts:
# docs/whats-new.md
2026-10-13 11:01:46 +07:00
bflatastic
f28b9c46d3
Merge PR #1051
...
# Conflicts:
# crates/pipeline/src/spots.rs
# docs/gaps.md
# docs/parity-checklist.md
2026-10-13 11:01:45 +07:00
bflatastic
6aabe43386
Merge PR #1023
...
# Conflicts:
# ROADMAP.md
# crates/pipeline/src/spots.rs
# docs/gaps.md
# docs/parity-checklist.md
2026-10-13 11:01:44 +07:00
bflatastic
b9b6bf57de
Merge PR #1020
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:01:43 +07:00
bflatastic
64b3361125
Merge PR #1340
...
# Conflicts:
# docs/gaps.md
# docs/parity-checklist.md
# docs/whats-new.md
2026-10-13 11:01:42 +07:00
bflatastic
44684b7950
Merge PR #1288
...
# Conflicts:
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-13 11:01:41 +07:00
bflatastic
61c3042efe
Merge PR #1280
...
# Conflicts:
# docs/parity-checklist.md
# docs/raw-parity.md
# docs/whats-new.md
2026-10-13 11:01:40 +07:00
bflatastic
2fc2419fa1
Merge PR #1193
...
# Conflicts:
# docs/parity-checklist.md
2026-10-13 11:01:37 +07:00
bflatastic
5cec4d0720
Merge PR #992
2026-10-13 11:01:10 +07:00
bflatastic
1543fef701
Merge PR #1268
2026-10-13 11:01:01 +07:00
bflatastic
ac19325c57
Merge PR #978
2026-10-13 11:01:01 +07:00
bflatastic
b56f052a59
Merge PR #1387
2026-10-13 11:00:58 +07:00
bflatastic
b2a5997e55
Merge PR #1412
2026-10-13 11:00:53 +07:00
bflatastic
43799cc903
Merge PR #1296
2026-10-13 11:00:48 +07:00
bflatastic
a6369c4009
Merge PR #1264
2026-10-13 11:00:47 +07:00
bflatastic
c9e12bd9ff
Merge PR #1123
2026-10-13 11:00:41 +07:00