Color management: Add and Rename Colorspaces

This is the next step towards AgX view transform project.

This is a sanitization pass over the existing color space names, as well as
addition of some new spaces. For example, the name Linear makes no sense when
there are a bunch of Linear spaces. An aliases are included for backwards
compatibility.

Some of the space descriptions and family tags are also updated., which also
involves in putting `False Color` to `inactive_colorspaces` instead of using
`family: display` filtering.

The spaces are now:

- Linear components of the display spaces
  - Linear Rec.709
  - Linear DCI-P3 D65
  - Linear Rec.2020
- Linear ACES spaces
  - ACES2065-1
  - ACEScg (Changed from `Linear ACEScg` to `ACEScg` since ACEScg already
    implied a linear transfer function, otherwise using `Linear AP1 ACES`
    might make more sense. Same goes for ACES2065-1)
- Linear FilmLight E-Gamut
  This is for AgX's LUT input encoding. It can potentially be useful for interop.
- Display spaces
  - sRGB
  - Display P3
  - Rec.1886
  - Rec.2020
- Filmic Components
  - Filmic Log
  - Filmic sRGB
  - False Color

Ref #110685

Pull Request: https://projects.blender.org/blender/blender/pulls/110941
This commit is contained in:
Zijun Zhou 2023-08-09 18:00:45 +02:00 committed by Sergey Sharybin
parent d5b2960a07
commit 6923f7a153
1 changed files with 116 additions and 27 deletions

View File

