Let the tone curve continue past 1.0, and test that nothing clips
The tone curve clamped its input to [0, 1] and its output back to 1.0 around a 2.2 gamma, mid-chain — master and per-channel both. So any edit with a curve made every scene value above 1.0 the same number before the view transform ever saw it: D19's fourth finding. Beyond its last point the curve now continues along its last span, whose secant is the tangent the spline already gives that point, so the join is smooth and an identity curve stays the identity to any height. The only clamp left is the floor at zero, where there is no light to curve. FR-DEV-2's acceptance test is how the rule stays true. `scene_referred_until_the_view` wraps every point operation, at non-neutral settings, between a gain of sixteen and one of a sixty-fourth, with an identity in the view transform's place, and renders a ramp from 0.4 to 15.2 times sensor saturation through it. The output must still increase with the input and still separate the top of the ramp. Run against the previous commit's tone curve it fails with [21, 29, 33, 33, 33, 33, 33, 33]; every other operation already passed. It renders on a device because dr-pipeline has none, and the spec's pointer to it says so.
This commit is contained in:
@@ -1272,9 +1272,9 @@ and unbounded, and no operation clamps above 1.0, applies a transfer function or
|
||||
gamut. The view transform (FR-DEV-3j) is the one stage that does, and the output transform after
|
||||
it clips and encodes. This is the constraint the base curve broke and ARCH §5.2 had drawn all
|
||||
along: a display-referred curve in the middle of the chain throws away what every later stage,
|
||||
the neighbourhood ones above all, needs. A test (`scene_referred_until_the_view`) runs every point
|
||||
operation over a ramp to 16.0 so that a fragment that clips fails the build rather than the
|
||||
photograph.
|
||||
the neighbourhood ones above all, needs. A test (`scene_referred_until_the_view`, in `dr-gpu`)
|
||||
runs every point operation over a ramp to 16.0 so that a fragment that clips fails the build rather
|
||||
than the photograph.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -316,8 +316,10 @@ the operations measure hue against; moving the primaries to Rec.2020 is deferred
|
||||
|
||||
*Acceptance:* every point operation at non-neutral settings, handed a ramp to 16.0, returns values
|
||||
that are still monotone in the ramp and still above 1.0 where the ramp is, before the view
|
||||
transform (`scene_referred_until_the_view` in `dr-pipeline`). The view transform itself and film
|
||||
simulation are excluded, because clipping into a display range is their job.
|
||||
transform (`scene_referred_until_the_view`, `core/dr-gpu/tests/scene_referred.rs`, rendered on a
|
||||
device: `dr-pipeline` has none). The view transform itself and film simulation are excluded,
|
||||
because clipping into a display range is their job, and so is the detail stage, which a flat frame
|
||||
cannot exercise.
|
||||
|
||||
**FR-DEV-3 — Adjustment set (v1).**
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user