+ (dolbypq_1000nits_shaper_data,
+ dolbypq_1000nits_colorspaces) = create_shapers_dolbypq(aces_ctl_directory,
+ lut_directory,
+ lut_resolution_1d,
+ cleanup,
+ 'Dolby PQ 1000 nits Shaper',
+ 0.18,
+ -12.0,
+ 10.0)
+ colorspaces.extend(dolbypq_1000nits_colorspaces)
+ shaper_data.update(dolbypq_1000nits_shaper_data)
+
+ # Define the *Dolby PQ 2000 nits shaper*
+ #
+ (dolbypq_2000nits_shaper_data,
+ dolbypq_2000nits_colorspaces) = create_shapers_dolbypq(aces_ctl_directory,
+ lut_directory,
+ lut_resolution_1d,
+ cleanup,
+ 'Dolby PQ 2000 nits Shaper',
+ 0.18,
+ -12.0,
+ 11.0)
+ colorspaces.extend(dolbypq_2000nits_colorspaces)
+ shaper_data.update(dolbypq_2000nits_shaper_data)
+
+ # Define the *Dolby PQ 4000 nits shaper*
+ #
+ (dolbypq_4000nits_shaper_data,
+ dolbypq_4000nits_colorspaces) = create_shapers_dolbypq(aces_ctl_directory,
+ lut_directory,
+ lut_resolution_1d,
+ cleanup,
+ 'Dolby PQ 4000 nits Shaper',
+ 0.18,
+ -12.0,
+ 12.0)
+ colorspaces.extend(dolbypq_4000nits_colorspaces)
+ shaper_data.update(dolbypq_4000nits_shaper_data)
+
+ return shaper_data, colorspaces
+
+# -------------------------------------------------------------------------
+# *ODTs*
+# -------------------------------------------------------------------------
+def create_ODTs(aces_ctl_directory,
+ lut_directory,
+ lut_resolution_1d,
+ lut_resolution_3d,
+ odt_info,
+ shaper_name,
+ cleanup,
+ linear_display_space,
+ log_display_space):
+ """
+ Create ColorSpaces representing the *ACES Output Transforms*
+
+ Parameters
+ ----------
+ aces_ctl_directory : str or unicode
+ The path to the aces 'transforms/ctl/utilities'
+ lut_directory : str or unicode
+ The directory to use when generating LUTs
+ lut_resolution_1d : int
+ The resolution of generated 1D LUTs
+ lut_resolution_3d : int
+ The resolution of generated 3D LUTs
+ odt_info : dict
+ A collection of values that define the Output Transforms that need to be
+ generated
+ shaper_name : str or unicode, optional
+ The name of Shaper ColorSpace to use when generating LUTs
+ cleanup : bool
+ Whether or not to clean up the intermediate images
+ linear_display_space : lstr or unicode
+ The name of the ColorSpace to use for the raw or linear View
+ log_display_space : lstr or unicode
+ The name of the ColorSpace to use for the log View
+
+ Returns
+ -------
+ list of ColorSpaces
+ ColorSpaces representing the *ACES Output Transforms*
+ list of dicts
+ Collections of names and ColorSpaces corresponding to the Displays and
+ Views
+ """
+
+ colorspaces = []
+ displays = {}
+
+ # -------------------------------------------------------------------------
+ # *RRT / ODT* Shaper Options
+ # -------------------------------------------------------------------------
+ shaper_data, shaper_colorspaces = create_shapers(aces_ctl_directory,
+ lut_directory,
+ lut_resolution_1d,
+ cleanup)
+
+ colorspaces.extend(shaper_colorspaces)
+
+ # Assumes shaper has variants covering the range expected by the
+ # 48 nit, 1000 nit, 2000 nit and 4000 nit Ouput Transforms
+ rrt_shaper_48nits = shaper_data[shaper_name]
+ rrt_shaper_1000nits = shaper_data[shaper_name.replace("48 nits", "1000 nits")]
+ rrt_shaper_2000nits = shaper_data[shaper_name.replace("48 nits", "2000 nits")]
+ rrt_shaper_4000nits = shaper_data[shaper_name.replace("48 nits", "4000 nits")]