From 6923f7a1539fe62e58770b4316af9a38e781abec Mon Sep 17 00:00:00 2001 From: Zijun Zhou Date: Wed, 9 Aug 2023 18:00:45 +0200 Subject: [PATCH] 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 --- release/datafiles/colormanagement/config.ocio | 143 ++++++++++++++---- 1 file changed, 116 insertions(+), 27 deletions(-) diff --git a/release/datafiles/colormanagement/config.ocio b/release/datafiles/colormanagement/config.ocio index d54bfd9eb0d..b02e0b4a4b5 100644 --- a/release/datafiles/colormanagement/config.ocio +++ b/release/datafiles/colormanagement/config.ocio @@ -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: - ! @@ -74,7 +75,7 @@ colorspaces: - ! 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: ! {src: xyz_E_to_D65.spimtx, interpolation: linear} - ! - 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: ! children: @@ -97,12 +99,41 @@ colorspaces: - ! {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]} - ! - 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: ! + children: + - ! {src: Linear CIE-XYZ E, dst: Linear CIE-XYZ D65} + - ! {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]} + + - ! + 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: ! + children: + - ! {src: Linear CIE-XYZ E, dst: Linear CIE-XYZ D65} + - ! {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]} + + - ! + 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: ! children: @@ -110,12 +141,13 @@ colorspaces: - ! {style: "UTILITY - ACES-AP0_to_CIE-XYZ-D65_BFD", direction: inverse} - ! - 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: ! children: @@ -123,22 +155,79 @@ colorspaces: - ! {style: "UTILITY - ACES-AP1_to_CIE-XYZ-D65_BFD", direction: inverse} - ! - 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: ! children: - - ! {src: Linear CIE-XYZ E, dst: Linear} + - ! {src: Linear CIE-XYZ I-E, dst: Linear CIE-XYZ I-D65} + - ! {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} + + - ! + 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: ! + children: + - ! {src: Linear CIE-XYZ E, dst: Linear Rec.709} - ! {gamma: 2.4, offset: 0.055, direction: inverse} + - ! + 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: ! + children: + - ! {src: Linear CIE-XYZ E, dst: Linear DCI-P3 D65} + - ! {gamma: 2.4, offset: 0.055, direction: inverse} + + - ! + 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: ! + children: + - ! {src: Linear CIE-XYZ E, dst: Linear Rec.709} + - ! {gamma: 2.4, offset: 0, direction: inverse} + + - ! + 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: ! + children: + - ! {src: Linear CIE-XYZ E, dst: Linear Rec.2020} + - ! {gamma: 2.4, offset: 0, direction: inverse} + - ! 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: - ! name: Filmic Log - family: log + family: Log Encodings equalitygroup: bitdepth: 32f description: | @@ -155,18 +244,18 @@ colorspaces: isdata: false from_reference: ! children: - - ! {src: Linear CIE-XYZ E, dst: Linear} + - ! {src: Linear CIE-XYZ E, dst: Linear Rec.709} - ! {allocation: lg2, vars: [-12.473931188, 12.526068812]} - ! {src: filmic_desat65cube.spi3d, interpolation: best} - ! {allocation: uniform, vars: [0, 0.66]} to_scene_reference: ! children: - ! {allocation: lg2, vars: [-12.473931188, 4.026068812], direction: inverse} - - ! {src: Linear CIE-XYZ E, dst: Linear, direction: inverse} + - ! {src: Linear CIE-XYZ E, dst: Linear Rec.709, direction: inverse} - ! name: Filmic sRGB - family: + family: Filmic equalitygroup: bitdepth: 32f description: | @@ -179,7 +268,7 @@ colorspaces: - ! name: False Color - family: display + family: Filmic equalitygroup: bitdepth: 32f description: |