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 = [] cs = ColorSpace(name) cs.description = 'The %s color space' % name cs.aliases = aliases cs.equality_group = name cs.family = 'Utility' cs.is_data = False ctls = [os.path.join( aces_ctl_directory, 'utilities', 'ACESlib.OCIOShaper_to_lin_param.a1.0.0.ctl')] lut = '%s_to_linear.spi1d' % name lut = sanitize(lut) generate_1d_LUT_from_CTL( os.path.join(lut_directory, lut), ctls, lut_resolution_1d, 'float', input_scale, 1.0, {'middleGrey': middle_grey, 'minExposure': min_exposure, 'maxExposure': max_exposure}, cleanup, aces_ctl_directory, min_value, max_value) cs.to_reference_transforms = [] cs.to_reference_transforms.append({ 'type': 'lutFile', 'path': lut, 'interpolation': 'linear', 'direction': 'forward'}) cs.from_reference_transforms = [] return cs
def create_dolbypq_scaled( aces_CTL_directory, lut_directory, lut_resolution_1d, cleanup, name="pq", aliases=[], min_value=0.0, max_value=1.0, input_scale=1.0, middle_grey=0.18, min_exposure=-6.0, max_exposure=6.5, ): cs = ColorSpace(name) cs.description = "The %s color space" % name cs.aliases = aliases cs.equality_group = name cs.family = "Utility" cs.is_data = False ctls = [os.path.join(aces_CTL_directory, "utilities", "ACESlib.DolbyPQ_to_lin_param.a1.0.0.ctl")] lut = "%s_to_linear.spi1d" % name lut = sanitize(lut) generate_1d_LUT_from_CTL( os.path.join(lut_directory, lut), ctls, lut_resolution_1d, "float", input_scale, 1.0, {"middleGrey": middle_grey, "minExposure": min_exposure, "maxExposure": max_exposure}, cleanup, aces_CTL_directory, min_value, max_value, ) cs.to_reference_transforms = [] cs.to_reference_transforms.append( {"type": "lutFile", "path": lut, "interpolation": "linear", "direction": "forward"} ) cs.from_reference_transforms = [] return cs
def create_dolbypq(aces_CTL_directory, lut_directory, lut_resolution_1d, cleanup, name='pq', aliases=[], min_value=0.0, max_value=1.0, input_scale=1.0): cs = ColorSpace(name) cs.description = 'The %s color space' % name cs.aliases = aliases cs.equality_group = name cs.family = 'Utility' cs.is_data = False ctls = [os.path.join( aces_CTL_directory, 'utilities', 'ACESlib.OCIO_shaper_dolbypq_to_lin.a1.0.0.ctl')] lut = '%s_to_linear.spi1d' % name lut = sanitize(lut) generate_1d_LUT_from_CTL( os.path.join(lut_directory, lut), ctls, lut_resolution_1d, 'float', input_scale, 1.0, {}, cleanup, aces_CTL_directory, min_value, max_value) cs.to_reference_transforms = [] cs.to_reference_transforms.append({ 'type': 'lutFile', 'path': lut, 'interpolation': 'linear', 'direction': 'forward'}) cs.from_reference_transforms = [] return cs
def create_ACESproxy(aces_ctl_directory, lut_directory, lut_resolution_1d, cleanup, name='ACESproxy'): """ Creates the *ACESproxy* colorspace. Parameters ---------- parameter : type Parameter description. Returns ------- Colorspace *ACESproxy* colorspace. """ cs = ColorSpace(name) cs.description = 'The %s color space' % name cs.aliases = ['acesproxy', 'acesproxy_ap1'] cs.equality_group = '' cs.family = 'ACES' cs.is_data = False cs.aces_transform_id = 'ACEScsc.ACESproxy10i_to_ACES.a1.0.0' ctls = [os.path.join(aces_ctl_directory, 'ACESproxy', 'ACEScsc.ACESproxy10i_to_ACES.a1.0.0.ctl'), # This transform gets back to the *AP1* primaries. # Useful as the 1d LUT is only covering the transfer function. # The primaries switch is covered by the matrix below: os.path.join(aces_ctl_directory, 'ACEScg', 'ACEScsc.ACES_to_ACEScg.a1.0.0.ctl')] lut = '%s_to_linear.spi1d' % name lut = sanitize(lut) generate_1d_LUT_from_CTL( os.path.join(lut_directory, lut), ctls, lut_resolution_1d, 'float', 1, 1, {}, cleanup, aces_ctl_directory, 0, 1, 1) cs.to_reference_transforms = [] cs.to_reference_transforms.append({ 'type': 'lutFile', 'path': lut, 'interpolation': 'linear', 'direction': 'forward'}) # *AP1* primaries to *AP0* primaries cs.to_reference_transforms.append({ 'type': 'matrix', 'matrix': mat44_from_mat33(ACES_AP1_TO_AP0), 'direction': 'forward'}) cs.from_reference_transforms = [] return cs
def create_generic_log(aces_ctl_directory, lut_directory, lut_resolution_1d, cleanup, name='log', aliases=[], min_value=0, max_value=1, input_scale=1, middle_grey=0.18, min_exposure=-6, max_exposure=6.5): """ Creates the *Generic Log* colorspace. Parameters ---------- parameter : type Parameter description. Returns ------- Colorspace *Generic Log* colorspace. """ cs = ColorSpace(name) cs.description = 'The %s color space' % name cs.aliases = aliases cs.equality_group = name cs.family = 'Utility' cs.is_data = False ctls = [os.path.join( aces_ctl_directory, 'utilities', 'ACESlib.OCIO_shaper_log2_to_lin_param.a1.0.0.ctl')] lut = '%s_to_linear.spi1d' % name lut = sanitize(lut) generate_1d_LUT_from_CTL( os.path.join(lut_directory, lut), ctls, lut_resolution_1d, 'float', input_scale, 1, {'middleGrey': middle_grey, 'minExposure': min_exposure, 'maxExposure': max_exposure}, cleanup, aces_ctl_directory, min_value, max_value, 1) cs.to_reference_transforms = [] cs.to_reference_transforms.append({ 'type': 'lutFile', 'path': lut, 'interpolation': 'linear', 'direction': 'forward'}) cs.from_reference_transforms = [] return cs
def create_ACEScc(aces_ctl_directory, lut_directory, lut_resolution_1d, cleanup, name='ACEScc', min_value=0, max_value=1, input_scale=1): """ Creates the *ACEScc* colorspace. Parameters ---------- parameter : type Parameter description. Returns ------- Colorspace *ACEScc* colorspace. """ cs = ColorSpace(name) cs.description = 'The %s color space' % name cs.aliases = ["acescc_ap1"] cs.equality_group = '' cs.family = 'ACES' cs.is_data = False cs.allocation_type = ocio.Constants.ALLOCATION_UNIFORM cs.allocation_vars = [min_value, max_value] ctls = [os.path.join(aces_ctl_directory, 'ACEScc', 'ACEScsc.ACEScc_to_ACES.a1.0.0.ctl')] lut = '%s_to_linear.spi1d' % name lut = sanitize(lut) generate_1d_LUT_from_CTL( os.path.join(lut_directory, lut), ctls, lut_resolution_1d, 'float', input_scale, 1, {'transferFunctionOnly':1}, cleanup, aces_ctl_directory, min_value, max_value, 1) cs.to_reference_transforms = [] cs.to_reference_transforms.append({ 'type': 'lutFile', 'path': lut, 'interpolation': 'linear', 'direction': 'forward'}) # *AP1* primaries to *AP0* primaries. cs.to_reference_transforms.append({ 'type': 'matrix', 'matrix': mat44_from_mat33(ACES_AP1_TO_AP0), 'direction': 'forward'}) cs.from_reference_transforms = [] return cs
def create_generic_log( aces_ctl_directory, lut_directory, lut_resolution_1d, cleanup, name="log", aliases=[], min_value=0, max_value=1, input_scale=1, middle_grey=0.18, min_exposure=-6, max_exposure=6.5, ): """ Creates the *Generic Log* colorspace. Parameters ---------- parameter : type Parameter description. Returns ------- Colorspace *Generic Log* colorspace. """ cs = ColorSpace(name) cs.description = "The %s color space" % name cs.aliases = aliases cs.equality_group = name cs.family = "Utility" cs.is_data = False ctls = [os.path.join(aces_ctl_directory, "utilities", "ACESlib.Log2_to_Lin_param.a1.0.0.ctl")] lut = "%s_to_linear.spi1d" % name lut = sanitize(lut) generate_1d_LUT_from_CTL( os.path.join(lut_directory, lut), ctls, lut_resolution_1d, "float", input_scale, 1, {"middleGrey": middle_grey, "minExposure": min_exposure, "maxExposure": max_exposure}, cleanup, aces_ctl_directory, min_value, max_value, 1, ) cs.to_reference_transforms = [] cs.to_reference_transforms.append( {"type": "lutFile", "path": lut, "interpolation": "linear", "direction": "forward"} ) cs.from_reference_transforms = [] return cs
def create_ACESproxy(aces_ctl_directory, lut_directory, lut_resolution_1d, cleanup, name="ACESproxy"): """ Creates the *ACESproxy* colorspace. Parameters ---------- parameter : type Parameter description. Returns ------- Colorspace *ACESproxy* colorspace. """ cs = ColorSpace(name) cs.description = "The %s color space" % name cs.aliases = ["acesproxy", "acesproxy_ap1"] cs.equality_group = "" cs.family = "ACES" cs.is_data = False cs.aces_transform_id = "ACEScsc.ACESproxy10i_to_ACES.a1.0.0" ctls = [ os.path.join(aces_ctl_directory, "ACESproxy", "ACEScsc.ACESproxy10i_to_ACES.a1.0.0.ctl"), # This transform gets back to the *AP1* primaries. # Useful as the 1d LUT is only covering the transfer function. # The primaries switch is covered by the matrix below: os.path.join(aces_ctl_directory, "ACEScg", "ACEScsc.ACES_to_ACEScg.a1.0.0.ctl"), ] lut = "%s_to_linear.spi1d" % name lut = sanitize(lut) generate_1d_LUT_from_CTL( os.path.join(lut_directory, lut), ctls, lut_resolution_1d, "float", 1, 1, {}, cleanup, aces_ctl_directory, 0, 1, 1, ) cs.to_reference_transforms = [] cs.to_reference_transforms.append( {"type": "lutFile", "path": lut, "interpolation": "linear", "direction": "forward"} ) # *AP1* primaries to *AP0* primaries. cs.to_reference_transforms.append( {"type": "matrix", "matrix": mat44_from_mat33(ACES_AP1_TO_AP0), "direction": "forward"} ) cs.from_reference_transforms = [] return cs