diff --git a/docs/concepts/publications/publications.rst b/docs/concepts/publications/publications.rst index a3e8dbc149..0a9152e5d3 100644 --- a/docs/concepts/publications/publications.rst +++ b/docs/concepts/publications/publications.rst @@ -7,16 +7,22 @@ Presentations & Publications ============================ +* ASWF Open Source Days 2024 -- NanoColor `video `_ + +* ASWF Open Source Days 2024 -- Project Update `video `_ + +* OCIO honored with the SMPTE Workflow Systems Medal! `article `_ + * ASWF Open Source Days 2023 `video `_ -* OCIO wins the Pipeline Tool award at DigiPro 2022! `video `_ +* OCIO receives the Pipeline Tool award at DigiPro 2022! `video `_ * ASWF Open Source Days 2022 `video `_ * HPA Tech Retreat 2022 "Color Processing with OCIO v2 and the Academy/ASC Common LUT Format" `Slides & Tutorial `_ -* OCIO v2 wins an Engineering Excellence award from the Hollywood Post Alliance! +* OCIO v2 receives an Engineering Excellence award from the Hollywood Post Alliance! `article `_ * SIGGRAPH 2021 course "Color management with OpenColorIO V2" diff --git a/docs/configurations/aces_cg.rst b/docs/configurations/aces_cg.rst index a688a88a6e..77c6cc73c4 100644 --- a/docs/configurations/aces_cg.rst +++ b/docs/configurations/aces_cg.rst @@ -25,6 +25,8 @@ and so requires no external LUT files. In fact, even the config file is built i and users may access it from any application that uses OCIO 2.2 or higher by using one of the following strings in place of the config path: +``ocio://studio-config-v2.2.0_aces-v1.3_ocio-v2.4`` (for OCIO 2.4 or higher) + ``ocio://studio-config-v2.1.0_aces-v1.3_ocio-v2.3`` (for OCIO 2.3 or higher) ``ocio://studio-config-v1.0.0_aces-v1.3_ocio-v2.1`` (for OCIO 2.2 or higher) diff --git a/docs/configurations/aces_studio.rst b/docs/configurations/aces_studio.rst index ac103b3c2a..6021d32a84 100644 --- a/docs/configurations/aces_studio.rst +++ b/docs/configurations/aces_studio.rst @@ -25,6 +25,8 @@ and so requires no external LUT files. In fact, even the config file is built i and users may access it from any application that uses OCIO 2.2 or higher by using one of the following strings in place of the config path: +``ocio://studio-config-v2.2.0_aces-v1.3_ocio-v2.4`` (for OCIO 2.4 or higher) + ``ocio://studio-config-v2.1.0_aces-v1.3_ocio-v2.3`` (for OCIO 2.3 or higher) ``ocio://studio-config-v1.0.0_aces-v1.3_ocio-v2.1`` (for OCIO 2.2 or higher) diff --git a/docs/guides/using_ocio/compatible_software.rst b/docs/guides/using_ocio/compatible_software.rst index 6b5e902e18..0fbfac062c 100644 --- a/docs/guides/using_ocio/compatible_software.rst +++ b/docs/guides/using_ocio/compatible_software.rst @@ -27,6 +27,8 @@ Documentation : - `Color Management `__ +- `OCIO color management in Autodesk 3DS Max 2024.1 `__ + After Effects ************* @@ -102,7 +104,7 @@ Documentation: cineSync (ftrack) -********************* +***************** Website : ``__ @@ -335,11 +337,13 @@ Website : ``__ Photoshop (beta) -********* +**************** + OCIO can be enabled via a technology preview checkbox in preferences. For more details see `OpenColorIO and 32-bit Editing now available in Photoshop Beta `__. Photoshop ********* + OpenColorIO display luts can be exported as ICC profiles for use in photoshop. The core idea is to create an .icc profile, with a valid description, and then to save it to the proper OS icc directory. (On OSX, ``~/Library/ColorSync/Profiles/``). Upon a Photoshop relaunch, Edit->Assign Profile, and then select your new OCIO lut. Website : ``__ @@ -348,6 +352,7 @@ An OpenColorIO plugin is also available for use in Photoshop. The plug-in can pe Plugin binaries are available for `download `__, courtesy of `fnordware `__. + Python ****** @@ -357,21 +362,23 @@ Website: ``__ +- :ref:`developing` -- `Usage Examples `__ +- :ref:`developers-usageexamples` RV (Autodesk) ************* -Website : ``__ +Website : ``__ + +OpenRV : ``__ Supported Version: >= 4 Documentation : -- For more details, see the OpenColorIO section of the `RV User Manual `__. +- For more details, see the OpenColorIO section of the `RV User Manual `__. Silhouette (Boris FX) @@ -444,6 +451,7 @@ Documentation : Apps w/icc or luts ****************** + flame (.3dl), lustre (.3dl), cinespace (.csp), houdini (.lut), iridas_itx (.itx) photoshop (.icc) diff --git a/docs/guides/using_ocio/tool_overview.rst b/docs/guides/using_ocio/tool_overview.rst index 4d89f639f4..4de6c84ab0 100644 --- a/docs/guides/using_ocio/tool_overview.rst +++ b/docs/guides/using_ocio/tool_overview.rst @@ -189,6 +189,17 @@ Use the --help argument for more information on to the available options. .. TODO: Examples +.. _overview-ociocpuinfo: + +ociocpuinfo +*********** + +This tool simply prints information about the CPU in your computer. OCIO will +switch in different versions of the apply functions based on which SIMD +instruction sets are supported by a given CPU, so this is provided as a +potential trouble-shooting tool. + + .. _overview-ociodisplay: ociodisplay diff --git a/docs/releases/_index.rst b/docs/releases/_index.rst index 9b18bc7cb6..ab62b6b987 100644 --- a/docs/releases/_index.rst +++ b/docs/releases/_index.rst @@ -10,6 +10,7 @@ Releases .. toctree:: :caption: Upgrading to v2 + ocio_2_4 ocio_2_3 ocio_2_2 ocio_2_1 diff --git a/docs/releases/ocio_2_4.rst b/docs/releases/ocio_2_4.rst new file mode 100644 index 0000000000..0dd5764bb2 --- /dev/null +++ b/docs/releases/ocio_2_4.rst @@ -0,0 +1,241 @@ +.. + SPDX-License-Identifier: CC-BY-4.0 + Copyright Contributors to the OpenColorIO Project. + + +OCIO 2.4 Release +================ + +Timeline +******** + +OpenColorIO 2.4 was delivered in September 2024 and is in the VFX Reference Platform for +calendar year 2025. + + +New Feature Guide +================= + +ACES 2.0 Output Transforms (PREVIEW RELEASE) +******************************************** + +The Academy Color Encoding System has released a new major version with a completely new +set of Output Transforms (which are the transforms that convert from ACES2065-1 to a display +color space). These transforms are much more sophisticated than ACES 1 and include a +sophisticated gamut mapping algorithm that takes advantage of recent work in color appearance +modeling. The invertibility of the transforms is also improved. + +**ACES 2 support in OCIO 2.4.0 is labelled a "Preview Release" to indicate that this is a +work-in-progress that is not yet ready for production use. Both the processing results and +the API for it will likely change in OCIO 2.4.1 and future releases.** + +The OCIO config files for ACES 2 are still under development, but prototype configs for +testing may be downloaded from `this PR on the OpenColorIO-Config-ACES repo. +`_ + +A preliminary technical description of the ACES 2 Output Transform algorithm may be found +`at this link. `_ + + +Built-in Configs +**************** + +An updated set of built-in CG and Studio configs is included in the 2.4 release. These include +the updates from the OCIO Configs Working Group over the past year. The updates include: + +* Updated texture asset color space names, following the work of the ASWF Color Interop Forum. + (The previous names for all active color spaces have been preserved via an alias.) +* Making the display color spaces active (allowing for easier display-to-display conversions). + +Additional updates for the Studio config include: + +* Addition of the Apple Log camera color space + +Given that the ACES 2 support is still a work-in-progress, the built-in configs in 2.4.0 +are based on ACES 1.3. Versions for ACES 2 are under development and are planned for the +OCIO 2.4.1 release. + +For Users ++++++++++ + +The following URI strings may be provided anywhere you would normally provide a file path +to a config (e.g. as the OCIO environment variable): + +To use the updated :ref:`aces_cg`, use this string for the config path: + ocio://cg-config-v2.2.0_aces-v1.3_ocio-v2.4 + +To use the updated :ref:`aces_studio`, use this string for the config path: + ocio://studio-config-v2.2.0_aces-v1.3_ocio-v2.4 + +This string will give you the current default config, which is the latest ACES CG Config: + ocio://default + +This string now points to this latest CG config: + ocio://cg-config-latest + +This string now points to this latest Studio config: + ocio://studio-config-latest + + +Tool Enhancements +***************** + +For Users ++++++++++ + +* There are now Python Wheels available for Python 3.13 (Python 3.7 support will be removed soon). + +* There is a ``bitdepth`` argument to ``ocioconvert`` to control the processing and writing bit-depth. + +* There is a ``ociocpuinfo`` utility that prints info about the CPU in your computer, especially + which SIMD intrinsics it supports. As with the other command-line tools, this is available as part + of an OCIO install when building from source or via PyPI. + + +API Enhancements +**************** + +For Developers +++++++++++++++ + +You may find the following additions to the OCIO API useful: + +* There is now a ``hasAlias`` method on the ColorSpace and NamedTransform classes. + +* The FileTransform class has a new static method ``IsFormatExtensionSupported`` that + checks if a specific LUT format file extension is supported by OpenColorIO. + + +New Fixed Function Transforms +***************************** + +For Config Authors +++++++++++++++++++ + +The following new styles are available for use with the FixedFunctionTransform: + +* ``FIXED_FUNCTION_ACES_OUTPUT_TRANSFORM_20`` -- This implements the part of the ACES 2.0 + Output Transform that converts from ACES2065-1 to the intended linear values in the limiting + primaries. (This requires further steps to get to the intended display colorimetry, typically + a clamp, scale, and matrix.) It takes 9 parameters: peak_luminance (in nits), followed by + the chromaticity coordinates for the limiting gamut: [ red_x, red_y, green_x, green_y, blue_x, + blue_y, white_x, white_y ]. **This is a work-in-progress and may change or be removed in + future releases.** + +* ``FIXED_FUNCTION_ACES_RGB_TO_JMH_20`` -- This implements the conversion from a linear RGB + space into the JMh (lightness, colorfulness, hue) color appearance model space that is used + in the ACES 2 Output Transform algorithm. It takes 8 parameters which are the chromaticity + coordinates of the linear RGB color space: [ red_x, red_y, green_x, green_y, blue_x, + blue_y, white_x, white_y ]. **This is a work-in-progress and may change or be removed in + future releases.** + +* ``FIXED_FUNCTION_ACES_TONESCALE_COMPRESS_20`` -- This implements the part of the ACES 2 + Output Transform algorithm that modify the tonescale and chroma of the image when mapping from + the scene-referred to display-referred image state. It takes one parameter: the peak_luminance + of the target display device (in nits). **This is a work-in-progress and may change or be + removed in future releases.** + +* ``FIXED_FUNCTION_ACES_GAMUT_COMPRESS_20`` -- This implements the part of the ACES 2 Output + Transform algorithm that applies gamut compression to the target display gamut. It takes + the same 9 parameters as ``FIXED_FUNCTION_ACES_OUTPUT_TRANSFORM_20``. **This is a work-in-progress + and may change or be removed in future releases.** + +* ``FIXED_FUNCTION_LIN_TO_PQ`` -- This is the curve for SMPTE ST-2084 (PQ). It is scaled with 100 nits + at 1.0. Negative values are mirrored around the origin. It takes no parameters. Note that this + implementation is slower (especially on the CPU) than the Built-in Transform that implements + the same function via a LUT1D rather than via a formula: ``CURVE - LINEAR_to_ST-2084``. The + only advantage of the Fixed Function is that it does not use texture memory on the GPU. + +* ``FIXED_FUNCTION_LIN_TO_GAMMA_LOG`` -- This curve contains a parametrized gamma and log segment. + It takes 10 parameters and is capable of implementing both the Apple Log curve and the OETF for + Hybrid Log Gamma (HLG). The parameters are: + [ mirrorPt, breakPt, gammaSeg_power, gammaSeg_slope, gammaSeg_off, logSeg_base, logSeg_logSlope, + logSeg_logOff, logSeg_linSlope, logSeg_linOff ]. + + The exact formula may be found in the renderer code in `ops/fixedfunction/FixedFunctionOpCPU.cpp + `_ + + For implementing the Apple Log or HLG OETF curves, it is recommended to use the Built-in Transforms + ``CURVE - APPLE_LOG_to_LINEAR`` and ``CURVE - HLG-OETF`` as they are faster (especially on the CPU) + since they are implemented via a LUT1D rather than a formula. + +* ``FIXED_FUNCTION_LIN_TO_DOUBLE_LOG`` -- This curve contains two parameterized LogAffineTransforms + with an optional middle linear segment. It takes 13 parameters and is capable of implementing the + Canon Log 2 and Canon Log 3 curves. The parameters are: + [ base, break1, break2, logSeg1_logSlope, logSeg1_logOff, logSeg1_linSlope, logSeg1_linOff + logSeg2_logSlope, logSeg2_logOff, logSeg2_linSlope, logSeg2_linOff, linSeg_slope, linSeg_off ] + + The exact formula may be found in the renderer code in `ops/fixedfunction/FixedFunctionOpCPU.cpp + `_ + + For implementing the Canon Log 2 or 3 curves, it is recommended to use the Built-in Transforms + ``CURVE - CANON_CLOG2_to_LINEAR`` and ``CURVE - CANON_CLOG3_to_LINEAR`` as they are faster + (especially on the CPU) since they are implemented via a LUT1D rather than a formula. + + +New Built-in Transforms +*********************** + +For Config Authors +++++++++++++++++++ + +In config files with ``ocio_profile_version`` set to 2.4 or higher, config authors may take +advantage of the following new BuiltinTransform styles: + +* ``APPLE_LOG_to_ACES2065-1`` -- Converts Apple Log to ACES2065-1. + +* ``CURVE - APPLE_LOG_to_LINEAR`` -- Applies only the EOTF curve for Apple Log. + +* ``CURVE - HLG-OETF`` -- Applies the OETF curve for Hybrid Log Gamma. + +* ``CURVE - HLG-OETF-INVERSE`` -- Applies the inverse-OETF curve for Hybrid Log Gamma. + +* ``DISPLAY - CIE-XYZ-D65_to_DCDM-D65`` -- Implements a display color space to produce a + Digital Cinema Distribution Master (DCDM) with a D65 creative white point. This uses the + traditional 2.6 gamma SDR transfer function. + +* ``DISPLAY - CIE-XYZ-D65_to_ST2084-DCDM-D65`` -- Implements a display color space to produce an + HDR Digital Cinema Distribution Master (DCDM) with a D65 creative white point. This implements + the ST-2084 transfer function for HDR with an input Y value of 1.0 mapping to 100 nits. + +The following implement various View Transforms used by the ACES 2 Output Transforms: + +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-108nit-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-300nit-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-REC2020_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-REC2020_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-REC2020_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-REC2020_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-REC709-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-REC709-D60-in-REC2020-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D60-in-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-100nit-P3-D60-in-XYZ-E_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-108nit-P3-D60-in-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-300nit-P3-D60-in-XYZ-E_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D60-in-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D60-in-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-P3-D60-in-P3-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-P3-D60-in-REC2020-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-P3-D60-in-REC2020-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-P3-D60-in-REC2020-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-P3-D60-in-REC2020-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-500nit-REC2020-D60-in-REC2020-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-1000nit-REC2020-D60-in-REC2020-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-2000nit-REC2020-D60-in-REC2020-D65_2.0`` +* ``ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-4000nit-REC2020-D60-in-REC2020-D65_2.0`` + + +Release Notes +============= + +For additional details, please see the GitHub release page: + +`OCIO 2.4.0 `_