Compare commits

...
1 Commits
Author SHA1 Message Date
Bernard Lefebvre cb5e319d0f Adsk Contrib - RB-2.0 release (#1289)
* Adsk Contrib - Shader textures now available via Python (#1268) 7110425732

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Add roles to API and fixes (#1267) Bernard Lefebvre 8cf0211c3f

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Adsk Contrib - Python repr and LogCameraTransform fixes (#1270) c033d11ee3

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Fix issue #1262 (#1271) d51962acf0

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Use OIIO-provided CMake find module (#1266) Michael Dolan <michdolan@gmail.com> 8774ebf739

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Transform Python Binding Fix (#1277) Frankie Eder <frankaeder@gmail.com> c324ba5438

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Adsk Contrib - Avoid NaN values in certain Lut1D arrays (#1272) 50e5d8b37d

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Adsk Contrib - More python tests and bindings fixes (#1274) 574ccd856e

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Restructure PyOpenColorIO, complete PyGpuShaderDesc (#1275) Michael Dolan <michdolan@gmail.com> 081b8de4d2

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Add UNIFORM_FLOAT3, setStrictParsingEnabled to PyOpenColorIO (#1280) Michael Dolan <michdolan@gmail.com> 73be29a4ba

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Adsk Contrib - Add new ACES builtin transforms (#1281) doug-walker <43830961+doug-walker@users.noreply.github.com> 83392109b6

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Release v2 (#1279)  6d46d8468a

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Test forgot to declare logger and fails if numpy is missing (#1290) 87f09ecad5

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>

* Fix applyRGB (#1291)  bc88857f48

Signed-off-by: Bernard Lefebvre <bernard.lefebvre@autodesk.com>
2021-01-28 17:07:14 -05:00
250 changed files with 5767 additions and 2212 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ project(OpenColorIO
LANGUAGES CXX C)
# "dev", "beta1", rc1", etc or "" for an official release.
set(OpenColorIO_VERSION_RELEASE_TYPE "rc1")
set(OpenColorIO_VERSION_RELEASE_TYPE "")
enable_testing()
+21
View File
@@ -121,6 +121,27 @@ External Plugins (currently known)::
this is a 1D HDR to LDR allocation. It is normally combined with
another display transform in the host app for preview.
.. data:: PyOpenColorIO.ROLE_RENDERING
The rendering role may be used to identify a specific color space to be
used by CGI renderers. This is typically a scene-linear space but the
primaries also matter since they influence the resulting color, especially
in areas of indirect illumination.
.. data:: PyOpenColorIO.ROLE_INTERCHANGE_SCENE
The aces_interchange role is used to specify which color space in the
config implements the standard ACES2065-1 color space (SMPTE ST2065-1).
This may be used when converting scene-referred colors from one config
to another.
.. data:: PyOpenColorIO.ROLE_INTERCHANGE_DISPLAY
The cie_xyz_d65_interchange role is used to specify which color space in
the config implements CIE XYZ colorimetry with the neutral axis at D65.
This may be used when converting display-referred colors from one config
to another.
.. group-tab:: C++
.. doxygengroup:: VarsRoles
@@ -31,3 +31,8 @@
:module: PyOpenColorIO
:value: <Allocation.ALLOCATION_UNKNOWN: 0>
.. py:method:: Allocation.value
:module: PyOpenColorIO
:property:
@@ -19,9 +19,11 @@
2. __init__(self: PyOpenColorIO.AllocationTransform, allocation: PyOpenColorIO.Allocation = <Allocation.ALLOCATION_UNIFORM: 1>, vars: List[float] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: AllocationTransform.__str__(self: PyOpenColorIO.AllocationTransform) -> str
.. py:method:: AllocationTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: AllocationTransform.getAllocation(self: PyOpenColorIO.AllocationTransform) -> PyOpenColorIO.Allocation
:module: PyOpenColorIO
@@ -145,6 +145,10 @@
.. py:class:: FormatIterator
:module: PyOpenColorIO.Baker
Iterator on LUT baker Formats.
Each item is a tuple containing format name and format extension.
.. py:method:: FormatIterator.__getitem__(self: PyOpenColorIO.Baker.FormatIterator, arg0: int) -> tuple
:module: PyOpenColorIO.Baker
@@ -75,3 +75,8 @@
:module: PyOpenColorIO
:value: <BitDepth.BIT_DEPTH_UNKNOWN: 0>
.. py:method:: BitDepth.value
:module: PyOpenColorIO
:property:
@@ -19,9 +19,11 @@
2. __init__(self: PyOpenColorIO.BuiltinTransform, style: str = 'IDENTITY', direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: BuiltinTransform.__str__(self: PyOpenColorIO.BuiltinTransform) -> str
.. py:method:: BuiltinTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: BuiltinTransform.getDescription(self: PyOpenColorIO.BuiltinTransform) -> str
:module: PyOpenColorIO
@@ -31,3 +31,8 @@
:module: PyOpenColorIO
:value: <CDLStyle.CDL_NO_CLAMP: 1>
.. py:method:: CDLStyle.value
:module: PyOpenColorIO
:property:
@@ -18,16 +18,18 @@
Load the CDL from the src .cdl, .cc, or .ccc file.
.. note::
The cccid can be the ID of a CDL or the index of the CDL (as string). If cccid is NULL or empty the first CDL is returned. The cccid is case-sensitive. The src must be an absolute path reference, no relative directory or envvar resolution is performed. Throws if file does not contain any CDL or if the specified cccid is not found.
.. py:method:: CDLTransform.CreateGroupFromFile(src: str) -> OpenColorIO_v2_0rc1::GroupTransform
.. py:method:: CDLTransform.CreateGroupFromFile(src: str) -> PyOpenColorIO.GroupTransform
:module: PyOpenColorIO
:staticmethod:
Load all of the CDLs in a .cdl or .ccc file into a single :ref:`GroupTransform`.
.. note::
This may be useful as a quicker way for applications to check the contents of each of the CDLs. The src must be an absolute path reference, no relative directory or envvar resolution is performed.
@@ -44,9 +46,11 @@
3. __init__(self: PyOpenColorIO.CDLTransform, slope: List[float[3]] = [1.0, 1.0, 1.0], offset: List[float[3]] = [0.0, 0.0, 0.0], power: List[float[3]] = [1.0, 1.0, 1.0], sat: float = 1.0, id: str = '', description: str = '', direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: CDLTransform.__str__(self: PyOpenColorIO.CDLTransform) -> str
.. py:method:: CDLTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: CDLTransform.equals(self: PyOpenColorIO.CDLTransform, other: PyOpenColorIO.CDLTransform) -> bool
:module: PyOpenColorIO
@@ -47,3 +47,8 @@
:module: PyOpenColorIO
:value: <ChannelOrdering.CHANNEL_ORDERING_RGBA: 0>
.. py:method:: ChannelOrdering.value
:module: PyOpenColorIO
:property:
@@ -7,16 +7,6 @@
:module: PyOpenColorIO
.. py:class:: ColorSpace.ColorSpaceAliasIterator
:module: PyOpenColorIO
.. py:method:: ColorSpace.ColorSpaceAliasIterator.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: ColorSpace.__init__(*args, **kwargs)
:module: PyOpenColorIO
@@ -29,10 +19,6 @@
3. __init__(self: PyOpenColorIO.ColorSpace, referenceSpace: PyOpenColorIO.ReferenceSpaceType = <ReferenceSpaceType.REFERENCE_SPACE_SCENE: 0>, name: str = '', aliases: List[str] = [], family: str = '', encoding: str = '', equalityGroup: str = '', description: str = '', bitDepth: PyOpenColorIO.BitDepth = <BitDepth.BIT_DEPTH_UNKNOWN: 0>, isData: bool = False, allocation: PyOpenColorIO.Allocation = <Allocation.ALLOCATION_UNIFORM: 1>, allocationVars: List[float] = [], toReference: PyOpenColorIO.Transform = None, fromReference: PyOpenColorIO.Transform = None, categories: List[str] = []) -> None
.. py:method:: ColorSpace.__str__(self: PyOpenColorIO.ColorSpace) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpace.addAlias(self: PyOpenColorIO.ColorSpace, alias: str) -> None
:module: PyOpenColorIO
@@ -44,6 +30,7 @@
Add a single category.
.. note::
Will do nothing if the category already exists.
@@ -135,6 +122,7 @@
Remove a category.
.. note::
Will do nothing if the category is missing.
@@ -204,3 +192,23 @@
.. py:method:: ColorSpaceCategoryIterator.__next__(self: PyOpenColorIO.ColorSpace.ColorSpaceCategoryIterator) -> str
:module: PyOpenColorIO.ColorSpace
.. py:class:: ColorSpaceAliasIterator
:module: PyOpenColorIO.ColorSpace
.. py:method:: ColorSpaceAliasIterator.__getitem__(self: PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator, arg0: int) -> str
:module: PyOpenColorIO.ColorSpace
.. py:method:: ColorSpaceAliasIterator.__iter__(self: PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator) -> PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator
:module: PyOpenColorIO.ColorSpace
.. py:method:: ColorSpaceAliasIterator.__len__(self: PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator) -> int
:module: PyOpenColorIO.ColorSpace
.. py:method:: ColorSpaceAliasIterator.__next__(self: PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator) -> str
:module: PyOpenColorIO.ColorSpace
@@ -24,3 +24,8 @@
:module: PyOpenColorIO
:value: <ColorSpaceDirection.COLORSPACE_DIR_TO_REFERENCE: 0>
.. py:method:: ColorSpaceDirection.value
:module: PyOpenColorIO
:property:
@@ -19,10 +19,6 @@
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuHelper.__str__(self: PyOpenColorIO.ColorSpaceMenuHelper) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuHelper.getDescription(self: PyOpenColorIO.ColorSpaceMenuHelper, index: int) -> str
:module: PyOpenColorIO
@@ -31,7 +27,7 @@
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuHelper.getHierarchyLevels(self: PyOpenColorIO.ColorSpaceMenuHelper, index: int) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::ColorSpaceMenuHelper>,0,unsigned __int64>
.. py:method:: ColorSpaceMenuHelper.getHierarchyLevels(self: PyOpenColorIO.ColorSpaceMenuHelper, index: int) -> PyOpenColorIO.ColorSpaceMenuHelper.ColorSpaceLevelIterator
:module: PyOpenColorIO
@@ -46,16 +46,6 @@
5) If AddColorSpace has been used to add any additional items, these are appended to the final list.
.. py:class:: ColorSpaceMenuParameters.AddedColorSpaceIterator
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.AddedColorSpaceIterator.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: ColorSpaceMenuParameters.__init__(*args, **kwargs)
:module: PyOpenColorIO
@@ -66,10 +56,6 @@
2. __init__(self: PyOpenColorIO.ColorSpaceMenuParameters, config: PyOpenColorIO.Config, role: str = '', includeColorSpaces: bool = True, searchReferenceSpaceType: PyOpenColorIO.SearchReferenceSpaceType = <SearchReferenceSpaceType.SEARCH_REFERENCE_SPACE_ALL: 2>, includeNamedTransforms: bool = False, appCategories: str = '', encodings: str = '', userCategories: str = '', includeRoles: bool = False) -> None
.. py:method:: ColorSpaceMenuParameters.__str__(self: PyOpenColorIO.ColorSpaceMenuParameters) -> str
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.addColorSpace(self: PyOpenColorIO.ColorSpaceMenuParameters, colorSpace: str) -> None
:module: PyOpenColorIO
@@ -85,7 +71,7 @@
:module: PyOpenColorIO
.. py:method:: ColorSpaceMenuParameters.getAddedColorSpaces(self: PyOpenColorIO.ColorSpaceMenuParameters) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::ColorSpaceMenuParameters>,0>
.. py:method:: ColorSpaceMenuParameters.getAddedColorSpaces(self: PyOpenColorIO.ColorSpaceMenuParameters) -> PyOpenColorIO.ColorSpaceMenuParameters.AddedColorSpaceIterator
:module: PyOpenColorIO
@@ -17,9 +17,11 @@
2. __init__(self: PyOpenColorIO.ColorSpaceTransform, src: str = '', dst: str = '', direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>, dataBypass: bool = True) -> None
.. py:method:: ColorSpaceTransform.__str__(self: PyOpenColorIO.ColorSpaceTransform) -> str
.. py:method:: ColorSpaceTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: ColorSpaceTransform.getDataBypass(self: PyOpenColorIO.ColorSpaceTransform) -> bool
:module: PyOpenColorIO
@@ -31,3 +31,8 @@
:module: PyOpenColorIO
:value: <ColorSpaceVisibility.COLORSPACE_INACTIVE: 1>
.. py:method:: ColorSpaceVisibility.value
:module: PyOpenColorIO
:property:
+50 -50
View File
@@ -47,20 +47,20 @@
Overloaded function.
1. GetProcessorFromConfigs(srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str) -> OpenColorIO_v2_0rc1::Processor
1. GetProcessorFromConfigs(srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str) -> PyOpenColorIO.Processor
Get a processor to convert between color spaces in two separate configs.
This relies on both configs having the aces_interchange role (when srcName is scene-referred) or the role cie_xyz_d65_interchange (when srcName is display-referred) defined. An exception is thrown if that is not the case.
2. GetProcessorFromConfigs(srcContext: OpenColorIO_v2_0rc1::Context, srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, dstContext: OpenColorIO_v2_0rc1::Context, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str) -> OpenColorIO_v2_0rc1::Processor
2. GetProcessorFromConfigs(srcContext: PyOpenColorIO.Context, srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, dstContext: PyOpenColorIO.Context, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str) -> PyOpenColorIO.Processor
3. GetProcessorFromConfigs(srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, srcInterchangeName: str, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str, dstInterchangeName: str) -> OpenColorIO_v2_0rc1::Processor
3. GetProcessorFromConfigs(srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, srcInterchangeName: str, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str, dstInterchangeName: str) -> PyOpenColorIO.Processor
The srcInterchangeName and dstInterchangeName must refer to a pair of color spaces in the two configs that are the same. A role name may also be used.
4. GetProcessorFromConfigs(srcContext: OpenColorIO_v2_0rc1::Context, srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, srcInterchangeName: str, dstContext: OpenColorIO_v2_0rc1::Context, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str, dstInterchangeName: str) -> OpenColorIO_v2_0rc1::Processor
4. GetProcessorFromConfigs(srcContext: PyOpenColorIO.Context, srcConfig: PyOpenColorIO.Config, srcColorSpaceName: str, srcInterchangeName: str, dstContext: PyOpenColorIO.Context, dstConfig: PyOpenColorIO.Config, dstColorSpaceName: str, dstInterchangeName: str) -> PyOpenColorIO.Processor
.. py:method:: Config.__init__(self: PyOpenColorIO.Config) -> None
@@ -76,7 +76,7 @@
:module: PyOpenColorIO
.. py:method:: Config.addColorSpace(self: PyOpenColorIO.Config, colorSpace: OpenColorIO_v2_0rc1::ColorSpace) -> None
.. py:method:: Config.addColorSpace(self: PyOpenColorIO.Config, colorSpace: PyOpenColorIO.ColorSpace) -> None
:module: PyOpenColorIO
Add a color space to the configuration.
@@ -122,11 +122,11 @@
Add (or update) an environment variable with a default value. But it removes it if the default value is null.
.. py:method:: Config.addLook(self: PyOpenColorIO.Config, look: OpenColorIO_v2_0rc1::Look) -> None
.. py:method:: Config.addLook(self: PyOpenColorIO.Config, look: PyOpenColorIO.Look) -> None
:module: PyOpenColorIO
.. py:method:: Config.addNamedTransform(self: PyOpenColorIO.Config, namedTransform: OpenColorIO_v2_0rc1::NamedTransform) -> None
.. py:method:: Config.addNamedTransform(self: PyOpenColorIO.Config, namedTransform: PyOpenColorIO.NamedTransform) -> None
:module: PyOpenColorIO
@@ -145,7 +145,7 @@
Will throw if view or colorSpaceName are null or empty.
.. py:method:: Config.addViewTransform(self: PyOpenColorIO.Config, viewTransform: OpenColorIO_v2_0rc1::ViewTransform) -> None
.. py:method:: Config.addViewTransform(self: PyOpenColorIO.Config, viewTransform: PyOpenColorIO.ViewTransform) -> None
:module: PyOpenColorIO
@@ -208,7 +208,7 @@
This will produce a hash of the all colorspace definitions, etc. All external references, such as files used in FileTransforms, etc., will be incorporated into the cacheID. While the contents of the files are not read, the file system is queried for relevant information (mtime, inode) so that the config's cacheID will change when the underlying luts are updated. If a context is not provided, the current :ref:`Context` will be used. If a null context is provided, file references will not be taken into account (this is essentially a hash of :ref:`Config::serialize`).
2. getCacheID(self: PyOpenColorIO.Config, context: OpenColorIO_v2_0rc1::Context) -> str
2. getCacheID(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context) -> str
This will produce a hash of the all colorspace definitions, etc. All external references, such as files used in FileTransforms, etc., will be incorporated into the cacheID. While the contents of the files are not read, the file system is queried for relevant information (mtime, inode) so that the config's cacheID will change when the underlying luts are updated. If a context is not provided, the current :ref:`Context` will be used. If a null context is provided, file references will not be taken into account (this is essentially a hash of :ref:`Config::serialize`).
@@ -219,26 +219,19 @@
Accepts an alias, role name, named transform name, or color space name and returns the color space name or the named transform name.
.. py:method:: Config.getColorSpace(self: PyOpenColorIO.Config, name: str) -> OpenColorIO_v2_0rc1::ColorSpace
.. py:method:: Config.getColorSpace(self: PyOpenColorIO.Config, name: str) -> PyOpenColorIO.ColorSpace
:module: PyOpenColorIO
Get the color space from all the color spaces (i.e. active and inactive) and return null if the name is not found.
.. note::
The fcn accepts either a color space name, role name, or alias. (Color space names take precedence over roles.)
.. py:method:: Config.getColorSpaceFromFilepath(*args, **kwargs)
.. py:method:: Config.getColorSpaceFromFilepath(self: PyOpenColorIO.Config, filePath: str) -> tuple
:module: PyOpenColorIO
Overloaded function.
1. getColorSpaceFromFilepath(self: PyOpenColorIO.Config, filePath: str) -> str
Get the color space of the first rule that matched filePath.
2. getColorSpaceFromFilepath(self: PyOpenColorIO.Config, filePath: str, ruleIndex: int) -> str
Get the color space of the first rule that matched filePath.
@@ -257,7 +250,7 @@
Overloaded function.
1. getColorSpaces(self: PyOpenColorIO.Config, category: str) -> OpenColorIO_v2_0rc1::ColorSpaceSet
1. getColorSpaces(self: PyOpenColorIO.Config, category: str) -> PyOpenColorIO.ColorSpaceSet
Get all active color spaces having a specific category in the order they appear in the config file.
@@ -273,7 +266,7 @@
3. getColorSpaces(self: PyOpenColorIO.Config) -> PyOpenColorIO.Config.ActiveColorSpaceIterator
.. py:method:: Config.getCurrentContext(self: PyOpenColorIO.Config) -> OpenColorIO_v2_0rc1::Context
.. py:method:: Config.getCurrentContext(self: PyOpenColorIO.Config) -> PyOpenColorIO.Context
:module: PyOpenColorIO
@@ -291,7 +284,7 @@
There is no "1 size fits all" set of luma coefficients. (The values are typically different for each colorspace, and the application of them may be nonsensical depending on the intensity coding anyways). Thus, the 'right' answer is to make these functions on the :cpp:class:`:ref:`Config`` class. However, it's often useful to have a config-wide default so here it is. We will add the colorspace specific luma call if/when another client is interesting in using it.
.. py:method:: Config.getDefaultSceneToDisplayViewTransform(self: PyOpenColorIO.Config) -> OpenColorIO_v2_0rc1::ViewTransform
.. py:method:: Config.getDefaultSceneToDisplayViewTransform(self: PyOpenColorIO.Config) -> PyOpenColorIO.ViewTransform
:module: PyOpenColorIO
This view transform is the one that will be used by default if a :ref:`ColorSpaceTransform` is needed between a scene-referred and display-referred color space. The config author may specify a transform to use via the default_view_transform entry in the config. If that is not present, or does not return a valid view transform from the scene-referred connection space, the fall-back is to use the first valid view transform in the config. Returns a null ConstTransformRcPtr if there isn't one.
@@ -368,7 +361,7 @@
A single character used to separate the family string into tokens for use in hierarchical menus. Defaults to '/'.
.. py:method:: Config.getFileRules(self: PyOpenColorIO.Config) -> OpenColorIO_v2_0rc1::FileRules
.. py:method:: Config.getFileRules(self: PyOpenColorIO.Config) -> PyOpenColorIO.FileRules
:module: PyOpenColorIO
Get read-only version of the file rules.
@@ -378,7 +371,7 @@
:module: PyOpenColorIO
.. py:method:: Config.getLook(self: PyOpenColorIO.Config, name: str) -> OpenColorIO_v2_0rc1::Look
.. py:method:: Config.getLook(self: PyOpenColorIO.Config, name: str) -> PyOpenColorIO.Look
:module: PyOpenColorIO
@@ -410,7 +403,7 @@
The name string may be used to communicate config update details or similar information to workflows external to OCIO in cases where the config path/filename itself does not provide adequate information.
.. py:method:: Config.getNamedTransform(self: PyOpenColorIO.Config, name: str) -> OpenColorIO_v2_0rc1::NamedTransform
.. py:method:: Config.getNamedTransform(self: PyOpenColorIO.Config, name: str) -> PyOpenColorIO.NamedTransform
:module: PyOpenColorIO
@@ -439,33 +432,33 @@
Overloaded function.
1. getProcessor(self: PyOpenColorIO.Config, srcColorSpace: OpenColorIO_v2_0rc1::ColorSpace, dstColorSpace: OpenColorIO_v2_0rc1::ColorSpace) -> OpenColorIO_v2_0rc1::Processor
1. getProcessor(self: PyOpenColorIO.Config, srcColorSpace: PyOpenColorIO.ColorSpace, dstColorSpace: PyOpenColorIO.ColorSpace) -> PyOpenColorIO.Processor
2. getProcessor(self: PyOpenColorIO.Config, context: OpenColorIO_v2_0rc1::Context, srcColorSpace: OpenColorIO_v2_0rc1::ColorSpace, dstColorSpace: OpenColorIO_v2_0rc1::ColorSpace) -> OpenColorIO_v2_0rc1::Processor
2. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, srcColorSpace: PyOpenColorIO.ColorSpace, dstColorSpace: PyOpenColorIO.ColorSpace) -> PyOpenColorIO.Processor
3. getProcessor(self: PyOpenColorIO.Config, srcColorSpaceName: str, dstColorSpaceName: str) -> OpenColorIO_v2_0rc1::Processor
3. getProcessor(self: PyOpenColorIO.Config, srcColorSpaceName: str, dstColorSpaceName: str) -> PyOpenColorIO.Processor
.. note::
Names can be colorspace name, role name, or a combination of both.
4. getProcessor(self: PyOpenColorIO.Config, context: OpenColorIO_v2_0rc1::Context, srcColorSpaceName: str, dstColorSpaceName: str) -> OpenColorIO_v2_0rc1::Processor
4. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, srcColorSpaceName: str, dstColorSpaceName: str) -> PyOpenColorIO.Processor
5. getProcessor(self: PyOpenColorIO.Config, srcColorSpaceName: str, display: str, view: str, direction: PyOpenColorIO.TransformDirection) -> OpenColorIO_v2_0rc1::Processor
5. getProcessor(self: PyOpenColorIO.Config, srcColorSpaceName: str, display: str, view: str, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
6. getProcessor(self: PyOpenColorIO.Config, context: OpenColorIO_v2_0rc1::Context, srcColorSpaceName: str, display: str, view: str, direction: PyOpenColorIO.TransformDirection) -> OpenColorIO_v2_0rc1::Processor
6. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, srcColorSpaceName: str, display: str, view: str, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
cpp:function::
7. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform) -> OpenColorIO_v2_0rc1::Processor
7. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform) -> PyOpenColorIO.Processor
Get the processor for the specified transform.
Not often needed, but will allow for the re-use of atomic OCIO functionality (such as to apply an individual LUT file).
8. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> OpenColorIO_v2_0rc1::Processor
8. getProcessor(self: PyOpenColorIO.Config, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
9. getProcessor(self: PyOpenColorIO.Config, context: OpenColorIO_v2_0rc1::Context, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> OpenColorIO_v2_0rc1::Processor
9. getProcessor(self: PyOpenColorIO.Config, context: PyOpenColorIO.Context, transform: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> PyOpenColorIO.Processor
.. py:method:: Config.getRoleNames(self: PyOpenColorIO.Config) -> PyOpenColorIO.Config.RoleNameIterator
@@ -488,7 +481,7 @@
:module: PyOpenColorIO
.. py:method:: Config.getViewTransform(self: PyOpenColorIO.Config, name: str) -> OpenColorIO_v2_0rc1::ViewTransform
.. py:method:: Config.getViewTransform(self: PyOpenColorIO.Config, name: str) -> PyOpenColorIO.ViewTransform
:module: PyOpenColorIO
@@ -500,7 +493,7 @@
:module: PyOpenColorIO
.. py:method:: Config.getViewingRules(self: PyOpenColorIO.Config) -> OpenColorIO_v2_0rc1::ViewingRules
.. py:method:: Config.getViewingRules(self: PyOpenColorIO.Config) -> PyOpenColorIO.ViewingRules
:module: PyOpenColorIO
Get read-only version of the viewing rules.
@@ -558,6 +551,7 @@
Remove a color space from the configuration.
.. note::
It does not throw an exception. Name must be the canonical name. If a role name or alias is provided or if the name is not in the config, nothing is done.
@@ -648,7 +642,7 @@
Succeeds if the characters is null or a valid character from the ASCII table i.e. from value 32 (i.e. space) to 126 (i.e. '~'); otherwise, it throws an exception.
.. py:method:: Config.setFileRules(self: PyOpenColorIO.Config, fileRules: OpenColorIO_v2_0rc1::FileRules) -> None
.. py:method:: Config.setFileRules(self: PyOpenColorIO.Config, fileRules: PyOpenColorIO.FileRules) -> None
:module: PyOpenColorIO
Set file rules.
@@ -710,20 +704,26 @@
Set all search paths as a concatenated string, ':' to separate the paths.
See :ref:`addSearchPath` for a more robust and platform-agnostic method of setting the search paths.
.. py:method:: Config.setStrictParsingEnabled(self: PyOpenColorIO.Config, enabled: bool) -> None
:module: PyOpenColorIO
.. py:method:: Config.setVersion(self: PyOpenColorIO.Config, major: int, minor: int) -> None
:module: PyOpenColorIO
Set the configuration major and minor versions. Throws if version is not supported.
.. py:method:: Config.setViewingRules(self: PyOpenColorIO.Config, ViewingRules: OpenColorIO_v2_0rc1::ViewingRules) -> None
.. py:method:: Config.setViewingRules(self: PyOpenColorIO.Config, ViewingRules: PyOpenColorIO.ViewingRules) -> None
:module: PyOpenColorIO
Set viewing rules.
.. note::
The argument is cloned.
@@ -813,7 +813,7 @@
:module: PyOpenColorIO.Config
.. py:method:: ColorSpaceIterator.__getitem__(self: PyOpenColorIO.Config.ColorSpaceIterator, arg0: int) -> OpenColorIO_v2_0rc1::ColorSpace
.. py:method:: ColorSpaceIterator.__getitem__(self: PyOpenColorIO.Config.ColorSpaceIterator, arg0: int) -> PyOpenColorIO.ColorSpace
:module: PyOpenColorIO.Config
@@ -825,7 +825,7 @@
:module: PyOpenColorIO.Config
.. py:method:: ColorSpaceIterator.__next__(self: PyOpenColorIO.Config.ColorSpaceIterator) -> OpenColorIO_v2_0rc1::ColorSpace
.. py:method:: ColorSpaceIterator.__next__(self: PyOpenColorIO.Config.ColorSpaceIterator) -> PyOpenColorIO.ColorSpace
:module: PyOpenColorIO.Config
@@ -853,7 +853,7 @@
:module: PyOpenColorIO.Config
.. py:method:: ActiveColorSpaceIterator.__getitem__(self: PyOpenColorIO.Config.ActiveColorSpaceIterator, arg0: int) -> OpenColorIO_v2_0rc1::ColorSpace
.. py:method:: ActiveColorSpaceIterator.__getitem__(self: PyOpenColorIO.Config.ActiveColorSpaceIterator, arg0: int) -> PyOpenColorIO.ColorSpace
:module: PyOpenColorIO.Config
@@ -865,7 +865,7 @@
:module: PyOpenColorIO.Config
.. py:method:: ActiveColorSpaceIterator.__next__(self: PyOpenColorIO.Config.ActiveColorSpaceIterator) -> OpenColorIO_v2_0rc1::ColorSpace
.. py:method:: ActiveColorSpaceIterator.__next__(self: PyOpenColorIO.Config.ActiveColorSpaceIterator) -> PyOpenColorIO.ColorSpace
:module: PyOpenColorIO.Config
@@ -1013,7 +1013,7 @@
:module: PyOpenColorIO.Config
.. py:method:: LookIterator.__getitem__(self: PyOpenColorIO.Config.LookIterator, arg0: int) -> OpenColorIO_v2_0rc1::Look
.. py:method:: LookIterator.__getitem__(self: PyOpenColorIO.Config.LookIterator, arg0: int) -> PyOpenColorIO.Look
:module: PyOpenColorIO.Config
@@ -1025,7 +1025,7 @@
:module: PyOpenColorIO.Config
.. py:method:: LookIterator.__next__(self: PyOpenColorIO.Config.LookIterator) -> OpenColorIO_v2_0rc1::Look
.. py:method:: LookIterator.__next__(self: PyOpenColorIO.Config.LookIterator) -> PyOpenColorIO.Look
:module: PyOpenColorIO.Config
@@ -1053,7 +1053,7 @@
:module: PyOpenColorIO.Config
.. py:method:: ViewTransformIterator.__getitem__(self: PyOpenColorIO.Config.ViewTransformIterator, arg0: int) -> OpenColorIO_v2_0rc1::ViewTransform
.. py:method:: ViewTransformIterator.__getitem__(self: PyOpenColorIO.Config.ViewTransformIterator, arg0: int) -> PyOpenColorIO.ViewTransform
:module: PyOpenColorIO.Config
@@ -1065,7 +1065,7 @@
:module: PyOpenColorIO.Config
.. py:method:: ViewTransformIterator.__next__(self: PyOpenColorIO.Config.ViewTransformIterator) -> OpenColorIO_v2_0rc1::ViewTransform
.. py:method:: ViewTransformIterator.__next__(self: PyOpenColorIO.Config.ViewTransformIterator) -> PyOpenColorIO.ViewTransform
:module: PyOpenColorIO.Config
@@ -1093,7 +1093,7 @@
:module: PyOpenColorIO.Config
.. py:method:: NamedTransformIterator.__getitem__(self: PyOpenColorIO.Config.NamedTransformIterator, arg0: int) -> OpenColorIO_v2_0rc1::NamedTransform
.. py:method:: NamedTransformIterator.__getitem__(self: PyOpenColorIO.Config.NamedTransformIterator, arg0: int) -> PyOpenColorIO.NamedTransform
:module: PyOpenColorIO.Config
@@ -1105,7 +1105,7 @@
:module: PyOpenColorIO.Config
.. py:method:: NamedTransformIterator.__next__(self: PyOpenColorIO.Config.NamedTransformIterator) -> OpenColorIO_v2_0rc1::NamedTransform
.. py:method:: NamedTransformIterator.__next__(self: PyOpenColorIO.Config.NamedTransformIterator) -> PyOpenColorIO.NamedTransform
:module: PyOpenColorIO.Config
@@ -1133,7 +1133,7 @@
:module: PyOpenColorIO.Config
.. py:method:: ActiveNamedTransformIterator.__getitem__(self: PyOpenColorIO.Config.ActiveNamedTransformIterator, arg0: int) -> OpenColorIO_v2_0rc1::NamedTransform
.. py:method:: ActiveNamedTransformIterator.__getitem__(self: PyOpenColorIO.Config.ActiveNamedTransformIterator, arg0: int) -> PyOpenColorIO.NamedTransform
:module: PyOpenColorIO.Config
@@ -1145,6 +1145,6 @@
:module: PyOpenColorIO.Config
.. py:method:: ActiveNamedTransformIterator.__next__(self: PyOpenColorIO.Config.ActiveNamedTransformIterator) -> OpenColorIO_v2_0rc1::NamedTransform
.. py:method:: ActiveNamedTransformIterator.__next__(self: PyOpenColorIO.Config.ActiveNamedTransformIterator) -> PyOpenColorIO.NamedTransform
:module: PyOpenColorIO.Config
@@ -17,10 +17,6 @@
2. __init__(self: PyOpenColorIO.Context, workingDir: str = '', searchPaths: List[str] = [], stringVars: Dict[str, str] = {}, environmentMode: PyOpenColorIO.EnvironmentMode = <EnvironmentMode.ENV_ENVIRONMENT_LOAD_PREDEFINED: 1>) -> None
.. py:method:: Context.__str__(self: PyOpenColorIO.Context) -> str
:module: PyOpenColorIO
.. py:method:: Context.addSearchPath(self: PyOpenColorIO.Context, path: str) -> None
:module: PyOpenColorIO
@@ -18,7 +18,7 @@
Overloaded function.
1. apply(self: PyOpenColorIO.CPUProcessor, imgDesc: OpenColorIO_v2_0rc1::PyImageDesc) -> None
1. apply(self: PyOpenColorIO.CPUProcessor, imgDesc: PyOpenColorIO.ImageDesc) -> None
Apply to an image with any kind of channel ordering while respecting
@@ -37,7 +37,7 @@
2. apply(self: PyOpenColorIO.CPUProcessor, srcImgDesc: OpenColorIO_v2_0rc1::PyImageDesc, dstImgDesc: OpenColorIO_v2_0rc1::PyImageDesc) -> None
2. apply(self: PyOpenColorIO.CPUProcessor, srcImgDesc: PyOpenColorIO.ImageDesc, dstImgDesc: PyOpenColorIO.ImageDesc) -> None
Apply to an image with any kind of channel ordering while respecting
@@ -17,9 +17,11 @@
2. __init__(self: PyOpenColorIO.DisplayViewTransform, src: str = '', display: str = '', view: str = '', looksBypass: bool = False, dataBypass: bool = True, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: DisplayViewTransform.__str__(self: PyOpenColorIO.DisplayViewTransform) -> str
.. py:method:: DisplayViewTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: DisplayViewTransform.getDataBypass(self: PyOpenColorIO.DisplayViewTransform) -> bool
:module: PyOpenColorIO
@@ -27,19 +27,19 @@
Get the property as DynamicPropertyDoubleRcPtr to access the double value. Will throw if property type is not a type that holds a double such as DYNAMIC_PROPERTY_EXPOSURE.
.. py:method:: DynamicProperty.getGradingPrimary(self: PyOpenColorIO.DynamicProperty) -> OpenColorIO_v2_0rc1::GradingPrimary
.. py:method:: DynamicProperty.getGradingPrimary(self: PyOpenColorIO.DynamicProperty) -> PyOpenColorIO.GradingPrimary
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingPrimaryRcPtr to access the :ref:`GradingPrimary` value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_PRIMARY.
.. py:method:: DynamicProperty.getGradingRGBCurve(self: PyOpenColorIO.DynamicProperty) -> OpenColorIO_v2_0rc1::GradingRGBCurve
.. py:method:: DynamicProperty.getGradingRGBCurve(self: PyOpenColorIO.DynamicProperty) -> PyOpenColorIO.GradingRGBCurve
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingRGBCurveRcPtr to access the GradingRGBCurveRcPtr value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_RGBCURVE.
.. py:method:: DynamicProperty.getGradingTone(self: PyOpenColorIO.DynamicProperty) -> OpenColorIO_v2_0rc1::GradingTone
.. py:method:: DynamicProperty.getGradingTone(self: PyOpenColorIO.DynamicProperty) -> PyOpenColorIO.GradingTone
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingToneRcPtr to access the :ref:`GradingTone` value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_TONE.
@@ -55,19 +55,19 @@
Get the property as DynamicPropertyDoubleRcPtr to access the double value. Will throw if property type is not a type that holds a double such as DYNAMIC_PROPERTY_EXPOSURE.
.. py:method:: DynamicProperty.setGradingPrimary(self: PyOpenColorIO.DynamicProperty, val: OpenColorIO_v2_0rc1::GradingPrimary) -> None
.. py:method:: DynamicProperty.setGradingPrimary(self: PyOpenColorIO.DynamicProperty, val: PyOpenColorIO.GradingPrimary) -> None
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingPrimaryRcPtr to access the :ref:`GradingPrimary` value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_PRIMARY.
.. py:method:: DynamicProperty.setGradingRGBCurve(self: PyOpenColorIO.DynamicProperty, val: OpenColorIO_v2_0rc1::GradingRGBCurve) -> None
.. py:method:: DynamicProperty.setGradingRGBCurve(self: PyOpenColorIO.DynamicProperty, val: PyOpenColorIO.GradingRGBCurve) -> None
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingRGBCurveRcPtr to access the GradingRGBCurveRcPtr value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_RGBCURVE.
.. py:method:: DynamicProperty.setGradingTone(self: PyOpenColorIO.DynamicProperty, val: OpenColorIO_v2_0rc1::GradingTone) -> None
.. py:method:: DynamicProperty.setGradingTone(self: PyOpenColorIO.DynamicProperty, val: PyOpenColorIO.GradingTone) -> None
:module: PyOpenColorIO
Get the property as DynamicPropertyGradingToneRcPtr to access the :ref:`GradingTone` value. Will throw if property type is not DYNAMIC_PROPERTY_GRADING_TONE.
@@ -54,3 +54,8 @@
:module: PyOpenColorIO
:value: <DynamicPropertyType.DYNAMIC_PROPERTY_GRADING_TONE: 5>
.. py:method:: DynamicPropertyType.value
:module: PyOpenColorIO
:property:
@@ -31,3 +31,8 @@
:module: PyOpenColorIO
:value: <EnvironmentMode.ENV_ENVIRONMENT_UNKNOWN: 0>
.. py:method:: EnvironmentMode.value
:module: PyOpenColorIO
:property:
@@ -23,9 +23,11 @@
2. __init__(self: PyOpenColorIO.ExponentTransform, value: List[float[4]] = [1.0, 1.0, 1.0, 1.0], negativeStyle: PyOpenColorIO.NegativeStyle = <NegativeStyle.NEGATIVE_CLAMP: 0>, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: ExponentTransform.__str__(self: PyOpenColorIO.ExponentTransform) -> str
.. py:method:: ExponentTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: ExponentTransform.equals(self: PyOpenColorIO.ExponentTransform, other: PyOpenColorIO.ExponentTransform) -> bool
:module: PyOpenColorIO
@@ -25,9 +25,11 @@
2. __init__(self: PyOpenColorIO.ExponentWithLinearTransform, gamma: List[float[4]] = [1.0, 1.0, 1.0, 1.0], offset: List[float[4]] = [0.0, 0.0, 0.0, 0.0], negativeStyle: PyOpenColorIO.NegativeStyle = <NegativeStyle.NEGATIVE_LINEAR: 3>, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: ExponentWithLinearTransform.__str__(self: PyOpenColorIO.ExponentWithLinearTransform) -> str
.. py:method:: ExponentWithLinearTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: ExponentWithLinearTransform.equals(self: PyOpenColorIO.ExponentWithLinearTransform, other: PyOpenColorIO.ExponentWithLinearTransform) -> bool
:module: PyOpenColorIO
@@ -33,3 +33,8 @@
:module: PyOpenColorIO
:value: <ExposureContrastStyle.EXPOSURE_CONTRAST_VIDEO: 1>
.. py:method:: ExposureContrastStyle.value
:module: PyOpenColorIO
:property:
@@ -19,9 +19,11 @@
2. __init__(self: PyOpenColorIO.ExposureContrastTransform, style: PyOpenColorIO.ExposureContrastStyle = <ExposureContrastStyle.EXPOSURE_CONTRAST_LINEAR: 0>, exposure: float = 0.0, contrast: float = 1.0, gamma: float = 1.0, pivot: float = 0.18, logExposureStep: float = 0.088, logMidGray: float = 0.435, dynamicExposure: bool = False, dynamicContrast: bool = False, dynamicGamma: bool = False, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: ExposureContrastTransform.__str__(self: PyOpenColorIO.ExposureContrastTransform) -> str
.. py:method:: ExposureContrastTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: ExposureContrastTransform.equals(self: PyOpenColorIO.ExposureContrastTransform, other: PyOpenColorIO.ExposureContrastTransform) -> bool
:module: PyOpenColorIO
@@ -17,9 +17,11 @@
2. __init__(self: PyOpenColorIO.FileTransform, src: str = '', cccId: str = '', interpolation: PyOpenColorIO.Interpolation = <Interpolation.INTERP_DEFAULT: 254>, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: FileTransform.__str__(self: PyOpenColorIO.FileTransform) -> str
.. py:method:: FileTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: FileTransform.getCCCId(self: PyOpenColorIO.FileTransform) -> str
:module: PyOpenColorIO
@@ -30,6 +30,12 @@
FIXED_FUNCTION_XYZ_TO_LUV : CIE XYZ to 1976 CIELUV colour space (D65 white)
FIXED_FUNCTION_ACES_GAMUTMAP_02 : ACES 0.2 Gamut clamping algorithm -- NOT IMPLEMENTED YET.
FIXED_FUNCTION_ACES_GAMUTMAP_07 : ACES 0.7 Gamut clamping algorithm -- NOT IMPLEMENTED YET.
FIXED_FUNCTION_ACES_GAMUTMAP_13 : ACES 1.3 Gamut mapping algorithm -- NOT IMPLEMENTED YET.
.. py:method:: name() -> str
:property:
@@ -38,6 +44,21 @@
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_DARK_TO_DIM_10: 4>
.. py:attribute:: FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_02
:module: PyOpenColorIO
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_02: 10>
.. py:attribute:: FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_07
:module: PyOpenColorIO
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_07: 11>
.. py:attribute:: FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_13
:module: PyOpenColorIO
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_GAMUTMAP_13: 12>
.. py:attribute:: FixedFunctionStyle.FIXED_FUNCTION_ACES_GLOW_03
:module: PyOpenColorIO
:value: <FixedFunctionStyle.FIXED_FUNCTION_ACES_GLOW_03: 2>
@@ -82,3 +103,8 @@
:module: PyOpenColorIO
:value: <FixedFunctionStyle.FIXED_FUNCTION_XYZ_TO_xyY: 7>
.. py:method:: FixedFunctionStyle.value
:module: PyOpenColorIO
:property:
@@ -9,19 +9,15 @@
Provides a set of hard-coded algorithmic building blocks that are needed to accurately implement various common color transformations.
.. py:method:: FixedFunctionTransform.__init__(*args, **kwargs)
.. py:method:: FixedFunctionTransform.__init__(self: PyOpenColorIO.FixedFunctionTransform, style: PyOpenColorIO.FixedFunctionStyle, params: List[float] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.FixedFunctionTransform) -> None
2. __init__(self: PyOpenColorIO.FixedFunctionTransform, style: PyOpenColorIO.FixedFunctionStyle = <FixedFunctionStyle.FIXED_FUNCTION_ACES_RED_MOD_03: 0>, params: List[float] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: FixedFunctionTransform.__str__(self: PyOpenColorIO.FixedFunctionTransform) -> str
.. py:method:: FixedFunctionTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: FixedFunctionTransform.equals(self: PyOpenColorIO.FixedFunctionTransform, other: PyOpenColorIO.FixedFunctionTransform) -> bool
:module: PyOpenColorIO
@@ -47,3 +47,8 @@
:module: PyOpenColorIO
:value: <GpuLanguage.GPU_LANGUAGE_HLSL_DX11: 4>
.. py:method:: GpuLanguage.value
:module: PyOpenColorIO
:property:
@@ -13,19 +13,11 @@
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: GPUProcessor.extractGpuShaderInfo(*args, **kwargs)
.. py:method:: GPUProcessor.extractGpuShaderInfo(self: PyOpenColorIO.GPUProcessor, shaderDesc: PyOpenColorIO.GpuShaderDesc) -> None
:module: PyOpenColorIO
Overloaded function.
1. extractGpuShaderInfo(self: PyOpenColorIO.GPUProcessor, shaderDesc: OpenColorIO_v2_0rc1::GpuShaderDesc) -> None
Extract & Store the shader information to implement the color processing.
2. extractGpuShaderInfo(self: PyOpenColorIO.GPUProcessor, shaderCreator: OpenColorIO_v2_0rc1::GpuShaderCreator) -> None
Extract the shader information using a custom :ref:`GpuShaderCreator` class.
.. py:method:: GPUProcessor.getCacheID(self: PyOpenColorIO.GPUProcessor) -> str
:module: PyOpenColorIO
@@ -13,18 +13,6 @@
To better decouple the DynamicProperties from their GPU implementation, the code provides several addUniform() methods i.e. one per access function types. For example, an :ref:`ExposureContrastTransform` instance owns three DynamicProperties and they are all implemented by a double. When creating the GPU fragment shader program, the addUniform() with :ref:`GpuShaderCreator::DoubleGetter` is called when property is dynamic, up to three times.
.. py:method:: GpuShaderCreator.__init__(self: PyOpenColorIO.GpuShaderCreator) -> None
:module: PyOpenColorIO
.. py:method:: GpuShaderCreator.add3DTexture(self: PyOpenColorIO.GpuShaderCreator, textureName: str, samplerName: str, edgeLen: int, interpolation: PyOpenColorIO.Interpolation, values: float) -> None
:module: PyOpenColorIO
.. py:method:: GpuShaderCreator.addTexture(self: PyOpenColorIO.GpuShaderCreator, textureName: str, samplerName: str, width: int, height: int, channel: PyOpenColorIO.GpuShaderCreator.TextureType, interpolation: PyOpenColorIO.Interpolation, values: float) -> None
:module: PyOpenColorIO
.. py:method:: GpuShaderCreator.addToDeclareShaderCode(self: PyOpenColorIO.GpuShaderCreator, shaderCode: str) -> None
:module: PyOpenColorIO
@@ -85,7 +73,7 @@
:module: PyOpenColorIO
.. py:method:: GpuShaderCreator.getDynamicProperty(self: PyOpenColorIO.GpuShaderCreator, type: PyOpenColorIO.DynamicPropertyType) -> OpenColorIO_v2_0rc1::DynamicProperty
.. py:method:: GpuShaderCreator.getDynamicProperty(self: PyOpenColorIO.GpuShaderCreator, type: PyOpenColorIO.DynamicPropertyType) -> PyOpenColorIO.DynamicProperty
:module: PyOpenColorIO
@@ -180,11 +168,16 @@
:value: <TextureType.TEXTURE_RGB_CHANNEL: 1>
.. py:method:: TextureType.value
:module: PyOpenColorIO.GpuShaderCreator
:property:
.. py:class:: DynamicPropertyIterator
:module: PyOpenColorIO.GpuShaderCreator
.. py:method:: DynamicPropertyIterator.__getitem__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator, arg0: int) -> OpenColorIO_v2_0rc1::DynamicProperty
.. py:method:: DynamicPropertyIterator.__getitem__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator, arg0: int) -> PyOpenColorIO.DynamicProperty
:module: PyOpenColorIO.GpuShaderCreator
@@ -196,6 +189,6 @@
:module: PyOpenColorIO.GpuShaderCreator
.. py:method:: DynamicPropertyIterator.__next__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator) -> OpenColorIO_v2_0rc1::DynamicProperty
.. py:method:: DynamicPropertyIterator.__next__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator) -> PyOpenColorIO.DynamicProperty
:module: PyOpenColorIO.GpuShaderCreator
@@ -61,7 +61,7 @@
Start to collect the shader data.
.. py:method:: GpuShaderDesc.clone(self: PyOpenColorIO.GpuShaderCreator) -> PyOpenColorIO.GpuShaderCreator
.. py:method:: GpuShaderDesc.clone(self: PyOpenColorIO.GpuShaderDesc) -> PyOpenColorIO.GpuShaderCreator
:module: PyOpenColorIO
@@ -87,10 +87,6 @@
:module: PyOpenColorIO
.. py:method:: GpuShaderDesc.get3DTextureValues(self: PyOpenColorIO.GpuShaderDesc, index: int) -> numpy.ndarray
:module: PyOpenColorIO
.. py:method:: GpuShaderDesc.get3DTextures(self: PyOpenColorIO.GpuShaderDesc) -> PyOpenColorIO.GpuShaderDesc.Texture3DIterator
:module: PyOpenColorIO
@@ -103,7 +99,7 @@
:module: PyOpenColorIO
.. py:method:: GpuShaderDesc.getDynamicProperty(self: PyOpenColorIO.GpuShaderCreator, type: PyOpenColorIO.DynamicPropertyType) -> OpenColorIO_v2_0rc1::DynamicProperty
.. py:method:: GpuShaderDesc.getDynamicProperty(self: PyOpenColorIO.GpuShaderCreator, type: PyOpenColorIO.DynamicPropertyType) -> PyOpenColorIO.DynamicProperty
:module: PyOpenColorIO
@@ -121,14 +117,6 @@
To avoid texture/unform name clashes always append an increasing number to the resource name.
.. py:method:: GpuShaderDesc.getNum3DTextures(self: PyOpenColorIO.GpuShaderDesc) -> int
:module: PyOpenColorIO
.. py:method:: GpuShaderDesc.getNumTextures(self: PyOpenColorIO.GpuShaderDesc) -> int
:module: PyOpenColorIO
.. py:method:: GpuShaderDesc.getPixelName(self: PyOpenColorIO.GpuShaderCreator) -> str
:module: PyOpenColorIO
@@ -140,15 +128,21 @@
Some applications require that textures, uniforms, and helper methods be uniquely named because several processor instances could coexist.
.. py:method:: GpuShaderDesc.getShaderText(self: PyOpenColorIO.GpuShaderDesc) -> str
:module: PyOpenColorIO
Get the complete OCIO shader program.
.. py:method:: GpuShaderDesc.getTextureMaxWidth(self: PyOpenColorIO.GpuShaderCreator) -> int
:module: PyOpenColorIO
.. py:method:: GpuShaderDesc.getTextureValues(self: PyOpenColorIO.GpuShaderDesc, index: int) -> numpy.ndarray
.. py:method:: GpuShaderDesc.getTextures(self: PyOpenColorIO.GpuShaderDesc) -> PyOpenColorIO.GpuShaderDesc.TextureIterator
:module: PyOpenColorIO
.. py:method:: GpuShaderDesc.getTextures(self: PyOpenColorIO.GpuShaderDesc) -> PyOpenColorIO.GpuShaderDesc.TextureIterator
.. py:method:: GpuShaderDesc.getUniforms(self: PyOpenColorIO.GpuShaderDesc) -> PyOpenColorIO.GpuShaderDesc.UniformIterator
:module: PyOpenColorIO
@@ -214,6 +208,40 @@
:value: <TextureType.TEXTURE_RGB_CHANNEL: 1>
.. py:method:: TextureType.value
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:class:: UniformData
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: UniformData.getBool(self: PyOpenColorIO.GpuShaderDesc.UniformData) -> bool
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: UniformData.getDouble(self: PyOpenColorIO.GpuShaderDesc.UniformData) -> float
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: UniformData.getFloat3(self: PyOpenColorIO.GpuShaderDesc.UniformData) -> List[float[3]]
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: UniformData.getVectorFloat(self: PyOpenColorIO.GpuShaderDesc.UniformData) -> numpy.ndarray
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: UniformData.getVectorInt(self: PyOpenColorIO.GpuShaderDesc.UniformData) -> numpy.ndarray
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: UniformData.type
:module: PyOpenColorIO.GpuShaderDesc
:property:
.. py:class:: Texture
:module: PyOpenColorIO.GpuShaderDesc
@@ -223,6 +251,10 @@
:property:
.. py:method:: Texture.getValues(self: PyOpenColorIO.GpuShaderDesc.Texture) -> numpy.ndarray
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: Texture.height
:module: PyOpenColorIO.GpuShaderDesc
:property:
@@ -257,6 +289,10 @@
:property:
.. py:method:: Texture3D.getValues(self: PyOpenColorIO.GpuShaderDesc.Texture3D) -> numpy.ndarray
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: Texture3D.interpolation
:module: PyOpenColorIO.GpuShaderDesc
:property:
@@ -272,6 +308,26 @@
:property:
.. py:class:: UniformIterator
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: UniformIterator.__getitem__(self: PyOpenColorIO.GpuShaderDesc.UniformIterator, arg0: int) -> tuple
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: UniformIterator.__iter__(self: PyOpenColorIO.GpuShaderDesc.UniformIterator) -> PyOpenColorIO.GpuShaderDesc.UniformIterator
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: UniformIterator.__len__(self: PyOpenColorIO.GpuShaderDesc.UniformIterator) -> int
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: UniformIterator.__next__(self: PyOpenColorIO.GpuShaderDesc.UniformIterator) -> tuple
:module: PyOpenColorIO.GpuShaderDesc
.. py:class:: TextureIterator
:module: PyOpenColorIO.GpuShaderDesc
@@ -316,7 +372,7 @@
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: DynamicPropertyIterator.__getitem__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator, arg0: int) -> OpenColorIO_v2_0rc1::DynamicProperty
.. py:method:: DynamicPropertyIterator.__getitem__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator, arg0: int) -> PyOpenColorIO.DynamicProperty
:module: PyOpenColorIO.GpuShaderDesc
@@ -328,6 +384,6 @@
:module: PyOpenColorIO.GpuShaderDesc
.. py:method:: DynamicPropertyIterator.__next__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator) -> OpenColorIO_v2_0rc1::DynamicProperty
.. py:method:: DynamicPropertyIterator.__next__(self: PyOpenColorIO.GpuShaderCreator.DynamicPropertyIterator) -> PyOpenColorIO.DynamicProperty
:module: PyOpenColorIO.GpuShaderDesc
@@ -23,10 +23,6 @@
Create a BSpline curve with a list of control points.
.. py:method:: GradingBSplineCurve.__str__(self: PyOpenColorIO.GradingBSplineCurve) -> str
:module: PyOpenColorIO
.. py:method:: GradingBSplineCurve.getControlPoints(self: PyOpenColorIO.GradingBSplineCurve) -> PyOpenColorIO.GradingBSplineCurve.GradingControlPointIterator
:module: PyOpenColorIO
@@ -19,10 +19,6 @@
2. __init__(self: PyOpenColorIO.GradingControlPoint, x: float = 0.0, y: float = 0.0) -> None
.. py:method:: GradingControlPoint.__str__(self: PyOpenColorIO.GradingControlPoint) -> str
:module: PyOpenColorIO
.. py:method:: GradingControlPoint.x
:module: PyOpenColorIO
:property:
@@ -23,10 +23,6 @@
:module: PyOpenColorIO
.. py:method:: GradingPrimary.__str__(self: PyOpenColorIO.GradingPrimary) -> str
:module: PyOpenColorIO
.. py:method:: GradingPrimary.brightness
:module: PyOpenColorIO
:property:
@@ -23,7 +23,7 @@
Overloaded function.
1. __init__(self: PyOpenColorIO.GradingPrimaryTransform, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, values: PyOpenColorIO.GradingPrimary, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
1. __init__(self: PyOpenColorIO.GradingPrimaryTransform, values: PyOpenColorIO.GradingPrimary, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
Creates an instance of :ref:`GradingPrimaryTransform`.
@@ -32,9 +32,11 @@
Creates an instance of :ref:`GradingPrimaryTransform`.
.. py:method:: GradingPrimaryTransform.__str__(self: PyOpenColorIO.Transform) -> str
.. py:method:: GradingPrimaryTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: GradingPrimaryTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
@@ -18,11 +18,7 @@
Do not use (needed only for pybind11).
2. __init__(self: PyOpenColorIO.GradingRGBCurve, red: PyOpenColorIO.GradingBSplineCurve = <PyOpenColorIO.GradingBSplineCurve object at 0x7f9cabe66230>, green: PyOpenColorIO.GradingBSplineCurve = <PyOpenColorIO.GradingBSplineCurve object at 0x7f9cabe661f0>, blue: PyOpenColorIO.GradingBSplineCurve = <PyOpenColorIO.GradingBSplineCurve object at 0x7f9cabe66170>, master: PyOpenColorIO.GradingBSplineCurve = <PyOpenColorIO.GradingBSplineCurve object at 0x7f9cabe64f70>) -> None
.. py:method:: GradingRGBCurve.__str__(self: PyOpenColorIO.GradingRGBCurve) -> str
:module: PyOpenColorIO
2. __init__(self: PyOpenColorIO.GradingRGBCurve, red: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>, green: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>, blue: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>, master: PyOpenColorIO.GradingBSplineCurve = <control_points=[<x=0, y=0><x=0.5, y=0.5><x=1, y=1>]>) -> None
.. py:method:: GradingRGBCurve.blue
@@ -1,118 +1,120 @@
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: GradingRGBCurveTransform
:module: PyOpenColorIO
RGB curve color correction controls.
This transform allows for modifying tone reproduction via B-spline curves.
There is an R, G, and B curve along with a Master curve (that applies to R, G, and B). Each curve is specified via the x and y coordinates of its control points. A monotonic spline is fit to the control points. The x coordinates must be non-decreasing. When the grading style is linear, the units for the control points are photographic stops relative to 0.18.
The control points are dynamic, so they may be adjusted even after the :ref:`Transform` is included in a :ref:`Processor`.
.. py:method:: GradingRGBCurveTransform.__init__(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.GradingRGBCurveTransform, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, values: PyOpenColorIO.GradingRGBCurve, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
Creates an instance of :ref:`GradingPrimaryTransform`.
2. __init__(self: PyOpenColorIO.GradingRGBCurveTransform, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
Creates an instance of :ref:`GradingPrimaryTransform`.
.. py:method:: GradingRGBCurveTransform.__str__(self: PyOpenColorIO.Transform) -> str
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.getBypassLinToLog(self: PyOpenColorIO.GradingRGBCurveTransform) -> bool
:module: PyOpenColorIO
The scene-linear grading style applies a lin-to-log transform to the pixel values before going through the curve. However, in some cases (e.g. drawing curves in a UI) it may be useful to bypass the lin-to-log. Default value is false.
.. py:method:: GradingRGBCurveTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.getFormatMetadata(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.FormatMetadata
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.getSlope(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType, index: int) -> float
:module: PyOpenColorIO
It is possible to provide a desired slope value for each control point. The number of slopes is always the same as the number of control points and so the control points must be set before setting the slopes. The slopes are primarily intended for use by config authors looking to match a specific shape with as few control points as possible, they are not intended to be exposed to a user interface for direct manipulation. When a curve is being generated for creative purposes it is better to let OCIO calculate the slopes automatically.
.. py:method:: GradingRGBCurveTransform.getStyle(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.GradingStyle
:module: PyOpenColorIO
Adjusts the behavior of the transform for log, linear, or video color space encodings.
.. py:method:: GradingRGBCurveTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.getValue(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.GradingRGBCurve
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.isDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> bool
:module: PyOpenColorIO
Parameters can be made dynamic so the values can be changed through the CPU or GPU processor, but if there are several :ref:`GradingRGBCurveTransform` only one can have dynamic parameters.
.. py:method:: GradingRGBCurveTransform.makeDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> None
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.makeNonDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> None
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.setBypassLinToLog(self: PyOpenColorIO.GradingRGBCurveTransform, bypass: bool) -> None
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.setDirection(self: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> None
:module: PyOpenColorIO
Note that this only affects the evaluation and not the values stored in the object.
.. py:method:: GradingRGBCurveTransform.setSlope(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType, index: int, slope: float) -> None
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.setStyle(self: PyOpenColorIO.GradingRGBCurveTransform, style: PyOpenColorIO.GradingStyle) -> None
:module: PyOpenColorIO
Will reset value to style's defaults if style is not the current style.
.. py:method:: GradingRGBCurveTransform.setValue(self: PyOpenColorIO.GradingRGBCurveTransform, values: PyOpenColorIO.GradingRGBCurve) -> None
:module: PyOpenColorIO
Throws if value is not valid.
.. py:method:: GradingRGBCurveTransform.slopesAreDefault(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType) -> bool
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.validate(self: PyOpenColorIO.Transform) -> None
:module: PyOpenColorIO
Will throw if data is not valid.
..
SPDX-License-Identifier: CC-BY-4.0
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:class:: GradingRGBCurveTransform
:module: PyOpenColorIO
RGB curve color correction controls.
This transform allows for modifying tone reproduction via B-spline curves.
There is an R, G, and B curve along with a Master curve (that applies to R, G, and B). Each curve is specified via the x and y coordinates of its control points. A monotonic spline is fit to the control points. The x coordinates must be non-decreasing. When the grading style is linear, the units for the control points are photographic stops relative to 0.18.
The control points are dynamic, so they may be adjusted even after the :ref:`Transform` is included in a :ref:`Processor`.
.. py:method:: GradingRGBCurveTransform.__init__(*args, **kwargs)
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.GradingRGBCurveTransform, values: PyOpenColorIO.GradingRGBCurve, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
Creates an instance of :ref:`GradingPrimaryTransform`.
2. __init__(self: PyOpenColorIO.GradingRGBCurveTransform, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
Creates an instance of :ref:`GradingPrimaryTransform`.
.. py:method:: GradingRGBCurveTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: GradingRGBCurveTransform.getBypassLinToLog(self: PyOpenColorIO.GradingRGBCurveTransform) -> bool
:module: PyOpenColorIO
The scene-linear grading style applies a lin-to-log transform to the pixel values before going through the curve. However, in some cases (e.g. drawing curves in a UI) it may be useful to bypass the lin-to-log. Default value is false.
.. py:method:: GradingRGBCurveTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.getFormatMetadata(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.FormatMetadata
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.getSlope(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType, index: int) -> float
:module: PyOpenColorIO
It is possible to provide a desired slope value for each control point. The number of slopes is always the same as the number of control points and so the control points must be set before setting the slopes. The slopes are primarily intended for use by config authors looking to match a specific shape with as few control points as possible, they are not intended to be exposed to a user interface for direct manipulation. When a curve is being generated for creative purposes it is better to let OCIO calculate the slopes automatically.
.. py:method:: GradingRGBCurveTransform.getStyle(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.GradingStyle
:module: PyOpenColorIO
Adjusts the behavior of the transform for log, linear, or video color space encodings.
.. py:method:: GradingRGBCurveTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.getValue(self: PyOpenColorIO.GradingRGBCurveTransform) -> PyOpenColorIO.GradingRGBCurve
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.isDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> bool
:module: PyOpenColorIO
Parameters can be made dynamic so the values can be changed through the CPU or GPU processor, but if there are several :ref:`GradingRGBCurveTransform` only one can have dynamic parameters.
.. py:method:: GradingRGBCurveTransform.makeDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> None
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.makeNonDynamic(self: PyOpenColorIO.GradingRGBCurveTransform) -> None
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.setBypassLinToLog(self: PyOpenColorIO.GradingRGBCurveTransform, bypass: bool) -> None
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.setDirection(self: PyOpenColorIO.Transform, direction: PyOpenColorIO.TransformDirection) -> None
:module: PyOpenColorIO
Note that this only affects the evaluation and not the values stored in the object.
.. py:method:: GradingRGBCurveTransform.setSlope(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType, index: int, slope: float) -> None
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.setStyle(self: PyOpenColorIO.GradingRGBCurveTransform, style: PyOpenColorIO.GradingStyle) -> None
:module: PyOpenColorIO
Will reset value to style's defaults if style is not the current style.
.. py:method:: GradingRGBCurveTransform.setValue(self: PyOpenColorIO.GradingRGBCurveTransform, values: PyOpenColorIO.GradingRGBCurve) -> None
:module: PyOpenColorIO
Throws if value is not valid.
.. py:method:: GradingRGBCurveTransform.slopesAreDefault(self: PyOpenColorIO.GradingRGBCurveTransform, channel: PyOpenColorIO.RGBCurveType) -> bool
:module: PyOpenColorIO
.. py:method:: GradingRGBCurveTransform.validate(self: PyOpenColorIO.Transform) -> None
:module: PyOpenColorIO
Will throw if data is not valid.
@@ -19,10 +19,6 @@
2. __init__(self: PyOpenColorIO.GradingRGBM, red: float, green: float, blue: float, master: float) -> None
.. py:method:: GradingRGBM.__str__(self: PyOpenColorIO.GradingRGBM) -> str
:module: PyOpenColorIO
.. py:method:: GradingRGBM.blue
:module: PyOpenColorIO
:property:
@@ -21,10 +21,6 @@
3. __init__(self: PyOpenColorIO.GradingRGBMSW, start: float, width: float) -> None
.. py:method:: GradingRGBMSW.__str__(self: PyOpenColorIO.GradingRGBMSW) -> str
:module: PyOpenColorIO
.. py:method:: GradingRGBMSW.blue
:module: PyOpenColorIO
:property:
@@ -33,3 +33,8 @@
:module: PyOpenColorIO
:value: <GradingStyle.GRADING_VIDEO: 2>
.. py:method:: GradingStyle.value
:module: PyOpenColorIO
:property:
@@ -13,10 +13,6 @@
:module: PyOpenColorIO
.. py:method:: GradingTone.__str__(self: PyOpenColorIO.GradingTone) -> str
:module: PyOpenColorIO
.. py:method:: GradingTone.blacks
:module: PyOpenColorIO
:property:
@@ -31,7 +31,7 @@
Overloaded function.
1. __init__(self: PyOpenColorIO.GradingToneTransform, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, values: PyOpenColorIO.GradingTone, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
1. __init__(self: PyOpenColorIO.GradingToneTransform, values: PyOpenColorIO.GradingTone, style: PyOpenColorIO.GradingStyle = <GradingStyle.GRADING_LOG: 0>, dynamic: bool = False, dir: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
Creates an instance of :ref:`GradingToneTransform`.
@@ -40,9 +40,11 @@
Creates an instance of :ref:`GradingToneTransform`.
.. py:method:: GradingToneTransform.__str__(self: PyOpenColorIO.Transform) -> str
.. py:method:: GradingToneTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: GradingToneTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
@@ -7,21 +7,11 @@
:module: PyOpenColorIO
.. py:method:: GroupTransform.GetWriteFormats() -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::GroupTransform>,1>
.. py:method:: GroupTransform.GetWriteFormats() -> PyOpenColorIO.GroupTransform.WriteFormatIterator
:module: PyOpenColorIO
:staticmethod:
.. py:class:: GroupTransform.WriteFormatIterator
:module: PyOpenColorIO
.. py:method:: GroupTransform.WriteFormatIterator.__init__(*args, **kwargs)
:module: PyOpenColorIO
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: GroupTransform.__init__(*args, **kwargs)
:module: PyOpenColorIO
@@ -32,9 +22,11 @@
2. __init__(self: PyOpenColorIO.GroupTransform, transforms: List[PyOpenColorIO.Transform] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: GroupTransform.__str__(self: PyOpenColorIO.GroupTransform) -> str
.. py:method:: GroupTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: GroupTransform.appendTransform(self: PyOpenColorIO.GroupTransform, transform: PyOpenColorIO.Transform) -> None
:module: PyOpenColorIO
@@ -77,10 +69,11 @@
Overloaded function.
1. write(self: PyOpenColorIO.GroupTransform, config: OpenColorIO_v2_0rc1::Config, context: OpenColorIO_v2_0rc1::Context, formatName: str, fileName: str) -> None
1. write(self: PyOpenColorIO.GroupTransform, formatName: str, fileName: str, config: PyOpenColorIO.Config = None) -> None
Write the transforms comprising the group to the stream.
Writing (as opposed to Baking) is a lossless process. An exception is thrown if the processor cannot be losslessly written to the specified file format. Transforms such as :ref:`FileTransform` or :ref:`ColorSpaceTransform` are resolved into write-able simple transforms using the config and context. Supported formats include CTF, CLF, and CDL. All available formats can be listed with the following: .. code-block:: cpp
// What are the allowed writing output formats?
@@ -93,10 +86,11 @@
formats << " (." << GroupTransform::GetFormatExtensionByIndex(i) << ")";
}
2. write(self: PyOpenColorIO.GroupTransform, config: OpenColorIO_v2_0rc1::Config, context: OpenColorIO_v2_0rc1::Context, formatName: str) -> str
2. write(self: PyOpenColorIO.GroupTransform, formatName: str, config: PyOpenColorIO.Config = None) -> str
Write the transforms comprising the group to the stream.
Writing (as opposed to Baking) is a lossless process. An exception is thrown if the processor cannot be losslessly written to the specified file format. Transforms such as :ref:`FileTransform` or :ref:`ColorSpaceTransform` are resolved into write-able simple transforms using the config and context. Supported formats include CTF, CLF, and CDL. All available formats can be listed with the following: .. code-block:: cpp
// What are the allowed writing output formats?
@@ -110,6 +104,26 @@
}
.. py:class:: WriteFormatIterator
:module: PyOpenColorIO.GroupTransform
.. py:method:: WriteFormatIterator.__getitem__(self: PyOpenColorIO.GroupTransform.WriteFormatIterator, arg0: int) -> tuple
:module: PyOpenColorIO.GroupTransform
.. py:method:: WriteFormatIterator.__iter__(self: PyOpenColorIO.GroupTransform.WriteFormatIterator) -> PyOpenColorIO.GroupTransform.WriteFormatIterator
:module: PyOpenColorIO.GroupTransform
.. py:method:: WriteFormatIterator.__len__(self: PyOpenColorIO.GroupTransform.WriteFormatIterator) -> int
:module: PyOpenColorIO.GroupTransform
.. py:method:: WriteFormatIterator.__next__(self: PyOpenColorIO.GroupTransform.WriteFormatIterator) -> tuple
:module: PyOpenColorIO.GroupTransform
.. py:class:: TransformIterator
:module: PyOpenColorIO.GroupTransform
@@ -71,3 +71,8 @@
:module: PyOpenColorIO
:value: <Interpolation.INTERP_UNKNOWN: 0>
.. py:method:: Interpolation.value
:module: PyOpenColorIO
:property:
@@ -32,10 +32,6 @@
:module: PyOpenColorIO
.. py:method:: LegacyViewingPipeline.__str__(self: PyOpenColorIO.LegacyViewingPipeline) -> str
:module: PyOpenColorIO
.. py:method:: LegacyViewingPipeline.getChannelView(self: PyOpenColorIO.LegacyViewingPipeline) -> PyOpenColorIO.Transform
:module: PyOpenColorIO
@@ -24,9 +24,11 @@
2. __init__(self: PyOpenColorIO.LogAffineTransform, logSideSlope: List[float[3]] = [1.0, 1.0, 1.0], logSideOffset: List[float[3]] = [0.0, 0.0, 0.0], linSideSlope: List[float[3]] = [1.0, 1.0, 1.0], linSideOffset: List[float[3]] = [0.0, 0.0, 0.0], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: LogAffineTransform.__str__(self: PyOpenColorIO.LogAffineTransform) -> str
.. py:method:: LogAffineTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: LogAffineTransform.equals(self: PyOpenColorIO.LogAffineTransform, other: PyOpenColorIO.LogAffineTransform) -> bool
:module: PyOpenColorIO
@@ -6,25 +6,23 @@
.. py:class:: LogCameraTransform
:module: PyOpenColorIO
Same as :cpp:class:`:ref:`LogAffineTransform`` but with the addition of a linear segment near black. This formula is used for many camera logs (e.g., LogC) as well as ACEScct.
Same as :ref:`LogAffineTransform` but with the addition of a linear segment near black. This formula is used for many camera logs (e.g., LogC) as well as ACEScct.
- The linSideBreak specifies the point on the linear axis where the log and linear segments meet. It must be set (there is no default).
- The linearSlope specifies the slope of the linear segment of the forward (linToLog) transform. By default it is set equal to the slope of the log curve at the break point.
.. py:method:: LogCameraTransform.__init__(*args, **kwargs)
.. py:method:: LogCameraTransform.__init__(self: PyOpenColorIO.LogCameraTransform, linSideBreak: List[float[3]], base: float = 2.0, logSideSlope: List[float[3]] = [1.0, 1.0, 1.0], logSideOffset: List[float[3]] = [0.0, 0.0, 0.0], linSideSlope: List[float[3]] = [1.0, 1.0, 1.0], linSideOffset: List[float[3]] = [0.0, 0.0, 0.0], linearSlope: List[float] = [], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
:module: PyOpenColorIO
Overloaded function.
1. __init__(self: PyOpenColorIO.LogCameraTransform) -> None
2. __init__(self: PyOpenColorIO.LogCameraTransform, linSideBreak: List[float[3]], logSideSlope: List[float[3]] = [1.0, 1.0, 1.0], logSideOffset: List[float[3]] = [0.0, 0.0, 0.0], linSideSlope: List[float[3]] = [1.0, 1.0, 1.0], linSideOffset: List[float[3]] = [0.0, 0.0, 0.0], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
LinSideBreak must be set for the transform to be valid (there is no default).
.. py:method:: LogCameraTransform.__str__(self: PyOpenColorIO.LogCameraTransform) -> str
.. py:method:: LogCameraTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: LogCameraTransform.equals(self: PyOpenColorIO.LogCameraTransform, other: PyOpenColorIO.LogCameraTransform) -> bool
:module: PyOpenColorIO
@@ -47,8 +45,6 @@
.. py:method:: LogCameraTransform.getLinSideBreakValue(self: PyOpenColorIO.LogCameraTransform) -> List[float[3]]
:module: PyOpenColorIO
Return true if LinSideBreak values were set, false if they were not.
.. py:method:: LogCameraTransform.getLinSideOffsetValue(self: PyOpenColorIO.LogCameraTransform) -> List[float[3]]
:module: PyOpenColorIO
@@ -61,7 +57,7 @@
.. py:method:: LogCameraTransform.getLinearSlopeValue(self: PyOpenColorIO.LogCameraTransform) -> List[float[3]]
:module: PyOpenColorIO
Return true if LinearSlope values were set, false if they were not.
Return LinearSlope or 3 qnan values if not defined.
.. py:method:: LogCameraTransform.getLogSideOffsetValue(self: PyOpenColorIO.LogCameraTransform) -> List[float[3]]
@@ -71,11 +67,17 @@
.. py:method:: LogCameraTransform.getLogSideSlopeValue(self: PyOpenColorIO.LogCameraTransform) -> List[float[3]]
:module: PyOpenColorIO
Get/Set values for the R, G, B components.
.. py:method:: LogCameraTransform.getTransformType(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformType
:module: PyOpenColorIO
.. py:method:: LogCameraTransform.isLinearSlopeValueSet(self: PyOpenColorIO.LogCameraTransform) -> bool
:module: PyOpenColorIO
.. py:method:: LogCameraTransform.setBase(self: PyOpenColorIO.LogCameraTransform, base: float) -> None
:module: PyOpenColorIO
@@ -45,3 +45,8 @@
:module: PyOpenColorIO
:value: <LoggingLevel.LOGGING_LEVEL_WARNING: 1>
.. py:method:: LoggingLevel.value
:module: PyOpenColorIO
:property:
@@ -23,9 +23,11 @@
2. __init__(self: PyOpenColorIO.LogTransform, base: float = 2.0, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: LogTransform.__str__(self: PyOpenColorIO.LogTransform) -> str
.. py:method:: LogTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: LogTransform.equals(self: PyOpenColorIO.LogTransform, other: PyOpenColorIO.LogTransform) -> bool
:module: PyOpenColorIO
@@ -17,10 +17,6 @@
2. __init__(self: PyOpenColorIO.Look, name: str = '', processSpace: str = '', transform: PyOpenColorIO.Transform = None, inverseTransform: PyOpenColorIO.Transform = None, description: str = '') -> None
.. py:method:: Look.__str__(self: PyOpenColorIO.Look) -> str
:module: PyOpenColorIO
.. py:method:: Look.getDescription(self: PyOpenColorIO.Look) -> str
:module: PyOpenColorIO
@@ -14,12 +14,14 @@
1. __init__(self: PyOpenColorIO.LookTransform) -> None
2. __init__(self: PyOpenColorIO.LookTransform, src: str = '', dst: str = '', looks: str = '', direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>, skipColorSpaceConversion: bool = False) -> None
2. __init__(self: PyOpenColorIO.LookTransform, src: str, dst: str, looks: str = '', skipColorSpaceConversion: bool = False, direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: LookTransform.__str__(self: PyOpenColorIO.LookTransform) -> str
.. py:method:: LookTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: LookTransform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
@@ -10,9 +10,11 @@
Members:
HUE_NONE :
HUE_NONE : No adjustment.
HUE_DW3 :
HUE_DW3 : Algorithm used in ACES Output Transforms through v0.7.
HUE_WYPN : Weighted Yellow Power Norm -- NOT IMPLEMENTED YET.
.. py:method:: name() -> str
:property:
@@ -26,3 +28,13 @@
:module: PyOpenColorIO
:value: <Lut1DHueAdjust.HUE_NONE: 0>
.. py:attribute:: Lut1DHueAdjust.HUE_WYPN
:module: PyOpenColorIO
:value: <Lut1DHueAdjust.HUE_WYPN: 2>
.. py:method:: Lut1DHueAdjust.value
:module: PyOpenColorIO
:property:
@@ -27,9 +27,11 @@
Create an identity 1D-LUT with specific length and half-domain setting. Will throw for lengths longer than 1024x1024.
.. py:method:: Lut1DTransform.__str__(self: PyOpenColorIO.Lut1DTransform) -> str
.. py:method:: Lut1DTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: Lut1DTransform.equals(self: PyOpenColorIO.Lut1DTransform, other: PyOpenColorIO.Lut1DTransform) -> bool
:module: PyOpenColorIO
@@ -27,9 +27,11 @@
Create an identity 3D-LUT with specific grid size. Will throw for grid size larger than 129.
.. py:method:: Lut3DTransform.__str__(self: PyOpenColorIO.Lut3DTransform) -> str
.. py:method:: Lut3DTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: Lut3DTransform.equals(self: PyOpenColorIO.Lut3DTransform, other: PyOpenColorIO.Lut3DTransform) -> bool
:module: PyOpenColorIO
@@ -47,9 +47,11 @@
2. __init__(self: PyOpenColorIO.MatrixTransform, matrix: List[float[16]] = [1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0], offset: List[float[4]] = [0.0, 0.0, 0.0, 0.0], direction: PyOpenColorIO.TransformDirection = <TransformDirection.TRANSFORM_DIR_FORWARD: 0>) -> None
.. py:method:: MatrixTransform.__str__(self: PyOpenColorIO.MatrixTransform) -> str
.. py:method:: MatrixTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: MatrixTransform.equals(self: PyOpenColorIO.MatrixTransform, other: PyOpenColorIO.MatrixTransform) -> bool
:module: PyOpenColorIO
@@ -13,15 +13,11 @@
:module: PyOpenColorIO
.. py:method:: MixingColorSpaceManager.__str__(self: PyOpenColorIO.MixingColorSpaceManager) -> str
.. py:method:: MixingColorSpaceManager.getMixingEncodings(self: PyOpenColorIO.MixingColorSpaceManager) -> PyOpenColorIO.MixingColorSpaceManager.MixingEncodingIterator
:module: PyOpenColorIO
.. py:method:: MixingColorSpaceManager.getMixingEncodings(self: PyOpenColorIO.MixingColorSpaceManager) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::MixingColorSpaceManager>,1>
:module: PyOpenColorIO
.. py:method:: MixingColorSpaceManager.getMixingSpaces(self: PyOpenColorIO.MixingColorSpaceManager) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::MixingColorSpaceManager>,0>
.. py:method:: MixingColorSpaceManager.getMixingSpaces(self: PyOpenColorIO.MixingColorSpaceManager) -> PyOpenColorIO.MixingColorSpaceManager.MixingSpaceIterator
:module: PyOpenColorIO
@@ -23,10 +23,6 @@
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: MixingSlider.__str__(self: PyOpenColorIO.MixingSlider) -> str
:module: PyOpenColorIO
.. py:method:: MixingSlider.getSliderMaxEdge(self: PyOpenColorIO.MixingSlider) -> float
:module: PyOpenColorIO
@@ -8,6 +8,7 @@
:ref:`NamedTransform`.
A :ref:`NamedTransform` provides a way for config authors to include a set of color transforms that are independent of the color space being processed. For example a "utility
curve" transform where there is no need to convert to or from a reference space.
@@ -32,10 +33,6 @@
2. __init__(self: PyOpenColorIO.NamedTransform, name: str = '', aliases: List[str] = [], family: str = '', description: str = '', forwardTransform: PyOpenColorIO.Transform = None, inverseTransform: PyOpenColorIO.Transform = None, categories: List[str] = []) -> None
.. py:method:: NamedTransform.__str__(self: PyOpenColorIO.NamedTransform) -> str
:module: PyOpenColorIO
.. py:method:: NamedTransform.addAlias(self: PyOpenColorIO.NamedTransform, alias: str) -> None
:module: PyOpenColorIO
@@ -60,11 +57,11 @@
:ref:`ColorSpace::clearCategories`
.. py:method:: NamedTransform.getAliases(self: PyOpenColorIO.NamedTransform) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::NamedTransform>,1>
.. py:method:: NamedTransform.getAliases(self: PyOpenColorIO.NamedTransform) -> PyOpenColorIO.NamedTransform.NamedTransformAliasIterator
:module: PyOpenColorIO
.. py:method:: NamedTransform.getCategories(self: PyOpenColorIO.NamedTransform) -> OpenColorIO_v2_0rc1::PyIterator<std::shared_ptr<OpenColorIO_v2_0rc1::NamedTransform>,0>
.. py:method:: NamedTransform.getCategories(self: PyOpenColorIO.NamedTransform) -> PyOpenColorIO.NamedTransform.NamedTransformCategoryIterator
:module: PyOpenColorIO
@@ -31,3 +31,8 @@
:module: PyOpenColorIO
:value: <NamedTransformVisibility.NAMEDTRANSFORM_INACTIVE: 1>
.. py:method:: NamedTransformVisibility.value
:module: PyOpenColorIO
:property:
@@ -40,3 +40,8 @@
:module: PyOpenColorIO
:value: <NegativeStyle.NEGATIVE_PASS_THRU: 2>
.. py:method:: NegativeStyle.value
:module: PyOpenColorIO
:property:
@@ -208,3 +208,8 @@
:module: PyOpenColorIO
:value: <OptimizationFlags.OPTIMIZATION_VERY_GOOD: 263995331>
.. py:method:: OptimizationFlags.value
:module: PyOpenColorIO
:property:
@@ -25,7 +25,7 @@
:module: PyOpenColorIO
.. py:method:: Processor.getDefaultCPUProcessor(self: PyOpenColorIO.Processor) -> OpenColorIO_v2_0rc1::CPUProcessor
.. py:method:: Processor.getDefaultCPUProcessor(self: PyOpenColorIO.Processor) -> PyOpenColorIO.CPUProcessor
:module: PyOpenColorIO
Get an optimized :cpp:class:`:ref:`CPUProcessor`` instance.
@@ -50,19 +50,19 @@
cpuProcessor->apply(img);
.. py:method:: Processor.getDefaultGPUProcessor(self: PyOpenColorIO.Processor) -> OpenColorIO_v2_0rc1::GPUProcessor
.. py:method:: Processor.getDefaultGPUProcessor(self: PyOpenColorIO.Processor) -> PyOpenColorIO.GPUProcessor
:module: PyOpenColorIO
Get an optimized :ref:`GPUProcessor` instance.
.. py:method:: Processor.getDynamicProperty(self: PyOpenColorIO.Processor, type: PyOpenColorIO.DynamicPropertyType) -> OpenColorIO_v2_0rc1::DynamicProperty
.. py:method:: Processor.getDynamicProperty(self: PyOpenColorIO.Processor, type: PyOpenColorIO.DynamicPropertyType) -> PyOpenColorIO.DynamicProperty
:module: PyOpenColorIO
The returned pointer may be used to set the default value of any dynamic properties of the requested type. Throws if the requested property is not found. Note that if the processor contains several ops that support the requested property, only one can be dynamic and only this one will be controlled.
.. note::
The dynamic properties are a convenient way to change on-the-fly values without generating again and again a CPU or GPU processor instance. Color transformations can contain dynamic properties from a :cpp:class:`:ref:`ExposureContrastTransform`` for example. So, :cpp:class:`:ref:`Processor``, :cpp:class:`:ref:`CPUProcessor`` and :cpp:class:`:ref:`GpuShaderCreator`` all have ways to manage dynamic properties. However, the transform dynamic properties are decoupled between the types of processor instances so that the same :cpp:class:`:ref:`Processor`` can generate several independent CPU and/or GPU processor instances i.e. changing the value of the exposure dynamic property from a CPU processor instance does not affect the corresponding GPU processor instance. :ref:`Processor` creation will throw if there are more than one property of a given type.
The dynamic properties are a convenient way to change on-the-fly values without generating again and again a CPU or GPU processor instance. Color transformations can contain dynamic properties from a :ref:`ExposureContrastTransform` for example. So, :ref:`Processor`, :ref:`CPUProcessor` and :ref:`GpuShaderCreator` all have ways to manage dynamic properties. However, the transform dynamic properties are decoupled between the types of processor instances so that the same :ref:`Processor` can generate several independent CPU and/or GPU processor instances i.e. changing the value of the exposure dynamic property from a CPU processor instance does not affect the corresponding GPU processor instance. :ref:`Processor` creation will log a warning if there are more than one property of a given type. There may be more than one property of a given type, but only one will respond to parameter updates, the others will use their original parameter values.
.. py:method:: Processor.getFormatMetadata(self: PyOpenColorIO.Processor) -> PyOpenColorIO.FormatMetadata
@@ -76,12 +76,12 @@
Overloaded function.
1. getOptimizedCPUProcessor(self: PyOpenColorIO.Processor, oFlags: PyOpenColorIO.OptimizationFlags) -> OpenColorIO_v2_0rc1::CPUProcessor
1. getOptimizedCPUProcessor(self: PyOpenColorIO.Processor, oFlags: PyOpenColorIO.OptimizationFlags) -> PyOpenColorIO.CPUProcessor
2. getOptimizedCPUProcessor(self: PyOpenColorIO.Processor, inBitDepth: PyOpenColorIO.BitDepth, outBitDepth: PyOpenColorIO.BitDepth, oFlags: PyOpenColorIO.OptimizationFlags) -> OpenColorIO_v2_0rc1::CPUProcessor
2. getOptimizedCPUProcessor(self: PyOpenColorIO.Processor, inBitDepth: PyOpenColorIO.BitDepth, outBitDepth: PyOpenColorIO.BitDepth, oFlags: PyOpenColorIO.OptimizationFlags) -> PyOpenColorIO.CPUProcessor
.. py:method:: Processor.getOptimizedGPUProcessor(self: PyOpenColorIO.Processor, oFlags: PyOpenColorIO.OptimizationFlags) -> OpenColorIO_v2_0rc1::GPUProcessor
.. py:method:: Processor.getOptimizedGPUProcessor(self: PyOpenColorIO.Processor, oFlags: PyOpenColorIO.OptimizationFlags) -> PyOpenColorIO.GPUProcessor
:module: PyOpenColorIO
@@ -99,7 +99,7 @@
Run the optimizer on a :ref:`Processor` to create a new :cpp:class:`:ref:`Processor``. It is usually not necessary to call this since getting a :ref:`CPUProcessor` or :ref:`GPUProcessor` will also optimize. However if you need both, calling this method first makes getting a CPU and GPU :ref:`Processor` faster since the optimization is effectively only done once.
.. py:method:: Processor.getProcessorMetadata(self: PyOpenColorIO.Processor) -> OpenColorIO_v2_0rc1::ProcessorMetadata
.. py:method:: Processor.getProcessorMetadata(self: PyOpenColorIO.Processor) -> PyOpenColorIO.ProcessorMetadata
:module: PyOpenColorIO
The :ref:`ProcessorMetadata` contains technical information such as the number of files and looks used in the processor.
@@ -115,18 +115,16 @@
True if the image transformation is non-separable. For example, if a change in red may also cause a change in green or blue.
.. py:method:: Processor.hasDynamicProperty(*args, **kwargs)
.. py:method:: Processor.hasDynamicProperty(self: PyOpenColorIO.Processor, type: PyOpenColorIO.DynamicPropertyType) -> bool
:module: PyOpenColorIO
Overloaded function.
1. hasDynamicProperty(self: PyOpenColorIO.Processor, type: PyOpenColorIO.DynamicPropertyType) -> bool
True if at least one dynamic property of that type exists.
2. hasDynamicProperty(self: PyOpenColorIO.Processor) -> bool
True if at least one dynamic property of that type exists.
.. py:method:: Processor.isDynamic(self: PyOpenColorIO.Processor) -> bool
:module: PyOpenColorIO
True if at least one dynamic property of any type exists and is dynamic.
.. py:method:: Processor.isNoOp(self: PyOpenColorIO.Processor) -> bool
@@ -40,3 +40,8 @@
:module: PyOpenColorIO
:value: <ProcessorCacheFlags.PROCESSOR_CACHE_SHARE_DYN_PROPERTIES: 2>
.. py:method:: ProcessorCacheFlags.value
:module: PyOpenColorIO
:property:
@@ -26,3 +26,8 @@
:module: PyOpenColorIO
:value: <RangeStyle.RANGE_NO_CLAMP: 0>
.. py:method:: RangeStyle.value
:module: PyOpenColorIO
:property:
@@ -30,9 +30,11 @@
Creates an instance of :ref:`RangeTransform`.
.. py:method:: RangeTransform.__str__(self: PyOpenColorIO.RangeTransform) -> str
.. py:method:: RangeTransform.__str__()
:module: PyOpenColorIO
Return str(self).
.. py:method:: RangeTransform.equals(self: PyOpenColorIO.RangeTransform, other: PyOpenColorIO.RangeTransform) -> bool
:module: PyOpenColorIO
@@ -156,16 +158,14 @@
Set the Range style to clamp or not input values.
.. py:method:: RangeTransform.unsetMaxOutValue(*args, **kwargs)
.. py:method:: RangeTransform.unsetMaxInValue(self: PyOpenColorIO.RangeTransform) -> None
:module: PyOpenColorIO
Overloaded function.
Unset the maximum value for the input.
1. unsetMaxOutValue(self: PyOpenColorIO.RangeTransform) -> None
Unset the maximum value for the output.
2. unsetMaxOutValue(self: PyOpenColorIO.RangeTransform) -> None
.. py:method:: RangeTransform.unsetMaxOutValue(self: PyOpenColorIO.RangeTransform) -> None
:module: PyOpenColorIO
Unset the maximum value for the output.
@@ -26,3 +26,8 @@
:module: PyOpenColorIO
:value: <ReferenceSpaceType.REFERENCE_SPACE_SCENE: 0>
.. py:method:: ReferenceSpaceType.value
:module: PyOpenColorIO
:property:
@@ -47,3 +47,8 @@
:module: PyOpenColorIO
:value: <RGBCurveType.RGB_RED: 0>
.. py:method:: RGBCurveType.value
:module: PyOpenColorIO
:property:
@@ -31,3 +31,8 @@
:module: PyOpenColorIO
:value: <SearchReferenceSpaceType.SEARCH_REFERENCE_SPACE_SCENE: 0>
.. py:method:: SearchReferenceSpaceType.value
:module: PyOpenColorIO
:property:
@@ -3,10 +3,12 @@
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: SetComputeHashFunction(hashFunction: std::function<std::basic_string<char,std::char_traits<char>,std::allocator<char> > __cdecl(std::basic_string<char,std::char_traits<char>,std::allocator<char> > const & __ptr64)>) -> None
.. py:function:: SetComputeHashFunction(hashFunction: Callable[[str], str]) -> None
:module: PyOpenColorIO
Set the Compute Hash Function to use; otherwise, use the default.
:param ComputeHashFunction:
@@ -3,7 +3,7 @@
Copyright Contributors to the OpenColorIO Project.
Do not edit! This file was automatically generated by share/docs/frozendoc.py.
.. py:function:: SetLoggingFunction(logFunction: std::function<void (char const*)>) -> None
.. py:function:: SetLoggingFunction(logFunction: Callable[[str], None]) -> None
:module: PyOpenColorIO
Set the logging function to use; otherwise, use the default (i.e. std::cerr).
@@ -15,10 +15,6 @@
Initialize self. See help(type(self)) for accurate signature.
.. py:method:: Transform.__str__(self: PyOpenColorIO.Transform) -> str
:module: PyOpenColorIO
.. py:method:: Transform.getDirection(self: PyOpenColorIO.Transform) -> PyOpenColorIO.TransformDirection
:module: PyOpenColorIO
@@ -24,3 +24,8 @@
:module: PyOpenColorIO
:value: <TransformDirection.TRANSFORM_DIR_INVERSE: 1>
.. py:method:: TransformDirection.value
:module: PyOpenColorIO
:property:
@@ -164,3 +164,8 @@
:module: PyOpenColorIO
:value: <TransformType.TRANSFORM_TYPE_RANGE: 21>
.. py:method:: TransformType.value
:module: PyOpenColorIO
:property:
@@ -14,6 +14,8 @@
UNIFORM_BOOL :
UNIFORM_FLOAT3 : Array of 3 floats.
UNIFORM_VECTOR_FLOAT : Vector of floats (size is set by uniform).
UNIFORM_VECTOR_INT : Vector of int pairs (size is set by uniform).
@@ -33,6 +35,11 @@
:value: <UniformDataType.UNIFORM_DOUBLE: 0>
.. py:attribute:: UniformDataType.UNIFORM_FLOAT3
:module: PyOpenColorIO
:value: <UniformDataType.UNIFORM_FLOAT3: 2>
.. py:attribute:: UniformDataType.UNIFORM_UNKNOWN
:module: PyOpenColorIO
:value: <UniformDataType.UNIFORM_UNKNOWN: 5>
@@ -47,3 +54,8 @@
:module: PyOpenColorIO
:value: <UniformDataType.UNIFORM_VECTOR_INT: 4>
.. py:method:: UniformDataType.value
:module: PyOpenColorIO
:property:
@@ -17,10 +17,6 @@
2. __init__(self: PyOpenColorIO.ViewTransform, referenceSpace: PyOpenColorIO.ReferenceSpaceType = <ReferenceSpaceType.REFERENCE_SPACE_SCENE: 0>, name: str = '', family: str = '', description: str = '', toReference: PyOpenColorIO.Transform = None, fromReference: PyOpenColorIO.Transform = None, categories: List[str] = []) -> None
.. py:method:: ViewTransform.__str__(self: PyOpenColorIO.ViewTransform) -> str
:module: PyOpenColorIO
.. py:method:: ViewTransform.addCategory(self: PyOpenColorIO.ViewTransform, category: str) -> None
:module: PyOpenColorIO
@@ -24,3 +24,8 @@
:module: PyOpenColorIO
:value: <ViewTransformDirection.VIEWTRANSFORM_DIR_TO_REFERENCE: 0>
.. py:method:: ViewTransformDirection.value
:module: PyOpenColorIO
:property:
@@ -24,3 +24,8 @@
:module: PyOpenColorIO
:value: <ViewType.VIEW_SHARED: 0>
.. py:method:: ViewType.value
:module: PyOpenColorIO
:property:
@@ -6,7 +6,10 @@
:members:
:undoc-members:
:special-members: __init__, __str__
:exclude-members: ColorSpaceCategoryIterator
:exclude-members: ColorSpaceCategoryIterator, ColorSpaceAliasIterator
.. autoclass:: PyOpenColorIO.ColorSpace.ColorSpaceCategoryIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.ColorSpace.ColorSpaceAliasIterator
:special-members: __getitem__, __iter__, __len__, __next__
@@ -8,6 +8,10 @@
:members:
:undoc-members:
:special-members: __init__, __str__
:exclude-members: AddedColorSpaceIterator
.. autoclass:: PyOpenColorIO.ColorSpaceMenuHelper.AddedColorSpaceIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.ColorSpaceMenuHelper
:members:
@@ -5,7 +5,6 @@
.. autoclass:: PyOpenColorIO.GpuShaderCreator
:members:
:undoc-members:
:special-members: __init__
:exclude-members: TextureType,
TEXTURE_RED_CHANNEL,
TEXTURE_RGB_CHANNEL,
@@ -9,8 +9,10 @@
:exclude-members: TextureType,
TEXTURE_RED_CHANNEL,
TEXTURE_RGB_CHANNEL,
UniformData,
Texture,
Texture3D,
UniformIterator,
TextureIterator,
Texture3DIterator,
DynamicPropertyIterator
@@ -24,6 +26,10 @@
.. py:method:: name() -> str
:property:
.. autoclass:: PyOpenColorIO.GpuShaderDesc.UniformData
:members:
:undoc-members:
.. autoclass:: PyOpenColorIO.GpuShaderDesc.Texture
:members:
:undoc-members:
@@ -32,6 +38,9 @@
:members:
:undoc-members:
.. autoclass:: PyOpenColorIO.GpuShaderDesc.UniformIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.GpuShaderDesc.TextureIterator
:special-members: __getitem__, __iter__, __len__, __next__
@@ -7,7 +7,10 @@
:undoc-members:
:special-members: __init__, __str__
:inherited-members:
:exclude-members: TransformIterator
:exclude-members: TransformIterator, WriteFormatIterator
.. autoclass:: PyOpenColorIO.GroupTransform.WriteFormatIterator
:special-members: __getitem__, __iter__, __len__, __next__
.. autoclass:: PyOpenColorIO.GroupTransform.TransformIterator
:special-members: __getitem__, __iter__, __len__, __next__
+9 -8
View File
@@ -2115,14 +2115,15 @@ public:
*
* \note The dynamic properties are a convenient way to change on-the-fly values without
* generating again and again a CPU or GPU processor instance. Color transformations can
* contain dynamic properties from a :cpp:class:`ExposureContrastTransform` for example.
* So, :cpp:class:`Processor`, :cpp:class:`CPUProcessor` and :cpp:class:`GpuShaderCreator`
* all have ways to manage dynamic properties. However, the transform dynamic properties
* are decoupled between the types of processor instances so that the same
* :cpp:class:`Processor` can generate several independent CPU and/or GPU processor
* instances i.e. changing the value of the exposure dynamic property from a CPU processor
* instance does not affect the corresponding GPU processor instance. Processor creation will
* throw if there are more than one property of a given type.
* contain dynamic properties from a ExposureContrastTransform for example.
* So, Processor, CPUProcessor and GpuShaderCreator all have ways to manage dynamic
* properties. However, the transform dynamic properties are decoupled between the types
* of processor instances so that the same Processor can generate several independent CPU
* and/or GPU processor instances i.e. changing the value of the exposure dynamic property
* from a CPU processor instance does not affect the corresponding GPU processor instance.
* Processor creation will log a warning if there are more than one property of a given type.
* There may be more than one property of a given type, but only one will respond to parameter
* updates, the others will use their original parameter values.
*/
DynamicPropertyRcPtr getDynamicProperty(DynamicPropertyType type) const;
/// True if at least one dynamic property of that type exists.
+12 -12
View File
@@ -1088,7 +1088,10 @@ extern OCIOEXPORT std::ostream & operator<<(std::ostream &, const FileTransform
class OCIOEXPORT FixedFunctionTransform : public Transform
{
public:
static FixedFunctionTransformRcPtr Create();
static FixedFunctionTransformRcPtr Create(FixedFunctionStyle style);
static FixedFunctionTransformRcPtr Create(FixedFunctionStyle style,
const double * params,
size_t num);
TransformType getTransformType() const noexcept override { return TRANSFORM_TYPE_FIXED_FUNCTION; }
@@ -1360,7 +1363,6 @@ public:
* @endcode
*/
virtual void write(const ConstConfigRcPtr & config,
const ConstContextRcPtr & context,
const char * formatName,
std::ostream & os) const = 0;
@@ -1385,7 +1387,7 @@ extern OCIOEXPORT std::ostream & operator<<(std::ostream &, const GroupTransform
/**
* Applies a logarithm with an affine transform before and after.
* Applies a logarithm with an affine transform before and after.
* Represents the Cineon lin-to-log type transforms::
*
* logSideSlope * log( linSideSlope * color + linSideOffset, base) + logSideOffset
@@ -1433,8 +1435,8 @@ extern OCIOEXPORT std::ostream & operator<<(std::ostream &, const LogAffineTrans
/**
* Same as :cpp:class:`LogAffineTransform` but with the addition of a linear segment
* near black. This formula is used for many camera logs (e.g., LogC) as well as ACEScct.
* Same as LogAffineTransform but with the addition of a linear segment near black. This formula
* is used for many camera logs (e.g., LogC) as well as ACEScct.
*
* * The linSideBreak specifies the point on the linear axis where the log and linear
* segments meet. It must be set (there is no default).
@@ -1444,7 +1446,8 @@ extern OCIOEXPORT std::ostream & operator<<(std::ostream &, const LogAffineTrans
class OCIOEXPORT LogCameraTransform : public Transform
{
public:
static LogCameraTransformRcPtr Create();
/// LinSideBreak must be set for the transform to be valid (there is no default).
static LogCameraTransformRcPtr Create(const double(&linSideBreakValues)[3]);
TransformType getTransformType() const noexcept override { return TRANSFORM_TYPE_LOG_CAMERA; }
@@ -1457,8 +1460,7 @@ public:
virtual double getBase() const noexcept = 0;
virtual void setBase(double base) noexcept = 0;
// !rst:: **Get/Set values for the R, G, B components**
/// Get/Set values for the R, G, B components.
virtual void getLogSideSlopeValue(double(&values)[3]) const noexcept = 0;
virtual void setLogSideSlopeValue(const double(&values)[3]) noexcept = 0;
virtual void getLogSideOffsetValue(double(&values)[3]) const noexcept = 0;
@@ -1467,9 +1469,7 @@ public:
virtual void setLinSideSlopeValue(const double(&values)[3]) noexcept = 0;
virtual void getLinSideOffsetValue(double(&values)[3]) const noexcept = 0;
virtual void setLinSideOffsetValue(const double(&values)[3]) noexcept = 0;
/// Return true if LinSideBreak values were set, false if they were not.
virtual bool getLinSideBreakValue(double(&values)[3]) const noexcept = 0;
virtual void getLinSideBreakValue(double(&values)[3]) const noexcept = 0;
virtual void setLinSideBreakValue(const double(&values)[3]) noexcept = 0;
/// Return true if LinearSlope values were set, false if they were not.
@@ -1680,7 +1680,7 @@ public:
* feature that was used in some versions of ACES. This adjusts the hue
* of the result to approximately match the input.
*/
virtual void setHueAdjust(Lut1DHueAdjust algo) noexcept = 0;
virtual void setHueAdjust(Lut1DHueAdjust algo) = 0;
virtual Interpolation getInterpolation() const = 0;
virtual void setInterpolation(Interpolation algo) = 0;
+27 -3
View File
@@ -417,8 +417,9 @@ enum BitDepth
/// Used by :cpp:class`Lut1DTransform` to control optional hue restoration algorithm.
enum Lut1DHueAdjust
{
HUE_NONE = 0, // No adjustment.
HUE_DW3 // Algorithm used in ACES Output Transforms through v0.7.
HUE_NONE = 0, ///< No adjustment.
HUE_DW3, ///< Algorithm used in ACES Output Transforms through v0.7.
HUE_WYPN ///< Weighted Yellow Power Norm -- NOT IMPLEMENTED YET
};
/// Used by \ref PackedImageDesc to indicate the channel ordering of the image to process.
@@ -473,7 +474,10 @@ enum FixedFunctionStyle
FIXED_FUNCTION_RGB_TO_HSV, ///< Classic RGB to HSV function
FIXED_FUNCTION_XYZ_TO_xyY, ///< CIE XYZ to 1931 xy chromaticity coordinates
FIXED_FUNCTION_XYZ_TO_uvY, ///< CIE XYZ to 1976 u'v' chromaticity coordinates
FIXED_FUNCTION_XYZ_TO_LUV ///< CIE XYZ to 1976 CIELUV colour space (D65 white)
FIXED_FUNCTION_XYZ_TO_LUV, ///< CIE XYZ to 1976 CIELUV colour space (D65 white)
FIXED_FUNCTION_ACES_GAMUTMAP_02, ///< ACES 0.2 Gamut clamping algorithm -- NOT IMPLEMENTED YET
FIXED_FUNCTION_ACES_GAMUTMAP_07, ///< ACES 0.7 Gamut clamping algorithm -- NOT IMPLEMENTED YET
FIXED_FUNCTION_ACES_GAMUTMAP_13 ///< ACES 1.3 Gamut mapping algorithm -- NOT IMPLEMENTED YET
};
/// Enumeration of the :cpp:class:`ExposureContrastTransform` transform algorithms.
@@ -780,6 +784,7 @@ by hardcoded names.
Internal::
Extracting color space from file path - (ROLE_DEFAULT)
Interchange color spaces between configs - (ROLE_EXCHANGE_SCENE, ROLE_EXCHANGE_DISPLAY)
App Helpers::
LegacyViewingPipeline - (ROLE_SCENE_LINEAR (LinearCC for exposure))
@@ -819,6 +824,25 @@ extern OCIOEXPORT const char * ROLE_TEXTURE_PAINT;
*/
extern OCIOEXPORT const char * ROLE_MATTE_PAINT;
/**
* The rendering role may be used to identify a specific color space to be used by CGI renderers.
* This is typically a scene-linear space but the primaries also matter since they influence the
* resulting color, especially in areas of indirect illumination.
*/
extern OCIOEXPORT const char * ROLE_RENDERING;
/**
* The aces_interchange role is used to specify which color space in the config implements the
* standard ACES2065-1 color space (SMPTE ST2065-1). This may be used when converting
* scene-referred colors from one config to another.
*/
extern OCIOEXPORT const char * ROLE_INTERCHANGE_SCENE;
/**
* The cie_xyz_d65_interchange role is used to specify which color space in the config implements
* CIE XYZ colorimetry with the neutral axis at D65. This may be used when converting
* display-referred colors from one config to another.
*/
extern OCIOEXPORT const char * ROLE_INTERCHANGE_DISPLAY;
/** @}*/
/** \defgroup VarsSharedView
+127
View File
@@ -0,0 +1,127 @@
###########################################################################
# OpenImageIO https://www.openimageio.org
# Copyright 2008-present Contributors to the OpenImageIO project.
# SPDX-License-Identifier: BSD-3-Clause
# https://github.com/OpenImageIO/oiio/blob/master/LICENSE.md
#
# For an up-to-date version of this file, see:
# https://github.com/OpenImageIO/oiio/blob/master/src/cmake/Modules/FindOpenImageIO.cmake
#
###########################################################################
#
# CMake module to find OpenImageIO
#
# This module will set
# OpenImageIO_FOUND True, if found
# OPENIMAGEIO_INCLUDES directory where headers are found
# OPENIMAGEIO_LIBRARIES libraries for OIIO
# OPENIMAGEIO_LIBRARY_DIRS library dirs for OIIO
# OPENIMAGEIO_VERSION Version ("major.minor.patch.tweak")
# OPENIMAGEIO_VERSION_MAJOR Version major number
# OPENIMAGEIO_VERSION_MINOR Version minor number
# OPENIMAGEIO_VERSION_PATCH Version minor patch
# OPENIMAGEIO_VERSION_TWEAK Version minor tweak
# OIIOTOOL_BIN Path to oiiotool executable
#
# Imported targets:
# OpenImageIO::OpenImageIO The libOpenImageIO library.
# OpenImageIO::oiiotool The oiiotool executable.
#
# Special inputs:
# OpenImageIO_ROOT - if using CMake >= 3.12, will automatically search
# this area for OIIO components.
# OPENIMAGEIO_ROOT_DIR - custom "prefix" location of OIIO installation
# (expecting bin, lib, include subdirectories)
# This is deprecated, but will work for a while.
# OpenImageIO_FIND_QUIETLY - if set, print minimal console output
# OIIO_LIBNAME_SUFFIX - if set, optional nonstandard library suffix
#
###########################################################################
#
# NOTE: This file is deprecated.
#
# In OIIO 2.1+, we generate OpenImageIOConfig.cmake files that are now the
# preferred way for downstream projecs to find an installed OIIO. There
# should be no need to copy this FindOpenImageIO.cmake file into downstream
# projects, *unless* they need to work with a range of OIIO vesions that
# may include <2.1, which would lack the generated config files.
#
###########################################################################
# If 'OPENIMAGE_HOME' not set, use the env variable of that name if available
if (NOT OPENIMAGEIO_ROOT_DIR AND NOT $ENV{OPENIMAGEIO_ROOT_DIR} STREQUAL "")
set (OPENIMAGEIO_ROOT_DIR $ENV{OPENIMAGEIO_ROOT_DIR})
endif ()
find_library ( OPENIMAGEIO_LIBRARY
NAMES OpenImageIO${OIIO_LIBNAME_SUFFIX}
HINTS ${OPENIMAGEIO_ROOT_DIR}
PATH_SUFFIXES lib64 lib )
find_path ( OPENIMAGEIO_INCLUDE_DIR
NAMES OpenImageIO/imageio.h
HINTS ${OPENIMAGEIO_ROOT_DIR} )
find_program ( OIIOTOOL_BIN
NAMES oiiotool
HINTS ${OPENIMAGEIO_ROOT_DIR} )
# Try to figure out version number
set (OIIO_VERSION_HEADER "${OPENIMAGEIO_INCLUDE_DIR}/OpenImageIO/oiioversion.h")
if (EXISTS "${OIIO_VERSION_HEADER}")
file (STRINGS "${OIIO_VERSION_HEADER}" TMP REGEX "^#define OIIO_VERSION_MAJOR .*$")
string (REGEX MATCHALL "[0-9]+" OPENIMAGEIO_VERSION_MAJOR ${TMP})
file (STRINGS "${OIIO_VERSION_HEADER}" TMP REGEX "^#define OIIO_VERSION_MINOR .*$")
string (REGEX MATCHALL "[0-9]+" OPENIMAGEIO_VERSION_MINOR ${TMP})
file (STRINGS "${OIIO_VERSION_HEADER}" TMP REGEX "^#define OIIO_VERSION_PATCH .*$")
string (REGEX MATCHALL "[0-9]+" OPENIMAGEIO_VERSION_PATCH ${TMP})
file (STRINGS "${OIIO_VERSION_HEADER}" TMP REGEX "^#define OIIO_VERSION_TWEAK .*$")
if (TMP)
string (REGEX MATCHALL "[0-9]+" OPENIMAGEIO_VERSION_TWEAK ${TMP})
else ()
set (OPENIMAGEIO_VERSION_TWEAK 0)
endif ()
set (OPENIMAGEIO_VERSION "${OPENIMAGEIO_VERSION_MAJOR}.${OPENIMAGEIO_VERSION_MINOR}.${OPENIMAGEIO_VERSION_PATCH}.${OPENIMAGEIO_VERSION_TWEAK}")
endif ()
include (FindPackageHandleStandardArgs)
find_package_handle_standard_args (OpenImageIO
FOUND_VAR OpenImageIO_FOUND
REQUIRED_VARS OPENIMAGEIO_INCLUDE_DIR OPENIMAGEIO_LIBRARY
OPENIMAGEIO_VERSION
VERSION_VAR OPENIMAGEIO_VERSION
)
set (OPENIMAGEIO_FOUND ${OpenImageIO_FOUND}) # Old name
if (OpenImageIO_FOUND)
set (OPENIMAGEIO_INCLUDES ${OPENIMAGEIO_INCLUDE_DIR})
set (OPENIMAGEIO_LIBRARIES ${OPENIMAGEIO_LIBRARY})
get_filename_component (OPENIMAGEIO_LIBRARY_DIRS "${OPENIMAGEIO_LIBRARY}" DIRECTORY)
if (NOT OpenImageIO_FIND_QUIETLY)
message ( STATUS "OpenImageIO includes = ${OPENIMAGEIO_INCLUDE_DIR}" )
message ( STATUS "OpenImageIO libraries = ${OPENIMAGEIO_LIBRARIES}" )
message ( STATUS "OpenImageIO library_dirs = ${OPENIMAGEIO_LIBRARY_DIRS}" )
message ( STATUS "OpenImageIO oiiotool = ${OIIOTOOL_BIN}" )
endif ()
if (NOT TARGET OpenImageIO::OpenImageIO)
add_library(OpenImageIO::OpenImageIO UNKNOWN IMPORTED)
set_target_properties(OpenImageIO::OpenImageIO PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${OPENIMAGEIO_INCLUDES}")
set_property(TARGET OpenImageIO::OpenImageIO APPEND PROPERTY
IMPORTED_LOCATION "${OPENIMAGEIO_LIBRARIES}")
endif ()
if (NOT TARGET OpenImageIO::oiiotool AND EXISTS "${OIIOTOOL_BIN}")
add_executable(OpenImageIO::oiiotool IMPORTED)
set_target_properties(OpenImageIO::oiiotool PROPERTIES
IMPORTED_LOCATION "${OIIOTOOL_BIN}")
endif ()
endif ()
mark_as_advanced (
OPENIMAGEIO_INCLUDE_DIR
OPENIMAGEIO_LIBRARY
)
+1 -1
View File
@@ -8,7 +8,7 @@
# OpenImageIO
# https://github.com/OpenImageIO/oiio
find_package(OpenImageIO 2.1.9 CONFIG)
find_package(OpenImageIO 2.1.9)
package_root_message(OpenImageIO)
# The order defines the architecture of the project i.e. layers and dependencies.
+1
View File
@@ -167,6 +167,7 @@ if(OCIO_ADD_EXTRA_BUILTINS)
set(SOURCES_BUILTINS
transforms/builtins/ArriCameras.cpp
transforms/builtins/CanonCameras.cpp
transforms/builtins/Displays.cpp
transforms/builtins/PanasonicCameras.cpp
transforms/builtins/RedCameras.cpp
transforms/builtins/SonyCameras.cpp
+1 -1
View File
@@ -406,7 +406,7 @@ void CPUProcessor::Impl::applyRGB(float * pixel) const
const size_t numOps = m_cpuOps.size();
for(size_t i = 0; i<numOps; ++i)
{
m_cpuOps[i]->apply(pixel, pixel, 1);
m_cpuOps[i]->apply(v, v, 1);
}
m_outBitDepthOp->apply(v, v, 1);
+3 -3
View File
@@ -389,6 +389,7 @@ public:
m_env = rhs.m_env;
m_context = rhs.m_context->createEditableCopy();
m_name = rhs.m_name;
m_familySeparator = rhs.m_familySeparator;
m_description = rhs.m_description;
@@ -2563,6 +2564,7 @@ const char * Config::parseColorSpaceFromString(const char * str) const
{
int rightMostColorSpaceIndex = ParseColorSpaceFromString(*this, str);
// Index is using all color spaces.
if(rightMostColorSpaceIndex>=0)
{
return getImpl()->m_allColorSpaces->getColorSpaceNameByIndex(rightMostColorSpaceIndex);
@@ -4118,10 +4120,8 @@ ConstProcessorRcPtr Config::GetProcessorFromConfigs(const ConstContextRcPtr & sr
throw Exception(os.str().c_str());
}
constexpr char exchangeSceneName[]{ "aces_interchange" };
constexpr char exchangeDisplayName[]{ "cie_xyz_d65_interchange" };
const bool sceneReferred = (srcColorSpace->getReferenceSpaceType() == REFERENCE_SPACE_SCENE);
const char * exchangeRoleName = sceneReferred ? exchangeSceneName : exchangeDisplayName;
const char * exchangeRoleName = sceneReferred ? ROLE_INTERCHANGE_SCENE : ROLE_INTERCHANGE_DISPLAY;
const char * srcExName = LookupRole(srcConfig->getImpl()->m_roles, exchangeRoleName);
if (!srcExName || !*srcExName)
{
+20 -2
View File
@@ -239,7 +239,23 @@ std::string BuildRegularExpression(const char * filePathPattern, const char * fi
str += ")$";
return SanitizeRegularExpression(str);
std::string res;
try
{
res = SanitizeRegularExpression(str);
}
catch (std::regex_error & ex)
{
std::ostringstream oss;
oss << "File rules: invalid regular expression '"
<< str
<< "' built from pattern '" << filePathPattern
<< " and extension '" << fileNameExtension << "': '"
<< ex.what()
<< "'.";
throw Exception(oss.str().c_str());
}
return res;
}
void ValidateRegularExpression(const char * regex)
@@ -462,7 +478,9 @@ public:
const int rightMostColorSpaceIndex = ParseColorSpaceFromString(config, path);
if (rightMostColorSpaceIndex >= 0)
{
m_colorSpace = config.getColorSpaceNameByIndex(rightMostColorSpaceIndex);
m_colorSpace = config.getColorSpaceNameByIndex(SEARCH_REFERENCE_SPACE_ALL,
COLORSPACE_ALL,
rightMostColorSpaceIndex);
return true;
}
return false;
+9 -3
View File
@@ -1415,11 +1415,12 @@ inline void save(YAML::Emitter& out, ConstFileTransformRcPtr t, unsigned int maj
inline void load(const YAML::Node& node, FixedFunctionTransformRcPtr& t)
{
t = FixedFunctionTransform::Create();
t = FixedFunctionTransform::Create(FIXED_FUNCTION_ACES_RED_MOD_03);
CheckDuplicates(node);
std::string key;
bool styleFound{ false };
for (const auto & iter : node)
{
@@ -1441,6 +1442,7 @@ inline void load(const YAML::Node& node, FixedFunctionTransformRcPtr& t)
std::string style;
load(second, style);
t->setStyle( FixedFunctionStyleFromString(style.c_str()) );
styleFound = true;
}
else if(key == "direction")
{
@@ -1459,6 +1461,10 @@ inline void load(const YAML::Node& node, FixedFunctionTransformRcPtr& t)
LogUnknownKeyWarning(node.Tag(), first);
}
}
if (!styleFound)
{
throwError(node, "style value is missing.");
}
}
inline void save(YAML::Emitter& out, ConstFixedFunctionTransformRcPtr t)
@@ -2554,7 +2560,8 @@ inline void save(YAML::Emitter& out, ConstLogAffineTransformRcPtr t)
inline void load(const YAML::Node & node, LogCameraTransformRcPtr & t)
{
t = LogCameraTransform::Create();
double linBreak[3] = { 0.0, 0.0, 0.0 };
t = LogCameraTransform::Create(linBreak);
CheckDuplicates(node);
@@ -2564,7 +2571,6 @@ inline void load(const YAML::Node & node, LogCameraTransformRcPtr & t)
double linSlope[3] = { 1.0, 1.0, 1.0 };
double linOffset[3] = { 0.0, 0.0, 0.0 };
double logOffset[3] = { 0.0, 0.0, 0.0 };
double linBreak[3] = { 0.0, 0.0, 0.0 };
double linearSlope[3] = { 1.0, 1.0, 1.0 };
bool linBreakFound = false;
bool linearSlopeFound = false;
+5 -3
View File
@@ -6,6 +6,7 @@
#include <OpenColorIO/OpenColorIO.h>
#include "Logging.h"
#include "Op.h"
#include "ops/cdl/CDLOp.h"
#include "ops/exponent/ExponentOp.h"
@@ -403,14 +404,15 @@ void ValidateDynamicProperty(OpRcPtr op, std::shared_ptr<T> & prop, DynamicPrope
break;
}
os << " dynamic property can only be there once.";
throw Exception(os.str().c_str());
LogWarning(os.str());
}
}
}
}
// Throw if there is more than one property of a given type that is currently dynamic. There may
// be more than one property of a given type, but they both may not be dynamic at the same time.
// Warn if there is more than one property of a given type that is currently dynamic. There may
// be more than one property of a given type, but only one will respond to parameter updates, the
// others will use their original parameter values.
void OpRcPtrVec::validateDynamicProperties()
{
// Empty shared pointers.
+19 -9
View File
@@ -350,6 +350,13 @@ const char * FixedFunctionStyleToString(FixedFunctionStyle style)
case FIXED_FUNCTION_XYZ_TO_xyY: return "XYZ_TO_xyY";
case FIXED_FUNCTION_XYZ_TO_uvY: return "XYZ_TO_uvY";
case FIXED_FUNCTION_XYZ_TO_LUV: return "XYZ_TO_LUV";
case FIXED_FUNCTION_ACES_GAMUTMAP_02:
case FIXED_FUNCTION_ACES_GAMUTMAP_07:
case FIXED_FUNCTION_ACES_GAMUTMAP_13:
throw Exception("Unimplemented fixed function types: "
"FIXED_FUNCTION_ACES_GAMUTMAP_02, "
"FIXED_FUNCTION_ACES_GAMUTMAP_07, and "
"FIXED_FUNCTION_ACES_GAMUTMAP_13.");
}
// Default style is meaningless.
@@ -486,15 +493,18 @@ NegativeStyle NegativeStyleFromString(const char * style)
}
// Define variables declared in OpenColorTypes.h.
const char * ROLE_DEFAULT = "default";
const char * ROLE_REFERENCE = "reference";
const char * ROLE_DATA = "data";
const char * ROLE_COLOR_PICKING = "color_picking";
const char * ROLE_SCENE_LINEAR = "scene_linear";
const char * ROLE_COMPOSITING_LOG = "compositing_log";
const char * ROLE_COLOR_TIMING = "color_timing";
const char * ROLE_TEXTURE_PAINT = "texture_paint";
const char * ROLE_MATTE_PAINT = "matte_paint";
const char * ROLE_DEFAULT = "default";
const char * ROLE_REFERENCE = "reference";
const char * ROLE_DATA = "data";
const char * ROLE_COLOR_PICKING = "color_picking";
const char * ROLE_SCENE_LINEAR = "scene_linear";
const char * ROLE_COMPOSITING_LOG = "compositing_log";
const char * ROLE_COLOR_TIMING = "color_timing";
const char * ROLE_TEXTURE_PAINT = "texture_paint";
const char * ROLE_MATTE_PAINT = "matte_paint";
const char * ROLE_RENDERING = "rendering";
const char * ROLE_INTERCHANGE_SCENE = "aces_interchange";
const char * ROLE_INTERCHANGE_DISPLAY = "cie_xyz_d65_interchange";
namespace
{
+2 -1
View File
@@ -206,7 +206,8 @@ int ParseColorSpaceFromString(const Config & config, const char * str)
// Find the right-most occcurance within the string for each colorspace.
for (int i = 0; i < config.getNumColorSpaces(SEARCH_REFERENCE_SPACE_ALL, COLORSPACE_ALL); ++i)
{
const std::string csname = StringUtils::Lower(config.getColorSpaceNameByIndex(i));
const std::string csname = StringUtils::Lower(
config.getColorSpaceNameByIndex(SEARCH_REFERENCE_SPACE_ALL, COLORSPACE_ALL, i));
// find right-most extension matched in filename
int colorspacePos = (int)StringUtils::ReverseFind(fullstr, csname);
+1
View File
@@ -26,6 +26,7 @@ std::string GetFastFileHash(const std::string & filename);
void ClearPathCaches();
// Works on active and inactive color spaces name and aliases.
int ParseColorSpaceFromString(const Config & config, const char * str);
} // namespace OCIO_NAMESPACE
+1 -2
View File
@@ -328,8 +328,7 @@ ConstProcessorRcPtr MixingColorSpaceManagerImpl::getProcessor(const char * worki
if (getSelectedMixingEncodingIdx()==1) // i.e. HSV
{
FixedFunctionTransformRcPtr tr = FixedFunctionTransform::Create();
tr->setStyle(FIXED_FUNCTION_RGB_TO_HSV);
FixedFunctionTransformRcPtr tr = FixedFunctionTransform::Create(FIXED_FUNCTION_RGB_TO_HSV);
group->appendTransform(tr);
}

Some files were not shown because too many files have changed in this diff Show More