X-Git-Url: http://users.mur.at/ms/git/gitweb/?a=blobdiff_plain;f=aces_1.0.0%2Fpython%2Faces_ocio%2Fcolorspaces%2Faces.py;h=b69f0baf229847cbf26a7f2f865e4748e7533d0d;hb=529f7b361204176430ea0df642e4ec00a5c54ad7;hp=5ebf2d875d89403bcec9befc7cb5e8efb9c2c1bf;hpb=0d0a09d14fa1a46f7db2d6c17bb67bb773f60c68;p=OpenColorIO-Configs.git diff --git a/aces_1.0.0/python/aces_ocio/colorspaces/aces.py b/aces_1.0.0/python/aces_ocio/colorspaces/aces.py index 5ebf2d8..b69f0ba 100644 --- a/aces_1.0.0/python/aces_ocio/colorspaces/aces.py +++ b/aces_1.0.0/python/aces_ocio/colorspaces/aces.py @@ -16,7 +16,7 @@ import shutil import PyOpenColorIO as ocio -from aces_ocio.generate_lut import ( +from aces_ocio.lut import ( generate_1d_LUT_from_CTL, generate_3d_LUT_from_CTL, write_SPI_1d) @@ -34,16 +34,20 @@ __email__ = 'aces@oscars.org' __status__ = 'Production' __all__ = ['ACES_AP1_TO_AP0', + 'ACES_AP0_TO_AP1', 'ACES_AP0_TO_XYZ', + 'ACES_XYZ_TO_AP0', 'create_ACES', 'create_ACEScc', 'create_ACESproxy', 'create_ACEScg', 'create_ADX', - 'create_ACES_LMT', - 'create_ACES_RRT_plus_ODT', 'create_generic_log', + 'create_Dolby_PQ', + 'create_Dolby_PQ_scaled', + 'create_ACES_LMT', 'create_LMTs', + 'create_ACES_RRT_plus_ODT', 'create_ODTs', 'get_transform_info', 'get_ODTs_info', @@ -166,7 +170,7 @@ def create_ACEScc(aces_ctl_directory, 'interpolation': 'linear', 'direction': 'forward'}) - # *AP1* primaries to *AP0* primaries. + # *AP1* primaries to *AP0* primaries cs.to_reference_transforms.append({ 'type': 'matrix', 'matrix': mat44_from_mat33(ACES_AP1_TO_AP0), @@ -238,7 +242,7 @@ def create_ACESproxy(aces_ctl_directory, 'interpolation': 'linear', 'direction': 'forward'}) - # *AP1* primaries to *AP0* primaries. + # *AP1* primaries to *AP0* primaries cs.to_reference_transforms.append({ 'type': 'matrix', 'matrix': mat44_from_mat33(ACES_AP1_TO_AP0), @@ -251,11 +255,7 @@ def create_ACESproxy(aces_ctl_directory, # ------------------------------------------------------------------------- # *ACEScg* # ------------------------------------------------------------------------- -def create_ACEScg(aces_ctl_directory, - lut_directory, - lut_resolution_1d, - cleanup, - name='ACEScg'): +def create_ACEScg(): """ Creates the *ACEScg* colorspace. @@ -270,6 +270,8 @@ def create_ACEScg(aces_ctl_directory, *ACEScg* colorspace. """ + name = 'ACEScg' + cs = ColorSpace(name) cs.description = 'The %s color space' % name cs.aliases = ['acescg', 'lin_ap1'] @@ -283,7 +285,7 @@ def create_ACEScg(aces_ctl_directory, cs.to_reference_transforms = [] - # *AP1* primaries to *AP0* primaries. + # *AP1* primaries to *AP0* primaries cs.to_reference_transforms.append({ 'type': 'matrix', 'matrix': mat44_from_mat33(ACES_AP1_TO_AP0), @@ -291,7 +293,7 @@ def create_ACEScg(aces_ctl_directory, cs.from_reference_transforms = [] - # *AP1* primaries to *AP0* primaries. + # *AP1* primaries to *AP0* primaries cs.from_reference_transforms.append({ 'type': 'matrix', 'matrix': mat44_from_mat33(ACES_AP0_TO_AP1), @@ -304,7 +306,6 @@ def create_ACEScg(aces_ctl_directory, # *ADX* # ------------------------------------------------------------------------- def create_ADX(lut_directory, - lut_resolution_1d, bit_depth=10, name='ADX'): """ @@ -357,7 +358,8 @@ def create_ADX(lut_directory, 'offset': offset, 'direction': 'forward'}) - # Convert from Channel-Dependent Density to Channel-Independent Density + # Converting from *Channel-Dependent Density* to + # *Channel-Independent Density*. cs.to_reference_transforms.append({ 'type': 'matrix', 'matrix': [0.75573, 0.22197, 0.02230, 0, @@ -369,10 +371,10 @@ def create_ADX(lut_directory, # Copied from *Alex Fry*'s *adx_cid_to_rle.py* def create_CID_to_RLE_LUT(): - def interpolate_1D(x, xp, fp): + def interpolate_1d(x, xp, fp): return numpy.interp(x, xp, fp) - LUT_1D_xp = [-0.190000000000000, + LUT_1D_XP = [-0.190000000000000, 0.010000000000000, 0.028000000000000, 0.054000000000000, @@ -384,7 +386,7 @@ def create_ADX(lut_directory, 0.500000000000000, 0.600000000000000] - LUT_1D_fp = [-6.000000000000000, + LUT_1D_FP = [-6.000000000000000, -2.721718645000000, -2.521718645000000, -2.321718645000000, @@ -401,7 +403,7 @@ def create_ADX(lut_directory, def cid_to_rle(x): if x <= 0.6: - return interpolate_1D(x, LUT_1D_xp, LUT_1D_fp) + return interpolate_1d(x, LUT_1D_XP, LUT_1D_FP) return (100 / 55) * x - REF_PT def fit(value, from_min, from_max, to_min, to_max): @@ -457,7 +459,7 @@ def create_ADX(lut_directory, # ------------------------------------------------------------------------- -# *Generic Log Transform* +# Generic *Log* Transform # ------------------------------------------------------------------------- def create_generic_log(aces_ctl_directory, lut_directory, @@ -531,17 +533,17 @@ def create_generic_log(aces_ctl_directory, # ------------------------------------------------------------------------- -# *base Dolby PQ Transform* +# Base *Dolby PQ* Transform # ------------------------------------------------------------------------- -def create_dolbypq(aces_CTL_directory, - lut_directory, - lut_resolution_1d, - cleanup, - name='pq', - aliases=None, - min_value=0.0, - max_value=1.0, - input_scale=1.0): +def create_Dolby_PQ(aces_ctl_directory, + lut_directory, + lut_resolution_1d, + cleanup, + name='pq', + aliases=None, + min_value=0.0, + max_value=1.0, + input_scale=1.0): if aliases is None: aliases = [] @@ -553,7 +555,7 @@ def create_dolbypq(aces_CTL_directory, cs.is_data = False ctls = [os.path.join( - aces_CTL_directory, + aces_ctl_directory, 'utilities', 'ACESlib.DolbyPQ_to_Lin.a1.0.0.ctl')] lut = '%s_to_linear.spi1d' % name @@ -569,7 +571,7 @@ def create_dolbypq(aces_CTL_directory, 1.0, {}, cleanup, - aces_CTL_directory, + aces_ctl_directory, min_value, max_value) @@ -585,20 +587,20 @@ def create_dolbypq(aces_CTL_directory, # ------------------------------------------------------------------------- -# *Dolby PQ Transform that considers a fixed linear range* +# *Dolby PQ* Transform - Fixed Linear Range # ------------------------------------------------------------------------- -def create_dolbypq_scaled(aces_CTL_directory, - lut_directory, - lut_resolution_1d, - cleanup, - name='pq', - aliases=None, - min_value=0.0, - max_value=1.0, - input_scale=1.0, - middle_grey=0.18, - min_exposure=-6.0, - max_exposure=6.5): +def create_Dolby_PQ_scaled(aces_ctl_directory, + lut_directory, + lut_resolution_1d, + cleanup, + name='pq', + aliases=None, + min_value=0.0, + max_value=1.0, + input_scale=1.0, + middle_grey=0.18, + min_exposure=-6.0, + max_exposure=6.5): if aliases is None: aliases = [] @@ -610,7 +612,7 @@ def create_dolbypq_scaled(aces_CTL_directory, cs.is_data = False ctls = [os.path.join( - aces_CTL_directory, + aces_ctl_directory, 'utilities', 'ACESlib.DolbyPQ_to_lin_param.a1.0.0.ctl')] lut = '%s_to_linear.spi1d' % name @@ -628,7 +630,7 @@ def create_dolbypq_scaled(aces_CTL_directory, 'minExposure': min_exposure, 'maxExposure': max_exposure}, cleanup, - aces_CTL_directory, + aces_ctl_directory, min_value, max_value) @@ -644,14 +646,13 @@ def create_dolbypq_scaled(aces_CTL_directory, # ------------------------------------------------------------------------- -# *Individual LMT* +# Individual *LMT* # ------------------------------------------------------------------------- def create_ACES_LMT(lmt_name, lmt_values, shaper_info, aces_ctl_directory, lut_directory, - lut_resolution_1d=1024, lut_resolution_3d=64, cleanup=True, aliases=None): @@ -686,16 +687,15 @@ def create_ACES_LMT(lmt_name, # Generating the *shaper* transform. (shaper_name, - shaper_to_ACES_CTL, - shaper_from_ACES_CTL, + shaper_to_aces_ctl, + shaper_from_aces_ctl, shaper_input_scale, shaper_params) = shaper_info - # Add the shaper transform shaper_lut = '%s_to_linear.spi1d' % shaper_name shaper_lut = sanitize(shaper_lut) - shaper_OCIO_transform = { + shaper_ocio_transform = { 'type': 'lutFile', 'path': shaper_lut, 'interpolation': 'linear', @@ -705,7 +705,7 @@ def create_ACES_LMT(lmt_name, cs.from_reference_transforms = [] if 'transformCTL' in lmt_values: - ctls = [shaper_to_ACES_CTL % aces_ctl_directory, + ctls = [shaper_to_aces_ctl % aces_ctl_directory, os.path.join(aces_ctl_directory, lmt_values['transformCTL'])] lut = '%s.%s.spi3d' % (shaper_name, lmt_name) @@ -723,7 +723,7 @@ def create_ACES_LMT(lmt_name, cleanup, aces_ctl_directory) - cs.from_reference_transforms.append(shaper_OCIO_transform) + cs.from_reference_transforms.append(shaper_ocio_transform) cs.from_reference_transforms.append({ 'type': 'lutFile', 'path': lut, @@ -736,7 +736,8 @@ def create_ACES_LMT(lmt_name, if 'transformCTLInverse' in lmt_values: ctls = [os.path.join(aces_ctl_directory, lmt_values['transformCTLInverse']), - shaper_from_ACES_CTL % aces_ctl_directory] + shaper_from_aces_ctl % aces_ctl_directory] + # TODO: Investigate unresolved `odt_name` reference. lut = 'Inverse.%s.%s.spi3d' % (odt_name, shaper_name) lut = sanitize(lut) @@ -759,7 +760,7 @@ def create_ACES_LMT(lmt_name, 'interpolation': 'tetrahedral', 'direction': 'forward'}) - shaper_inverse = shaper_OCIO_transform.copy() + shaper_inverse = shaper_ocio_transform.copy() shaper_inverse['direction'] = 'forward' cs.to_reference_transforms.append(shaper_inverse) @@ -774,7 +775,6 @@ def create_LMTs(aces_ctl_directory, lut_resolution_1d, lut_resolution_3d, lmt_info, - shaper_name, cleanup): """ Object description. @@ -831,9 +831,9 @@ def create_LMTs(aces_ctl_directory, shaper_input_scale_generic_log2, lmt_params] - sorted_LMTs = sorted(lmt_info.iteritems(), key=lambda x: x[1]) - print(sorted_LMTs) - for lmt in sorted_LMTs: + sorted_lmts = sorted(lmt_info.iteritems(), key=lambda x: x[1]) + print(sorted_lmts) + for lmt in sorted_lmts: lmt_name, lmt_values = lmt lmt_aliases = ['look_%s' % compact(lmt_values['transformUserName'])] cs = create_ACES_LMT( @@ -842,7 +842,6 @@ def create_LMTs(aces_ctl_directory, lmt_shaper_data, aces_ctl_directory, lut_directory, - lmt_lut_resolution_1d, lmt_lut_resolution_3d, cleanup, lmt_aliases) @@ -859,7 +858,6 @@ def create_ACES_RRT_plus_ODT(odt_name, shaper_info, aces_ctl_directory, lut_directory, - lut_resolution_1d=1024, lut_resolution_3d=64, cleanup=True, aliases=None): @@ -894,8 +892,8 @@ def create_ACES_RRT_plus_ODT(odt_name, # Generating the *shaper* transform. (shaper_name, - shaper_to_ACES_CTL, - shaper_from_ACES_CTL, + shaper_to_aces_ctl, + shaper_from_aces_ctl, shaper_input_scale, shaper_params) = shaper_info @@ -904,11 +902,10 @@ def create_ACES_RRT_plus_ODT(odt_name, else: shaper_params['legalRange'] = 0 - # Add the shaper transform shaper_lut = '%s_to_linear.spi1d' % shaper_name shaper_lut = sanitize(shaper_lut) - shaper_OCIO_transform = { + shaper_ocio_transform = { 'type': 'lutFile', 'path': shaper_lut, 'interpolation': 'linear', @@ -918,20 +915,20 @@ def create_ACES_RRT_plus_ODT(odt_name, cs.from_reference_transforms = [] if 'transformLUT' in odt_values: - transform_LUT_file_name = os.path.basename( + transform_lut_file_name = os.path.basename( odt_values['transformLUT']) - lut = os.path.join(lut_directory, transform_LUT_file_name) + lut = os.path.join(lut_directory, transform_lut_file_name) shutil.copy(odt_values['transformLUT'], lut) - cs.from_reference_transforms.append(shaper_OCIO_transform) + cs.from_reference_transforms.append(shaper_ocio_transform) cs.from_reference_transforms.append({ 'type': 'lutFile', - 'path': transform_LUT_file_name, + 'path': transform_lut_file_name, 'interpolation': 'tetrahedral', 'direction': 'forward'}) elif 'transformCTL' in odt_values: ctls = [ - shaper_to_ACES_CTL % aces_ctl_directory, + shaper_to_aces_ctl % aces_ctl_directory, os.path.join(aces_ctl_directory, 'rrt', 'RRT.a1.0.0.ctl'), @@ -944,7 +941,6 @@ def create_ACES_RRT_plus_ODT(odt_name, generate_3d_LUT_from_CTL( os.path.join(lut_directory, lut), - # shaperLUT, ctls, lut_resolution_3d, 'float', @@ -954,7 +950,7 @@ def create_ACES_RRT_plus_ODT(odt_name, cleanup, aces_ctl_directory) - cs.from_reference_transforms.append(shaper_OCIO_transform) + cs.from_reference_transforms.append(shaper_ocio_transform) cs.from_reference_transforms.append({ 'type': 'lutFile', 'path': lut, @@ -965,18 +961,18 @@ def create_ACES_RRT_plus_ODT(odt_name, cs.to_reference_transforms = [] if 'transformLUTInverse' in odt_values: - transform_LUT_inverse_file_name = os.path.basename( + transform_lut_inverse_file_name = os.path.basename( odt_values['transformLUTInverse']) - lut = os.path.join(lut_directory, transform_LUT_inverse_file_name) + lut = os.path.join(lut_directory, transform_lut_inverse_file_name) shutil.copy(odt_values['transformLUTInverse'], lut) cs.to_reference_transforms.append({ 'type': 'lutFile', - 'path': transform_LUT_inverse_file_name, + 'path': transform_lut_inverse_file_name, 'interpolation': 'tetrahedral', 'direction': 'forward'}) - shaper_inverse = shaper_OCIO_transform.copy() + shaper_inverse = shaper_ocio_transform.copy() shaper_inverse['direction'] = 'forward' cs.to_reference_transforms.append(shaper_inverse) elif 'transformCTLInverse' in odt_values: @@ -986,14 +982,13 @@ def create_ACES_RRT_plus_ODT(odt_name, os.path.join(aces_ctl_directory, 'rrt', 'InvRRT.a1.0.0.ctl'), - shaper_from_ACES_CTL % aces_ctl_directory] + shaper_from_aces_ctl % aces_ctl_directory] lut = 'InvRRT.a1.0.0.%s.%s.spi3d' % (odt_name, shaper_name) lut = sanitize(lut) generate_3d_LUT_from_CTL( os.path.join(lut_directory, lut), - # None, ctls, lut_resolution_3d, 'half', @@ -1009,7 +1004,7 @@ def create_ACES_RRT_plus_ODT(odt_name, 'interpolation': 'tetrahedral', 'direction': 'forward'}) - shaper_inverse = shaper_OCIO_transform.copy() + shaper_inverse = shaper_ocio_transform.copy() shaper_inverse['direction'] = 'forward' cs.to_reference_transforms.append(shaper_inverse) @@ -1089,7 +1084,8 @@ def create_ODTs(aces_ctl_directory, # Space with a more user-friendly name. Direct copy otherwise. log2_shaper_copy_name = 'Log2 Shaper' log2_shaper_copy_colorspace = ColorSpace(log2_shaper_copy_name) - log2_shaper_copy_colorspace.description = 'The %s color space' % log2_shaper_copy_name + log2_shaper_copy_colorspace.description = ( + 'The %s color space' % log2_shaper_copy_name) log2_shaper_copy_colorspace.aliases = [ 'crv_%s' % compact(log2_shaper_copy_name)] log2_shaper_copy_colorspace.equality_group = log2_shaper_copy_name @@ -1104,7 +1100,8 @@ def create_ODTs(aces_ctl_directory, # Defining the *Log2 shaper that includes the AP1* primaries. log2_shaper_api1_name = '%s - AP1' % 'Log2 Shaper' log2_shaper_api1_colorspace = ColorSpace(log2_shaper_api1_name) - log2_shaper_api1_colorspace.description = 'The %s color space' % log2_shaper_api1_name + log2_shaper_api1_colorspace.description = ( + 'The %s color space' % log2_shaper_api1_name) log2_shaper_api1_colorspace.aliases = [ '%s_ap1' % compact(log2_shaper_copy_name)] log2_shaper_api1_colorspace.equality_group = log2_shaper_api1_name @@ -1115,7 +1112,7 @@ def create_ODTs(aces_ctl_directory, log2_shaper_api1_colorspace.from_reference_transforms = list( log2_shaper_colorspace.from_reference_transforms) - # *AP1* primaries to *AP0* primaries. + # *AP1* primaries to *AP0* primaries log2_shaper_api1_colorspace.to_reference_transforms.append({ 'type': 'matrix', 'matrix': mat44_from_mat33(ACES_AP1_TO_AP0), @@ -1123,11 +1120,12 @@ def create_ODTs(aces_ctl_directory, }) colorspaces.append(log2_shaper_api1_colorspace) - # Defining the *Log2 shaper that includes the AP1* primaries. - # Named with 'shaper_name' variable. Needed for some LUT baking steps. + # Defining the *Log2* shaper that includes the *AP1* primaries. + # Named with `shaper_name` variable and needed for some *LUT* baking steps. shaper_api1_name = '%s - AP1' % shaper_name shaper_api1_colorspace = ColorSpace(shaper_api1_name) - shaper_api1_colorspace.description = 'The %s color space' % shaper_api1_name + shaper_api1_colorspace.description = ( + 'The %s color space' % shaper_api1_name) shaper_api1_colorspace.aliases = ['%s_ap1' % compact(shaper_name)] shaper_api1_colorspace.equality_group = shaper_api1_name shaper_api1_colorspace.family = log2_shaper_colorspace.family @@ -1140,21 +1138,21 @@ def create_ODTs(aces_ctl_directory, # Define the base *Dolby PQ Shaper* # - dolbypq_shaper_name = 'Dolby PQ 10000' + dolby_pq_shaper_name = 'Dolby PQ 10000' dolbypq_shaper_name_aliases = ['crv_%s' % 'dolbypq_10000'] - dolbypq_shaper_colorspace = create_dolbypq( + dolbypq_shaper_colorspace = create_Dolby_PQ( aces_ctl_directory, lut_directory, lut_resolution_1d, cleanup, - name=dolbypq_shaper_name, + name=dolby_pq_shaper_name, aliases=dolbypq_shaper_name_aliases) colorspaces.append(dolbypq_shaper_colorspace) # *Dolby PQ* shaper name and *CTL* transforms bundled up. dolbypq_shaper_data = [ - dolbypq_shaper_name, + dolby_pq_shaper_name, os.path.join('%s', 'utilities', 'ACESlib.DolbyPQ_to_Lin.a1.0.0.ctl'), @@ -1164,25 +1162,24 @@ def create_ODTs(aces_ctl_directory, 1.0, {}] - shaper_data[dolbypq_shaper_name] = dolbypq_shaper_data + shaper_data[dolby_pq_shaper_name] = dolbypq_shaper_data # Define the *Dolby PQ Shaper that considers a fixed linear range* - # - dolbypq_scaled_shaper_name = 'Dolby PQ Scaled' + dolby_pq_scaled_shaper_name = 'Dolby PQ Scaled' dolbypq_scaled_shaper_name_aliases = ['crv_%s' % 'dolbypq_scaled'] - dolbypq_scaled_shaper_colorspace = create_dolbypq_scaled( + dolbypq_scaled_shaper_colorspace = create_Dolby_PQ_scaled( aces_ctl_directory, lut_directory, lut_resolution_1d, cleanup, - name=dolbypq_scaled_shaper_name, + name=dolby_pq_scaled_shaper_name, aliases=dolbypq_scaled_shaper_name_aliases) colorspaces.append(dolbypq_scaled_shaper_colorspace) # *Dolby PQ* shaper name and *CTL* transforms bundled up. dolbypq_scaled_shaper_data = [ - dolbypq_scaled_shaper_name, + dolby_pq_scaled_shaper_name, os.path.join('%s', 'utilities', 'ACESlib.DolbyPQ_to_Lin_param.a1.0.0.ctl'), @@ -1192,11 +1189,8 @@ def create_ODTs(aces_ctl_directory, 1.0, log2_params] - shaper_data[dolbypq_scaled_shaper_name] = dolbypq_scaled_shaper_data + shaper_data[dolby_pq_scaled_shaper_name] = dolbypq_scaled_shaper_data - # - # Pick a specific shaper - # rrt_shaper = log2_shaper_data # rrt_shaper = dolbypq_scaled_shaper_data @@ -1206,11 +1200,12 @@ def create_ODTs(aces_ctl_directory, for odt in sorted_odts: (odt_name, odt_values) = odt - # Generating only full range transform for *ODTs* that can generate + # Defining full range transform for *ODTs* that can only generate # either *legal* or *full* output. - # Uncomment these lines and the lower section and flip the 'legalRange' value to 1 - # to recover the old behavior, where both legal and full range LUTs were generated + # Uncomment these lines and the lower section and + # flip the `legalRange` value to 1 to restore the old behavior, + # where both *legal* or *full* range *LUTs* were generated. if odt_values['transformHasFullLegalSwitch']: # odt_name_legal = '%s - Legal' % odt_values['transformUserName'] odt_legal['legalRange'] = 0 @@ -1229,7 +1224,6 @@ def create_ODTs(aces_ctl_directory, rrt_shaper, aces_ctl_directory, lut_directory, - lut_resolution_1d, lut_resolution_3d, cleanup, odt_aliases) @@ -1270,7 +1264,7 @@ def create_ODTs(aces_ctl_directory, 'Output Transform': cs_full} """ - return (colorspaces, displays) + return colorspaces, displays def get_transform_info(ctl_transform): @@ -1298,7 +1292,8 @@ def get_transform_info(ctl_transform): transform_user_name_prefix = ( lines[2][3:].split('<')[1].split('>')[1].split('-')[0].strip()) - # Figuring out if this transform has options for processing full and legal range + # Figuring out if this transform has options for processing *full* and + # *legal* ranges. transform_full_legal_switch = False for line in lines: if line.strip() == 'input varying int legalRange = 0': @@ -1306,7 +1301,9 @@ def get_transform_info(ctl_transform): transform_full_legal_switch = True break - return (transform_id, transform_user_name, transform_user_name_prefix, + return (transform_id, + transform_user_name, + transform_user_name_prefix, transform_full_legal_switch) @@ -1335,13 +1332,13 @@ def get_ODTs_info(aces_ctl_directory): for fname in file_list: all_odt.append((os.path.join(dir_name, fname))) - odt_CTLs = [x for x in all_odt if + odt_ctls = [x for x in all_odt if ('InvODT' not in x) and (os.path.split(x)[-1][0] != '.')] odts = {} - for odt_CTL in odt_CTLs: - odt_tokens = os.path.split(odt_CTL) + for odt_ctl in odt_ctls: + odt_tokens = os.path.split(odt_ctl) # Handling nested directories. odt_path_tokens = os.path.split(odt_tokens[-2]) @@ -1350,48 +1347,48 @@ def get_ODTs_info(aces_ctl_directory): odt_path_tokens = os.path.split(odt_path_tokens[-2]) odt_dir = os.path.join(odt_path_tokens[-1], odt_dir) - # Building full name, - transform_CTL = odt_tokens[-1] - odt_name = string.join(transform_CTL.split('.')[1:-1], '.') + # Building full name. + transform_ctl = odt_tokens[-1] + odt_name = string.join(transform_ctl.split('.')[1:-1], '.') # Finding id, user name and user name prefix. - (transform_ID, + (transform_id, transform_user_name, transform_user_name_prefix, transform_full_legal_switch) = get_transform_info( - os.path.join(aces_ctl_directory, 'odt', odt_dir, transform_CTL)) + os.path.join(aces_ctl_directory, 'odt', odt_dir, transform_ctl)) # Finding inverse. - transform_CTL_inverse = 'InvODT.%s.ctl' % odt_name + transform_ctl_inverse = 'InvODT.%s.ctl' % odt_name if not os.path.exists( - os.path.join(odt_tokens[-2], transform_CTL_inverse)): - transform_CTL_inverse = None + os.path.join(odt_tokens[-2], transform_ctl_inverse)): + transform_ctl_inverse = None - # Add to list of ODTs + # Adding to list of *ODTs*. odts[odt_name] = {} - odts[odt_name]['transformCTL'] = os.path.join(odt_dir, transform_CTL) - if transform_CTL_inverse is not None: + odts[odt_name]['transformCTL'] = os.path.join(odt_dir, transform_ctl) + if transform_ctl_inverse is not None: odts[odt_name]['transformCTLInverse'] = os.path.join( - odt_dir, transform_CTL_inverse) + odt_dir, transform_ctl_inverse) - odts[odt_name]['transformID'] = transform_ID + odts[odt_name]['transformID'] = transform_id odts[odt_name]['transformUserNamePrefix'] = transform_user_name_prefix odts[odt_name]['transformUserName'] = transform_user_name odts[odt_name][ 'transformHasFullLegalSwitch'] = transform_full_legal_switch - forward_CTL = odts[odt_name]['transformCTL'] + forward_ctl = odts[odt_name]['transformCTL'] print('ODT : %s' % odt_name) - print('\tTransform ID : %s' % transform_ID) + print('\tTransform ID : %s' % transform_id) print('\tTransform User Name Prefix : %s' % transform_user_name_prefix) print('\tTransform User Name : %s' % transform_user_name) print( '\tHas Full / Legal Switch : %s' % transform_full_legal_switch) - print('\tForward ctl : %s' % forward_CTL) + print('\tForward ctl : %s' % forward_ctl) if 'transformCTLInverse' in odts[odt_name]: - inverse_CTL = odts[odt_name]['transformCTLInverse'] - print('\tInverse ctl : %s' % inverse_CTL) + inverse_ctl = odts[odt_name]['transformCTLInverse'] + print('\tInverse ctl : %s' % inverse_ctl) else: print('\tInverse ctl : %s' % 'None') @@ -1426,14 +1423,14 @@ def get_LMTs_info(aces_ctl_directory): for fname in file_list: all_lmt.append((os.path.join(dir_name, fname))) - lmt_CTLs = [x for x in all_lmt if + lmt_ctls = [x for x in all_lmt if ('InvLMT' not in x) and ('README' not in x) and ( os.path.split(x)[-1][0] != '.')] lmts = {} - for lmt_CTL in lmt_CTLs: - lmt_tokens = os.path.split(lmt_CTL) + for lmt_ctl in lmt_ctls: + lmt_tokens = os.path.split(lmt_ctl) # Handlimg nested directories. lmt_path_tokens = os.path.split(lmt_tokens[-2]) @@ -1447,38 +1444,38 @@ def get_LMTs_info(aces_ctl_directory): lmt_name = string.join(transform_CTL.split('.')[1:-1], '.') # Finding id, user name and user name prefix. - (transform_ID, + (transform_id, transform_user_name, transform_user_name_prefix, transform_full_legal_switch) = get_transform_info( os.path.join(aces_ctl_directory, lmt_dir, transform_CTL)) # Finding inverse. - transform_CTL_inverse = 'InvLMT.%s.ctl' % lmt_name + transform_ctl_inverse = 'InvLMT.%s.ctl' % lmt_name if not os.path.exists( - os.path.join(lmt_tokens[-2], transform_CTL_inverse)): - transform_CTL_inverse = None + os.path.join(lmt_tokens[-2], transform_ctl_inverse)): + transform_ctl_inverse = None lmts[lmt_name] = {} lmts[lmt_name]['transformCTL'] = os.path.join(lmt_dir, transform_CTL) - if transform_CTL_inverse is not None: + if transform_ctl_inverse is not None: lmts[lmt_name]['transformCTLInverse'] = os.path.join( - lmt_dir, transform_CTL_inverse) + lmt_dir, transform_ctl_inverse) - lmts[lmt_name]['transformID'] = transform_ID + lmts[lmt_name]['transformID'] = transform_id lmts[lmt_name]['transformUserNamePrefix'] = transform_user_name_prefix lmts[lmt_name]['transformUserName'] = transform_user_name - forward_CTL = lmts[lmt_name]['transformCTL'] + forward_ctl = lmts[lmt_name]['transformCTL'] print('LMT : %s' % lmt_name) - print('\tTransform ID : %s' % transform_ID) + print('\tTransform ID : %s' % transform_id) print('\tTransform User Name Prefix : %s' % transform_user_name_prefix) print('\tTransform User Name : %s' % transform_user_name) - print('\t Forward ctl : %s' % forward_CTL) + print('\t Forward ctl : %s' % forward_ctl) if 'transformCTLInverse' in lmts[lmt_name]: - inverse_CTL = lmts[lmt_name]['transformCTLInverse'] - print('\t Inverse ctl : %s' % inverse_CTL) + inverse_ctl = lmts[lmt_name]['transformCTLInverse'] + print('\t Inverse ctl : %s' % inverse_ctl) else: print('\t Inverse ctl : %s' % 'None') @@ -1522,14 +1519,13 @@ def create_colorspaces(aces_ctl_directory, lut_resolution_1d, cleanup) colorspaces.append(ACESproxy) - ACEScg = create_ACEScg(aces_ctl_directory, lut_directory, - lut_resolution_1d, cleanup) + ACEScg = create_ACEScg() colorspaces.append(ACEScg) - ADX10 = create_ADX(lut_directory, lut_resolution_1d, bit_depth=10) + ADX10 = create_ADX(lut_directory, bit_depth=10) colorspaces.append(ADX10) - ADX16 = create_ADX(lut_directory, lut_resolution_1d, bit_depth=16) + ADX16 = create_ADX(lut_directory, bit_depth=16) colorspaces.append(ADX16) lmts = create_LMTs(aces_ctl_directory, @@ -1537,7 +1533,6 @@ def create_colorspaces(aces_ctl_directory, lut_resolution_1d, lut_resolution_3d, lmt_info, - shaper_name, cleanup) colorspaces.extend(lmts) @@ -1552,8 +1547,8 @@ def create_colorspaces(aces_ctl_directory, ACEScc) colorspaces.extend(odts) - # Wish there was an automatic way to get this from the CTL - defaultDisplay = 'sRGB (D60 sim.)' + # TODO: Investigate if there is a way to retrieve the value from *CTL*. + default_display = 'sRGB (D60 sim.)' roles = {'color_picking': ACEScg.name, 'color_timing': ACEScc.name, @@ -1565,4 +1560,4 @@ def create_colorspaces(aces_ctl_directory, 'scene_linear': ACEScg.name, 'texture_paint': ''} - return ACES, colorspaces, displays, ACEScc, roles, defaultDisplay + return ACES, colorspaces, displays, ACEScc, roles, default_display