schema_version: 7.0
type: filter
identifier: lift_gamma_gain
title: Lift, Gamma, and Gain
version: 1
copyright: Meltytech, LLC
license: LGPLv2.1
language: en
tags:
  - Video
description: >
  A simple lift/gamma/gain effect, used for color grading.
notes: >
  Very roughly speaking, lift=shadows, gamma=midtones and gain=highlights,
  although all parameters affect the entire curve. Mathematically speaking,
  it is a bit unusual to look at gamma as a color, but it works pretty well
  in practice.
  The classic formula is: output = (gain * (x + lift * (1-x)))^(1/gamma).
  The lift is a case where we actually would _not_ want linear light;
  since black by definition becomes equal to the lift color, we want lift to
  be pretty close to black, but in linear light that means lift affects the
  rest of the curve relatively little. Thus, we actually convert to gamma 2.2
  before lift, and then back again afterwards. (Gain and gamma are,
  up to constants, commutative with the de-gamma operation.)

parameters:
  - identifier: lift_r
    title: Lift Red
    type: float
    minimum: 0.0
    default: 0.0
    mutable: yes
    animation: yes

  - identifier: lift_g
    title: Lift Green
    type: float
    minimum: 0.0
    default: 0.0
    mutable: yes
    animation: yes

  - identifier: lift_b
    title: Lift Blue
    type: float
    minimum: 0.0
    default: 0.0
    mutable: yes
    animation: yes

  - identifier: gamma_r
    title: Gamma Red
    type: float
    minimum: 0.0
    default: 1.0
    mutable: yes
    animation: yes

  - identifier: gamma_g
    title: Gamma Green
    type: float
    minimum: 0.0
    default: 1.0
    mutable: yes
    animation: yes

  - identifier: gamma_b
    title: Gamma Blue
    type: float
    minimum: 0.0
    default: 1.0
    mutable: yes
    animation: yes

  - identifier: gain_r
    title: Gain Red
    type: float
    minimum: 0.0
    default: 1.0
    mutable: yes
    animation: yes

  - identifier: gain_g
    title: Gain Green
    type: float
    minimum: 0.0
    default: 1.0
    mutable: yes
    animation: yes

  - identifier: gain_b
    title: Gain Blue
    type: float
    minimum: 0.0
    default: 1.0
    mutable: yes
    animation: yes
