Skip to content

Commit 303eab4

Browse files
committed
Implement support for final ordering pass.
Signed-off-by: Thomas Mansencal <[email protected]>
1 parent 428fd11 commit 303eab4

File tree

2 files changed

+45
-7
lines changed

2 files changed

+45
-7
lines changed

opencolorio_config_aces/config/cg/generate/config.py

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -983,6 +983,7 @@ def yield_from_config_mapping():
983983
data.description = config_description_cg(build_configuration, describe)
984984

985985
# Colorspaces, Looks and View Transforms Filtering
986+
# ================================================
986987
transforms = data.colorspaces + data.view_transforms
987988
implicit_transforms = [
988989
a["name"] for a in transforms if a.get("transforms_data") is None
@@ -1024,6 +1025,7 @@ def filter_all(array, filterers):
10241025
return filtered
10251026

10261027
# "Colorspaces" Filtering
1028+
# =======================
10271029
any_colorspace_filterers = [
10281030
implicit_transform_filterer,
10291031
transform_filterer,
@@ -1040,6 +1042,7 @@ def filter_all(array, filterers):
10401042
)
10411043

10421044
# "Looks" Filtering
1045+
# =================
10431046
any_look_filterers = [
10441047
implicit_transform_filterer,
10451048
transform_filterer,
@@ -1051,6 +1054,7 @@ def filter_all(array, filterers):
10511054
LOGGER.info('Filtered "Look" transforms: %s ', [a["name"] for a in data.looks])
10521055

10531056
# "View Transform" Filtering
1057+
# ==========================
10541058
any_view_transform_filterers = [
10551059
implicit_transform_filterer,
10561060
transform_filterer,
@@ -1071,6 +1075,7 @@ def filter_all(array, filterers):
10711075
)
10721076

10731077
# "Views & Shared Views" Filtering
1078+
# ================================
10741079
display_names = [
10751080
a["name"] for a in data.colorspaces if a.get("family") == "Display"
10761081
]
@@ -1098,6 +1103,7 @@ def view_filterer(transform):
10981103
return False
10991104

11001105
# "Shared Views" Filtering
1106+
# ========================
11011107
any_shared_view_filterers = [
11021108
implicit_view_filterer,
11031109
view_filterer,
@@ -1124,15 +1130,18 @@ def view_filterer(transform):
11241130
LOGGER.info('Filtered "View(s)": %s.', [a["view"] for a in data.views])
11251131

11261132
# "Active Displays" Filtering
1133+
# ===========================
11271134
data.active_displays = [a for a in data.active_displays if a in display_names]
11281135
LOGGER.info("Filtered active displays: %s.", data.active_displays)
11291136

11301137
# "Active Views" Filtering
1138+
# ========================
11311139
views = [view["view"] for view in data.views]
11321140
data.active_views = [view for view in data.active_views if view in views]
11331141
LOGGER.info("Filtered active views: %s.", data.active_views)
11341142

11351143
# CLF Transforms & BuiltinTransform Creation
1144+
# ==========================================
11361145
for transform_data in yield_from_config_mapping():
11371146
# Inherited from the "Reference" config.
11381147
if (
@@ -1217,14 +1226,8 @@ def view_filterer(transform):
12171226
colorspace["transforms_data"] = [transform_data]
12181227
data.colorspaces.append(colorspace)
12191228

1220-
# Reordering the "Raw" colorspace for aesthetics.
1221-
data.colorspaces.extend(
1222-
data.colorspaces.pop(i)
1223-
for i, a in enumerate(data.colorspaces[:])
1224-
if a["name"] == "Raw"
1225-
)
1226-
12271229
# Inactive Colorspaces Filtering
1230+
# ==============================
12281231
colorspace_named_transform_names = [a["name"] for a in data.colorspaces]
12291232
inactive_colorspaces = []
12301233
for colorspace in data.inactive_colorspaces:
@@ -1243,6 +1246,7 @@ def view_filterer(transform):
12431246
]
12441247

12451248
# Roles Filtering & Update
1249+
# ========================
12461250
for role in (
12471251
# A config contains multiple possible "Rendering" color spaces.
12481252
ocio.ROLE_RENDERING,
@@ -1269,6 +1273,25 @@ def view_filterer(transform):
12691273
}
12701274
)
12711275

1276+
# Ordering
1277+
# ========
1278+
def ordering(element):
1279+
"""Return the ordering key for given element."""
1280+
1281+
return int(
1282+
next(iter(element.get("transforms_data", [{"ordering": 0}])))["ordering"]
1283+
)
1284+
1285+
data.colorspaces = sorted(data.colorspaces, key=lambda x: ordering(x))
1286+
data.colorspaces.extend(
1287+
data.colorspaces.pop(i)
1288+
for i, a in enumerate(data.colorspaces[:])
1289+
if a["name"] == "Raw"
1290+
)
1291+
data.named_transforms = sorted(data.named_transforms, key=lambda x: ordering(x))
1292+
data.view_transforms = sorted(data.view_transforms, key=lambda x: ordering(x))
1293+
data.looks = sorted(data.looks, key=lambda x: ordering(x))
1294+
12721295
data.profile_version = build_configuration.ocio
12731296

12741297
config = generate_config(data, config_name, validate)

opencolorio_config_aces/config/reference/generate/resources/OpenColorIO-Config-ACES Reference Transforms - v3 - Reference Config - Mapping.csv

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@ Ordering,ACEStransformID,Colorspace,Legacy,BuiltinTransform Style,Linked Display
44
100,urn:ampas:aces:transformId:v2.0:CSC.Academy.ACEScg_to_ACES.a2.v1,ACES - ACEScg,TRUE,ACEScg_to_ACES2065-1,,ColorSpace,scene-linear,"file-io,working-space,texture","acescg,lin_ap1,lin_ap1_scene,ACES - ACEScg"
55
100,urn:ampas:aces:transformId:v2.0:CSC.Academy.ADX10_to_ACES.a2.v1,Input - ADX - ADX10,TRUE,ADX10_to_ACES2065-1,,ColorSpace,log,file-io,adx10
66
100,urn:ampas:aces:transformId:v2.0:CSC.Academy.ADX16_to_ACES.a2.v1,Input - ADX - ADX16,TRUE,ADX16_to_ACES2065-1,,ColorSpace,log,file-io,adx16
7+
105,urn:ampas:aces:transformId:v2.0:CSC.Apple.AppleLog_BT2020_to_ACES.a2.v1,,FALSE,APPLE_LOG_to_ACES2065-1,,ColorSpace,log,file-io,
8+
110,urn:ampas:aces:transformId:v2.0:CSC.Arri.LogCv3_to_ACES.a2.v1,,FALSE,ARRI_ALEXA-LOGC-EI800-AWG_to_ACES2065-1,,ColorSpace,log,file-io,logc3ei800_alexawide
9+
110,urn:ampas:aces:transformId:v2.0:CSC.Arri.LogCv4_to_ACES.a2.v1,,FALSE,ARRI_LOGC4_to_ACES2065-1,,ColorSpace,log,file-io,
10+
130,urn:ampas:aces:transformId:v2.0:CSC.Panasonic.VLog_VGamut_to_ACES.a2.v1,,FALSE,PANASONIC_VLOG-VGAMUT_to_ACES2065-1,,ColorSpace,log,file-io,vlog_vgamut
11+
135,urn:ampas:aces:transformId:v2.0:CSC.Red.Log3G10_RWG_to_ACES.a2.v1,,FALSE,RED_LOG3G10-RWG_to_ACES2065-1,,ColorSpace,log,file-io,log3g10_rwg
12+
140,urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3_to_ACES.a2.v1,,FALSE,SONY_SLOG3-SGAMUT3_to_ACES2065-1,,ColorSpace,log,file-io,slog3_sgamut3
13+
140,urn:ampas:aces:transformId:v2.0:CSC.Sony.SLog3_SGamut3Cine_to_ACES.a2.v1,,FALSE,SONY_SLOG3-SGAMUT3.CINE_to_ACES2065-1,,ColorSpace,log,file-io,slog3_sgamut3cine
14+
140,urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3_to_ACES.a2.v1,,FALSE,SONY_SLOG3-SGAMUT3-VENICE_to_ACES2065-1,,ColorSpace,log,file-io,slog3_venice_sgamut3
15+
140,urn:ampas:aces:transformId:v2.0:CSC.Sony.Venice_SLog3_SGamut3Cine_to_ACES.a2.v1,,FALSE,SONY_SLOG3-SGAMUT3.CINE-VENICE_to_ACES2065-1,,ColorSpace,log,file-io,slog3_venice_sgamut3cine
716
300,urn:ampas:aces:transformId:v2.0:Look.Academy.ReferenceGamutCompress.a2.v1,,FALSE,ACES-LMT - ACES 1.3 Reference Gamut Compression,,Look,,,
817
400,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_108nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-108nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io,
918
400,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_2000nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io,
@@ -12,6 +21,9 @@ Ordering,ACEStransformID,Colorspace,Legacy,BuiltinTransform Style,Linked Display
1221
400,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_500nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io,
1322
400,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_48nit_in_P3-D65_Gamma2pt6.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65,ViewTransform,sdr-video,file-io,
1423
405,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io,
24+
410,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_300nit_in_XYZ-E_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-300nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-DCDM-D65,ViewTransform,hdr-video,file-io,
25+
410,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_48nit_in_XYZ-E_Gamma2pt6.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_DCDM-D65,ViewTransform,sdr-video,file-io,
26+
415,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_100nit_in_Rec709-D65_Gamma2pt2.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,DISPLAY - CIE-XYZ-D65_to_G2.2-REC.709,ViewTransform,sdr-video,file-io,
1527
415,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D65_100nit_in_Rec709-D65_sRGB-Piecewise.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0,DISPLAY - CIE-XYZ-D65_to_sRGB,ViewTransform,sdr-video,file-io,
1628
420,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_Rec2100-D65_HLG.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-HLG-1000nit,ViewTransform,hdr-video,file-io,
1729
420,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D65_1000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io,
@@ -33,6 +45,9 @@ Ordering,ACEStransformID,Colorspace,Legacy,BuiltinTransform Style,Linked Display
3345
450,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_48nit_in_P3-D65_Gamma2pt6.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65,ViewTransform,hdr-video,file-io,
3446
450,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_500nit_in_P3-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65,ViewTransform,hdr-video,file-io,
3547
450,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D60_48nit_in_P3-D65_Gamma2pt6.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-P3-D65_2.0,DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65,ViewTransform,sdr-video,file-io,
48+
455,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_300nit_in_XYZ-E_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-300nit-P3-D60-in-XYZ-E_2.0,DISPLAY - CIE-XYZ-D65_to_ST2084-DCDM-D65,ViewTransform,sdr-video,file-io,
49+
455,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_48nit_in_XYZ-E_Gamma2pt6.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D60-in-XYZ-E_2.0,DISPLAY - CIE-XYZ-D65_to_DCDM-D65,ViewTransform,hdr-video,file-io,
50+
460,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D60_100nit_in_Rec709-D65_Gamma2pt2.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-REC709-D65_2.0,DISPLAY - CIE-XYZ-D65_to_G2.2-REC.709,ViewTransform,sdr-video,file-io,
3651
460,urn:ampas:aces:transformId:v2.0:Output.Academy.Rec709-D60_100nit_in_Rec709-D65_sRGB-Piecewise.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-REC709-D65_2.0,DISPLAY - CIE-XYZ-D65_to_sRGB,ViewTransform,sdr-video,file-io,
3752
465,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_1000nit_in_Rec2100-D65_HLG.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-HLG-1000nit,ViewTransform,hdr-video,file-io,
3853
465,urn:ampas:aces:transformId:v2.0:Output.Academy.P3-D60_1000nit_in_Rec2100-D65_ST2084.a2.v1,,FALSE,ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-REC2020-D65_2.0,DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ,ViewTransform,hdr-video,file-io,

0 commit comments

Comments
 (0)