Develop a mask layer's film on its own settings
A layer offered the film's sliders and they moved nothing: its copy of the node was never given the stock, so it stayed inactive. Film now works in a layer the way the other adjustments do, as offsets to the photograph's settings, but blended as settings rather than as results, since a film is a rendering and cross-fading two developments is not what a region on a pushed film looks like. - dr-film bakes no slider. Exposure is a gain in the shader; push interpolates the stock's measured processes, one curve row each; the print is split at the paper's log exposure, so print exposure is an addition between two lookups and exact at any setting. The enlarger stays balanced at the photograph's exposure. - film_sim reads all four settings as uniforms, format one-hot over a grain count per format, so every uniform is linear in what it does. - Operation::blends_settings lets the composer average each overlapping layer's uniforms with the global ones by mask weight, the global setting taking whatever weight the layers leave, and run the fragment once. Three layers at full weight give the mean of their settings. - The stock picker is hidden on a layer. Only the photograph's exposure re-solves the print balance; push, print exposure and format need no rebake at all now.
This commit is contained in:
@@ -434,6 +434,15 @@ reference implementation.
|
||||
parameter — `core/dr-pipeline/src/sidecar.rs` records why an index was rejected (installing a
|
||||
profile would silently change which film every existing photograph was developed on).
|
||||
|
||||
*Resolved 2026-09-26:* the film's settings — exposure, push, print exposure, format — are
|
||||
**per-pixel**, evaluated by the shader against tables that hold none of them, so a mask layer can
|
||||
hold its own. A layer's settings are offsets to the photograph's, and where layers overlap a pixel
|
||||
takes the weighted average of what each asks for, the photograph's setting taking whatever weight
|
||||
the layers leave (`operation::local_settings_block`). The stock and its paper stay
|
||||
photograph-wide: a layer has no picker. The print is split at the paper's log exposure, so print
|
||||
exposure is an addition between two lookups and exact at any setting; push interpolates the
|
||||
stock's measured processes. Before this a layer offered the film's sliders and they moved nothing.
|
||||
|
||||
**FR-DEV-3g — AI denoise.** Learned denoising operating in the raw domain, ideally jointly with
|
||||
demosaic.
|
||||
|
||||
|
||||
+38
-38
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user