Files
dtourolle affdaecaee Stop describing a base curve the pipeline no longer has
D19 retired the per-body base curve, moved the matrix ahead of the
edits and the film into the view transform's place, but a dozen doc
comments still listed the curve among what a pixel passes through, or
said the film skipped it. The detail stage's module doc still drew the
matrix after the edits and the last detail pass encoding, which the
view pass took over. The film crate's README gave the base curves as
its reason for being data, and the ops README's list of hand-written
nodes had neither the view transform nor three of the five kernels.

FR-MRG-2 gave the base curve as why the merge cuts below the profile;
the view transform is why now. The decision table still said colour
defaults were a per-body curve, and FR-DEV-3j said only the default
view transform skips a JPEG, where the node skips one whatever its
sliders say. frame-budget.md records the view pass as unmeasured.
2026-09-27 19:42:41 -04:00

28 lines
1.4 KiB
YAML

id: film_sim
order: 190
# What this node is *about* is not written here, and cannot be: a `rust:` node
# publishes its own descriptor, so `attributes:` in this file would be read,
# validated and then ignored. See `Attribute::Effect` on `FilmSim`'s descriptor
# in `../src/ops/film_sim.rs`.
rust: FilmSim
why_rust: |
It carries a stock's measured tables — an exposure matrix, three
characteristic curves and a density lookup — which are not parameters and
which no `uniforms:` expression could produce. Its neutral is "no stock
loaded" rather than a set of values, and it is the one node that declares
`Operation::renders`, so while a stock is loaded the composer emits it in
the view transform's place instead of the default sigmoid.
placement: |
Last, in the view transform's place (D19, FR-DEV-3j), after every other
operation and after the detail stage.
Before D19 it sat at order 25, after white balance and exposure, and every
decision below it acted on the film's output, as though the frame had been
scanned and then worked on. That put a display-referred rendering in the
middle of the chain, which is what D19 removes: every operation is now handed
the scene, and the film is the last thing that happens to the picture — an
edit is a decision about the exposure the negative receives. `Stage::View`
is what puts it there; this number only places it in the panel's order.