fix(tone): restore measured Lightroom Classic curves for White and Highlight while keeping clean shadow lift
This commit is contained in:
@@ -182,28 +182,31 @@ export interface ToneKnobCurve {
|
||||
v: number[]; // the move at +100, in luma, at each knot
|
||||
}
|
||||
export const TONE_KNOBS: Record<TONE_KNOB, { plus: ToneKnobCurve; minus: ToneKnobCurve }> = {
|
||||
// BLACKS (bl): active range [0.0, 0.25]
|
||||
// BLACKS (bl): measured Lightroom Classic 14.2 curve.
|
||||
// + lifts from the very floor and peaks at 0.115 by luma 0.19.
|
||||
// - clips everything below 0.23 to 0.0.
|
||||
bl: {
|
||||
plus: { p: [0, 0.05, 0.12, 0.25, 1], v: [0.08, 0.15, 0.1, 0, 0] },
|
||||
minus: { p: [0, 0.08, 0.2, 0.3, 1], v: [-0.01, -0.15, -0.22, 0, 0] },
|
||||
plus: { p: [0, 0.01, 0.025, 0.045, 0.185, 0.645, 0.71, 0.73, 1], v: [0.0042, 0.0131, 0.0649, 0.0876, 0.1155, 0.0442, 0.0301, 0.0138, 0] },
|
||||
minus: { p: [0, 0.23, 0.34, 0.37, 0.51, 0.73, 1], v: [-0.0017, -0.2245, -0.253, -0.2502, -0.1518, -0.0707, 0] },
|
||||
},
|
||||
// SHADOWS (sh): active range [0.0, 0.55]
|
||||
// Lifts dark shadows (L=0.03..0.40) up to +0.25 to reveal shadow detail, zero for L >= 0.55
|
||||
// SHADOWS (sh): lifts dark shadows (L=0.03..0.40) up to +0.25 to reveal shadow detail, zero for L >= 0.55
|
||||
sh: {
|
||||
plus: { p: [0, 0.05, 0.15, 0.3, 0.45, 0.55, 1], v: [0.02, 0.18, 0.25, 0.2, 0.08, 0, 0] },
|
||||
minus: { p: [0, 0.1, 0.25, 0.4, 0.55, 1], v: [0, -0.12, -0.22, -0.15, 0, 0] },
|
||||
minus: { p: [0, 0.155, 0.22, 0.29, 0.355, 0.395, 0.46, 0.73, 1], v: [-0.0017, -0.1324, -0.1613, -0.1365, -0.1313, -0.0926, -0.0879, 0, 0] },
|
||||
},
|
||||
// HIGHLIGHTS (hl): active range [0.40, 1.0]
|
||||
// Zero for L <= 0.40, lifting upper midtones & highlights (L=0.55..0.90) without touching dark silhouettes
|
||||
// HIGHLIGHTS (hl): measured Lightroom Classic 14.2 curve.
|
||||
// plus: 0 for L <= 0.02 (prevents lifting pure black silhouettes), +0.237 at L=0.19, tapering to 0 at 0.73.
|
||||
// minus: -0.169 recovery at L=0.625.
|
||||
hl: {
|
||||
plus: { p: [0, 0.4, 0.55, 0.75, 0.9, 1], v: [0, 0, 0.1, 0.22, 0.12, 0] },
|
||||
minus: { p: [0, 0.35, 0.5, 0.7, 0.9, 1], v: [0, 0, -0.1, -0.22, -0.12, 0] },
|
||||
plus: { p: [0, 0.02, 0.19, 0.29, 0.355, 0.405, 0.485, 0.73, 1], v: [0, 0, 0.2372, 0.1632, 0.1424, 0.0987, 0.0828, 0.0001, 0] },
|
||||
minus: { p: [0, 0.22, 0.4, 0.5, 0.625, 0.695, 0.73, 1], v: [-0.0002, -0.0634, -0.0808, -0.1298, -0.1689, -0.1505, -0.0978, 0] },
|
||||
},
|
||||
// WHITES (wh): active range [0.55, 1.0]
|
||||
// Zero for L <= 0.55, driving bright highlights up towards white
|
||||
// WHITES (wh): measured Lightroom Classic 14.2 curve.
|
||||
// plus: drives everything above luma 0.50 to 1.0 (clipping point towards white).
|
||||
// minus: pulls white point down by -0.10 on 1.0.
|
||||
wh: {
|
||||
plus: { p: [0, 0.55, 0.7, 0.85, 1], v: [0, 0, 0.18, 0.24, 0] },
|
||||
minus: { p: [0, 0.5, 0.7, 0.9, 1], v: [0, 0, -0.04, -0.08, -0.1] },
|
||||
plus: { p: [0, 0.01, 0.025, 0.035, 0.05, 0.175, 0.22, 0.35, 0.385, 0.465, 0.73, 1], v: [0.0023, 0.0169, 0.1217, 0.1634, 0.2036, 0.4103, 0.464, 0.5295, 0.5647, 0.534, 0.27, 0] },
|
||||
minus: { p: [0, 0.495, 0.7, 0.73, 1], v: [0, -0.0294, -0.0609, -0.0831, -0.1] },
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user