@ -21,14 +21,14 @@ roles:
reference: Linear CIE-XYZ E
# Internal scene linear space
scene_linear: Linear
rendering: Linear
scene_linear: Linear Rec.709
rendering: Linear Rec.709
# Default color space for byte image
default_byte: sRGB
# Default color space for float images
default_float: Linear
default_float: Linear Rec.709
# Default color space sequencer is working in
default_sequencer: sRGB
@ -40,15 +40,15 @@ roles:
data: Non-Color
# For interop between configs, and to determine XYZ for rendering
aces_interchange: Linear ACES
aces_interchange: ACES2065-1
cie_xyz_d65_interchange: Linear CIE-XYZ D65
# Specified by OCIO, not used in Blender
color_timing: Filmic Log
compositing_log: Filmic Log
default: Linear
matte_paint: Linear
texture_paint: Linear
default: Linear Rec.709
matte_paint: Linear Rec.709
texture_paint: Linear Rec.709
displays:
sRGB:
@ -60,6 +60,7 @@ displays:
active_displays: [sRGB]
active_views: [Standard, Filmic, Filmic Log, False Color, Raw]
inactive_colorspaces: [False Color]
colorspaces:
- !<ColorSpace>
@ -74,7 +75,7 @@ colorspaces:
- !<ColorSpace>
name: Linear CIE-XYZ D65
aliases: [cie_xyz_d65, CIE-XYZ-D65, XYZ, Linear CIE-XYZ D65]
aliases: [cie_xyz_d65, CIE-XYZ-D65, XYZ, Linear CIE-XYZ I-D65]
family: Chromaticity
equalitygroup:
bitdepth: 32f
@ -84,12 +85,13 @@ colorspaces:
from_scene_reference: !<FileTransform> {src: xyz_E_to_D65.spimtx, interpolation: linear}
- !<ColorSpace>
name: Linear
family: linear
name: Linear Rec.709
aliases: [Linear, Linear BT.709, Linear BT.709 I-D65, Linear Tristimulus, linrec709, Utility - Linear - sRGB, Utility - Linear - Rec.709, lin_srgb, Linear Rec.709 (sRGB), lin_rec709_srgb, lin_rec709, lin_srgb, "CGI: Linear - Rec.709"]
family: Linear
equalitygroup:
bitdepth: 32f
description: |
Rec. 709 (Full Range), Blender native linear space
Linear BT.709 with illuminant D65 white point
isdata: false
from_scene_reference: !<GroupTransform>
children:
@ -97,12 +99,41 @@ colorspaces:
- !<MatrixTransform> {matrix: [ 3.2410032329763587, -1.5373989694887855, -0.4986158819963629, 0, -0.9692242522025164, 1.8759299836951759, 0.0415542263400847, 0, 0.0556394198519755, -0.2040112061239099, 1.0571489771875333, 0, 0, 0, 0, 1]}
- !<ColorSpace>
name: Linear ACES
family: linear
name: Linear DCI-P3 D65
aliases: [Linear DCI-P3 I-D65, Linear P3-D65, lin_p3d65, Utility - Linear - P3-D65, Apple DCI-P3 D65]
family: Linear
equalitygroup:
bitdepth: 32f
description: |
ACES2065-1 linear space
Linear DCI-P3 with illuminant D65 white point
isdata: false
from_scene_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear CIE-XYZ E, dst: Linear CIE-XYZ D65}
- !<MatrixTransform> {matrix: [2.4935091239346101, -0.9313881794047790, -0.4027127567416516, 0, -0.8294732139295544, 1.7626305796003032, 0.0236242371055886, 0, 0.0358512644339181, -0.0761839369220759, 0.9570295866943110, 0, 0, 0, 0, 1]}
- !<ColorSpace>
name: Linear Rec.2020
aliases: [Linear BT.2020 I-D65, Linear BT.2020, lin_rec2020, Utility - Linear - Rec.2020]
family: Linear
equalitygroup:
bitdepth: 32f
description: |
Linear BT.2020 with illuminant D65 white point
isdata: false
from_scene_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear CIE-XYZ E, dst: Linear CIE-XYZ D65}
- !<MatrixTransform> {matrix: [ 1.7166634277958805, -0.3556733197301399, -0.2533680878902478, 0, -0.6666738361988869, 1.6164557398246981, 0.0157682970961337, 0, 0.0176424817849772, -0.0427769763827532, 0.9422432810184308, 0, 0, 0, 0, 1]}
- !<ColorSpace>
name: ACES2065-1
aliases: [Linear ACES, aces2065_1, ACES - ACES2065-1, lin_ap0, "ACES: Linear - AP0"]
family: Linear
equalitygroup:
bitdepth: 32f
description: |
Linear AP0 with ACES white point
isdata: false
from_reference: !<GroupTransform>
children:
@ -110,12 +141,13 @@ colorspaces:
- !<BuiltinTransform> {style: "UTILITY - ACES-AP0_to_CIE-XYZ-D65_BFD", direction: inverse}
- !<ColorSpace>
name: Linear ACEScg
family: linear
name: ACEScg
aliases: [Linear ACEScg, lin_ap1, ACES - ACEScg, "ACEScg: Linear - AP1"]
family: Linear
equalitygroup:
bitdepth: 32f
description: |
ACEScg linear space
Linear AP1 with ACES white point
isdata: false
from_reference: !<GroupTransform>
children:
@ -123,22 +155,79 @@ colorspaces:
- !<BuiltinTransform> {style: "UTILITY - ACES-AP1_to_CIE-XYZ-D65_BFD", direction: inverse}
- !<ColorSpace>
name: sRGB
family:
name: Linear FilmLight E-Gamut
aliases: [Linear E-Gamut I-D65, "FilmLight: Linear - E-Gamut"]
family: Linear
equalitygroup:
bitdepth: 32f
description: |
sRGB display space
Linear E-Gamut with illuminant D65 white point
isdata: false
from_scene_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear CIE-XYZ E, dst: Linear}
- !<ColorSpaceTransform> {src: Linear CIE-XYZ I-E, dst: Linear CIE-XYZ I-D65}
- !<MatrixTransform> {matrix: [ 0.7053968501, 0.1640413283, 0.08101774865, 0, 0.2801307241, 0.8202066415, -0.1003373656, 0, -0.1037815116, -0.07290725703, 1.265746519, 0, 0, 0, 0, 1], direction: inverse}
- !<ColorSpace>
name: sRGB
aliases: [sRGB 2.2, sRGB I-D65, srgb_display, sRGB - Display, g22_rec709, Utility - Gamma 2.2 - Rec.709 - Texture, Utility - sRGB - Texture, sRGB - Texture, srgb_tx, srgb_texture, Input - Generic - sRGB - Texture, "sRGB Display: 2.2 Gamma - Rec.709"]
family: Display
equalitygroup:
bitdepth: 32f
description: |
sRGB IEC 61966-2-1 compound (piece-wise) encoding
isdata: false
from_scene_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear CIE-XYZ E, dst: Linear Rec.709}
- !<ExponentWithLinearTransform> {gamma: 2.4, offset: 0.055, direction: inverse}
- !<ColorSpace>
name: Display P3
aliases: [Display P3 2.2, Display P3 I-D65, P3-D65 - Display, p3_d65_display, p3d65_display, AppleP3 sRGB OETF]
family: Display
equalitygroup:
bitdepth: 32f
description: |
Apple's Display P3 with sRGB compound (piece-wise) encoding transfer function, common on Mac devices
isdata: false
from_scene_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear CIE-XYZ E, dst: Linear DCI-P3 D65}
- !<ExponentWithLinearTransform> {gamma: 2.4, offset: 0.055, direction: inverse}
- !<ColorSpace>
name: Rec.1886
aliases: [BT.1886, BT.1886 2.4, BT.1886 EOTF, BT.1886 I-D65, Rec.1886 / Rec.709 Video - Display, rec1886_rec709_video_display, Rec.1886 Rec.709 - Display, rec1886_rec709_display, "Rec1886: 2.4 Gamma - Rec.709"]
family: Display
equalitygroup:
bitdepth: 32f
description: |
BT.1886 2.4 Exponent EOTF Display, commonly used for TVs
isdata: false
from_scene_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear CIE-XYZ E, dst: Linear Rec.709}
- !<ExponentWithLinearTransform> {gamma: 2.4, offset: 0, direction: inverse}
- !<ColorSpace>
name: Rec.2020
aliases: [BT.2020, BT.2020 2.4, BT.2020 I-D65, Rec.1886 / Rec.2020 Video - Display, rec1886_rec2020_video_display, Rec.1886 Rec.2020 - Display, rec1886_rec2020_display, "Rec1886: 2.4 Gamma - Rec.2020"]
family: Display
equalitygroup:
bitdepth: 32f
description: |
BT.2020 2.4 Exponent EOTF Display
isdata: false
from_scene_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear CIE-XYZ E, dst: Linear Rec.2020}
- !<ExponentWithLinearTransform> {gamma: 2.4, offset: 0, direction: inverse}
- !<ColorSpace>
name: Non-Color
aliases: [Generic Data, Non-Colour Data, Raw, Utility - Raw]
family: raw
family: Data
description: |
Generic data that is not color, will not apply any color transform (e.g. normal maps)
equalitygroup:
@ -147,7 +236,7 @@ colorspaces:
- !<ColorSpace>
name: Filmic Log
family: log
family: Log Encodings
equalitygroup:
bitdepth: 32f
description: |
@ -155,18 +244,18 @@ colorspaces:
isdata: false
from_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: Linear CIE-XYZ E, dst: Linear}
- !<ColorSpaceTransform> {src: Linear CIE-XYZ E, dst: Linear Rec.709}
- !<AllocationTransform> {allocation: lg2, vars: [-12.473931188, 12.526068812]}
- !<FileTransform> {src: filmic_desat65cube.spi3d, interpolation: best}
- !<AllocationTransform> {allocation: uniform, vars: [0, 0.66]}
to_scene_reference: !<GroupTransform>
children:
- !<AllocationTransform> {allocation: lg2, vars: [-12.473931188, 4.026068812], direction: inverse}
- !<ColorSpaceTransform> {src: Linear CIE-XYZ E, dst: Linear, direction: inverse}
- !<ColorSpaceTransform> {src: Linear CIE-XYZ E, dst: Linear Rec.709, direction: inverse}
- !<ColorSpace>
name: Filmic sRGB
family:
family: Filmic
equalitygroup:
bitdepth: 32f
description: |
@ -179,7 +268,7 @@ colorspaces:
- !<ColorSpace>
name: False Color
family: display
family: Filmic
equalitygroup:
bitdepth: 32f
description: |