Specify a scene-referred pipeline (D19)

The spec missed Ansel, and with it Aurélien Pierre's argument that a
display-referred curve early in the pipeline throws away what every
later stage needs. Read against that argument, the code broke it four
ways: the base curve was flat past its last point and so clipped every
recovered highlight; the detail stage was handed curved, clipped values
while its comments promised linear ones; the edits ran in camera RGB
because the matrix had drifted to after them, against ARCH §5.2; and the
tone curve clamped to [0, 1] around a 2.2 gamma mid-chain.

D19 records the decision: unbounded scene-linear colour from the matrix
to one view transform, last, after the detail stage. FR-DEV-3j specifies
that view transform as an adjustable operation (contrast, white) with a
default fitted to where the retired default curve put middle grey.
FR-DEV-3e retires the per-body base curves, whose own file called them
hand-tuned shapes of unknown provenance. FR-DEV-3f makes a film stock
the view transform when one is chosen, instead of a rendering at order
25 that the later edits acted on. FR-DEV-2 gains the acceptance test
that holds the rule, and ARCH gains §6.14 and the corrected §5.2 order.
This commit is contained in:
2026-09-27 16:52:52 -04:00
parent 621a6b8313
commit e8898a5c38
3 changed files with 154 additions and 17 deletions
+5 -4
View File
@@ -11,16 +11,16 @@ Denominators are parsed from [`requirements.md`](requirements.md) at run time, n
|---|---|
| Source files scanned | 470 |
| TRACES tags found | 1911 |
| Requirements defined | 192 |
| Requirements defined | 193 |
| Requirements deferred (post-v1) | 24 |
| Requirements covered | 163 |
| **Coverage** | **84.9%** (163/192) |
| **Coverage** | **84.5%** (163/193) |
### By type
| Type | Covered | Defined |
|---|---|---|
| FR | 123 | 134 |
| FR | 123 | 135 |
| NFR | 35 | 51 |
| R | 5 | 7 |
@@ -229,7 +229,7 @@ Defined in `requirements.md` and marked `(post-v1)` on the defining line. Not in
## Not yet tagged
29 of 192 requirements have no implementation tag. Expected while the codebase is young; each should gain one as it is built.
30 of 193 requirements have no implementation tag. Expected while the codebase is young; each should gain one as it is built.
<details><summary>Show untagged requirements</summary>
@@ -237,6 +237,7 @@ Defined in `requirements.md` and marked `(post-v1)` on the defining line. Not in
- FR-CULL-6
- FR-CULL-7
- FR-DEV-3g
- FR-DEV-3j
- FR-DSP-2
- FR-INF-2
- FR-INF-3