From a141ca8a9adf2761140103037e8969a04b8e0c57 Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Thu, 7 Dec 2023 11:45:33 -0500 Subject: [PATCH 1/5] LOOKDEVX-2128 - Allow specializing the topo neutral graph generator - Also exports the color management preferences cache. --- .../render/MaterialXGenOgsXml/ShaderGenUtil.h | 2 +- .../render/vp2RenderDelegate/CMakeLists.txt | 2 + .../colorManagementPreferences.cpp | 142 +++++++++++++++++ .../colorManagementPreferences.h | 85 ++++++++++ .../render/vp2RenderDelegate/material.cpp | 148 ++---------------- 5 files changed, 246 insertions(+), 133 deletions(-) create mode 100644 lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.cpp create mode 100644 lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.h diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/ShaderGenUtil.h b/lib/mayaUsd/render/MaterialXGenOgsXml/ShaderGenUtil.h index f256a41bdc..b7ea8f82c0 100644 --- a/lib/mayaUsd/render/MaterialXGenOgsXml/ShaderGenUtil.h +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/ShaderGenUtil.h @@ -47,7 +47,7 @@ class MAYAUSD_CORE_PUBLIC TopoNeutralGraph // Get the watch list gathered while traversing const WatchList& getWatchList() const; -private: +protected: mx::NodePtr cloneNode(const mx::Node& node, mx::GraphElement& container); mx::OutputPtr findNodeGraphOutput(const mx::Input& input, const std::string& outputName); std::string gatherChannels(const mx::Input& input); diff --git a/lib/mayaUsd/render/vp2RenderDelegate/CMakeLists.txt b/lib/mayaUsd/render/vp2RenderDelegate/CMakeLists.txt index 3da560745c..ab019a0506 100644 --- a/lib/mayaUsd/render/vp2RenderDelegate/CMakeLists.txt +++ b/lib/mayaUsd/render/vp2RenderDelegate/CMakeLists.txt @@ -15,6 +15,7 @@ target_sources(${PROJECT_NAME} meshViewportCompute.cpp points.cpp proxyRenderDelegate.cpp + colorManagementPreferences.cpp render_delegate.cpp render_param.cpp sampler.cpp @@ -24,6 +25,7 @@ target_sources(${PROJECT_NAME} set(HEADERS proxyRenderDelegate.h + colorManagementPreferences.h ) # ----------------------------------------------------------------------------- diff --git a/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.cpp b/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.cpp new file mode 100644 index 0000000000..1c0b47318e --- /dev/null +++ b/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.cpp @@ -0,0 +1,142 @@ +// +// Copyright 2023 Autodesk +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#include "colorManagementPreferences.h" + +#include +#include +#include + +#include + +namespace MAYAUSD_NS_DEF { + +// We will cache the color management preferences since they are used in many loops. +ColorManagementPreferences::~ColorManagementPreferences() { RemoveSinks(); } + +bool ColorManagementPreferences::Active() { return Get()._active; } + +const MString& ColorManagementPreferences::RenderingSpaceName() +{ + return Get()._renderingSpaceName; +} + +const MString& ColorManagementPreferences::sRGBName() { return Get()._sRGBName; } + +std::string ColorManagementPreferences::getFileRule(const std::string& path) +{ + MString colorRuleCmd; + colorRuleCmd.format("colorManagementFileRules -evaluate \"^1s\";", MString(path.c_str())); + return MGlobal::executeCommandStringResult(colorRuleCmd).asChar(); +} + +void ColorManagementPreferences::SetDirty() +{ + auto& self = InternalGet(); + self._dirty = true; +} + +void ColorManagementPreferences::MayaExit() +{ + auto& self = InternalGet(); + self.RemoveSinks(); +} + +ColorManagementPreferences::ColorManagementPreferences() = default; + +const ColorManagementPreferences& ColorManagementPreferences::Get() +{ + auto& self = InternalGet(); + self.Refresh(); + return self; +} +ColorManagementPreferences& ColorManagementPreferences::InternalGet() +{ + static ColorManagementPreferences _self; + return _self; +} + +void ColorManagementPreferences::RemoveSinks() +{ + for (auto id : _mayaColorManagementCallbackIds) { + MMessage::removeCallback(id); + } + _mayaColorManagementCallbackIds.clear(); + MMessage::removeCallback(_mayaExitingCB); +} + +void colorManagementRefreshCB(void*) { ColorManagementPreferences::SetDirty(); } + +void mayaExitingCB(void*) { ColorManagementPreferences::MayaExit(); } + +void ColorManagementPreferences::Refresh() +{ + if (_mayaColorManagementCallbackIds.empty()) { + // Monitor color management prefs + _mayaColorManagementCallbackIds.push_back(MEventMessage::addEventCallback( + "colorMgtEnabledChanged", colorManagementRefreshCB, this)); + _mayaColorManagementCallbackIds.push_back(MEventMessage::addEventCallback( + "colorMgtWorkingSpaceChanged", colorManagementRefreshCB, this)); + _mayaColorManagementCallbackIds.push_back(MEventMessage::addEventCallback( + "colorMgtConfigChanged", colorManagementRefreshCB, this)); + _mayaColorManagementCallbackIds.push_back(MEventMessage::addEventCallback( + "colorMgtConfigFilePathChanged", colorManagementRefreshCB, this)); + // The color management settings are quietly reset on file new: + _mayaColorManagementCallbackIds.push_back( + MSceneMessage::addCallback(MSceneMessage::kBeforeNew, colorManagementRefreshCB, this)); + _mayaColorManagementCallbackIds.push_back( + MSceneMessage::addCallback(MSceneMessage::kBeforeOpen, colorManagementRefreshCB, this)); + + // Cleanup on exit: + _mayaExitingCB + = MSceneMessage::addCallback(MSceneMessage::kMayaExiting, mayaExitingCB, this); + } + + if (!_dirty) { + return; + } + _dirty = false; + + int isActive = 0; + MGlobal::executeCommand("colorManagementPrefs -q -cmEnabled", isActive, false, false); + if (!isActive) { + _active = false; + return; + } + + _active = true; + + _renderingSpaceName + = MGlobal::executeCommandStringResult("colorManagementPrefs -q -renderingSpaceName"); + + // Need some robustness around sRGB since not all OCIO configs declare it the same way: + const auto sRGBAliases + = std::set { "sRGB", "sRGB - Texture", + "srgb_tx", "Utility - sRGB - Texture", + "srgb_texture", "Input - Generic - sRGB - Texture" }; + + MStringArray allInputSpaces; + MGlobal::executeCommand( + "colorManagementPrefs -q -inputSpaceNames", allInputSpaces, false, false); + + for (auto&& spaceName : allInputSpaces) { + if (sRGBAliases.count(spaceName.asChar())) { + _sRGBName = spaceName; + break; + } + } +} + +} // namespace MAYAUSD_NS_DEF diff --git a/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.h b/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.h new file mode 100644 index 0000000000..5278578024 --- /dev/null +++ b/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.h @@ -0,0 +1,85 @@ +// +// Copyright 2023 Autodesk +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +#ifndef COLOR_MANAGEMENT_PREFERENCES +#define COLOR_MANAGEMENT_PREFERENCES + +#include + +#include +#include + +#include + +namespace MAYAUSD_NS_DEF { + +/*! \brief Cache of color management preferences and queries. + + Getting the information involves calling MEL scripts, so we cache the results for better + performance. +*/ +class MAYAUSD_CORE_PUBLIC ColorManagementPreferences +{ +public: + ~ColorManagementPreferences(); + + /*! \brief Is color management active. + */ + static bool Active(); + + /*! \brief The current DCC rendering space name. + */ + static const MString& RenderingSpaceName(); + + /*! \brief The current DCC color space name for plain sRGB + + Color management config files can rename or alias the sRGB color space name. We try a few + common names and remember the first one that is found in the config. + */ + static const MString& sRGBName(); + + /*! \brief Returns the OCIO color space name according to config file rules. + + \param path The path of the file to be color managed. + */ + static std::string getFileRule(const std::string& path); + + /*! \brief Utility function to reset all cached data. + */ + static void SetDirty(); + + /*! \brief Utility function to reset all message handlers on exit. + */ + static void MayaExit(); + +private: + ColorManagementPreferences(); + static const ColorManagementPreferences& Get(); + static ColorManagementPreferences& InternalGet(); + + bool _dirty = true; + bool _active = false; + MString _renderingSpaceName; + MString _sRGBName; + std::vector _mayaColorManagementCallbackIds; + MCallbackId _mayaExitingCB { 0 }; + + void Refresh(); + void RemoveSinks(); +}; + +} // namespace MAYAUSD_NS_DEF + +#endif diff --git a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp index 70abe48a73..e75f0a6127 100644 --- a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp +++ b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp @@ -22,6 +22,7 @@ #include "tokens.h" #include +#include #include #include #include @@ -238,126 +239,6 @@ TF_DEFINE_PRIVATE_TOKENS( ); // clang-format on -// We will cache the color management preferences since they are used in many loops. -class CMPrefs -{ -public: - ~CMPrefs() { RemoveSinks(); } - static bool Active() { return Get()._active; } - static const MString& RenderingSpaceName() { return Get()._renderingSpaceName; } - static const MString& sRGBName() { return Get()._sRGBName; } - static std::string getFileRule(const std::string& path) - { - MString colorRuleCmd; - colorRuleCmd.format("colorManagementFileRules -evaluate \"^1s\";", MString(path.c_str())); - return MGlobal::executeCommandStringResult(colorRuleCmd).asChar(); - } - - static void SetDirty() - { - auto& self = InternalGet(); - self._dirty = true; - } - - static void MayaExit() - { - auto& self = InternalGet(); - self.RemoveSinks(); - } - -private: - CMPrefs() = default; - static const CMPrefs& Get() - { - auto& self = InternalGet(); - self.Refresh(); - return self; - } - static CMPrefs& InternalGet() - { - static CMPrefs _self; - return _self; - } - bool _dirty = true; - bool _active = false; - MString _renderingSpaceName; - MString _sRGBName; - std::vector _mayaColorManagementCallbackIds; - MCallbackId _mayaExitingCB { 0 }; - - void Refresh(); - void RemoveSinks() - { - for (auto id : _mayaColorManagementCallbackIds) { - MMessage::removeCallback(id); - } - _mayaColorManagementCallbackIds.clear(); - MMessage::removeCallback(_mayaExitingCB); - } -}; - -void colorManagementRefreshCB(void*) { CMPrefs::SetDirty(); } - -void mayaExitingCB(void*) { CMPrefs::MayaExit(); } - -void CMPrefs::Refresh() -{ - if (_mayaColorManagementCallbackIds.empty()) { - // Monitor color management prefs - _mayaColorManagementCallbackIds.push_back(MEventMessage::addEventCallback( - "colorMgtEnabledChanged", colorManagementRefreshCB, this)); - _mayaColorManagementCallbackIds.push_back(MEventMessage::addEventCallback( - "colorMgtWorkingSpaceChanged", colorManagementRefreshCB, this)); - _mayaColorManagementCallbackIds.push_back(MEventMessage::addEventCallback( - "colorMgtConfigChanged", colorManagementRefreshCB, this)); - _mayaColorManagementCallbackIds.push_back(MEventMessage::addEventCallback( - "colorMgtConfigFilePathChanged", colorManagementRefreshCB, this)); - // The color management settings are quietly reset on file new: - _mayaColorManagementCallbackIds.push_back( - MSceneMessage::addCallback(MSceneMessage::kBeforeNew, colorManagementRefreshCB, this)); - _mayaColorManagementCallbackIds.push_back( - MSceneMessage::addCallback(MSceneMessage::kBeforeOpen, colorManagementRefreshCB, this)); - - // Cleanup on exit: - _mayaExitingCB - = MSceneMessage::addCallback(MSceneMessage::kMayaExiting, mayaExitingCB, this); - } - - if (!_dirty) { - return; - } - _dirty = false; - - int isActive = 0; - MGlobal::executeCommand("colorManagementPrefs -q -cmEnabled", isActive, false, false); - if (!isActive) { - _active = false; - return; - } - - _active = true; - - _renderingSpaceName - = MGlobal::executeCommandStringResult("colorManagementPrefs -q -renderingSpaceName"); - - // Need some robustness around sRGB since not all OCIO configs declare it the same way: - const auto sRGBAliases - = std::set { "sRGB", "sRGB - Texture", - "srgb_tx", "Utility - sRGB - Texture", - "srgb_texture", "Input - Generic - sRGB - Texture" }; - - MStringArray allInputSpaces; - MGlobal::executeCommand( - "colorManagementPrefs -q -inputSpaceNames", allInputSpaces, false, false); - - for (auto&& spaceName : allInputSpaces) { - if (sRGBAliases.count(spaceName.asChar())) { - _sRGBName = spaceName; - break; - } - } -} - #ifdef WANT_MATERIALX_BUILD // clang-format off @@ -564,7 +445,7 @@ size_t _GenerateNetwork2TopoHash(const HdMaterialNetwork2& materialNetwork) } } #ifdef HAS_COLOR_MANAGEMENT_SUPPORT_API - if (CMPrefs::Active()) { + if (MayaUsd::ColorManagementPreferences::Active()) { // Explicit color management parameters affect topology: for (auto&& cmName : _mtlxKnownColorSpaceAttrs) { auto cmIt = node.parameters.find(cmName); @@ -599,7 +480,9 @@ size_t _GenerateNetwork2TopoHash(const HdMaterialNetwork2& materialNetwork) #ifdef HAS_COLOR_MANAGEMENT_SUPPORT_API if (hasTextureNode) { MayaUsd::hash_combine( - topoHash, std::hash {}(CMPrefs::RenderingSpaceName().asChar())); + topoHash, + std::hash {}( + MayaUsd::ColorManagementPreferences::RenderingSpaceName().asChar())); } #endif @@ -1161,7 +1044,7 @@ std::string _GenerateXMLString(const HdMaterialNetwork& materialNetwork, bool in #ifdef HAS_COLOR_MANAGEMENT_SUPPORT_API void _AddColorManagementFragments(HdMaterialNetwork& net) { - if (!CMPrefs::Active()) { + if (!MayaUsd::ColorManagementPreferences::Active()) { return; } @@ -1212,13 +1095,13 @@ void _AddColorManagementFragments(HdMaterialNetwork& net) if (resolvedPath.empty()) { continue; } - colorSpace = CMPrefs::getFileRule(resolvedPath).c_str(); + colorSpace = MayaUsd::ColorManagementPreferences::getFileRule(resolvedPath).c_str(); } else if (sourceColorSpace == _tokens->sRGB) { - if (CMPrefs::sRGBName().isEmpty()) { + if (MayaUsd::ColorManagementPreferences::sRGBName().isEmpty()) { // No alias found. Do not color correct... continue; } - colorSpace = CMPrefs::sRGBName(); + colorSpace = MayaUsd::ColorManagementPreferences::sRGBName(); } else if (sourceColorSpace == _tokens->raw) { // No cm necessary for raw: continue; @@ -2429,9 +2312,10 @@ void HdVP2Material::CompiledNetwork::_ApplyVP2Fixes( SdrShaderNodeConstPtr sdrNode = shaderReg.GetShaderNodeByIdentifier(outNode.identifier); #endif if (_IsUsdUVTexture(node)) { - outNode.identifier = TfToken( - HdVP2ShaderFragments::getUsdUVTextureFragmentName(CMPrefs::RenderingSpaceName()) - .asChar()); + outNode.identifier + = TfToken(HdVP2ShaderFragments::getUsdUVTextureFragmentName( + MayaUsd::ColorManagementPreferences::RenderingSpaceName()) + .asChar()); } else { if (!sdrNode) { TF_WARN("Could not find a shader node for <%s>", node.path.GetText()); @@ -2753,7 +2637,7 @@ TfToken _RequiresColorManagement( if (resolvedPath.empty()) { return {}; } - sourceColorSpace = CMPrefs::getFileRule(resolvedPath); + sourceColorSpace = MayaUsd::ColorManagementPreferences::getFileRule(resolvedPath); } if (sourceColorSpace == "Raw" || sourceColorSpace == "raw") { @@ -2867,7 +2751,7 @@ void HdVP2Material::CompiledNetwork::_ApplyMtlxVP2Fixes( for (const auto& c : cnxPair.second) { TfToken cmNodeDefId, cmInputName, cmOutputName; #ifdef HAS_COLOR_MANAGEMENT_SUPPORT_API - if (CMPrefs::Active()) { + if (MayaUsd::ColorManagementPreferences::Active()) { cmNodeDefId = _RequiresColorManagement( inNode, inNet.nodes.find(c.upstreamNode)->second, @@ -2881,7 +2765,7 @@ void HdVP2Material::CompiledNetwork::_ApplyMtlxVP2Fixes( if (!colorManagementType.IsEmpty()) { if (colorManagementCategory.empty()) { auto categoryIt = _mtlxColorCorrectCategoryMap.find( - CMPrefs::RenderingSpaceName().asChar()); + MayaUsd::ColorManagementPreferences::RenderingSpaceName().asChar()); if (categoryIt != _mtlxColorCorrectCategoryMap.end()) { colorManagementCategory = categoryIt->second; } From 061d026268ca23b0fd347f4ec81f4825c3fb63d1 Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Thu, 7 Dec 2023 13:16:13 -0500 Subject: [PATCH 2/5] Respond to review comment. --- .../render/vp2RenderDelegate/colorManagementPreferences.cpp | 5 ++--- .../render/vp2RenderDelegate/colorManagementPreferences.h | 1 - 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.cpp b/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.cpp index 1c0b47318e..b89bf80faf 100644 --- a/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.cpp +++ b/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.cpp @@ -74,7 +74,6 @@ void ColorManagementPreferences::RemoveSinks() MMessage::removeCallback(id); } _mayaColorManagementCallbackIds.clear(); - MMessage::removeCallback(_mayaExitingCB); } void colorManagementRefreshCB(void*) { ColorManagementPreferences::SetDirty(); } @@ -100,8 +99,8 @@ void ColorManagementPreferences::Refresh() MSceneMessage::addCallback(MSceneMessage::kBeforeOpen, colorManagementRefreshCB, this)); // Cleanup on exit: - _mayaExitingCB - = MSceneMessage::addCallback(MSceneMessage::kMayaExiting, mayaExitingCB, this); + _mayaColorManagementCallbackIds.push_back( + MSceneMessage::addCallback(MSceneMessage::kMayaExiting, mayaExitingCB, this)); } if (!_dirty) { diff --git a/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.h b/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.h index 5278578024..a1522473de 100644 --- a/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.h +++ b/lib/mayaUsd/render/vp2RenderDelegate/colorManagementPreferences.h @@ -74,7 +74,6 @@ class MAYAUSD_CORE_PUBLIC ColorManagementPreferences MString _renderingSpaceName; MString _sRGBName; std::vector _mayaColorManagementCallbackIds; - MCallbackId _mayaExitingCB { 0 }; void Refresh(); void RemoveSinks(); From 86d68d1d04ec5f6f2395554cdb134e320b6bea83 Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Fri, 8 Dec 2023 17:05:15 -0500 Subject: [PATCH 3/5] EMSUSD-765 - Update OCIO code to handle new Hydra colorspace info --- .../render/vp2RenderDelegate/material.cpp | 60 +- .../testVP2RenderDelegateMaterialX.py | 6 +- .../MaterialX/color_management_USD.usda | 6 + ...dio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio | 1231 +++++++++++++++++ 4 files changed, 1301 insertions(+), 2 deletions(-) create mode 100644 test/testSamples/MaterialX/no-rule-studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio diff --git a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp index e75f0a6127..4c901b048c 100644 --- a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp +++ b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp @@ -236,6 +236,9 @@ TF_DEFINE_PRIVATE_TOKENS( (mayaIsBackFacing) (isBackfacing) (FallbackShader) + + // Added in PXR_VERSION >= 2311 + ((ColorSpacePrefix, "colorSpace:")) ); // clang-format on @@ -447,6 +450,7 @@ size_t _GenerateNetwork2TopoHash(const HdMaterialNetwork2& materialNetwork) #ifdef HAS_COLOR_MANAGEMENT_SUPPORT_API if (MayaUsd::ColorManagementPreferences::Active()) { // Explicit color management parameters affect topology: +#if PXR_VERSION < 2311 for (auto&& cmName : _mtlxKnownColorSpaceAttrs) { auto cmIt = node.parameters.find(cmName); if (cmIt != node.parameters.end()) { @@ -460,6 +464,33 @@ size_t _GenerateNetwork2TopoHash(const HdMaterialNetwork2& materialNetwork) } } } +#else + // Hydra in USD 23.11 will add a "colorspace:Foo" parameter matching color managed "Foo" + // parameter: + auto isColorSpace = [](const TfToken& paramName) { + if (paramName.GetString().rfind(_tokens->ColorSpacePrefix.GetString(), 0) == 0) { + return true; + } + return std::find( + _mtlxKnownColorSpaceAttrs.begin(), + _mtlxKnownColorSpaceAttrs.end(), + paramName) + != _mtlxKnownColorSpaceAttrs.end(); + }; + + for (auto&& param : node.parameters) { + if (isColorSpace(param.first)) { + MayaUsd::hash_combine(topoHash, hash_value(param.first)); + if (param.second.IsHolding()) { + auto const& colorSpace = param.second.UncheckedGet(); + MayaUsd::hash_combine(topoHash, hash_value(colorSpace)); + } else if (param.second.IsHolding()) { + auto const& colorSpace = param.second.UncheckedGet(); + MayaUsd::hash_combine(topoHash, std::hash {}(colorSpace)); + } + } + } +#endif if (_MxHasFilenameInput(node)) { hasTextureNode = true; } @@ -2599,7 +2630,7 @@ TfToken _RequiresColorManagement( if (!sourceColorSpace.empty()) { return; } - +#if PXR_VERSION < 2311 for (auto&& csAttrName : _mtlxKnownColorSpaceAttrs) { auto paramIt = n.parameters.find(csAttrName); if (paramIt != n.parameters.end()) { @@ -2613,6 +2644,33 @@ TfToken _RequiresColorManagement( } } } +#else + // Hydra in USD 23.11 will add a "colorspace:Foo" parameter matching color managed "Foo" + // parameter: + auto isColorSpace = [](const TfToken& paramName) { + if (paramName.GetString().rfind(_tokens->ColorSpacePrefix.GetString(), 0) == 0) { + return true; + } + return std::find( + _mtlxKnownColorSpaceAttrs.begin(), + _mtlxKnownColorSpaceAttrs.end(), + paramName) + != _mtlxKnownColorSpaceAttrs.end(); + }; + + for (auto&& param : n.parameters) { + if (isColorSpace(param.first)) { + const VtValue& val = param.second; + if (val.IsHolding()) { + sourceColorSpace = val.UncheckedGet().GetString(); + return; + } else if (val.IsHolding()) { + sourceColorSpace = val.UncheckedGet(); + return; + } + } + } +#endif }; std::string sourceColorSpace; diff --git a/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py b/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py index 01d7281e58..0c0746cdbd 100644 --- a/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py +++ b/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py @@ -265,7 +265,11 @@ def testOCIOIntegration(self): """Test that we can color manage using Maya OCIO fragments.""" cmds.file(new=True, force=True) # This config has file rules for all the new textures: - configFile = testUtils.getTestScene("MaterialX", "studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio") + if (Usd.GetVersion() >= (0, 23, 11)): + # USD starting at 23.11 we no longer requires file rules to get OCIO results. Metadata will be usable. + configFile = testUtils.getTestScene("MaterialX", "no-rule-studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio") + else: + configFile = testUtils.getTestScene("MaterialX", "studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio") cmds.colorManagementPrefs(edit=True, configFilePath=configFile) # Import the Maya data so we can compare: diff --git a/test/testSamples/MaterialX/color_management_USD.usda b/test/testSamples/MaterialX/color_management_USD.usda index 139e8a1bf4..c49ac05881 100644 --- a/test/testSamples/MaterialX/color_management_USD.usda +++ b/test/testSamples/MaterialX/color_management_USD.usda @@ -50,6 +50,7 @@ def Mesh "pPlane1" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_ACEScg.exr@ + token inputs:sourceColorSpace = "ACEScg" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" @@ -111,6 +112,7 @@ def Mesh "pPlane2" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_ADX10.exr@ + token inputs:sourceColorSpace = "ADX10" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" @@ -172,6 +174,7 @@ def Mesh "pPlane3" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_ADX16.exr@ + token inputs:sourceColorSpace = "ADX16" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" @@ -231,6 +234,7 @@ def Mesh "pPlane4" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_arri_logc4.exr@ + token inputs:sourceColorSpace = "ARRI LogC4" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" @@ -292,6 +296,7 @@ def Mesh "pPlane5" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_g24_rec709.exr@ + token inputs:sourceColorSpace = "Gamma 2.4 Rec.709 - Texture" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" @@ -353,6 +358,7 @@ def Mesh "pPlane6" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_lin_p3d65.exr@ + token inputs:sourceColorSpace = "Linear P3-D65" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" diff --git a/test/testSamples/MaterialX/no-rule-studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio b/test/testSamples/MaterialX/no-rule-studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio new file mode 100644 index 0000000000..520c05cebb --- /dev/null +++ b/test/testSamples/MaterialX/no-rule-studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio @@ -0,0 +1,1231 @@ +ocio_profile_version: 2 + +environment: + {} +search_path: "" +strictparsing: true +luma: [0.2126, 0.7152, 0.0722] +name: studio-config-v1.0.0_aces-v1.3_ocio-v2.0 +description: | + Academy Color Encoding System - Studio Config [COLORSPACES v1.0.0] [ACES v1.3] [OCIO v2.0] + ------------------------------------------------------------------------------------------ + + This "OpenColorIO" config is geared toward studios requiring a config that includes a wide variety of camera colorspaces, displays and looks. + + Generated with "OpenColorIO-Config-ACES" v1.0.0 on the 2022/10/26 at 05:59. + +roles: + aces_interchange: ACES2065-1 + cie_xyz_d65_interchange: CIE-XYZ-D65 + color_picking: sRGB - Texture + color_timing: ACEScct + compositing_log: ACEScct + data: Raw + matte_paint: sRGB - Texture + scene_linear: ACEScg + texture_paint: ACEScct + +file_rules: + - ! {name: Default, colorspace: ACES2065-1} + +shared_views: + - ! {name: ACES 1.0 - SDR Video, view_transform: ACES 1.0 - SDR Video, display_colorspace: } + - ! {name: ACES 1.0 - SDR Video (D60 sim on D65), view_transform: ACES 1.0 - SDR Video (D60 sim on D65), display_colorspace: } + - ! {name: ACES 1.1 - SDR Video (P3 lim), view_transform: ACES 1.1 - SDR Video (P3 lim), display_colorspace: } + - ! {name: ACES 1.1 - SDR Video (Rec.709 lim), view_transform: ACES 1.1 - SDR Video (Rec.709 lim), display_colorspace: } + - ! {name: ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim), view_transform: ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim), display_colorspace: } + - ! {name: ACES 1.1 - HDR Video (2000 nits & Rec.2020 lim), view_transform: ACES 1.1 - HDR Video (2000 nits & Rec.2020 lim), display_colorspace: } + - ! {name: ACES 1.1 - HDR Video (4000 nits & Rec.2020 lim), view_transform: ACES 1.1 - HDR Video (4000 nits & Rec.2020 lim), display_colorspace: } + - ! {name: ACES 1.1 - HDR Video (1000 nits & P3 lim), view_transform: ACES 1.1 - HDR Video (1000 nits & P3 lim), display_colorspace: } + - ! {name: ACES 1.1 - HDR Video (2000 nits & P3 lim), view_transform: ACES 1.1 - HDR Video (2000 nits & P3 lim), display_colorspace: } + - ! {name: ACES 1.1 - HDR Video (4000 nits & P3 lim), view_transform: ACES 1.1 - HDR Video (4000 nits & P3 lim), display_colorspace: } + - ! {name: ACES 1.0 - SDR Cinema, view_transform: ACES 1.0 - SDR Cinema, display_colorspace: } + - ! {name: ACES 1.1 - SDR Cinema (D60 sim on D65), view_transform: ACES 1.1 - SDR Cinema (D60 sim on D65), display_colorspace: } + - ! {name: ACES 1.1 - SDR Cinema (Rec.709 lim), view_transform: ACES 1.1 - SDR Cinema (Rec.709 lim), display_colorspace: } + - ! {name: ACES 1.0 - SDR Cinema (D60 sim on DCI), view_transform: ACES 1.0 - SDR Cinema (D60 sim on DCI), display_colorspace: } + - ! {name: ACES 1.1 - SDR Cinema (D65 sim on DCI), view_transform: ACES 1.1 - SDR Cinema (D65 sim on DCI), display_colorspace: } + - ! {name: ACES 1.1 - HDR Cinema (108 nits & P3 lim), view_transform: ACES 1.1 - HDR Cinema (108 nits & P3 lim), display_colorspace: } + - ! {name: Un-tone-mapped, view_transform: Un-tone-mapped, display_colorspace: } + +displays: + sRGB - Display: + - ! {name: Raw, colorspace: Raw} + - ! [ACES 1.0 - SDR Video, ACES 1.0 - SDR Video (D60 sim on D65), Un-tone-mapped] + Rec.1886 Rec.709 - Display: + - ! {name: Raw, colorspace: Raw} + - ! [ACES 1.0 - SDR Video, ACES 1.0 - SDR Video (D60 sim on D65), Un-tone-mapped] + Rec.1886 Rec.2020 - Display: + - ! {name: Raw, colorspace: Raw} + - ! [ACES 1.0 - SDR Video, ACES 1.1 - SDR Video (P3 lim), ACES 1.1 - SDR Video (Rec.709 lim), Un-tone-mapped] + Rec.2100-HLG - Display: + - ! {name: Raw, colorspace: Raw} + - ! [ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim), Un-tone-mapped] + Rec.2100-PQ - Display: + - ! {name: Raw, colorspace: Raw} + - ! [ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim), ACES 1.1 - HDR Video (2000 nits & Rec.2020 lim), ACES 1.1 - HDR Video (4000 nits & Rec.2020 lim), Un-tone-mapped] + ST2084-P3-D65 - Display: + - ! {name: Raw, colorspace: Raw} + - ! [ACES 1.1 - HDR Video (1000 nits & P3 lim), ACES 1.1 - HDR Video (2000 nits & P3 lim), ACES 1.1 - HDR Video (4000 nits & P3 lim), ACES 1.1 - HDR Cinema (108 nits & P3 lim), Un-tone-mapped] + P3-D60 - Display: + - ! {name: Raw, colorspace: Raw} + - ! [ACES 1.0 - SDR Cinema, Un-tone-mapped] + P3-D65 - Display: + - ! {name: Raw, colorspace: Raw} + - ! [ACES 1.0 - SDR Cinema, ACES 1.1 - SDR Cinema (D60 sim on D65), ACES 1.1 - SDR Cinema (Rec.709 lim), Un-tone-mapped] + P3-DCI - Display: + - ! {name: Raw, colorspace: Raw} + - ! [ACES 1.0 - SDR Cinema (D60 sim on DCI), ACES 1.1 - SDR Cinema (D65 sim on DCI), Un-tone-mapped] + +active_displays: [sRGB - Display, Rec.1886 Rec.709 - Display, Rec.1886 Rec.2020 - Display, Rec.2100-HLG - Display, Rec.2100-PQ - Display, ST2084-P3-D65 - Display, P3-D60 - Display, P3-D65 - Display, P3-DCI - Display] +active_views: [ACES 1.0 - SDR Video, ACES 1.0 - SDR Video (D60 sim on D65), ACES 1.1 - SDR Video (P3 lim), ACES 1.1 - SDR Video (Rec.709 lim), ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim), ACES 1.1 - HDR Video (2000 nits & Rec.2020 lim), ACES 1.1 - HDR Video (4000 nits & Rec.2020 lim), ACES 1.1 - HDR Video (1000 nits & P3 lim), ACES 1.1 - HDR Video (2000 nits & P3 lim), ACES 1.1 - HDR Video (4000 nits & P3 lim), ACES 1.0 - SDR Cinema, ACES 1.1 - SDR Cinema (D60 sim on D65), ACES 1.1 - SDR Cinema (Rec.709 lim), ACES 1.0 - SDR Cinema (D60 sim on DCI), ACES 1.1 - SDR Cinema (D65 sim on DCI), ACES 1.1 - HDR Cinema (108 nits & P3 lim), Un-tone-mapped, Raw] +inactive_colorspaces: [CIE-XYZ-D65, sRGB - Display, Rec.1886 Rec.709 - Display, Rec.1886 Rec.2020 - Display, sRGB - Display, Rec.1886 Rec.709 - Display, Rec.1886 Rec.2020 - Display, Rec.1886 Rec.2020 - Display, Rec.2100-HLG - Display, Rec.2100-PQ - Display, Rec.2100-PQ - Display, Rec.2100-PQ - Display, ST2084-P3-D65 - Display, ST2084-P3-D65 - Display, ST2084-P3-D65 - Display, P3-D60 - Display, P3-D65 - Display, P3-D65 - Display, P3-D65 - Display, P3-DCI - Display, P3-DCI - Display, ST2084-P3-D65 - Display] + +default_view_transform: Un-tone-mapped + +view_transforms: + - ! + name: ACES 1.0 - SDR Video + description: | + Component of ACES Output Transforms for SDR D65 video + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.RGBmonitor_100nits_dim.a1.0.3 + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec709_100nits_dim.a1.0.3 + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_100nits_dim.a1.0.3 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0} + + - ! + name: ACES 1.0 - SDR Video (D60 sim on D65) + description: | + Component of ACES Output Transforms for SDR D65 video simulating D60 white + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.RGBmonitor_D60sim_100nits_dim.a1.0.3 + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec709_D60sim_100nits_dim.a1.0.3 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-D60sim-D65_1.0} + + - ! + name: ACES 1.1 - SDR Video (P3 lim) + description: | + Component of ACES Output Transforms for SDR D65 video + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_P3D65limited_100nits_dim.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-P3lim_1.1} + + - ! + name: ACES 1.1 - SDR Video (Rec.709 lim) + description: | + Component of ACES Output Transforms for SDR D65 video + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_Rec709limited_100nits_dim.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-REC709lim_1.1} + + - ! + name: ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim) + description: | + Component of ACES Output Transforms for 1000 nit HDR D65 video + + ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_1000nits_15nits_HLG.a1.1.0 + ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_1000nits_15nits_ST2084.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-1000nit-15nit-REC2020lim_1.1} + + - ! + name: ACES 1.1 - HDR Video (2000 nits & Rec.2020 lim) + description: | + Component of ACES Output Transforms for 2000 nit HDR D65 video + + ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_2000nits_15nits_ST2084.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-2000nit-15nit-REC2020lim_1.1} + + - ! + name: ACES 1.1 - HDR Video (4000 nits & Rec.2020 lim) + description: | + Component of ACES Output Transforms for 4000 nit HDR D65 video + + ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_4000nits_15nits_ST2084.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-4000nit-15nit-REC2020lim_1.1} + + - ! + name: ACES 1.1 - HDR Video (1000 nits & P3 lim) + description: | + Component of ACES Output Transforms for 1000 nit HDR D65 video + + ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_1000nits_15nits_ST2084.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-1000nit-15nit-P3lim_1.1} + + - ! + name: ACES 1.1 - HDR Video (2000 nits & P3 lim) + description: | + Component of ACES Output Transforms for 2000 nit HDR D65 video + + ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_2000nits_15nits_ST2084.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-2000nit-15nit-P3lim_1.1} + + - ! + name: ACES 1.1 - HDR Video (4000 nits & P3 lim) + description: | + Component of ACES Output Transforms for 4000 nit HDR D65 video + + ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_4000nits_15nits_ST2084.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-4000nit-15nit-P3lim_1.1} + + - ! + name: ACES 1.0 - SDR Cinema + description: | + Component of ACES Output Transforms for SDR cinema + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D60_48nits.a1.0.3 + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_48nits.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA_1.0} + + - ! + name: ACES 1.1 - SDR Cinema (D60 sim on D65) + description: | + Component of ACES Output Transforms for SDR D65 cinema simulating D60 white + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_D60sim_48nits.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D60sim-D65_1.1} + + - ! + name: ACES 1.1 - SDR Cinema (Rec.709 lim) + description: | + Component of ACES Output Transforms for SDR cinema + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_Rec709limited_48nits.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-REC709lim_1.1} + + - ! + name: ACES 1.0 - SDR Cinema (D60 sim on DCI) + description: | + Component of ACES Output Transforms for SDR DCI cinema simulating D60 white + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3DCI_48nits.a1.0.3 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D60sim-DCI_1.0} + + - ! + name: ACES 1.1 - SDR Cinema (D65 sim on DCI) + description: | + Component of ACES Output Transforms for SDR DCI cinema simulating D65 white + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3DCI_D65sim_48nits.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D65sim-DCI_1.1} + + - ! + name: ACES 1.1 - HDR Cinema (108 nits & P3 lim) + description: | + Component of ACES Output Transforms for 108 nit HDR D65 cinema + + ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_108nits_7point2nits_ST2084.a1.1.0 + from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-CINEMA-108nit-7.2nit-P3lim_1.1} + + - ! + name: Un-tone-mapped + from_scene_reference: ! {style: UTILITY - ACES-AP0_to_CIE-XYZ-D65_BFD} + +display_colorspaces: + - ! + name: CIE-XYZ-D65 + aliases: [cie_xyz_d65] + family: "" + equalitygroup: "" + bitdepth: 32f + description: The "CIE XYZ (D65)" display connection colorspace. + isdata: false + allocation: uniform + + - ! + name: sRGB - Display + aliases: [srgb_display] + family: Display + equalitygroup: "" + bitdepth: 32f + description: Convert CIE XYZ (D65 white) to sRGB (piecewise EOTF) + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_sRGB} + + - ! + name: Rec.1886 Rec.709 - Display + aliases: [rec1886_rec709_display] + family: Display + equalitygroup: "" + bitdepth: 32f + description: Convert CIE XYZ (D65 white) to Rec.1886/Rec.709 (HD video) + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_REC.1886-REC.709} + + - ! + name: Rec.1886 Rec.2020 - Display + aliases: [rec1886_rec2020_display] + family: Display + equalitygroup: "" + bitdepth: 32f + description: Convert CIE XYZ (D65 white) to Rec.1886/Rec.2020 (UHD video) + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_REC.1886-REC.2020} + + - ! + name: Rec.2100-HLG - Display + aliases: [rec2100_hlg_display] + family: Display + equalitygroup: "" + bitdepth: 32f + description: Convert CIE XYZ (D65 white) to Rec.2100-HLG, 1000 nit + isdata: false + categories: [file-io] + encoding: hdr-video + allocation: uniform + from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_REC.2100-HLG-1000nit} + + - ! + name: Rec.2100-PQ - Display + aliases: [rec2100_pq_display] + family: Display + equalitygroup: "" + bitdepth: 32f + description: Convert CIE XYZ (D65 white) to Rec.2100-PQ + isdata: false + categories: [file-io] + encoding: hdr-video + allocation: uniform + from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ} + + - ! + name: ST2084-P3-D65 - Display + aliases: [st2084_p3d65_display] + family: Display + equalitygroup: "" + bitdepth: 32f + description: Convert CIE XYZ (D65 white) to ST-2084 (PQ), P3-D65 primaries + isdata: false + categories: [file-io] + encoding: hdr-video + allocation: uniform + from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65} + + - ! + name: P3-D60 - Display + aliases: [p3d60_display] + family: Display + equalitygroup: "" + bitdepth: 32f + description: Convert CIE XYZ (D65 white) to Gamma 2.6, P3-D60 (Bradford adaptation) + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D60-BFD} + + - ! + name: P3-D65 - Display + aliases: [p3d65_display] + family: Display + equalitygroup: "" + bitdepth: 32f + description: Convert CIE XYZ (D65 white) to Gamma 2.6, P3-D65 + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65} + + - ! + name: P3-DCI - Display + aliases: [p3_dci_display] + family: Display + equalitygroup: "" + bitdepth: 32f + description: Convert CIE XYZ (D65 white) to Gamma 2.6, P3-DCI (DCI white with Bradford adaptation) + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_G2.6-P3-DCI-BFD} + +colorspaces: + - ! + name: ACES2065-1 + aliases: [aces2065_1, ACES - ACES2065-1, lin_ap0] + family: ACES + equalitygroup: "" + bitdepth: 32f + description: The "Academy Color Encoding System" reference colorspace. + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + + - ! + name: ACEScc + aliases: [ACES - ACEScc, acescc_ap1] + family: ACES + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACEScc to ACES2065-1 + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScc_to_ACES.a1.0.3 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! {style: ACEScc_to_ACES2065-1} + + - ! + name: ACEScct + aliases: [ACES - ACEScct, acescct_ap1] + family: ACES + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACEScct to ACES2065-1 + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScct_to_ACES.a1.0.3 + isdata: false + categories: [file-io, working-space] + encoding: log + allocation: uniform + to_scene_reference: ! {style: ACEScct_to_ACES2065-1} + + - ! + name: ACEScg + aliases: [ACES - ACEScg, lin_ap1] + family: ACES + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACEScg to ACES2065-1 + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScg_to_ACES.a1.0.3 + isdata: false + categories: [file-io, working-space] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! {style: ACEScg_to_ACES2065-1} + + - ! + name: ADX10 + aliases: [Input - ADX - ADX10] + family: ACES + equalitygroup: "" + bitdepth: 32f + description: | + Convert ADX10 to ACES2065-1 + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ADX10_to_ACES.a1.0.3 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! {style: ADX10_to_ACES2065-1} + + - ! + name: ADX16 + aliases: [Input - ADX - ADX16] + family: ACES + equalitygroup: "" + bitdepth: 32f + description: | + Convert ADX16 to ACES2065-1 + + ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ADX16_to_ACES.a1.0.3 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! {style: ADX16_to_ACES2065-1} + + - ! + name: Linear ARRI Wide Gamut 3 + aliases: [lin_arri_wide_gamut_3, Input - ARRI - Linear - ALEXA Wide Gamut, lin_alexawide] + family: Input/ARRI + equalitygroup: "" + bitdepth: 32f + description: | + Convert Linear ARRI Wide Gamut 3 to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:Linear_ARRI_Wide_Gamut_3_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! + name: Linear ARRI Wide Gamut 3 to ACES2065-1 + children: + - ! {matrix: [0.680205505106279, 0.236136601606481, 0.0836578932872399, 0, 0.0854149797421404, 1.01747087860704, -0.102885858349182, 0, 0.00205652166929683, -0.0625625003847921, 1.0605059787155, 0, 0, 0, 0, 1]} + + - ! + name: ARRI LogC3 (EI800) + aliases: [arri_logc3_ei800, Input - ARRI - V3 LogC (EI800) - Wide Gamut, logc3ei800_alexawide] + family: Input/ARRI + equalitygroup: "" + bitdepth: 32f + description: | + Convert ARRI LogC3 (EI800) to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC3_EI800_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! + name: ARRI LogC3 (EI800) to ACES2065-1 + children: + - ! {base: 10, log_side_slope: 0.247189638318671, log_side_offset: 0.385536998692443, lin_side_slope: 5.55555555555556, lin_side_offset: 0.0522722750251688, lin_side_break: 0.0105909904954696, direction: inverse} + - ! {matrix: [0.680205505106279, 0.236136601606481, 0.0836578932872399, 0, 0.0854149797421404, 1.01747087860704, -0.102885858349182, 0, 0.00205652166929683, -0.0625625003847921, 1.0605059787155, 0, 0, 0, 0, 1]} + + - ! + name: Linear ARRI Wide Gamut 4 + aliases: [lin_arri_wide_gamut_4, lin_awg4] + family: Input/ARRI + equalitygroup: "" + bitdepth: 32f + description: | + Convert Linear ARRI Wide Gamut 4 to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:Linear_ARRI_Wide_Gamut_4_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! + name: Linear ARRI Wide Gamut 4 to ACES2065-1 + children: + - ! {matrix: [0.750957362824734, 0.144422786709757, 0.104619850465509, 0, 0.000821837079380207, 1.007397584885, -0.00821942196438358, 0, -0.000499952143533471, -0.000854177231436971, 1.00135412937497, 0, 0, 0, 0, 1]} + + - ! + name: ARRI LogC4 + aliases: [arri_logc4] + family: Input/ARRI + equalitygroup: "" + bitdepth: 32f + description: | + Convert ARRI LogC4 to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC4_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! + name: ARRI LogC4 to ACES2065-1 + children: + - ! {log_side_slope: 0.0647954196341293, log_side_offset: -0.295908392682586, lin_side_slope: 2231.82630906769, lin_side_offset: 64, lin_side_break: -0.0180569961199113, direction: inverse} + - ! {matrix: [0.750957362824734, 0.144422786709757, 0.104619850465509, 0, 0.000821837079380207, 1.007397584885, -0.00821942196438358, 0, -0.000499952143533471, -0.000854177231436971, 1.00135412937497, 0, 0, 0, 0, 1]} + + - ! + name: BMDFilm WideGamut Gen5 + aliases: [bmdfilm_widegamut_gen5] + family: Input/BlackmagicDesign + equalitygroup: "" + bitdepth: 32f + description: | + Convert Blackmagic Film Wide Gamut (Gen 5) to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:BMDFilm_WideGamut_Gen5_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! + name: Blackmagic Film Wide Gamut (Gen 5) to ACES2065-1 + children: + - ! {base: 2.71828182845905, log_side_slope: 0.0869287606549122, log_side_offset: 0.530013339229194, lin_side_offset: 0.00549407243225781, lin_side_break: 0.005, direction: inverse} + - ! {matrix: [0.647091325580708, 0.242595385134207, 0.110313289285085, 0, 0.0651915997328519, 1.02504756760476, -0.0902391673376125, 0, -0.0275570729194699, -0.0805887097177784, 1.10814578263725, 0, 0, 0, 0, 1]} + + - ! + name: DaVinci Intermediate WideGamut + aliases: [davinci_intermediate_widegamut] + family: Input/BlackmagicDesign + equalitygroup: "" + bitdepth: 32f + description: | + Convert DaVinci Intermediate Wide Gamut to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:DaVinci_Intermediate_WideGamut_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! + name: DaVinci Intermediate Wide Gamut to ACES2065-1 + children: + - ! {log_side_slope: 0.07329248, log_side_offset: 0.51304736, lin_side_offset: 0.0075, lin_side_break: 0.00262409, linear_slope: 10.44426855, direction: inverse} + - ! {matrix: [0.748270290272981, 0.167694659554328, 0.0840350501726906, 0, 0.0208421234689102, 1.11190474268894, -0.132746866157851, 0, -0.0915122574225729, -0.127746712807307, 1.21925897022988, 0, 0, 0, 0, 1]} + + - ! + name: Linear BMD WideGamut Gen5 + aliases: [lin_bmd_widegamut_gen5] + family: Input/BlackmagicDesign + equalitygroup: "" + bitdepth: 32f + description: | + Convert Linear Blackmagic Wide Gamut (Gen 5) to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:Linear_BMD_WideGamut_Gen5_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! + name: Linear Blackmagic Wide Gamut (Gen 5) to ACES2065-1 + children: + - ! {matrix: [0.647091325580708, 0.242595385134207, 0.110313289285085, 0, 0.0651915997328519, 1.02504756760476, -0.0902391673376125, 0, -0.0275570729194699, -0.0805887097177784, 1.10814578263725, 0, 0, 0, 0, 1]} + + - ! + name: Linear DaVinci WideGamut + aliases: [lin_davinci_widegamut] + family: Input/BlackmagicDesign + equalitygroup: "" + bitdepth: 32f + description: | + Convert Linear DaVinci Wide Gamut to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:Linear_DaVinci_WideGamut_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! + name: Linear DaVinci Wide Gamut to ACES2065-1 + children: + - ! {matrix: [0.748270290272981, 0.167694659554328, 0.0840350501726906, 0, 0.0208421234689102, 1.11190474268894, -0.132746866157851, 0, -0.0915122574225729, -0.127746712807307, 1.21925897022988, 0, 0, 0, 0, 1]} + + - ! + name: CanonLog3 CinemaGamut D55 + aliases: [canonlog3_cinemagamut_d55, Input - Canon - Canon-Log3 - Cinema Gamut Daylight, canonlog3_cgamutday] + family: Input/Canon + equalitygroup: "" + bitdepth: 32f + description: Convert Canon Log 3 Cinema Gamut to ACES2065-1 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! {style: CANON_CLOG3-CGAMUT_to_ACES2065-1} + + - ! + name: Linear CinemaGamut D55 + aliases: [lin_cinemagamut_d55, Input - Canon - Linear - Canon Cinema Gamut Daylight, lin_canoncgamutday] + family: Input/Canon + equalitygroup: "" + bitdepth: 32f + description: | + Convert Linear Canon Cinema Gamut (Daylight) to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Canon:Input:Linear-CinemaGamut-D55_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! + name: Linear Canon Cinema Gamut (Daylight) to ACES2065-1 + children: + - ! {matrix: [0.763064454775734, 0.14902116113706, 0.0879143840872056, 0, 0.00365745670512393, 1.10696038037622, -0.110617837081339, 0, -0.0094077940457189, -0.218383304989987, 1.22779109903571, 0, 0, 0, 0, 1]} + + - ! + name: Linear V-Gamut + aliases: [lin_vgamut, Input - Panasonic - Linear - V-Gamut] + family: Input/Panasonic + equalitygroup: "" + bitdepth: 32f + description: | + Convert Linear Panasonic V-Gamut to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Panasonic:Input:Linear_VGamut_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! + name: Linear Panasonic V-Gamut to ACES2065-1 + children: + - ! {matrix: [0.72461670413153, 0.166915288193706, 0.108468007674764, 0, 0.021390245413146, 0.984908155703054, -0.00629840111620089, 0, -0.00923556287076561, -0.00105690563900513, 1.01029246850977, 0, 0, 0, 0, 1]} + + - ! + name: V-Log V-Gamut + aliases: [vlog_vgamut, Input - Panasonic - V-Log - V-Gamut] + family: Input/Panasonic + equalitygroup: "" + bitdepth: 32f + description: | + Convert Panasonic V-Log - V-Gamut to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Panasonic:Input:VLog_VGamut_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! + name: Panasonic V-Log - V-Gamut to ACES2065-1 + children: + - ! {base: 10, log_side_slope: 0.241514, log_side_offset: 0.598206, lin_side_offset: 0.00873, lin_side_break: 0.01, direction: inverse} + - ! {matrix: [0.72461670413153, 0.166915288193706, 0.108468007674764, 0, 0.021390245413146, 0.984908155703054, -0.00629840111620089, 0, -0.00923556287076561, -0.00105690563900513, 1.01029246850977, 0, 0, 0, 0, 1]} + + - ! + name: Linear REDWideGamutRGB + aliases: [lin_redwidegamutrgb, Input - RED - Linear - REDWideGamutRGB, lin_rwg] + family: Input/RED + equalitygroup: "" + bitdepth: 32f + description: | + Convert Linear REDWideGamutRGB to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:RED:Input:Linear_REDWideGamutRGB_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! + name: Linear REDWideGamutRGB to ACES2065-1 + children: + - ! {matrix: [0.785058804068092, 0.0838587565440846, 0.131082439387823, 0, 0.0231738348454756, 1.08789754919233, -0.111071384037806, 0, -0.0737604353682082, -0.314590072290208, 1.38835050765842, 0, 0, 0, 0, 1]} + + - ! + name: Log3G10 REDWideGamutRGB + aliases: [log3g10_redwidegamutrgb, Input - RED - REDLog3G10 - REDWideGamutRGB, rl3g10_rwg] + family: Input/RED + equalitygroup: "" + bitdepth: 32f + description: | + Convert RED Log3G10 REDWideGamutRGB to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:RED:Input:Log3G10_REDWideGamutRGB_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! + name: RED Log3G10 REDWideGamutRGB to ACES2065-1 + children: + - ! {base: 10, log_side_slope: 0.224282, lin_side_slope: 155.975327, lin_side_offset: 2.55975327, lin_side_break: -0.01, direction: inverse} + - ! {matrix: [0.785058804068092, 0.0838587565440846, 0.131082439387823, 0, 0.0231738348454756, 1.08789754919233, -0.111071384037806, 0, -0.0737604353682082, -0.314590072290208, 1.38835050765842, 0, 0, 0, 0, 1]} + + - ! + name: Linear S-Gamut3 + aliases: [lin_sgamut3, Input - Sony - Linear - S-Gamut3] + family: Input/Sony + equalitygroup: "" + bitdepth: 32f + description: | + Convert Linear S-Gamut3 to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_SGamut3_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! + name: Linear S-Gamut3 to ACES2065-1 + children: + - ! {matrix: [0.75298259539984, 0.143370216235557, 0.103647188364603, 0, 0.0217076974414429, 1.01531883550528, -0.0370265329467195, 0, -0.00941605274963355, 0.00337041785882367, 1.00604563489081, 0, 0, 0, 0, 1]} + + - ! + name: Linear S-Gamut3.Cine + aliases: [lin_sgamut3cine, Input - Sony - Linear - S-Gamut3.Cine] + family: Input/Sony + equalitygroup: "" + bitdepth: 32f + description: | + Convert Linear S-Gamut3.Cine to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_SGamut3Cine_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! + name: Linear S-Gamut3.Cine to ACES2065-1 + children: + - ! {matrix: [0.638788667185978, 0.272351433711262, 0.0888598991027595, 0, -0.00391590602528224, 1.0880732308974, -0.0841573248721177, 0, -0.0299072021239151, -0.0264325799101947, 1.05633978203411, 0, 0, 0, 0, 1]} + + - ! + name: Linear Venice S-Gamut3 + aliases: [lin_venice_sgamut3, Input - Sony - Linear - Venice S-Gamut3] + family: Input/Sony + equalitygroup: "" + bitdepth: 32f + description: | + Convert Linear Venice S-Gamut3 to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_Venice_SGamut3_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! + name: Linear Venice S-Gamut3 to ACES2065-1 + children: + - ! {matrix: [0.793329741146434, 0.0890786256206771, 0.117591633232888, 0, 0.0155810585252582, 1.03271230692988, -0.0482933654551394, 0, -0.0188647477991488, 0.0127694120973433, 1.0060953357018, 0, 0, 0, 0, 1]} + + - ! + name: Linear Venice S-Gamut3.Cine + aliases: [lin_venice_sgamut3cine, Input - Sony - Linear - Venice S-Gamut3.Cine] + family: Input/Sony + equalitygroup: "" + bitdepth: 32f + description: | + Convert Linear Venice S-Gamut3.Cine to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_Venice_SGamut3Cine_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + to_scene_reference: ! + name: Linear Venice S-Gamut3.Cine to ACES2065-1 + children: + - ! {matrix: [0.674257092126512, 0.220571735923397, 0.10517117195009, 0, -0.00931360607857167, 1.10595886142466, -0.0966452553460855, 0, -0.0382090673002312, -0.017938376600236, 1.05614744390047, 0, 0, 0, 0, 1]} + + - ! + name: S-Log3 S-Gamut3 + aliases: [slog3_sgamut3, Input - Sony - S-Log3 - S-Gamut3] + family: Input/Sony + equalitygroup: "" + bitdepth: 32f + description: | + Convert Sony S-Log3 S-Gamut3 to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_SGamut3_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! + name: Sony S-Log3 S-Gamut3 to ACES2065-1 + children: + - ! {base: 10, log_side_slope: 0.255620723362659, log_side_offset: 0.410557184750733, lin_side_slope: 5.26315789473684, lin_side_offset: 0.0526315789473684, lin_side_break: 0.01125, linear_slope: 6.62194371177582, direction: inverse} + - ! {matrix: [0.75298259539984, 0.143370216235557, 0.103647188364603, 0, 0.0217076974414429, 1.01531883550528, -0.0370265329467195, 0, -0.00941605274963355, 0.00337041785882367, 1.00604563489081, 0, 0, 0, 0, 1]} + + - ! + name: S-Log3 S-Gamut3.Cine + aliases: [slog3_sgamut3cine, Input - Sony - S-Log3 - S-Gamut3.Cine, slog3_sgamutcine] + family: Input/Sony + equalitygroup: "" + bitdepth: 32f + description: | + Convert Sony S-Log3 S-Gamut3.Cine to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_SGamut3Cine_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! + name: Sony S-Log3 S-Gamut3.Cine to ACES2065-1 + children: + - ! {base: 10, log_side_slope: 0.255620723362659, log_side_offset: 0.410557184750733, lin_side_slope: 5.26315789473684, lin_side_offset: 0.0526315789473684, lin_side_break: 0.01125, linear_slope: 6.62194371177582, direction: inverse} + - ! {matrix: [0.638788667185978, 0.272351433711262, 0.0888598991027595, 0, -0.00391590602528224, 1.0880732308974, -0.0841573248721177, 0, -0.0299072021239151, -0.0264325799101947, 1.05633978203411, 0, 0, 0, 0, 1]} + + - ! + name: S-Log3 Venice S-Gamut3 + aliases: [slog3_venice_sgamut3, Input - Sony - S-Log3 - Venice S-Gamut3] + family: Input/Sony + equalitygroup: "" + bitdepth: 32f + description: | + Convert Sony S-Log3 Venice S-Gamut3 to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_Venice_SGamut3_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! + name: Sony S-Log3 Venice S-Gamut3 to ACES2065-1 + children: + - ! {base: 10, log_side_slope: 0.255620723362659, log_side_offset: 0.410557184750733, lin_side_slope: 5.26315789473684, lin_side_offset: 0.0526315789473684, lin_side_break: 0.01125, linear_slope: 6.62194371177582, direction: inverse} + - ! {matrix: [0.793329741146434, 0.089078625620677, 0.117591633232888, 0, 0.0155810585252582, 1.03271230692988, -0.0482933654551394, 0, -0.0188647477991488, 0.0127694120973433, 1.00609533570181, 0, 0, 0, 0, 1]} + + - ! + name: S-Log3 Venice S-Gamut3.Cine + aliases: [slog3_venice_sgamut3cine, Input - Sony - S-Log3 - Venice S-Gamut3.Cine, slog3_venice_sgamutcine] + family: Input/Sony + equalitygroup: "" + bitdepth: 32f + description: | + Convert Sony S-Log3 Venice S-Gamut3.Cine to ACES2065-1 + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_Venice_SGamut3Cine_to_ACES2065-1:1.0 + isdata: false + categories: [file-io] + encoding: log + allocation: uniform + to_scene_reference: ! + name: Sony S-Log3 Venice S-Gamut3.Cine to ACES2065-1 + children: + - ! {base: 10, log_side_slope: 0.255620723362659, log_side_offset: 0.410557184750733, lin_side_slope: 5.26315789473684, lin_side_offset: 0.0526315789473684, lin_side_break: 0.01125, linear_slope: 6.62194371177582, direction: inverse} + - ! {matrix: [0.674257092126512, 0.220571735923397, 0.10517117195009, 0, -0.00931360607857167, 1.10595886142466, -0.0966452553460855, 0, -0.0382090673002312, -0.017938376600236, 1.05614744390047, 0, 0, 0, 0, 1]} + + - ! + name: Camera Rec.709 + aliases: [camera_rec709, Utility - Rec.709 - Camera, rec709_camera] + family: Utility/ITU + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACES2065-1 to Rec.709 camera OETF Rec.709 primaries, D65 white point + + CLFtransformID: urn:aswf:ocio:transformId:1.0:ITU:Utility:AP0_to_Camera_Rec709:1.0 + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_scene_reference: ! + name: AP0 to Camera Rec.709 + children: + - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} + - ! {gamma: 2.22222222222222, offset: 0.099, direction: inverse} + + - ! + name: Linear P3-D65 + aliases: [lin_p3d65, Utility - Linear - P3-D65] + family: Utility + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACES2065-1 to linear P3 primaries, D65 white point + + CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_P3-D65:1.0 + isdata: false + categories: [file-io, working-space] + encoding: scene-linear + allocation: uniform + from_scene_reference: ! + name: AP0 to Linear P3-D65 + children: + - ! {matrix: [2.02490528596679, -0.689069761034766, -0.335835524932019, 0, -0.183597032256178, 1.28950620775902, -0.105909175502841, 0, 0.00905856112234766, -0.0592796840575522, 1.0502211229352, 0, 0, 0, 0, 1]} + + - ! + name: Linear Rec.2020 + aliases: [lin_rec2020, Utility - Linear - Rec.2020] + family: Utility + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACES2065-1 to linear Rec.2020 primaries, D65 white point + + CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec2020:1.0 + isdata: false + categories: [file-io] + encoding: scene-linear + allocation: uniform + from_scene_reference: ! + name: AP0 to Linear Rec.2020 + children: + - ! {matrix: [1.49040952054172, -0.26617091926613, -0.224238601275593, 0, -0.0801674998722558, 1.18216712109757, -0.10199962122531, 0, 0.00322763119162216, -0.0347764757450576, 1.03154884455344, 0, 0, 0, 0, 1]} + + - ! + name: Linear Rec.709 (sRGB) + aliases: [lin_rec709_srgb, Utility - Linear - Rec.709, lin_rec709, lin_srgb, Utility - Linear - sRGB] + family: Utility + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACES2065-1 to linear Rec.709 primaries, D65 white point + + CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec709:1.0 + isdata: false + categories: [file-io, working-space] + encoding: scene-linear + allocation: uniform + from_scene_reference: ! + name: AP0 to Linear Rec.709 (sRGB) + children: + - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} + + - ! + name: Gamma 1.8 Rec.709 - Texture + aliases: [g18_rec709_tx, Utility - Gamma 1.8 - Rec.709 - Texture, g18_rec709] + family: Utility + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACES2065-1 to 1.8 gamma-corrected Rec.709 primaries, D65 white point + + CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma1.8_Rec709-Texture:1.0 + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_scene_reference: ! + name: AP0 to Gamma 1.8 Rec.709 - Texture + children: + - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} + - ! {value: 1.8, style: pass_thru, direction: inverse} + + - ! + name: Gamma 2.2 AP1 - Texture + aliases: [g22_ap1_tx, g22_ap1] + family: Utility + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACES2065-1 to 2.2 gamma-corrected AP1 primaries, D60 white point + + CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_AP1-Texture:1.0 + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_scene_reference: ! + name: AP0 to Gamma 2.2 AP1 - Texture + children: + - ! {matrix: [1.45143931614567, -0.23651074689374, -0.214928569251925, 0, -0.0765537733960206, 1.17622969983357, -0.0996759264375522, 0, 0.00831614842569772, -0.00603244979102102, 0.997716301365323, 0, 0, 0, 0, 1]} + - ! {value: 2.2, style: pass_thru, direction: inverse} + + - ! + name: Gamma 2.2 Rec.709 - Texture + aliases: [g22_rec709_tx, Utility - Gamma 2.2 - Rec.709 - Texture, g22_rec709] + family: Utility + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACES2065-1 to 2.2 gamma-corrected Rec.709 primaries, D65 white point + + CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Rec709-Texture:1.0 + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_scene_reference: ! + name: AP0 to Gamma 2.2 Rec.709 - Texture + children: + - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} + - ! {value: 2.2, style: pass_thru, direction: inverse} + + - ! + name: Gamma 2.4 Rec.709 - Texture + aliases: [g24_rec709_tx, g24_rec709, rec709_display, Utility - Rec.709 - Display] + family: Utility + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACES2065-1 to 2.4 gamma-corrected Rec.709 primaries, D65 white point + + CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.4_Rec709-Texture:1.0 + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_scene_reference: ! + name: AP0 to Gamma 2.4 Rec.709 - Texture + children: + - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} + - ! {value: 2.4, style: pass_thru, direction: inverse} + + - ! + name: sRGB Encoded AP1 - Texture + aliases: [srgb_encoded_ap1_tx, srgb_ap1] + family: Utility + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACES2065-1 to sRGB Encoded AP1 primaries, D60 white point + + CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB_Encoded_AP1-Texture:1.0 + isdata: false + categories: [file-io] + encoding: sdr-video + allocation: uniform + from_scene_reference: ! + name: AP0 to sRGB Encoded AP1 - Texture + children: + - ! {matrix: [1.45143931614567, -0.23651074689374, -0.214928569251925, 0, -0.0765537733960206, 1.17622969983357, -0.0996759264375522, 0, 0.00831614842569772, -0.00603244979102102, 0.997716301365323, 0, 0, 0, 0, 1]} + - ! {gamma: 2.4, offset: 0.055, direction: inverse} + + - ! + name: sRGB - Texture + aliases: [srgb_tx, Utility - sRGB - Texture, srgb_texture, Input - Generic - sRGB - Texture] + family: Utility + equalitygroup: "" + bitdepth: 32f + description: | + Convert ACES2065-1 to sRGB + + CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB-Texture:1.0 + isdata: false + categories: [file-io] + allocation: uniform + from_scene_reference: ! + name: AP0 to sRGB Rec.709 + children: + - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} + - ! {gamma: 2.4, offset: 0.055, direction: inverse} + + - ! + name: Raw + aliases: [Utility - Raw] + family: Utility + equalitygroup: "" + bitdepth: 32f + description: The utility "Raw" colorspace. + isdata: true + categories: [file-io] + allocation: uniform + +named_transforms: + - ! + name: ARRI LogC3 - Curve (EI800) + aliases: [arri_logc3_crv_ei800, Input - ARRI - Curve - V3 LogC (EI800), crv_logc3ei800] + description: | + Convert ARRI LogC3 Curve (EI800) to Relative Scene Linear + + CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC3_Curve_EI800_to_Linear:1.0 + family: Input/ARRI + categories: [file-io] + encoding: log + transform: ! + name: ARRI LogC3 Curve (EI800) to Relative Scene Linear + children: + - ! {base: 10, log_side_slope: 0.247189638318671, log_side_offset: 0.385536998692443, lin_side_slope: 5.55555555555556, lin_side_offset: 0.0522722750251688, lin_side_break: 0.0105909904954696, direction: inverse} + + - ! + name: ARRI LogC4 - Curve + aliases: [arri_logc4_crv] + description: | + Convert ARRI LogC4 Curve to Relative Scene Linear + + CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC4_Curve_to_Linear:1.0 + family: Input/ARRI + categories: [file-io] + encoding: log + transform: ! + name: ARRI LogC4 Curve to Relative Scene Linear + children: + - ! {log_side_slope: 0.0647954196341293, log_side_offset: -0.295908392682586, lin_side_slope: 2231.82630906769, lin_side_offset: 64, lin_side_break: -0.0180569961199113, direction: inverse} + + - ! + name: BMDFilm Gen5 Log - Curve + aliases: [bmdfilm_gen5_log_crv] + description: | + Convert Blackmagic Film (Gen 5) Log to Blackmagic Film (Gen 5) Linear + + CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:BMDFilm_Gen5_Log-Curve_to_Linear:1.0 + family: Input/BlackmagicDesign + categories: [file-io] + encoding: log + transform: ! + name: Blackmagic Film (Gen 5) Log to Linear Curve + children: + - ! {base: 2.71828182845905, log_side_slope: 0.0869287606549122, log_side_offset: 0.530013339229194, lin_side_offset: 0.00549407243225781, lin_side_break: 0.005, direction: inverse} + + - ! + name: DaVinci Intermediate Log - Curve + aliases: [davinci_intermediate_log_crv] + description: | + Convert DaVinci Intermediate Log to DaVinci Intermediate Linear + + CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:DaVinci_Intermediate_Log-Curve_to_Linear:1.0 + family: Input/BlackmagicDesign + categories: [file-io] + encoding: log + transform: ! + name: DaVinci Intermediate Log to Linear Curve + children: + - ! {log_side_slope: 0.07329248, log_side_offset: 0.51304736, lin_side_offset: 0.0075, lin_side_break: 0.00262409, linear_slope: 10.44426855, direction: inverse} + + - ! + name: V-Log - Curve + aliases: [vlog_crv, Input - Panasonic - Curve - V-Log, crv_vlog] + description: | + Convert Panasonic V-Log Log (arbitrary primaries) to Panasonic V-Log Linear (arbitrary primaries) + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Panasonic:Input:VLog-Curve_to_Linear:1.0 + family: Input/Panasonic + categories: [file-io] + encoding: log + transform: ! + name: Panasonic V-Log Log to Linear Curve + children: + - ! {base: 10, log_side_slope: 0.241514, log_side_offset: 0.598206, lin_side_offset: 0.00873, lin_side_break: 0.01, direction: inverse} + + - ! + name: Log3G10 - Curve + aliases: [log3g10_crv, Input - RED - Curve - REDLog3G10, crv_rl3g10] + description: | + Convert RED Log3G10 Log (arbitrary primaries) to RED Log3G10 Linear (arbitrary primaries) + + CLFtransformID: urn:aswf:ocio:transformId:1.0:RED:Input:Log3G10-Curve_to_Linear:1.0 + family: Input/RED + categories: [file-io] + encoding: log + transform: ! + name: RED Log3G10 Log to Linear Curve + children: + - ! {base: 10, log_side_slope: 0.224282, lin_side_slope: 155.975327, lin_side_offset: 2.55975327, lin_side_break: -0.01, direction: inverse} + + - ! + name: S-Log3 - Curve + aliases: [slog3_crv, Input - Sony - Curve - S-Log3, crv_slog3] + description: | + Convert S-Log3 Log (arbitrary primaries) to S-Log3 Linear (arbitrary primaries) + + CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3-Curve_to_Linear:1.0 + family: Input/Sony + categories: [file-io] + encoding: log + transform: ! + name: S-Log3 Log to Linear Curve + children: + - ! {base: 10, log_side_slope: 0.255620723362659, log_side_offset: 0.410557184750733, lin_side_slope: 5.26315789473684, lin_side_offset: 0.0526315789473684, lin_side_break: 0.01125, linear_slope: 6.62194371177582, direction: inverse} + + - ! + name: Rec.1886 - Curve + aliases: [rec1886_crv, Utility - Curve - Rec.1886, crv_rec1886] + description: | + Convert generic linear RGB to generic gamma-corrected RGB + + CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_Rec1886-Curve:1.0 + family: Utility + categories: [file-io] + encoding: sdr-video + inverse_transform: ! + name: Linear to Rec.1886 + children: + - ! {value: 2.4, style: pass_thru, direction: inverse} + + - ! + name: Rec.709 - Curve + aliases: [rec709_crv, Utility - Curve - Rec.709, crv_rec709] + description: | + Convert generic linear RGB to generic gamma-corrected RGB + + CLFtransformID: urn:aswf:ocio:transformId:1.0:ITU:Utility:Linear_to_Rec709-Curve:1.0 + family: Utility/ITU + categories: [file-io] + encoding: sdr-video + inverse_transform: ! + name: Linear to Rec.709 + children: + - ! {gamma: 2.22222222222222, offset: 0.099, direction: inverse} + + - ! + name: sRGB - Curve + aliases: [srgb_crv, Utility - Curve - sRGB, crv_srgb] + description: | + Convert generic linear RGB to generic gamma-corrected RGB + + CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_sRGB-Curve:1.0 + family: Utility + categories: [file-io] + encoding: sdr-video + inverse_transform: ! + name: Linear to sRGB + children: + - ! {gamma: 2.4, offset: 0.055, direction: inverse} + + - ! + name: ST-2084 - Curve + aliases: [st_2084_crv] + description: Convert linear nits/100 to SMPTE ST-2084 (PQ) full-range + family: Utility + categories: [file-io] + encoding: hdr-video + inverse_transform: ! {style: CURVE - LINEAR_to_ST-2084} From 00d23a9af65cfbfe19f35aea1984e19a31ba611b Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Fri, 8 Dec 2023 17:07:40 -0500 Subject: [PATCH 4/5] Revert "EMSUSD-765 - Update OCIO code to handle new Hydra colorspace info" This reverts commit 86d68d1d04ec5f6f2395554cdb134e320b6bea83. --- .../render/vp2RenderDelegate/material.cpp | 60 +- .../testVP2RenderDelegateMaterialX.py | 6 +- .../MaterialX/color_management_USD.usda | 6 - ...dio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio | 1231 ----------------- 4 files changed, 2 insertions(+), 1301 deletions(-) delete mode 100644 test/testSamples/MaterialX/no-rule-studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio diff --git a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp index 4c901b048c..e75f0a6127 100644 --- a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp +++ b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp @@ -236,9 +236,6 @@ TF_DEFINE_PRIVATE_TOKENS( (mayaIsBackFacing) (isBackfacing) (FallbackShader) - - // Added in PXR_VERSION >= 2311 - ((ColorSpacePrefix, "colorSpace:")) ); // clang-format on @@ -450,7 +447,6 @@ size_t _GenerateNetwork2TopoHash(const HdMaterialNetwork2& materialNetwork) #ifdef HAS_COLOR_MANAGEMENT_SUPPORT_API if (MayaUsd::ColorManagementPreferences::Active()) { // Explicit color management parameters affect topology: -#if PXR_VERSION < 2311 for (auto&& cmName : _mtlxKnownColorSpaceAttrs) { auto cmIt = node.parameters.find(cmName); if (cmIt != node.parameters.end()) { @@ -464,33 +460,6 @@ size_t _GenerateNetwork2TopoHash(const HdMaterialNetwork2& materialNetwork) } } } -#else - // Hydra in USD 23.11 will add a "colorspace:Foo" parameter matching color managed "Foo" - // parameter: - auto isColorSpace = [](const TfToken& paramName) { - if (paramName.GetString().rfind(_tokens->ColorSpacePrefix.GetString(), 0) == 0) { - return true; - } - return std::find( - _mtlxKnownColorSpaceAttrs.begin(), - _mtlxKnownColorSpaceAttrs.end(), - paramName) - != _mtlxKnownColorSpaceAttrs.end(); - }; - - for (auto&& param : node.parameters) { - if (isColorSpace(param.first)) { - MayaUsd::hash_combine(topoHash, hash_value(param.first)); - if (param.second.IsHolding()) { - auto const& colorSpace = param.second.UncheckedGet(); - MayaUsd::hash_combine(topoHash, hash_value(colorSpace)); - } else if (param.second.IsHolding()) { - auto const& colorSpace = param.second.UncheckedGet(); - MayaUsd::hash_combine(topoHash, std::hash {}(colorSpace)); - } - } - } -#endif if (_MxHasFilenameInput(node)) { hasTextureNode = true; } @@ -2630,7 +2599,7 @@ TfToken _RequiresColorManagement( if (!sourceColorSpace.empty()) { return; } -#if PXR_VERSION < 2311 + for (auto&& csAttrName : _mtlxKnownColorSpaceAttrs) { auto paramIt = n.parameters.find(csAttrName); if (paramIt != n.parameters.end()) { @@ -2644,33 +2613,6 @@ TfToken _RequiresColorManagement( } } } -#else - // Hydra in USD 23.11 will add a "colorspace:Foo" parameter matching color managed "Foo" - // parameter: - auto isColorSpace = [](const TfToken& paramName) { - if (paramName.GetString().rfind(_tokens->ColorSpacePrefix.GetString(), 0) == 0) { - return true; - } - return std::find( - _mtlxKnownColorSpaceAttrs.begin(), - _mtlxKnownColorSpaceAttrs.end(), - paramName) - != _mtlxKnownColorSpaceAttrs.end(); - }; - - for (auto&& param : n.parameters) { - if (isColorSpace(param.first)) { - const VtValue& val = param.second; - if (val.IsHolding()) { - sourceColorSpace = val.UncheckedGet().GetString(); - return; - } else if (val.IsHolding()) { - sourceColorSpace = val.UncheckedGet(); - return; - } - } - } -#endif }; std::string sourceColorSpace; diff --git a/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py b/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py index 0c0746cdbd..01d7281e58 100644 --- a/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py +++ b/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py @@ -265,11 +265,7 @@ def testOCIOIntegration(self): """Test that we can color manage using Maya OCIO fragments.""" cmds.file(new=True, force=True) # This config has file rules for all the new textures: - if (Usd.GetVersion() >= (0, 23, 11)): - # USD starting at 23.11 we no longer requires file rules to get OCIO results. Metadata will be usable. - configFile = testUtils.getTestScene("MaterialX", "no-rule-studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio") - else: - configFile = testUtils.getTestScene("MaterialX", "studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio") + configFile = testUtils.getTestScene("MaterialX", "studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio") cmds.colorManagementPrefs(edit=True, configFilePath=configFile) # Import the Maya data so we can compare: diff --git a/test/testSamples/MaterialX/color_management_USD.usda b/test/testSamples/MaterialX/color_management_USD.usda index c49ac05881..139e8a1bf4 100644 --- a/test/testSamples/MaterialX/color_management_USD.usda +++ b/test/testSamples/MaterialX/color_management_USD.usda @@ -50,7 +50,6 @@ def Mesh "pPlane1" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_ACEScg.exr@ - token inputs:sourceColorSpace = "ACEScg" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" @@ -112,7 +111,6 @@ def Mesh "pPlane2" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_ADX10.exr@ - token inputs:sourceColorSpace = "ADX10" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" @@ -174,7 +172,6 @@ def Mesh "pPlane3" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_ADX16.exr@ - token inputs:sourceColorSpace = "ADX16" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" @@ -234,7 +231,6 @@ def Mesh "pPlane4" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_arri_logc4.exr@ - token inputs:sourceColorSpace = "ARRI LogC4" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" @@ -296,7 +292,6 @@ def Mesh "pPlane5" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_g24_rec709.exr@ - token inputs:sourceColorSpace = "Gamma 2.4 Rec.709 - Texture" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" @@ -358,7 +353,6 @@ def Mesh "pPlane6" ( uniform token info:id = "UsdUVTexture" float4 inputs:fallback = (0.5, 0.5, 0.5, 1) asset inputs:file = @textures/color_palette_lin_p3d65.exr@ - token inputs:sourceColorSpace = "Linear P3-D65" float2 inputs:st.connect = token inputs:wrapS = "repeat" token inputs:wrapT = "repeat" diff --git a/test/testSamples/MaterialX/no-rule-studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio b/test/testSamples/MaterialX/no-rule-studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio deleted file mode 100644 index 520c05cebb..0000000000 --- a/test/testSamples/MaterialX/no-rule-studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio +++ /dev/null @@ -1,1231 +0,0 @@ -ocio_profile_version: 2 - -environment: - {} -search_path: "" -strictparsing: true -luma: [0.2126, 0.7152, 0.0722] -name: studio-config-v1.0.0_aces-v1.3_ocio-v2.0 -description: | - Academy Color Encoding System - Studio Config [COLORSPACES v1.0.0] [ACES v1.3] [OCIO v2.0] - ------------------------------------------------------------------------------------------ - - This "OpenColorIO" config is geared toward studios requiring a config that includes a wide variety of camera colorspaces, displays and looks. - - Generated with "OpenColorIO-Config-ACES" v1.0.0 on the 2022/10/26 at 05:59. - -roles: - aces_interchange: ACES2065-1 - cie_xyz_d65_interchange: CIE-XYZ-D65 - color_picking: sRGB - Texture - color_timing: ACEScct - compositing_log: ACEScct - data: Raw - matte_paint: sRGB - Texture - scene_linear: ACEScg - texture_paint: ACEScct - -file_rules: - - ! {name: Default, colorspace: ACES2065-1} - -shared_views: - - ! {name: ACES 1.0 - SDR Video, view_transform: ACES 1.0 - SDR Video, display_colorspace: } - - ! {name: ACES 1.0 - SDR Video (D60 sim on D65), view_transform: ACES 1.0 - SDR Video (D60 sim on D65), display_colorspace: } - - ! {name: ACES 1.1 - SDR Video (P3 lim), view_transform: ACES 1.1 - SDR Video (P3 lim), display_colorspace: } - - ! {name: ACES 1.1 - SDR Video (Rec.709 lim), view_transform: ACES 1.1 - SDR Video (Rec.709 lim), display_colorspace: } - - ! {name: ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim), view_transform: ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim), display_colorspace: } - - ! {name: ACES 1.1 - HDR Video (2000 nits & Rec.2020 lim), view_transform: ACES 1.1 - HDR Video (2000 nits & Rec.2020 lim), display_colorspace: } - - ! {name: ACES 1.1 - HDR Video (4000 nits & Rec.2020 lim), view_transform: ACES 1.1 - HDR Video (4000 nits & Rec.2020 lim), display_colorspace: } - - ! {name: ACES 1.1 - HDR Video (1000 nits & P3 lim), view_transform: ACES 1.1 - HDR Video (1000 nits & P3 lim), display_colorspace: } - - ! {name: ACES 1.1 - HDR Video (2000 nits & P3 lim), view_transform: ACES 1.1 - HDR Video (2000 nits & P3 lim), display_colorspace: } - - ! {name: ACES 1.1 - HDR Video (4000 nits & P3 lim), view_transform: ACES 1.1 - HDR Video (4000 nits & P3 lim), display_colorspace: } - - ! {name: ACES 1.0 - SDR Cinema, view_transform: ACES 1.0 - SDR Cinema, display_colorspace: } - - ! {name: ACES 1.1 - SDR Cinema (D60 sim on D65), view_transform: ACES 1.1 - SDR Cinema (D60 sim on D65), display_colorspace: } - - ! {name: ACES 1.1 - SDR Cinema (Rec.709 lim), view_transform: ACES 1.1 - SDR Cinema (Rec.709 lim), display_colorspace: } - - ! {name: ACES 1.0 - SDR Cinema (D60 sim on DCI), view_transform: ACES 1.0 - SDR Cinema (D60 sim on DCI), display_colorspace: } - - ! {name: ACES 1.1 - SDR Cinema (D65 sim on DCI), view_transform: ACES 1.1 - SDR Cinema (D65 sim on DCI), display_colorspace: } - - ! {name: ACES 1.1 - HDR Cinema (108 nits & P3 lim), view_transform: ACES 1.1 - HDR Cinema (108 nits & P3 lim), display_colorspace: } - - ! {name: Un-tone-mapped, view_transform: Un-tone-mapped, display_colorspace: } - -displays: - sRGB - Display: - - ! {name: Raw, colorspace: Raw} - - ! [ACES 1.0 - SDR Video, ACES 1.0 - SDR Video (D60 sim on D65), Un-tone-mapped] - Rec.1886 Rec.709 - Display: - - ! {name: Raw, colorspace: Raw} - - ! [ACES 1.0 - SDR Video, ACES 1.0 - SDR Video (D60 sim on D65), Un-tone-mapped] - Rec.1886 Rec.2020 - Display: - - ! {name: Raw, colorspace: Raw} - - ! [ACES 1.0 - SDR Video, ACES 1.1 - SDR Video (P3 lim), ACES 1.1 - SDR Video (Rec.709 lim), Un-tone-mapped] - Rec.2100-HLG - Display: - - ! {name: Raw, colorspace: Raw} - - ! [ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim), Un-tone-mapped] - Rec.2100-PQ - Display: - - ! {name: Raw, colorspace: Raw} - - ! [ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim), ACES 1.1 - HDR Video (2000 nits & Rec.2020 lim), ACES 1.1 - HDR Video (4000 nits & Rec.2020 lim), Un-tone-mapped] - ST2084-P3-D65 - Display: - - ! {name: Raw, colorspace: Raw} - - ! [ACES 1.1 - HDR Video (1000 nits & P3 lim), ACES 1.1 - HDR Video (2000 nits & P3 lim), ACES 1.1 - HDR Video (4000 nits & P3 lim), ACES 1.1 - HDR Cinema (108 nits & P3 lim), Un-tone-mapped] - P3-D60 - Display: - - ! {name: Raw, colorspace: Raw} - - ! [ACES 1.0 - SDR Cinema, Un-tone-mapped] - P3-D65 - Display: - - ! {name: Raw, colorspace: Raw} - - ! [ACES 1.0 - SDR Cinema, ACES 1.1 - SDR Cinema (D60 sim on D65), ACES 1.1 - SDR Cinema (Rec.709 lim), Un-tone-mapped] - P3-DCI - Display: - - ! {name: Raw, colorspace: Raw} - - ! [ACES 1.0 - SDR Cinema (D60 sim on DCI), ACES 1.1 - SDR Cinema (D65 sim on DCI), Un-tone-mapped] - -active_displays: [sRGB - Display, Rec.1886 Rec.709 - Display, Rec.1886 Rec.2020 - Display, Rec.2100-HLG - Display, Rec.2100-PQ - Display, ST2084-P3-D65 - Display, P3-D60 - Display, P3-D65 - Display, P3-DCI - Display] -active_views: [ACES 1.0 - SDR Video, ACES 1.0 - SDR Video (D60 sim on D65), ACES 1.1 - SDR Video (P3 lim), ACES 1.1 - SDR Video (Rec.709 lim), ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim), ACES 1.1 - HDR Video (2000 nits & Rec.2020 lim), ACES 1.1 - HDR Video (4000 nits & Rec.2020 lim), ACES 1.1 - HDR Video (1000 nits & P3 lim), ACES 1.1 - HDR Video (2000 nits & P3 lim), ACES 1.1 - HDR Video (4000 nits & P3 lim), ACES 1.0 - SDR Cinema, ACES 1.1 - SDR Cinema (D60 sim on D65), ACES 1.1 - SDR Cinema (Rec.709 lim), ACES 1.0 - SDR Cinema (D60 sim on DCI), ACES 1.1 - SDR Cinema (D65 sim on DCI), ACES 1.1 - HDR Cinema (108 nits & P3 lim), Un-tone-mapped, Raw] -inactive_colorspaces: [CIE-XYZ-D65, sRGB - Display, Rec.1886 Rec.709 - Display, Rec.1886 Rec.2020 - Display, sRGB - Display, Rec.1886 Rec.709 - Display, Rec.1886 Rec.2020 - Display, Rec.1886 Rec.2020 - Display, Rec.2100-HLG - Display, Rec.2100-PQ - Display, Rec.2100-PQ - Display, Rec.2100-PQ - Display, ST2084-P3-D65 - Display, ST2084-P3-D65 - Display, ST2084-P3-D65 - Display, P3-D60 - Display, P3-D65 - Display, P3-D65 - Display, P3-D65 - Display, P3-DCI - Display, P3-DCI - Display, ST2084-P3-D65 - Display] - -default_view_transform: Un-tone-mapped - -view_transforms: - - ! - name: ACES 1.0 - SDR Video - description: | - Component of ACES Output Transforms for SDR D65 video - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.RGBmonitor_100nits_dim.a1.0.3 - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec709_100nits_dim.a1.0.3 - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_100nits_dim.a1.0.3 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO_1.0} - - - ! - name: ACES 1.0 - SDR Video (D60 sim on D65) - description: | - Component of ACES Output Transforms for SDR D65 video simulating D60 white - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.RGBmonitor_D60sim_100nits_dim.a1.0.3 - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec709_D60sim_100nits_dim.a1.0.3 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-D60sim-D65_1.0} - - - ! - name: ACES 1.1 - SDR Video (P3 lim) - description: | - Component of ACES Output Transforms for SDR D65 video - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_P3D65limited_100nits_dim.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-P3lim_1.1} - - - ! - name: ACES 1.1 - SDR Video (Rec.709 lim) - description: | - Component of ACES Output Transforms for SDR D65 video - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.Rec2020_Rec709limited_100nits_dim.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-VIDEO-REC709lim_1.1} - - - ! - name: ACES 1.1 - HDR Video (1000 nits & Rec.2020 lim) - description: | - Component of ACES Output Transforms for 1000 nit HDR D65 video - - ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_1000nits_15nits_HLG.a1.1.0 - ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_1000nits_15nits_ST2084.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-1000nit-15nit-REC2020lim_1.1} - - - ! - name: ACES 1.1 - HDR Video (2000 nits & Rec.2020 lim) - description: | - Component of ACES Output Transforms for 2000 nit HDR D65 video - - ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_2000nits_15nits_ST2084.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-2000nit-15nit-REC2020lim_1.1} - - - ! - name: ACES 1.1 - HDR Video (4000 nits & Rec.2020 lim) - description: | - Component of ACES Output Transforms for 4000 nit HDR D65 video - - ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.Rec2020_4000nits_15nits_ST2084.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-4000nit-15nit-REC2020lim_1.1} - - - ! - name: ACES 1.1 - HDR Video (1000 nits & P3 lim) - description: | - Component of ACES Output Transforms for 1000 nit HDR D65 video - - ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_1000nits_15nits_ST2084.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-1000nit-15nit-P3lim_1.1} - - - ! - name: ACES 1.1 - HDR Video (2000 nits & P3 lim) - description: | - Component of ACES Output Transforms for 2000 nit HDR D65 video - - ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_2000nits_15nits_ST2084.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-2000nit-15nit-P3lim_1.1} - - - ! - name: ACES 1.1 - HDR Video (4000 nits & P3 lim) - description: | - Component of ACES Output Transforms for 4000 nit HDR D65 video - - ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_4000nits_15nits_ST2084.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-VIDEO-4000nit-15nit-P3lim_1.1} - - - ! - name: ACES 1.0 - SDR Cinema - description: | - Component of ACES Output Transforms for SDR cinema - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D60_48nits.a1.0.3 - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_48nits.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA_1.0} - - - ! - name: ACES 1.1 - SDR Cinema (D60 sim on D65) - description: | - Component of ACES Output Transforms for SDR D65 cinema simulating D60 white - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_D60sim_48nits.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D60sim-D65_1.1} - - - ! - name: ACES 1.1 - SDR Cinema (Rec.709 lim) - description: | - Component of ACES Output Transforms for SDR cinema - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3D65_Rec709limited_48nits.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-REC709lim_1.1} - - - ! - name: ACES 1.0 - SDR Cinema (D60 sim on DCI) - description: | - Component of ACES Output Transforms for SDR DCI cinema simulating D60 white - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3DCI_48nits.a1.0.3 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D60sim-DCI_1.0} - - - ! - name: ACES 1.1 - SDR Cinema (D65 sim on DCI) - description: | - Component of ACES Output Transforms for SDR DCI cinema simulating D65 white - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ODT.Academy.P3DCI_D65sim_48nits.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - SDR-CINEMA-D65sim-DCI_1.1} - - - ! - name: ACES 1.1 - HDR Cinema (108 nits & P3 lim) - description: | - Component of ACES Output Transforms for 108 nit HDR D65 cinema - - ACEStransformID: urn:ampas:aces:transformId:v1.5:RRTODT.Academy.P3D65_108nits_7point2nits_ST2084.a1.1.0 - from_scene_reference: ! {style: ACES-OUTPUT - ACES2065-1_to_CIE-XYZ-D65 - HDR-CINEMA-108nit-7.2nit-P3lim_1.1} - - - ! - name: Un-tone-mapped - from_scene_reference: ! {style: UTILITY - ACES-AP0_to_CIE-XYZ-D65_BFD} - -display_colorspaces: - - ! - name: CIE-XYZ-D65 - aliases: [cie_xyz_d65] - family: "" - equalitygroup: "" - bitdepth: 32f - description: The "CIE XYZ (D65)" display connection colorspace. - isdata: false - allocation: uniform - - - ! - name: sRGB - Display - aliases: [srgb_display] - family: Display - equalitygroup: "" - bitdepth: 32f - description: Convert CIE XYZ (D65 white) to sRGB (piecewise EOTF) - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_sRGB} - - - ! - name: Rec.1886 Rec.709 - Display - aliases: [rec1886_rec709_display] - family: Display - equalitygroup: "" - bitdepth: 32f - description: Convert CIE XYZ (D65 white) to Rec.1886/Rec.709 (HD video) - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_REC.1886-REC.709} - - - ! - name: Rec.1886 Rec.2020 - Display - aliases: [rec1886_rec2020_display] - family: Display - equalitygroup: "" - bitdepth: 32f - description: Convert CIE XYZ (D65 white) to Rec.1886/Rec.2020 (UHD video) - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_REC.1886-REC.2020} - - - ! - name: Rec.2100-HLG - Display - aliases: [rec2100_hlg_display] - family: Display - equalitygroup: "" - bitdepth: 32f - description: Convert CIE XYZ (D65 white) to Rec.2100-HLG, 1000 nit - isdata: false - categories: [file-io] - encoding: hdr-video - allocation: uniform - from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_REC.2100-HLG-1000nit} - - - ! - name: Rec.2100-PQ - Display - aliases: [rec2100_pq_display] - family: Display - equalitygroup: "" - bitdepth: 32f - description: Convert CIE XYZ (D65 white) to Rec.2100-PQ - isdata: false - categories: [file-io] - encoding: hdr-video - allocation: uniform - from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_REC.2100-PQ} - - - ! - name: ST2084-P3-D65 - Display - aliases: [st2084_p3d65_display] - family: Display - equalitygroup: "" - bitdepth: 32f - description: Convert CIE XYZ (D65 white) to ST-2084 (PQ), P3-D65 primaries - isdata: false - categories: [file-io] - encoding: hdr-video - allocation: uniform - from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_ST2084-P3-D65} - - - ! - name: P3-D60 - Display - aliases: [p3d60_display] - family: Display - equalitygroup: "" - bitdepth: 32f - description: Convert CIE XYZ (D65 white) to Gamma 2.6, P3-D60 (Bradford adaptation) - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D60-BFD} - - - ! - name: P3-D65 - Display - aliases: [p3d65_display] - family: Display - equalitygroup: "" - bitdepth: 32f - description: Convert CIE XYZ (D65 white) to Gamma 2.6, P3-D65 - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_G2.6-P3-D65} - - - ! - name: P3-DCI - Display - aliases: [p3_dci_display] - family: Display - equalitygroup: "" - bitdepth: 32f - description: Convert CIE XYZ (D65 white) to Gamma 2.6, P3-DCI (DCI white with Bradford adaptation) - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_display_reference: ! {style: DISPLAY - CIE-XYZ-D65_to_G2.6-P3-DCI-BFD} - -colorspaces: - - ! - name: ACES2065-1 - aliases: [aces2065_1, ACES - ACES2065-1, lin_ap0] - family: ACES - equalitygroup: "" - bitdepth: 32f - description: The "Academy Color Encoding System" reference colorspace. - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - - - ! - name: ACEScc - aliases: [ACES - ACEScc, acescc_ap1] - family: ACES - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACEScc to ACES2065-1 - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScc_to_ACES.a1.0.3 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! {style: ACEScc_to_ACES2065-1} - - - ! - name: ACEScct - aliases: [ACES - ACEScct, acescct_ap1] - family: ACES - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACEScct to ACES2065-1 - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScct_to_ACES.a1.0.3 - isdata: false - categories: [file-io, working-space] - encoding: log - allocation: uniform - to_scene_reference: ! {style: ACEScct_to_ACES2065-1} - - - ! - name: ACEScg - aliases: [ACES - ACEScg, lin_ap1] - family: ACES - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACEScg to ACES2065-1 - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ACEScg_to_ACES.a1.0.3 - isdata: false - categories: [file-io, working-space] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! {style: ACEScg_to_ACES2065-1} - - - ! - name: ADX10 - aliases: [Input - ADX - ADX10] - family: ACES - equalitygroup: "" - bitdepth: 32f - description: | - Convert ADX10 to ACES2065-1 - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ADX10_to_ACES.a1.0.3 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! {style: ADX10_to_ACES2065-1} - - - ! - name: ADX16 - aliases: [Input - ADX - ADX16] - family: ACES - equalitygroup: "" - bitdepth: 32f - description: | - Convert ADX16 to ACES2065-1 - - ACEStransformID: urn:ampas:aces:transformId:v1.5:ACEScsc.Academy.ADX16_to_ACES.a1.0.3 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! {style: ADX16_to_ACES2065-1} - - - ! - name: Linear ARRI Wide Gamut 3 - aliases: [lin_arri_wide_gamut_3, Input - ARRI - Linear - ALEXA Wide Gamut, lin_alexawide] - family: Input/ARRI - equalitygroup: "" - bitdepth: 32f - description: | - Convert Linear ARRI Wide Gamut 3 to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:Linear_ARRI_Wide_Gamut_3_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! - name: Linear ARRI Wide Gamut 3 to ACES2065-1 - children: - - ! {matrix: [0.680205505106279, 0.236136601606481, 0.0836578932872399, 0, 0.0854149797421404, 1.01747087860704, -0.102885858349182, 0, 0.00205652166929683, -0.0625625003847921, 1.0605059787155, 0, 0, 0, 0, 1]} - - - ! - name: ARRI LogC3 (EI800) - aliases: [arri_logc3_ei800, Input - ARRI - V3 LogC (EI800) - Wide Gamut, logc3ei800_alexawide] - family: Input/ARRI - equalitygroup: "" - bitdepth: 32f - description: | - Convert ARRI LogC3 (EI800) to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC3_EI800_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! - name: ARRI LogC3 (EI800) to ACES2065-1 - children: - - ! {base: 10, log_side_slope: 0.247189638318671, log_side_offset: 0.385536998692443, lin_side_slope: 5.55555555555556, lin_side_offset: 0.0522722750251688, lin_side_break: 0.0105909904954696, direction: inverse} - - ! {matrix: [0.680205505106279, 0.236136601606481, 0.0836578932872399, 0, 0.0854149797421404, 1.01747087860704, -0.102885858349182, 0, 0.00205652166929683, -0.0625625003847921, 1.0605059787155, 0, 0, 0, 0, 1]} - - - ! - name: Linear ARRI Wide Gamut 4 - aliases: [lin_arri_wide_gamut_4, lin_awg4] - family: Input/ARRI - equalitygroup: "" - bitdepth: 32f - description: | - Convert Linear ARRI Wide Gamut 4 to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:Linear_ARRI_Wide_Gamut_4_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! - name: Linear ARRI Wide Gamut 4 to ACES2065-1 - children: - - ! {matrix: [0.750957362824734, 0.144422786709757, 0.104619850465509, 0, 0.000821837079380207, 1.007397584885, -0.00821942196438358, 0, -0.000499952143533471, -0.000854177231436971, 1.00135412937497, 0, 0, 0, 0, 1]} - - - ! - name: ARRI LogC4 - aliases: [arri_logc4] - family: Input/ARRI - equalitygroup: "" - bitdepth: 32f - description: | - Convert ARRI LogC4 to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC4_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! - name: ARRI LogC4 to ACES2065-1 - children: - - ! {log_side_slope: 0.0647954196341293, log_side_offset: -0.295908392682586, lin_side_slope: 2231.82630906769, lin_side_offset: 64, lin_side_break: -0.0180569961199113, direction: inverse} - - ! {matrix: [0.750957362824734, 0.144422786709757, 0.104619850465509, 0, 0.000821837079380207, 1.007397584885, -0.00821942196438358, 0, -0.000499952143533471, -0.000854177231436971, 1.00135412937497, 0, 0, 0, 0, 1]} - - - ! - name: BMDFilm WideGamut Gen5 - aliases: [bmdfilm_widegamut_gen5] - family: Input/BlackmagicDesign - equalitygroup: "" - bitdepth: 32f - description: | - Convert Blackmagic Film Wide Gamut (Gen 5) to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:BMDFilm_WideGamut_Gen5_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! - name: Blackmagic Film Wide Gamut (Gen 5) to ACES2065-1 - children: - - ! {base: 2.71828182845905, log_side_slope: 0.0869287606549122, log_side_offset: 0.530013339229194, lin_side_offset: 0.00549407243225781, lin_side_break: 0.005, direction: inverse} - - ! {matrix: [0.647091325580708, 0.242595385134207, 0.110313289285085, 0, 0.0651915997328519, 1.02504756760476, -0.0902391673376125, 0, -0.0275570729194699, -0.0805887097177784, 1.10814578263725, 0, 0, 0, 0, 1]} - - - ! - name: DaVinci Intermediate WideGamut - aliases: [davinci_intermediate_widegamut] - family: Input/BlackmagicDesign - equalitygroup: "" - bitdepth: 32f - description: | - Convert DaVinci Intermediate Wide Gamut to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:DaVinci_Intermediate_WideGamut_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! - name: DaVinci Intermediate Wide Gamut to ACES2065-1 - children: - - ! {log_side_slope: 0.07329248, log_side_offset: 0.51304736, lin_side_offset: 0.0075, lin_side_break: 0.00262409, linear_slope: 10.44426855, direction: inverse} - - ! {matrix: [0.748270290272981, 0.167694659554328, 0.0840350501726906, 0, 0.0208421234689102, 1.11190474268894, -0.132746866157851, 0, -0.0915122574225729, -0.127746712807307, 1.21925897022988, 0, 0, 0, 0, 1]} - - - ! - name: Linear BMD WideGamut Gen5 - aliases: [lin_bmd_widegamut_gen5] - family: Input/BlackmagicDesign - equalitygroup: "" - bitdepth: 32f - description: | - Convert Linear Blackmagic Wide Gamut (Gen 5) to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:Linear_BMD_WideGamut_Gen5_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! - name: Linear Blackmagic Wide Gamut (Gen 5) to ACES2065-1 - children: - - ! {matrix: [0.647091325580708, 0.242595385134207, 0.110313289285085, 0, 0.0651915997328519, 1.02504756760476, -0.0902391673376125, 0, -0.0275570729194699, -0.0805887097177784, 1.10814578263725, 0, 0, 0, 0, 1]} - - - ! - name: Linear DaVinci WideGamut - aliases: [lin_davinci_widegamut] - family: Input/BlackmagicDesign - equalitygroup: "" - bitdepth: 32f - description: | - Convert Linear DaVinci Wide Gamut to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:Linear_DaVinci_WideGamut_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! - name: Linear DaVinci Wide Gamut to ACES2065-1 - children: - - ! {matrix: [0.748270290272981, 0.167694659554328, 0.0840350501726906, 0, 0.0208421234689102, 1.11190474268894, -0.132746866157851, 0, -0.0915122574225729, -0.127746712807307, 1.21925897022988, 0, 0, 0, 0, 1]} - - - ! - name: CanonLog3 CinemaGamut D55 - aliases: [canonlog3_cinemagamut_d55, Input - Canon - Canon-Log3 - Cinema Gamut Daylight, canonlog3_cgamutday] - family: Input/Canon - equalitygroup: "" - bitdepth: 32f - description: Convert Canon Log 3 Cinema Gamut to ACES2065-1 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! {style: CANON_CLOG3-CGAMUT_to_ACES2065-1} - - - ! - name: Linear CinemaGamut D55 - aliases: [lin_cinemagamut_d55, Input - Canon - Linear - Canon Cinema Gamut Daylight, lin_canoncgamutday] - family: Input/Canon - equalitygroup: "" - bitdepth: 32f - description: | - Convert Linear Canon Cinema Gamut (Daylight) to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Canon:Input:Linear-CinemaGamut-D55_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! - name: Linear Canon Cinema Gamut (Daylight) to ACES2065-1 - children: - - ! {matrix: [0.763064454775734, 0.14902116113706, 0.0879143840872056, 0, 0.00365745670512393, 1.10696038037622, -0.110617837081339, 0, -0.0094077940457189, -0.218383304989987, 1.22779109903571, 0, 0, 0, 0, 1]} - - - ! - name: Linear V-Gamut - aliases: [lin_vgamut, Input - Panasonic - Linear - V-Gamut] - family: Input/Panasonic - equalitygroup: "" - bitdepth: 32f - description: | - Convert Linear Panasonic V-Gamut to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Panasonic:Input:Linear_VGamut_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! - name: Linear Panasonic V-Gamut to ACES2065-1 - children: - - ! {matrix: [0.72461670413153, 0.166915288193706, 0.108468007674764, 0, 0.021390245413146, 0.984908155703054, -0.00629840111620089, 0, -0.00923556287076561, -0.00105690563900513, 1.01029246850977, 0, 0, 0, 0, 1]} - - - ! - name: V-Log V-Gamut - aliases: [vlog_vgamut, Input - Panasonic - V-Log - V-Gamut] - family: Input/Panasonic - equalitygroup: "" - bitdepth: 32f - description: | - Convert Panasonic V-Log - V-Gamut to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Panasonic:Input:VLog_VGamut_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! - name: Panasonic V-Log - V-Gamut to ACES2065-1 - children: - - ! {base: 10, log_side_slope: 0.241514, log_side_offset: 0.598206, lin_side_offset: 0.00873, lin_side_break: 0.01, direction: inverse} - - ! {matrix: [0.72461670413153, 0.166915288193706, 0.108468007674764, 0, 0.021390245413146, 0.984908155703054, -0.00629840111620089, 0, -0.00923556287076561, -0.00105690563900513, 1.01029246850977, 0, 0, 0, 0, 1]} - - - ! - name: Linear REDWideGamutRGB - aliases: [lin_redwidegamutrgb, Input - RED - Linear - REDWideGamutRGB, lin_rwg] - family: Input/RED - equalitygroup: "" - bitdepth: 32f - description: | - Convert Linear REDWideGamutRGB to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:RED:Input:Linear_REDWideGamutRGB_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! - name: Linear REDWideGamutRGB to ACES2065-1 - children: - - ! {matrix: [0.785058804068092, 0.0838587565440846, 0.131082439387823, 0, 0.0231738348454756, 1.08789754919233, -0.111071384037806, 0, -0.0737604353682082, -0.314590072290208, 1.38835050765842, 0, 0, 0, 0, 1]} - - - ! - name: Log3G10 REDWideGamutRGB - aliases: [log3g10_redwidegamutrgb, Input - RED - REDLog3G10 - REDWideGamutRGB, rl3g10_rwg] - family: Input/RED - equalitygroup: "" - bitdepth: 32f - description: | - Convert RED Log3G10 REDWideGamutRGB to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:RED:Input:Log3G10_REDWideGamutRGB_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! - name: RED Log3G10 REDWideGamutRGB to ACES2065-1 - children: - - ! {base: 10, log_side_slope: 0.224282, lin_side_slope: 155.975327, lin_side_offset: 2.55975327, lin_side_break: -0.01, direction: inverse} - - ! {matrix: [0.785058804068092, 0.0838587565440846, 0.131082439387823, 0, 0.0231738348454756, 1.08789754919233, -0.111071384037806, 0, -0.0737604353682082, -0.314590072290208, 1.38835050765842, 0, 0, 0, 0, 1]} - - - ! - name: Linear S-Gamut3 - aliases: [lin_sgamut3, Input - Sony - Linear - S-Gamut3] - family: Input/Sony - equalitygroup: "" - bitdepth: 32f - description: | - Convert Linear S-Gamut3 to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_SGamut3_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! - name: Linear S-Gamut3 to ACES2065-1 - children: - - ! {matrix: [0.75298259539984, 0.143370216235557, 0.103647188364603, 0, 0.0217076974414429, 1.01531883550528, -0.0370265329467195, 0, -0.00941605274963355, 0.00337041785882367, 1.00604563489081, 0, 0, 0, 0, 1]} - - - ! - name: Linear S-Gamut3.Cine - aliases: [lin_sgamut3cine, Input - Sony - Linear - S-Gamut3.Cine] - family: Input/Sony - equalitygroup: "" - bitdepth: 32f - description: | - Convert Linear S-Gamut3.Cine to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_SGamut3Cine_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! - name: Linear S-Gamut3.Cine to ACES2065-1 - children: - - ! {matrix: [0.638788667185978, 0.272351433711262, 0.0888598991027595, 0, -0.00391590602528224, 1.0880732308974, -0.0841573248721177, 0, -0.0299072021239151, -0.0264325799101947, 1.05633978203411, 0, 0, 0, 0, 1]} - - - ! - name: Linear Venice S-Gamut3 - aliases: [lin_venice_sgamut3, Input - Sony - Linear - Venice S-Gamut3] - family: Input/Sony - equalitygroup: "" - bitdepth: 32f - description: | - Convert Linear Venice S-Gamut3 to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_Venice_SGamut3_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! - name: Linear Venice S-Gamut3 to ACES2065-1 - children: - - ! {matrix: [0.793329741146434, 0.0890786256206771, 0.117591633232888, 0, 0.0155810585252582, 1.03271230692988, -0.0482933654551394, 0, -0.0188647477991488, 0.0127694120973433, 1.0060953357018, 0, 0, 0, 0, 1]} - - - ! - name: Linear Venice S-Gamut3.Cine - aliases: [lin_venice_sgamut3cine, Input - Sony - Linear - Venice S-Gamut3.Cine] - family: Input/Sony - equalitygroup: "" - bitdepth: 32f - description: | - Convert Linear Venice S-Gamut3.Cine to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:Linear_Venice_SGamut3Cine_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - to_scene_reference: ! - name: Linear Venice S-Gamut3.Cine to ACES2065-1 - children: - - ! {matrix: [0.674257092126512, 0.220571735923397, 0.10517117195009, 0, -0.00931360607857167, 1.10595886142466, -0.0966452553460855, 0, -0.0382090673002312, -0.017938376600236, 1.05614744390047, 0, 0, 0, 0, 1]} - - - ! - name: S-Log3 S-Gamut3 - aliases: [slog3_sgamut3, Input - Sony - S-Log3 - S-Gamut3] - family: Input/Sony - equalitygroup: "" - bitdepth: 32f - description: | - Convert Sony S-Log3 S-Gamut3 to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_SGamut3_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! - name: Sony S-Log3 S-Gamut3 to ACES2065-1 - children: - - ! {base: 10, log_side_slope: 0.255620723362659, log_side_offset: 0.410557184750733, lin_side_slope: 5.26315789473684, lin_side_offset: 0.0526315789473684, lin_side_break: 0.01125, linear_slope: 6.62194371177582, direction: inverse} - - ! {matrix: [0.75298259539984, 0.143370216235557, 0.103647188364603, 0, 0.0217076974414429, 1.01531883550528, -0.0370265329467195, 0, -0.00941605274963355, 0.00337041785882367, 1.00604563489081, 0, 0, 0, 0, 1]} - - - ! - name: S-Log3 S-Gamut3.Cine - aliases: [slog3_sgamut3cine, Input - Sony - S-Log3 - S-Gamut3.Cine, slog3_sgamutcine] - family: Input/Sony - equalitygroup: "" - bitdepth: 32f - description: | - Convert Sony S-Log3 S-Gamut3.Cine to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_SGamut3Cine_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! - name: Sony S-Log3 S-Gamut3.Cine to ACES2065-1 - children: - - ! {base: 10, log_side_slope: 0.255620723362659, log_side_offset: 0.410557184750733, lin_side_slope: 5.26315789473684, lin_side_offset: 0.0526315789473684, lin_side_break: 0.01125, linear_slope: 6.62194371177582, direction: inverse} - - ! {matrix: [0.638788667185978, 0.272351433711262, 0.0888598991027595, 0, -0.00391590602528224, 1.0880732308974, -0.0841573248721177, 0, -0.0299072021239151, -0.0264325799101947, 1.05633978203411, 0, 0, 0, 0, 1]} - - - ! - name: S-Log3 Venice S-Gamut3 - aliases: [slog3_venice_sgamut3, Input - Sony - S-Log3 - Venice S-Gamut3] - family: Input/Sony - equalitygroup: "" - bitdepth: 32f - description: | - Convert Sony S-Log3 Venice S-Gamut3 to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_Venice_SGamut3_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! - name: Sony S-Log3 Venice S-Gamut3 to ACES2065-1 - children: - - ! {base: 10, log_side_slope: 0.255620723362659, log_side_offset: 0.410557184750733, lin_side_slope: 5.26315789473684, lin_side_offset: 0.0526315789473684, lin_side_break: 0.01125, linear_slope: 6.62194371177582, direction: inverse} - - ! {matrix: [0.793329741146434, 0.089078625620677, 0.117591633232888, 0, 0.0155810585252582, 1.03271230692988, -0.0482933654551394, 0, -0.0188647477991488, 0.0127694120973433, 1.00609533570181, 0, 0, 0, 0, 1]} - - - ! - name: S-Log3 Venice S-Gamut3.Cine - aliases: [slog3_venice_sgamut3cine, Input - Sony - S-Log3 - Venice S-Gamut3.Cine, slog3_venice_sgamutcine] - family: Input/Sony - equalitygroup: "" - bitdepth: 32f - description: | - Convert Sony S-Log3 Venice S-Gamut3.Cine to ACES2065-1 - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3_Venice_SGamut3Cine_to_ACES2065-1:1.0 - isdata: false - categories: [file-io] - encoding: log - allocation: uniform - to_scene_reference: ! - name: Sony S-Log3 Venice S-Gamut3.Cine to ACES2065-1 - children: - - ! {base: 10, log_side_slope: 0.255620723362659, log_side_offset: 0.410557184750733, lin_side_slope: 5.26315789473684, lin_side_offset: 0.0526315789473684, lin_side_break: 0.01125, linear_slope: 6.62194371177582, direction: inverse} - - ! {matrix: [0.674257092126512, 0.220571735923397, 0.10517117195009, 0, -0.00931360607857167, 1.10595886142466, -0.0966452553460855, 0, -0.0382090673002312, -0.017938376600236, 1.05614744390047, 0, 0, 0, 0, 1]} - - - ! - name: Camera Rec.709 - aliases: [camera_rec709, Utility - Rec.709 - Camera, rec709_camera] - family: Utility/ITU - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACES2065-1 to Rec.709 camera OETF Rec.709 primaries, D65 white point - - CLFtransformID: urn:aswf:ocio:transformId:1.0:ITU:Utility:AP0_to_Camera_Rec709:1.0 - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_scene_reference: ! - name: AP0 to Camera Rec.709 - children: - - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} - - ! {gamma: 2.22222222222222, offset: 0.099, direction: inverse} - - - ! - name: Linear P3-D65 - aliases: [lin_p3d65, Utility - Linear - P3-D65] - family: Utility - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACES2065-1 to linear P3 primaries, D65 white point - - CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_P3-D65:1.0 - isdata: false - categories: [file-io, working-space] - encoding: scene-linear - allocation: uniform - from_scene_reference: ! - name: AP0 to Linear P3-D65 - children: - - ! {matrix: [2.02490528596679, -0.689069761034766, -0.335835524932019, 0, -0.183597032256178, 1.28950620775902, -0.105909175502841, 0, 0.00905856112234766, -0.0592796840575522, 1.0502211229352, 0, 0, 0, 0, 1]} - - - ! - name: Linear Rec.2020 - aliases: [lin_rec2020, Utility - Linear - Rec.2020] - family: Utility - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACES2065-1 to linear Rec.2020 primaries, D65 white point - - CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec2020:1.0 - isdata: false - categories: [file-io] - encoding: scene-linear - allocation: uniform - from_scene_reference: ! - name: AP0 to Linear Rec.2020 - children: - - ! {matrix: [1.49040952054172, -0.26617091926613, -0.224238601275593, 0, -0.0801674998722558, 1.18216712109757, -0.10199962122531, 0, 0.00322763119162216, -0.0347764757450576, 1.03154884455344, 0, 0, 0, 0, 1]} - - - ! - name: Linear Rec.709 (sRGB) - aliases: [lin_rec709_srgb, Utility - Linear - Rec.709, lin_rec709, lin_srgb, Utility - Linear - sRGB] - family: Utility - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACES2065-1 to linear Rec.709 primaries, D65 white point - - CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Linear_Rec709:1.0 - isdata: false - categories: [file-io, working-space] - encoding: scene-linear - allocation: uniform - from_scene_reference: ! - name: AP0 to Linear Rec.709 (sRGB) - children: - - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} - - - ! - name: Gamma 1.8 Rec.709 - Texture - aliases: [g18_rec709_tx, Utility - Gamma 1.8 - Rec.709 - Texture, g18_rec709] - family: Utility - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACES2065-1 to 1.8 gamma-corrected Rec.709 primaries, D65 white point - - CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma1.8_Rec709-Texture:1.0 - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_scene_reference: ! - name: AP0 to Gamma 1.8 Rec.709 - Texture - children: - - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} - - ! {value: 1.8, style: pass_thru, direction: inverse} - - - ! - name: Gamma 2.2 AP1 - Texture - aliases: [g22_ap1_tx, g22_ap1] - family: Utility - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACES2065-1 to 2.2 gamma-corrected AP1 primaries, D60 white point - - CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_AP1-Texture:1.0 - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_scene_reference: ! - name: AP0 to Gamma 2.2 AP1 - Texture - children: - - ! {matrix: [1.45143931614567, -0.23651074689374, -0.214928569251925, 0, -0.0765537733960206, 1.17622969983357, -0.0996759264375522, 0, 0.00831614842569772, -0.00603244979102102, 0.997716301365323, 0, 0, 0, 0, 1]} - - ! {value: 2.2, style: pass_thru, direction: inverse} - - - ! - name: Gamma 2.2 Rec.709 - Texture - aliases: [g22_rec709_tx, Utility - Gamma 2.2 - Rec.709 - Texture, g22_rec709] - family: Utility - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACES2065-1 to 2.2 gamma-corrected Rec.709 primaries, D65 white point - - CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.2_Rec709-Texture:1.0 - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_scene_reference: ! - name: AP0 to Gamma 2.2 Rec.709 - Texture - children: - - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} - - ! {value: 2.2, style: pass_thru, direction: inverse} - - - ! - name: Gamma 2.4 Rec.709 - Texture - aliases: [g24_rec709_tx, g24_rec709, rec709_display, Utility - Rec.709 - Display] - family: Utility - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACES2065-1 to 2.4 gamma-corrected Rec.709 primaries, D65 white point - - CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_Gamma2.4_Rec709-Texture:1.0 - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_scene_reference: ! - name: AP0 to Gamma 2.4 Rec.709 - Texture - children: - - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} - - ! {value: 2.4, style: pass_thru, direction: inverse} - - - ! - name: sRGB Encoded AP1 - Texture - aliases: [srgb_encoded_ap1_tx, srgb_ap1] - family: Utility - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACES2065-1 to sRGB Encoded AP1 primaries, D60 white point - - CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB_Encoded_AP1-Texture:1.0 - isdata: false - categories: [file-io] - encoding: sdr-video - allocation: uniform - from_scene_reference: ! - name: AP0 to sRGB Encoded AP1 - Texture - children: - - ! {matrix: [1.45143931614567, -0.23651074689374, -0.214928569251925, 0, -0.0765537733960206, 1.17622969983357, -0.0996759264375522, 0, 0.00831614842569772, -0.00603244979102102, 0.997716301365323, 0, 0, 0, 0, 1]} - - ! {gamma: 2.4, offset: 0.055, direction: inverse} - - - ! - name: sRGB - Texture - aliases: [srgb_tx, Utility - sRGB - Texture, srgb_texture, Input - Generic - sRGB - Texture] - family: Utility - equalitygroup: "" - bitdepth: 32f - description: | - Convert ACES2065-1 to sRGB - - CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:AP0_to_sRGB-Texture:1.0 - isdata: false - categories: [file-io] - allocation: uniform - from_scene_reference: ! - name: AP0 to sRGB Rec.709 - children: - - ! {matrix: [2.52168618674388, -1.13413098823972, -0.387555198504164, 0, -0.276479914229922, 1.37271908766826, -0.096239173438334, 0, -0.0153780649660342, -0.152975335867399, 1.16835340083343, 0, 0, 0, 0, 1]} - - ! {gamma: 2.4, offset: 0.055, direction: inverse} - - - ! - name: Raw - aliases: [Utility - Raw] - family: Utility - equalitygroup: "" - bitdepth: 32f - description: The utility "Raw" colorspace. - isdata: true - categories: [file-io] - allocation: uniform - -named_transforms: - - ! - name: ARRI LogC3 - Curve (EI800) - aliases: [arri_logc3_crv_ei800, Input - ARRI - Curve - V3 LogC (EI800), crv_logc3ei800] - description: | - Convert ARRI LogC3 Curve (EI800) to Relative Scene Linear - - CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC3_Curve_EI800_to_Linear:1.0 - family: Input/ARRI - categories: [file-io] - encoding: log - transform: ! - name: ARRI LogC3 Curve (EI800) to Relative Scene Linear - children: - - ! {base: 10, log_side_slope: 0.247189638318671, log_side_offset: 0.385536998692443, lin_side_slope: 5.55555555555556, lin_side_offset: 0.0522722750251688, lin_side_break: 0.0105909904954696, direction: inverse} - - - ! - name: ARRI LogC4 - Curve - aliases: [arri_logc4_crv] - description: | - Convert ARRI LogC4 Curve to Relative Scene Linear - - CLFtransformID: urn:aswf:ocio:transformId:1.0:ARRI:Input:ARRI_LogC4_Curve_to_Linear:1.0 - family: Input/ARRI - categories: [file-io] - encoding: log - transform: ! - name: ARRI LogC4 Curve to Relative Scene Linear - children: - - ! {log_side_slope: 0.0647954196341293, log_side_offset: -0.295908392682586, lin_side_slope: 2231.82630906769, lin_side_offset: 64, lin_side_break: -0.0180569961199113, direction: inverse} - - - ! - name: BMDFilm Gen5 Log - Curve - aliases: [bmdfilm_gen5_log_crv] - description: | - Convert Blackmagic Film (Gen 5) Log to Blackmagic Film (Gen 5) Linear - - CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:BMDFilm_Gen5_Log-Curve_to_Linear:1.0 - family: Input/BlackmagicDesign - categories: [file-io] - encoding: log - transform: ! - name: Blackmagic Film (Gen 5) Log to Linear Curve - children: - - ! {base: 2.71828182845905, log_side_slope: 0.0869287606549122, log_side_offset: 0.530013339229194, lin_side_offset: 0.00549407243225781, lin_side_break: 0.005, direction: inverse} - - - ! - name: DaVinci Intermediate Log - Curve - aliases: [davinci_intermediate_log_crv] - description: | - Convert DaVinci Intermediate Log to DaVinci Intermediate Linear - - CLFtransformID: urn:aswf:ocio:transformId:1.0:BlackmagicDesign:Input:DaVinci_Intermediate_Log-Curve_to_Linear:1.0 - family: Input/BlackmagicDesign - categories: [file-io] - encoding: log - transform: ! - name: DaVinci Intermediate Log to Linear Curve - children: - - ! {log_side_slope: 0.07329248, log_side_offset: 0.51304736, lin_side_offset: 0.0075, lin_side_break: 0.00262409, linear_slope: 10.44426855, direction: inverse} - - - ! - name: V-Log - Curve - aliases: [vlog_crv, Input - Panasonic - Curve - V-Log, crv_vlog] - description: | - Convert Panasonic V-Log Log (arbitrary primaries) to Panasonic V-Log Linear (arbitrary primaries) - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Panasonic:Input:VLog-Curve_to_Linear:1.0 - family: Input/Panasonic - categories: [file-io] - encoding: log - transform: ! - name: Panasonic V-Log Log to Linear Curve - children: - - ! {base: 10, log_side_slope: 0.241514, log_side_offset: 0.598206, lin_side_offset: 0.00873, lin_side_break: 0.01, direction: inverse} - - - ! - name: Log3G10 - Curve - aliases: [log3g10_crv, Input - RED - Curve - REDLog3G10, crv_rl3g10] - description: | - Convert RED Log3G10 Log (arbitrary primaries) to RED Log3G10 Linear (arbitrary primaries) - - CLFtransformID: urn:aswf:ocio:transformId:1.0:RED:Input:Log3G10-Curve_to_Linear:1.0 - family: Input/RED - categories: [file-io] - encoding: log - transform: ! - name: RED Log3G10 Log to Linear Curve - children: - - ! {base: 10, log_side_slope: 0.224282, lin_side_slope: 155.975327, lin_side_offset: 2.55975327, lin_side_break: -0.01, direction: inverse} - - - ! - name: S-Log3 - Curve - aliases: [slog3_crv, Input - Sony - Curve - S-Log3, crv_slog3] - description: | - Convert S-Log3 Log (arbitrary primaries) to S-Log3 Linear (arbitrary primaries) - - CLFtransformID: urn:aswf:ocio:transformId:1.0:Sony:Input:SLog3-Curve_to_Linear:1.0 - family: Input/Sony - categories: [file-io] - encoding: log - transform: ! - name: S-Log3 Log to Linear Curve - children: - - ! {base: 10, log_side_slope: 0.255620723362659, log_side_offset: 0.410557184750733, lin_side_slope: 5.26315789473684, lin_side_offset: 0.0526315789473684, lin_side_break: 0.01125, linear_slope: 6.62194371177582, direction: inverse} - - - ! - name: Rec.1886 - Curve - aliases: [rec1886_crv, Utility - Curve - Rec.1886, crv_rec1886] - description: | - Convert generic linear RGB to generic gamma-corrected RGB - - CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_Rec1886-Curve:1.0 - family: Utility - categories: [file-io] - encoding: sdr-video - inverse_transform: ! - name: Linear to Rec.1886 - children: - - ! {value: 2.4, style: pass_thru, direction: inverse} - - - ! - name: Rec.709 - Curve - aliases: [rec709_crv, Utility - Curve - Rec.709, crv_rec709] - description: | - Convert generic linear RGB to generic gamma-corrected RGB - - CLFtransformID: urn:aswf:ocio:transformId:1.0:ITU:Utility:Linear_to_Rec709-Curve:1.0 - family: Utility/ITU - categories: [file-io] - encoding: sdr-video - inverse_transform: ! - name: Linear to Rec.709 - children: - - ! {gamma: 2.22222222222222, offset: 0.099, direction: inverse} - - - ! - name: sRGB - Curve - aliases: [srgb_crv, Utility - Curve - sRGB, crv_srgb] - description: | - Convert generic linear RGB to generic gamma-corrected RGB - - CLFtransformID: urn:aswf:ocio:transformId:1.0:OCIO:Utility:Linear_to_sRGB-Curve:1.0 - family: Utility - categories: [file-io] - encoding: sdr-video - inverse_transform: ! - name: Linear to sRGB - children: - - ! {gamma: 2.4, offset: 0.055, direction: inverse} - - - ! - name: ST-2084 - Curve - aliases: [st_2084_crv] - description: Convert linear nits/100 to SMPTE ST-2084 (PQ) full-range - family: Utility - categories: [file-io] - encoding: hdr-video - inverse_transform: ! {style: CURVE - LINEAR_to_ST-2084} From 7eeb0cb3edc6ac54e60307bdf9e2bc20f76b4585 Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Mon, 11 Dec 2023 11:03:27 -0500 Subject: [PATCH 5/5] Make sure to set global state before generating shaders Since the OgsFragment code is now shared with other clients, it must be careful around global state. --- lib/mayaUsd/render/vp2RenderDelegate/material.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp index e75f0a6127..fb58e6afc0 100644 --- a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp +++ b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp @@ -340,12 +340,11 @@ struct _MaterialXData // This environment variable is defined in USD: pxr\usd\usdMtlx\parser.cpp static const std::string env = TfGetenv("USDMTLX_PRIMARY_UV_NAME"); - std::string mainUvSetName = env.empty() ? UsdUtilsGetPrimaryUVSetName().GetString() : env; - - mx::OgsXmlGenerator::setPrimaryUVSetName(mainUvSetName); + _mainUvSetName = env.empty() ? UsdUtilsGetPrimaryUVSetName().GetString() : env; } MaterialX::FileSearchPath _mtlxSearchPath; //!< MaterialX library search path MaterialX::DocumentPtr _mtlxLibrary; //!< MaterialX library + std::string _mainUvSetName; //!< Main UV set name private: void _FixLibraryTangentInputs(MaterialX::DocumentPtr& mtlxLibrary); @@ -2911,8 +2910,15 @@ MHWRender::MShaderInstance* HdVP2Material::CompiledNetwork::_CreateMaterialXShad return shaderInstance; } + // Enable changing texcoord to geompropvalue + const auto prevUVSetName = mx::OgsXmlGenerator::getPrimaryUVSetName(); + mx::OgsXmlGenerator::setPrimaryUVSetName(_GetMaterialXData()._mainUvSetName); + MaterialXMaya::OgsFragment ogsFragment(materialNode, crLibrarySearchPath); + // Restore previous UV set name + mx::OgsXmlGenerator::setPrimaryUVSetName(prevUVSetName); + // Explore the fragment for primvars: mx::ShaderPtr shader = ogsFragment.getShader(); const mx::VariableBlock& vertexInputs