From 6534c20664ec5ddc0022be0b625e2bbfc9b204cf Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Fri, 16 Jun 2023 16:47:00 -0400 Subject: [PATCH 1/4] MAYA-129798 - Use experimental OCIO hooks for MaterialX shading --- .../render/MaterialXGenOgsXml/CMakeLists.txt | 2 + .../GlslFragmentGenerator.cpp | 5 + .../MaterialXGenOgsXml/GlslOcioNodeImpl.cpp | 369 +++++ .../MaterialXGenOgsXml/GlslOcioNodeImpl.h | 52 + .../render/MaterialXGenOgsXml/OgsFragment.cpp | 8 + .../render/MaterialXGenOgsXml/OgsFragment.h | 4 + .../MaterialXGenOgsXml/OgsXmlGenerator.cpp | 34 +- .../MaterialXGenOgsXml/OgsXmlGenerator.h | 2 + .../render/vp2RenderDelegate/material.cpp | 167 ++- .../render/vp2RenderDelegate/CMakeLists.txt | 1 + .../MayaSurfaces_flat_ocio_render.png | Bin 0 -> 76681 bytes .../baseline/MayaSurfaces_ocio_render.png | Bin 0 -> 68174 bytes .../baseline/OCIO_Integration.png | Bin 0 -> 62768 bytes .../testVP2RenderDelegateMaterialX.py | 58 +- .../testSamples/MaterialX/color_management.ma | 776 +++++++++++ .../MaterialX/color_management_MTLX.usda | 600 ++++++++ .../MaterialX/color_management_MTLX_Raw.usda | 530 +++++++ .../MaterialX/color_management_USD.usda | 435 ++++++ ...dio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio | 1238 +++++++++++++++++ .../textures/color_palette_ACEScg.exr | Bin 0 -> 37403 bytes .../textures/color_palette_ADX10.exr | Bin 0 -> 48833 bytes .../textures/color_palette_ADX16.exr | Bin 0 -> 48437 bytes .../textures/color_palette_arri_logc4.exr | Bin 0 -> 53405 bytes .../textures/color_palette_g24_rec709.exr | Bin 0 -> 47492 bytes .../textures/color_palette_lin_p3d65.exr | Bin 0 -> 48966 bytes .../textures/color_palette_srgb_texture.exr | Bin 0 -> 34111 bytes 26 files changed, 4228 insertions(+), 53 deletions(-) create mode 100644 lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp create mode 100644 lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.h create mode 100644 test/lib/mayaUsd/render/vp2RenderDelegate/VP2RenderDelegateMaterialXTest/baseline/MayaSurfaces_flat_ocio_render.png create mode 100644 test/lib/mayaUsd/render/vp2RenderDelegate/VP2RenderDelegateMaterialXTest/baseline/MayaSurfaces_ocio_render.png create mode 100644 test/lib/mayaUsd/render/vp2RenderDelegate/VP2RenderDelegateMaterialXTest/baseline/OCIO_Integration.png create mode 100644 test/testSamples/MaterialX/color_management.ma create mode 100644 test/testSamples/MaterialX/color_management_MTLX.usda create mode 100644 test/testSamples/MaterialX/color_management_MTLX_Raw.usda create mode 100644 test/testSamples/MaterialX/color_management_USD.usda create mode 100644 test/testSamples/MaterialX/studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio create mode 100644 test/testSamples/MaterialX/textures/color_palette_ACEScg.exr create mode 100644 test/testSamples/MaterialX/textures/color_palette_ADX10.exr create mode 100644 test/testSamples/MaterialX/textures/color_palette_ADX16.exr create mode 100644 test/testSamples/MaterialX/textures/color_palette_arri_logc4.exr create mode 100644 test/testSamples/MaterialX/textures/color_palette_g24_rec709.exr create mode 100644 test/testSamples/MaterialX/textures/color_palette_lin_p3d65.exr create mode 100644 test/testSamples/MaterialX/textures/color_palette_srgb_texture.exr diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/CMakeLists.txt b/lib/mayaUsd/render/MaterialXGenOgsXml/CMakeLists.txt index 8adbfaba9a..969861743b 100644 --- a/lib/mayaUsd/render/MaterialXGenOgsXml/CMakeLists.txt +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/CMakeLists.txt @@ -4,6 +4,7 @@ target_sources(${PROJECT_NAME} PRIVATE GlslFragmentGenerator.cpp + GlslOcioNodeImpl.cpp OgsFragment.cpp OgsXmlGenerator.cpp Nodes/SurfaceNodeMaya.cpp @@ -12,6 +13,7 @@ target_sources(${PROJECT_NAME} set(HEADERS GlslFragmentGenerator.h + GlslOcioNodeImpl.h OgsFragment.h OgsXmlGenerator.h ) diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/GlslFragmentGenerator.cpp b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslFragmentGenerator.cpp index 23cd2f9443..1d97be1a30 100644 --- a/lib/mayaUsd/render/MaterialXGenOgsXml/GlslFragmentGenerator.cpp +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslFragmentGenerator.cpp @@ -7,6 +7,7 @@ #include "Nodes/SurfaceNodeMaya.h" +#include #include #include @@ -146,6 +147,10 @@ GlslFragmentGenerator::GlslFragmentGenerator() = "g_lightData"; // Store Maya lights in global non-const _tokenSubstitutions[HW::T_NUM_ACTIVE_LIGHT_SOURCES] = "g_numActiveLightSources"; } + + for (auto&& implName : GlslOcioNodeImpl::getOCIOImplementations()) { + registerImplementation(implName, GlslOcioNodeImpl::create); + } } ShaderGeneratorPtr GlslFragmentGenerator::create() diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp new file mode 100644 index 0000000000..474383167d --- /dev/null +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp @@ -0,0 +1,369 @@ +// +// 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 "GlslOcioNodeImpl.h" + +#include "PugiXML/pugixml.hpp" + +#include +#include + +#include +#include +#include + +#include + +MATERIALX_NAMESPACE_BEGIN + +namespace { +// Internal OCIO strings: +constexpr const char OCIO_COLOR3[] = "color3"; +constexpr const char OCIO_COLOR4[] = "color4"; +constexpr const char OCIO_GLSL[] = "GLSL"; +constexpr const char OCIO_IM_PREFIX[] = "IMMayaOCIO_"; +constexpr const char OCIO_ND_PREFIX[] = "NDMayaOCIO_"; + +// Lengths where needed: +constexpr auto OCIO_COLOR3_LEN = sizeof(OCIO_COLOR3) / sizeof(OCIO_COLOR3[0]); +constexpr auto OCIO_GLSL_LEN = sizeof(OCIO_GLSL) / sizeof(OCIO_GLSL[0]); +constexpr auto OCIO_IM_PREFIX_LEN = sizeof(OCIO_IM_PREFIX) / sizeof(OCIO_IM_PREFIX[0]); + +// Expected XML tag names for an OCIO fragment: +constexpr const char TAG_FLOAT3[] = "float3"; +constexpr const char TAG_FRAGMENT[] = "fragment"; +constexpr const char TAG_FUNCTION_NAME[] = "function_name"; +constexpr const char TAG_PROPERTIES[] = "properties"; +constexpr const char TAG_VALUES[] = "values"; +constexpr const char TAG_OUTPUTS[] = "outputs"; +constexpr const char TAG_IMPLEMENTATION[] = "implementation"; +constexpr const char TAG_TEXTURE2[] = "texture2"; +constexpr const char TAG_SAMPLER[] = "sampler"; +constexpr const char TAG_SOURCE[] = "source"; + +// Lengths where needed: +constexpr auto TAG_TEXTURE2_LEN = sizeof(TAG_TEXTURE2) / sizeof(TAG_TEXTURE2[0]); +constexpr auto TAG_SAMPLER_LEN = sizeof(TAG_SAMPLER) / sizeof(TAG_SAMPLER[0]); + +// Expected XML attribute names for an OCIO fragment: +constexpr const char ATTR_NAME[] = "name"; +constexpr const char ATTR_LANGUAGE[] = "language"; +constexpr const char ATTR_VAL[] = "val"; + +std::map knownOCIOFragments; +std::vector knownOCIOImplementations; + +std::string getUntypedNodeDefName(const std::string& nodeName) +{ + return OCIO_ND_PREFIX + nodeName + "_"; +} + +std::string getUntypedImplementationName(const std::string& nodeName) +{ + return OCIO_IM_PREFIX + nodeName + "_"; +} + +const pugi::xml_document& docFromImplementationName(const std::string& implName) +{ + // Would be so much faster with removeprefix and removesuffix: + auto nodeName = implName.substr( + OCIO_IM_PREFIX_LEN - 1, implName.size() - OCIO_IM_PREFIX_LEN - OCIO_COLOR3_LEN + 1); + + auto docIt = knownOCIOFragments.find(nodeName); + if (docIt != knownOCIOFragments.end()) { + return docIt->second; + } + static const pugi::xml_document emptyDoc; + return emptyDoc; +} + +void addOCIONodeDef(DocumentPtr lib, const pugi::xml_document& doc, const std::string& output_type) +{ + std::string nodeName = doc.child(TAG_FRAGMENT).attribute(ATTR_NAME).as_string(); + std::string defName = getUntypedNodeDefName(nodeName) + output_type; + std::string implName = getUntypedImplementationName(nodeName) + output_type; + + auto nodeDef = lib->addNodeDef(defName, "", nodeName); + + auto inputInfo = doc.child(TAG_FRAGMENT).child(TAG_VALUES).child(TAG_FLOAT3); + nodeDef->addInput(inputInfo.attribute(ATTR_NAME).as_string(), output_type); + + auto outputInfo = doc.child(TAG_FRAGMENT).child(TAG_OUTPUTS).child(TAG_FLOAT3); + nodeDef->addOutput(outputInfo.attribute(ATTR_NAME).as_string(), output_type); + + auto implementation = lib->addImplementation(implName); + implementation->setTarget(GlslShaderGenerator::TARGET); + implementation->setNodeDef(nodeDef); + + knownOCIOImplementations.push_back(implName); +} + +class GlslOcioNodeData; +using GlslOcioNodeDataPtr = shared_ptr; +class GlslOcioNodeData : public GenUserData +{ +public: + static const std::string& name() + { + static const string OCIO_DATA = "GlslOcioNodeData"; + return OCIO_DATA; + } + + /// Create and return a new instance. + static GlslOcioNodeDataPtr create() { return std::make_shared(); } + + /// All OCIO code blocks already emitted: + std::set emittedOcioBlocks; +}; +} // namespace + +std::string +GlslOcioNodeImpl::registerOCIOFragment(const std::string& fragName, DocumentPtr mtlxLibrary) +{ + if (knownOCIOFragments.count(fragName)) { + // Make sure the NodeDef are there: + if (!mtlxLibrary->getNodeDef(getUntypedNodeDefName(fragName) + OCIO_COLOR3)) { + addOCIONodeDef(mtlxLibrary, knownOCIOFragments[fragName], OCIO_COLOR3); + } + + if (!mtlxLibrary->getNodeDef(getUntypedNodeDefName(fragName) + OCIO_COLOR4)) { + addOCIONodeDef(mtlxLibrary, knownOCIOFragments[fragName], OCIO_COLOR4); + } + + return getUntypedNodeDefName(fragName); + } + + MHWRender::MRenderer* theRenderer = MHWRender::MRenderer::theRenderer(); + if (!theRenderer) { + return {}; + } + + MHWRender::MFragmentManager* fragmentManager = theRenderer->getFragmentManager(); + if (!fragmentManager) { + return {}; + } + + MString fragText; + if (!fragmentManager->getFragmentXML(fragName.c_str(), fragText)) { + return {}; + } + + pugi::xml_document doc; + pugi::xml_parse_result result = doc.load_string(fragText.asChar()); + + if (!result) { + MString errorMsg = "XML error parsing fragment for "; + errorMsg += fragName.c_str(); + errorMsg += " at character "; + errorMsg += static_cast(result.offset); + errorMsg += ": "; + errorMsg += result.description(); + MGlobal::displayError(errorMsg); + return {}; + } + + // Validate that the fragment structure is 100% as expected. We need the properties, values, + // outputs, and GLSL source to proceed: + auto fragment = doc.child(TAG_FRAGMENT); + if (!fragment) { + return {}; + } + + auto properties = fragment.child(TAG_PROPERTIES); + if (!properties) { + return {}; + } + + auto values = fragment.child(TAG_VALUES); + if (!values) { + return {}; + } + + auto outputs = fragment.child(TAG_OUTPUTS); + if (!outputs) { + return {}; + } + + auto implementations = fragment.child(TAG_IMPLEMENTATION); + if (!implementations) { + return {}; + } + bool hasGLSL = false; + for (auto&& implementation : implementations.children()) { + auto language = implementation.attribute(ATTR_LANGUAGE); + if (std::strncmp(language.as_string(), OCIO_GLSL, OCIO_GLSL_LEN) == 0) { + hasGLSL = true; + break; + } + } + if (!hasGLSL) { + return {}; + } + + // We now have all the data we need. Preserve the info and add our new OCIO NodeDef in the + // library. + addOCIONodeDef(mtlxLibrary, doc, OCIO_COLOR3); + addOCIONodeDef(mtlxLibrary, doc, OCIO_COLOR4); + knownOCIOFragments.emplace(fragName, std::move(doc)); + + return getUntypedNodeDefName(fragName); +} + +const std::vector& GlslOcioNodeImpl::getOCIOImplementations() +{ + return knownOCIOImplementations; +} + +ShaderNodeImplPtr GlslOcioNodeImpl::create() { return std::make_shared(); } + +void GlslOcioNodeImpl::createVariables(const ShaderNode& node, GenContext& context, Shader& shader) + const +{ + const auto& ocioDoc = docFromImplementationName(getName()); + if (ocioDoc.empty()) { + return; + } + + // Need to create texture inputs if required: + for (auto&& property : ocioDoc.child(TAG_FRAGMENT).child(TAG_PROPERTIES).children()) { + if (std::strncmp(property.name(), TAG_TEXTURE2, TAG_TEXTURE2_LEN) == 0) { + std::string samplerName = property.attribute(ATTR_NAME).as_string(); + samplerName += "Sampler"; + addStageUniform( + HW::PUBLIC_UNIFORMS, Type::FILENAME, samplerName, shader.getStage(Stage::PIXEL)); + } + } +} + +void GlslOcioNodeImpl::emitFunctionDefinition( + const ShaderNode& node, + GenContext& context, + ShaderStage& stage) const +{ + if (stage.getName() == Stage::PIXEL) { + const auto& ocioDoc = docFromImplementationName(getName()); + if (ocioDoc.empty()) { + return; + } + + // Since the color3 and color4 implementations share the same code block, we need to make + // sure the definition is only emitted once. + auto pOcioData = context.getUserData(GlslOcioNodeData::name()); + if (!pOcioData) { + context.pushUserData(GlslOcioNodeData::name(), GlslOcioNodeData::create()); + pOcioData = context.getUserData(GlslOcioNodeData::name()); + } + const auto* fragName = ocioDoc.child(TAG_FRAGMENT).attribute(ATTR_NAME).as_string(); + if (pOcioData->emittedOcioBlocks.count(fragName)) { + return; + } + pOcioData->emittedOcioBlocks.insert(fragName); + + auto implementations = ocioDoc.child(TAG_FRAGMENT).child(TAG_IMPLEMENTATION); + if (!implementations) { + return; + } + for (auto&& implementation : implementations.children()) { + auto language = implementation.attribute(ATTR_LANGUAGE); + if (std::strncmp(language.as_string(), OCIO_GLSL, OCIO_GLSL_LEN) == 0) { + stage.addString(implementation.child_value(TAG_SOURCE)); + stage.endLine(false); + return; + } + } + } +} + +void GlslOcioNodeImpl::emitFunctionCall( + const ShaderNode& node, + GenContext& context, + ShaderStage& stage) const +{ + if (stage.getName() == Stage::PIXEL) { + std::string implName = getName(); + const auto& ocioDoc = docFromImplementationName(implName); + if (ocioDoc.empty()) { + return; + } + std::string functionName; + + auto implementations = ocioDoc.child(TAG_FRAGMENT).child(TAG_IMPLEMENTATION); + if (!implementations) { + return; + } + for (auto&& implementation : implementations.children()) { + auto language = implementation.attribute(ATTR_LANGUAGE); + if (std::strncmp(language.as_string(), OCIO_GLSL, OCIO_GLSL_LEN) == 0) { + + functionName + = implementation.child(TAG_FUNCTION_NAME).attribute(ATTR_VAL).as_string(); + break; + } + } + + // Function call for color4: vec4 res = vec4(func(in.rgb, ...), in.a); + // Function call for color3: vec3 res = func(in, ...); + bool isColor4 = implName[implName.size() - 1] == '4'; + + const ShaderGenerator& shadergen = context.getShaderGenerator(); + shadergen.emitLineBegin(stage); + + const ShaderOutput* output = node.getOutput(); + const ShaderInput* colorInput = node.getInput(0); + + shadergen.emitOutput(output, true, false, context, stage); + shadergen.emitString(" =", stage); + + if (isColor4) { + shadergen.emitString(" vec4(", stage); + } + + shadergen.emitString(functionName + "(", stage); + shadergen.emitInput(colorInput, context, stage); + if (isColor4) { + shadergen.emitString(".rgb", stage); + } + + bool skipColorInput = true; + for (auto&& prop : ocioDoc.child(TAG_FRAGMENT).child(TAG_PROPERTIES).children()) { + if (skipColorInput) { + // Skip the color input as it was processed above + skipColorInput = false; + continue; + } + if (std::strncmp(prop.name(), TAG_TEXTURE2, TAG_TEXTURE2_LEN) == 0) { + // Skip texture inputs since we only need the sampler + continue; + } + // Add all other parameters as-is since this will be the uniform parameter name + shadergen.emitString(", ", stage); + shadergen.emitString(prop.attribute(ATTR_NAME).as_string(), stage); + } + + shadergen.emitString(")", stage); + + if (isColor4) { + shadergen.emitString(", ", stage); + shadergen.emitInput(colorInput, context, stage); + shadergen.emitString(".a", stage); + shadergen.emitString(")", stage); + } + + shadergen.emitLineEnd(stage); + } +} + +MATERIALX_NAMESPACE_END diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.h b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.h new file mode 100644 index 0000000000..f9364d636b --- /dev/null +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.h @@ -0,0 +1,52 @@ +// +// 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 MATERIALX_GLSLOCIONODEIMPL_H +#define MATERIALX_GLSLOCIONODEIMPL_H + +/// @file +/// GLSL OCIO node implementation + +#include + +MATERIALX_NAMESPACE_BEGIN + +/// GLSL OCIO node implementation. Takes a Maya OCIO shader fragment and +/// makes it compatible with the shadergen +class GlslOcioNodeImpl : public GlslImplementation +{ +public: + static ShaderNodeImplPtr create(); + + void + createVariables(const ShaderNode& node, GenContext& context, Shader& shader) const override; + + void emitFunctionDefinition(const ShaderNode& node, GenContext& context, ShaderStage& stage) + const override; + + void emitFunctionCall(const ShaderNode& node, GenContext& context, ShaderStage& stage) + const override; + + /// Prepare all data structures to handle an internal Maya OCIO fragment: + static std::string registerOCIOFragment(const std::string& fragName, DocumentPtr mtlxLibrary); + + /// Returns the full list of internal Maya OCIO fragment we can implement: + static const std::vector& getOCIOImplementations(); +}; + +MATERIALX_NAMESPACE_END + +#endif diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/OgsFragment.cpp b/lib/mayaUsd/render/MaterialXGenOgsXml/OgsFragment.cpp index 3723d61f3e..ab57afc880 100644 --- a/lib/mayaUsd/render/MaterialXGenOgsXml/OgsFragment.cpp +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/OgsFragment.cpp @@ -1,6 +1,7 @@ #include "OgsFragment.h" #include +#include #include #include @@ -496,4 +497,11 @@ std::string OgsFragment::getSpecularEnvKey() return retVal; } +std::string +OgsFragment::registerOCIOFragment(const std::string& fragName, mx::DocumentPtr mtlxLibrary) +{ + // Delegate to the GlslOcioNodeImpl: + return mx::GlslOcioNodeImpl::registerOCIOFragment(fragName, mtlxLibrary); +} + } // namespace MaterialXMaya diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/OgsFragment.h b/lib/mayaUsd/render/MaterialXGenOgsXml/OgsFragment.h index 575710b73c..8b46360d66 100644 --- a/lib/mayaUsd/render/MaterialXGenOgsXml/OgsFragment.h +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/OgsFragment.h @@ -88,6 +88,10 @@ class OgsFragment /// Get a string that is unique for each environment settings possible: static std::string getSpecularEnvKey(); + /// Prepare all data structures to handle an internal Maya OCIO fragment: + static std::string + registerOCIOFragment(const std::string& fragName, mx::DocumentPtr mtlxLibrary); + private: /// The constructor implementation that public constructors delegate to. template diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/OgsXmlGenerator.cpp b/lib/mayaUsd/render/MaterialXGenOgsXml/OgsXmlGenerator.cpp index 5a86c7c581..2cb5faba73 100644 --- a/lib/mayaUsd/render/MaterialXGenOgsXml/OgsXmlGenerator.cpp +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/OgsXmlGenerator.cpp @@ -304,6 +304,8 @@ void xmlAddValues(pugi::xml_node& parent, const VariableBlock& block, bool skipL const string OgsXmlGenerator::OUTPUT_NAME = "outColor"; const string OgsXmlGenerator::VP_TRANSPARENCY_NAME = "vp2Transparency"; const string OgsXmlGenerator::SAMPLER_SUFFIX = "_sampler"; +const string OgsXmlGenerator::OCIO_SAMPLER_SUFFIX = "Sampler"; +const string OgsXmlGenerator::OCIO_SAMPLER_PREFIX = "Input_"; bool OgsXmlGenerator::isSamplerName(const string& name) { @@ -313,8 +315,23 @@ bool OgsXmlGenerator::isSamplerName(const string& name) // requires that the texture name be a substring of the sampler name. static const size_t SUFFIX_LENGTH = SAMPLER_SUFFIX.size(); - return name.size() > SUFFIX_LENGTH + 1 && name[0] == '_' - && 0 == name.compare(name.size() - SUFFIX_LENGTH, SUFFIX_LENGTH, SAMPLER_SUFFIX); + if (name.size() > SUFFIX_LENGTH + 1 && name[0] == '_' + && 0 == name.compare(name.size() - SUFFIX_LENGTH, SUFFIX_LENGTH, SAMPLER_SUFFIX)) { + // Regular sampler. + return true; + } + + static const size_t OCIO_SUFFIX_LENGTH = OCIO_SAMPLER_SUFFIX.size(); + if (name.rfind(OCIO_SAMPLER_PREFIX, 0) == 0) { + if (name.size() > OCIO_SUFFIX_LENGTH + 1 + && 0 + == name.compare( + name.size() - OCIO_SUFFIX_LENGTH, OCIO_SUFFIX_LENGTH, OCIO_SAMPLER_SUFFIX)) { + // OCIO sampler. + return true; + } + } + return false; } string OgsXmlGenerator::textureToSamplerName(const string& textureName) @@ -328,9 +345,16 @@ string OgsXmlGenerator::textureToSamplerName(const string& textureName) string OgsXmlGenerator::samplerToTextureName(const string& samplerName) { static const size_t PREFIX_SUFFIX_LENGTH = SAMPLER_SUFFIX.size() + 1; - return isSamplerName(samplerName) - ? samplerName.substr(1, samplerName.size() - PREFIX_SUFFIX_LENGTH) - : ""; + static const size_t OCIO_SUFFIX_LENGTH = OCIO_SAMPLER_PREFIX.size() + 1; + if (isSamplerName(samplerName)) { + if (samplerName[0] == '_') { + return samplerName.substr(1, samplerName.size() - PREFIX_SUFFIX_LENGTH); + } else { + return samplerName.substr(0, samplerName.size() - OCIO_SUFFIX_LENGTH); + } + } + + return {}; } string OgsXmlGenerator::generate( diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/OgsXmlGenerator.h b/lib/mayaUsd/render/MaterialXGenOgsXml/OgsXmlGenerator.h index 3a35b166f6..2888b34685 100644 --- a/lib/mayaUsd/render/MaterialXGenOgsXml/OgsXmlGenerator.h +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/OgsXmlGenerator.h @@ -39,6 +39,8 @@ class OgsXmlGenerator private: static const string SAMPLER_SUFFIX; + static const string OCIO_SAMPLER_SUFFIX; + static const string OCIO_SAMPLER_PREFIX; static int sUseLightAPI; }; diff --git a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp index 44f8601ac5..f2aaede226 100644 --- a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp +++ b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp @@ -321,6 +321,7 @@ const std::set _mtlxTopoNodeSet = { "switch" }; +#ifndef HAS_COLOR_MANAGEMENT_SUPPORT_API // Maps from a known Maya target color space name to the corresponding color correct category. const std::unordered_map _mtlxColorCorrectCategoryMap = { { "scene-linear Rec.709-sRGB", "MayaND_sRGBtoLinrec709_" }, @@ -333,6 +334,7 @@ const std::unordered_map _mtlxColorCorrectCategoryMap { "scene-linear Rec.2020", "MayaND_sRGBtoLinrec2020_" }, { "scene-linear Rec 2020", "MayaND_sRGBtoLinrec2020_" }, }; +#endif // clang-format on @@ -2603,19 +2605,21 @@ void HdVP2Material::CompiledNetwork::_ApplyVP2Fixes( #ifdef WANT_MATERIALX_BUILD -// MaterialX does offer only limited support for OCIO. We expect something more in a future release, -// but in the meantime we can still add color management nodes to bring textures in one of the five -// colorspaces MayaUSD already supports for UsdPreviewSurface. -// // We will be extremely arbitrary on all MaterialX image and tiledimage nodes and assume that color3 // and color4 require color management based on the file extension. // // For image nodes connected to a fileTexture post-processor, we will also check for the colorSpace -// attribute and respect requests for Raw. +// attribute and respect requests. TfToken _RequiresColorManagement( - const HdMaterialNode2& node, - const HdMaterialNode2& upstream, + const HdMaterialNode2& node, + const HdMaterialNode2& upstream, +#ifdef HAS_COLOR_MANAGEMENT_SUPPORT_API + const HdMaterialNetwork2& inNet, + TfToken& cmInputName, + TfToken& cmOutputName) +#else const HdMaterialNetwork2& inNet) +#endif { const mx::NodeDefPtr nodeDef = _GetMaterialXData()._mtlxLibrary->getNodeDef(node.nodeTypeId); const mx::NodeDefPtr upstreamDef @@ -2647,37 +2651,96 @@ TfToken _RequiresColorManagement( return {}; } - SdfAssetPath filenameVal; - for (const auto& inputName : fileInputs) { - auto itFileParam = upstream.parameters.find(inputName); - if (itFileParam != upstream.parameters.end() - && itFileParam->second.IsHolding()) { - filenameVal = itFileParam->second.Get(); - break; + // Look for explicit color spaces first: + std::string sourceColorSpace; + static const auto _knownColorSpaceAttrs + = std::vector { _tokens->sourceColorSpace, _mtlxTokens->colorSpace }; + static const auto _mxFindColorSpace = [&sourceColorSpace](const auto& n) { + if (!sourceColorSpace.empty()) { + return; } + + for (auto&& csAttrName : _knownColorSpaceAttrs) { + auto paramIt = n.parameters.find(csAttrName); + if (paramIt != n.parameters.end()) { + if (paramIt->second.IsHolding()) { + sourceColorSpace = paramIt->second.UncheckedGet().GetString(); + return; + } else if (paramIt->second.IsHolding()) { + sourceColorSpace = paramIt->second.UncheckedGet(); + return; + } + } + } + }; + // Can be on the upstream node (UsdUVTexture): + _mxFindColorSpace(upstream); + // Can sometimes be on node (MayaND_fileTexture): + _mxFindColorSpace(node); + // To be updated as soon as color space metadata gets transmitted through Hydra. + + if (sourceColorSpace.empty() || sourceColorSpace == _tokens->auto_) { + SdfAssetPath filenameVal; + for (const auto& inputName : fileInputs) { + auto itFileParam = upstream.parameters.find(inputName); + if (itFileParam != upstream.parameters.end() + && itFileParam->second.IsHolding()) { + filenameVal = itFileParam->second.Get(); + break; + } + } + + const std::string& resolvedPath = filenameVal.GetResolvedPath(); + if (resolvedPath.empty()) { + return {}; + } + const std::string& assetPath = filenameVal.GetAssetPath(); + MString colorRuleCmd; + colorRuleCmd.format( + "colorManagementFileRules -evaluate \"^1s\";", + (!resolvedPath.empty() ? resolvedPath : assetPath).c_str()); + const MString colorSpaceByRule(MGlobal::executeCommandStringResult(colorRuleCmd)); + sourceColorSpace = colorSpaceByRule.asChar(); } - const std::string& resolvedPath = filenameVal.GetResolvedPath(); - if (resolvedPath.empty()) { + if (sourceColorSpace == "Raw" || sourceColorSpace == "raw") { return {}; } - const std::string& assetPath = filenameVal.GetAssetPath(); - MString colorRuleCmd; - colorRuleCmd.format( - "colorManagementFileRules -evaluate \"^1s\";", - (!resolvedPath.empty() ? resolvedPath : assetPath).c_str()); - const MString colorSpaceByRule(MGlobal::executeCommandStringResult(colorRuleCmd)); - if (colorSpaceByRule != _tokens->sRGB.GetText()) { - // We only know how to handle sRGB source color space. + +#ifdef HAS_COLOR_MANAGEMENT_SUPPORT_API + MHWRender::MRenderer* theRenderer = MHWRender::MRenderer::theRenderer(); + if (!theRenderer) { return {}; } - // If we ended up here, then a color management node was required: - if (colorOutput->getType().back() == '3') { - return _mtlxTokens->color3; - } else { - return _mtlxTokens->color4; + MHWRender::MFragmentManager* fragmentManager = theRenderer->getFragmentManager(); + if (!fragmentManager) { + return {}; + } + + MString fragName, fragInput, fragOutput; + if (fragmentManager->getColorManagementFragmentInfo( + sourceColorSpace.c_str(), fragName, fragInput, fragOutput)) { + std::string untypedNodeDefId = MaterialXMaya::OgsFragment::registerOCIOFragment( + fragName.asChar(), _GetMaterialXData()._mtlxLibrary); + if (!untypedNodeDefId.empty()) { + cmInputName = TfToken(fragInput.asChar()); + cmOutputName = TfToken(fragOutput.asChar()); + return TfToken((untypedNodeDefId + colorOutput->getType())); + } + } +#else + if (sourceColorSpace == _tokens->sRGB.GetString()) { + // Non-OCIO code only knows how to handle sRGB source color space. + // If we ended up here, then a color management node was required: + if (colorOutput->getType().back() == '3') { + return _mtlxTokens->color3; + } else { + return _mtlxTokens->color4; + } } +#endif + return {}; } void HdVP2Material::CompiledNetwork::_ApplyMtlxVP2Fixes( @@ -2749,34 +2812,48 @@ void HdVP2Material::CompiledNetwork::_ApplyMtlxVP2Fixes( for (const auto& cnxPair : inNode.inputConnections) { std::vector outCnx; for (const auto& c : cnxPair.second) { + TfToken cmNodeDefId, cmInputName, cmOutputName; +#ifdef HAS_COLOR_MANAGEMENT_SUPPORT_API + cmNodeDefId = _RequiresColorManagement( + inNode, + inNet.nodes.find(c.upstreamNode)->second, + inNet, + cmInputName, + cmOutputName); +#else TfToken colorManagementType = _RequiresColorManagement( inNode, inNet.nodes.find(c.upstreamNode)->second, inNet); - if (!colorManagementType.IsEmpty() && colorManagementCategory.empty()) { - // Query the user pref: - MString mayaWorkingColorSpace = MGlobal::executeCommandStringResult( - "colorManagementPrefs -q -renderingSpaceName"); - - auto categoryIt - = _mtlxColorCorrectCategoryMap.find(mayaWorkingColorSpace.asChar()); - if (categoryIt != _mtlxColorCorrectCategoryMap.end()) { - colorManagementCategory = categoryIt->second; + if (!colorManagementType.IsEmpty()) { + if (colorManagementCategory.empty()) { + // Query the user pref: + MString mayaWorkingColorSpace = MGlobal::executeCommandStringResult( + "colorManagementPrefs -q -renderingSpaceName"); + + auto categoryIt + = _mtlxColorCorrectCategoryMap.find(mayaWorkingColorSpace.asChar()); + if (categoryIt != _mtlxColorCorrectCategoryMap.end()) { + colorManagementCategory = categoryIt->second; + } } + cmNodeDefId + = TfToken(colorManagementCategory + colorManagementType.GetString()); + cmInputName = _mtlxTokens->in; + cmOutputName = _mtlxTokens->out; } - - if (colorManagementType.IsEmpty() || colorManagementCategory.empty()) { +#endif + if (cmNodeDefId.IsEmpty()) { outCnx.emplace_back(HdMaterialConnection2 { _nodePathMap[c.upstreamNode], c.upstreamOutputName }); } else { // Insert color management node: HdMaterialNode2 ccNode; - ccNode.nodeTypeId - = TfToken(colorManagementCategory + colorManagementType.GetString()); + ccNode.nodeTypeId = cmNodeDefId; HdMaterialConnection2 ccCnx { _nodePathMap[c.upstreamNode], c.upstreamOutputName }; - ccNode.inputConnections.insert({ _mtlxTokens->in, { ccCnx } }); + ccNode.inputConnections.insert({ cmInputName, { ccCnx } }); SdfPath ccPath = ngBase.AppendChild(TfToken("N" + std::to_string(nodeCounter++))); - outCnx.emplace_back(HdMaterialConnection2 { ccPath, _mtlxTokens->out }); + outCnx.emplace_back(HdMaterialConnection2 { ccPath, cmOutputName }); outNet.nodes.emplace(ccPath, std::move(ccNode)); } } @@ -2851,7 +2928,7 @@ MHWRender::MShaderInstance* HdVP2Material::CompiledNetwork::_CreateMaterialXShad _GetMaterialXData()._mtlxLibrary); #else std::set hdTextureNodes; - mx::StringMap mxHdTextureMap; // Mx-Hd texture name counterparts + mx::StringMap mxHdTextureMap; // Mx-Hd texture name counterparts mtlxDoc = HdMtlxCreateMtlxDocumentFromHdNetwork( fixedNetwork, *surfTerminal, // MaterialX HdNode diff --git a/test/lib/mayaUsd/render/vp2RenderDelegate/CMakeLists.txt b/test/lib/mayaUsd/render/vp2RenderDelegate/CMakeLists.txt index a37d7ab110..765d95281f 100644 --- a/test/lib/mayaUsd/render/vp2RenderDelegate/CMakeLists.txt +++ b/test/lib/mayaUsd/render/vp2RenderDelegate/CMakeLists.txt @@ -63,6 +63,7 @@ if (CMAKE_WANT_MATERIALX_BUILD) "LD_LIBRARY_PATH=${ADDITIONAL_LD_LIBRARY_PATH}" "MAYA_LIGHTAPI_VERSION=${MAYA_LIGHTAPI_VERSION}" "MATERIALX_VERSION=${MaterialX_VERSION}" + "MAYA_HAS_COLOR_MANAGEMENT_SUPPORT_API=${MAYA_HAS_COLOR_MANAGEMENT_SUPPORT_API}" # Maya uses a very old version of GLEW, so we need support for # pre-loading a newer version from elsewhere. diff --git a/test/lib/mayaUsd/render/vp2RenderDelegate/VP2RenderDelegateMaterialXTest/baseline/MayaSurfaces_flat_ocio_render.png b/test/lib/mayaUsd/render/vp2RenderDelegate/VP2RenderDelegateMaterialXTest/baseline/MayaSurfaces_flat_ocio_render.png new file mode 100644 index 0000000000000000000000000000000000000000..a18aeea8ca0a1a4dfae80222f87f756e642d0946 GIT binary patch literal 76681 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 H&qDtXE7{SL literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/vp2RenderDelegate/VP2RenderDelegateMaterialXTest/baseline/MayaSurfaces_ocio_render.png b/test/lib/mayaUsd/render/vp2RenderDelegate/VP2RenderDelegateMaterialXTest/baseline/MayaSurfaces_ocio_render.png new file mode 100644 index 0000000000000000000000000000000000000000..18c142596d38510bb916118c63af39ada18e41fc GIT binary patch literal 68174 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 literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/vp2RenderDelegate/VP2RenderDelegateMaterialXTest/baseline/OCIO_Integration.png b/test/lib/mayaUsd/render/vp2RenderDelegate/VP2RenderDelegateMaterialXTest/baseline/OCIO_Integration.png new file mode 100644 index 0000000000000000000000000000000000000000..88ce77e5e08bd12680b227bdbbb49952510f9f66 GIT binary patch literal 62768 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 literal 0 HcmV?d00001 diff --git a/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py b/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py index b978f2c57f..f9da0731c7 100644 --- a/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py +++ b/test/lib/mayaUsd/render/vp2RenderDelegate/testVP2RenderDelegateMaterialX.py @@ -87,16 +87,32 @@ def testMayaSurfaces(self): cmds.file(force=True, new=True) cmds.move(6, -6, 6, 'persp') cmds.rotate(60, 0, 45, 'persp') - self._StartTest('MayaSurfaces') + + # OCIO will clamp colors before converting them, giving slightly different + # results for the triplanar projection: + suffix = "" + if os.getenv('MAYA_HAS_COLOR_MANAGEMENT_SUPPORT_API', 'FALSE') == 'TRUE': + suffix = "_ocio" + + mayaUtils.loadPlugin("mayaUsdPlugin") + panel = mayaUtils.activeModelPanel() + cmds.modelEditor(panel, edit=True, displayTextures=True) + + testFile = testUtils.getTestScene("MaterialX", "MayaSurfaces.usda") + mayaUtils.createProxyFromFile(testFile) + globalSelection = ufe.GlobalSelection.get() + globalSelection.clear() + self.assertSnapshotClose('%s_render.png' % ("MayaSurfaces" + suffix)) # Flat shading requires V3 lighting API: if int(os.getenv("MAYA_LIGHTAPI_VERSION")) >= 3: panel = mayaUtils.activeModelPanel() cmds.modelEditor(panel, edit=True, displayLights="flat") - self._StartTest('MayaSurfaces_flat') + self.assertSnapshotClose('%s_render.png' % ('MayaSurfaces_flat' + suffix)) cmds.modelEditor(panel, edit=True, displayLights="default") - self._StartTest('MayaSurfaces_untextured', False) + cmds.modelEditor(panel, edit=True, displayTextures=False) + self.assertSnapshotClose('MayaSurfaces_untextured_render.png') def testResetToDefaultValues(self): """When deleting an authored attribute, make sure the shader reverts to the default unauthored value.""" @@ -232,6 +248,42 @@ def testMayaNodesExport(self): cmds.setAttr("hardwareRenderingGlobals.multiSampleEnable", True) + @unittest.skipUnless(os.getenv('MAYA_HAS_COLOR_MANAGEMENT_SUPPORT_API', 'FALSE') == 'TRUE', 'Test requires OCIO API in Maya SDK.') + 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") + cmds.colorManagementPrefs(edit=True, configFilePath=configFile) + + # Import the Maya data so we can compare: + mayaFile = testUtils.getTestScene("MaterialX", "color_management.ma") + cmds.file(mayaFile, i=True, type="mayaAscii") + + # And a few USD stages that have USD and MaterialX data in need of color management: + usdCases = (("USD", 0.51), ("MTLX", -0.51), ("MTLX_Raw", -1.02)) + for suffix, offset in usdCases: + testFile = testUtils.getTestScene("MaterialX", "color_management_{}.usda".format(suffix)) + proxyNode = mayaUtils.createProxyFromFile(testFile)[0] + + proxyXform = "|".join(proxyNode.split("|")[:-1]) + cmds.setAttr(proxyXform + ".translateZ", offset) + cmds.setAttr(proxyXform + ".scaleX", 0.5) + + # Position our camera: + cmds.setAttr("persp.translateX", 0) + cmds.setAttr("persp.translateY", 4) + cmds.setAttr("persp.translateZ", -0.25) + cmds.setAttr("persp.rotateX", -90) + cmds.setAttr("persp.rotateY", 0) + cmds.setAttr("persp.rotateZ", 0) + + # Turn on textured display and focus in on the subject + panel = mayaUtils.activeModelPanel() + cmds.modelEditor(panel, e=1, displayTextures=1) + + # Snapshot and assert similarity + self.assertSnapshotClose('OCIO_Integration.png') if __name__ == '__main__': fixturesUtils.runTests(globals()) diff --git a/test/testSamples/MaterialX/color_management.ma b/test/testSamples/MaterialX/color_management.ma new file mode 100644 index 0000000000..89191e8c7c --- /dev/null +++ b/test/testSamples/MaterialX/color_management.ma @@ -0,0 +1,776 @@ +//Maya ASCII 2025ff01 scene +//Name: color_management.ma +//Last modified: Tue, Jun 13, 2023 12:02:19 PM +//Codeset: 1252 +requires maya "2025ff01"; +requires -nodeType "mayaUsdLayerManager" -nodeType "usdPreviewSurface" -dataType "pxrUsdStageData" + "mayaUsdPlugin" "0.24.0"; +currentUnit -l centimeter -a degree -t film; +fileInfo "application" "maya"; +fileInfo "product" "Maya 2024"; +fileInfo "version" "Preview Release 145"; +fileInfo "cutIdentifier" "202306081536-000000"; +fileInfo "osv" "Windows 11 Pro v2009 (Build: 22621)"; +fileInfo "UUID" "4D41F00E-4F15-2799-1925-D9ADBADFFBCB"; +createNode transform -s -n "persp"; + rename -uid "AF02B90C-4B39-AECA-F999-A090C70FA9E5"; + setAttr ".v" no; + setAttr ".t" -type "double3" 0 7 0 ; + setAttr ".r" -type "double3" -90 0 0 ; +createNode camera -s -n "perspShape" -p "persp"; + rename -uid "2D2584B4-4037-7C13-6C83-D7BA9291CF6B"; + setAttr -k off ".v" no; + setAttr ".fl" 34.999999999999993; + setAttr ".coi" 7.6061802350769963; + setAttr ".imn" -type "string" "persp"; + setAttr ".den" -type "string" "persp_depth"; + setAttr ".man" -type "string" "persp_mask"; + setAttr ".hc" -type "string" "viewSet -p %camera"; +createNode transform -s -n "top"; + rename -uid "77DAF787-4D73-F8D2-EC5C-0698D68BADAE"; + setAttr ".v" no; + setAttr ".t" -type "double3" 0 1000.1 0 ; + setAttr ".r" -type "double3" -90 0 0 ; +createNode camera -s -n "topShape" -p "top"; + rename -uid "61F2192A-488B-C717-D9F5-8A83C53EA6B2"; + setAttr -k off ".v" no; + setAttr ".rnd" no; + setAttr ".coi" 1000.1; + setAttr ".ow" 30; + setAttr ".imn" -type "string" "top"; + setAttr ".den" -type "string" "top_depth"; + setAttr ".man" -type "string" "top_mask"; + setAttr ".hc" -type "string" "viewSet -t %camera"; + setAttr ".o" yes; +createNode transform -s -n "front"; + rename -uid "59850281-4E09-D027-B3E3-F8A0B7A1CD8A"; + setAttr ".v" no; + setAttr ".t" -type "double3" 0 0 1000.1 ; +createNode camera -s -n "frontShape" -p "front"; + rename -uid "C6EB0F69-48B3-635A-7A48-6DAD33C1E5D4"; + setAttr -k off ".v" no; + setAttr ".rnd" no; + setAttr ".coi" 1000.1; + setAttr ".ow" 30; + setAttr ".imn" -type "string" "front"; + setAttr ".den" -type "string" "front_depth"; + setAttr ".man" -type "string" "front_mask"; + setAttr ".hc" -type "string" "viewSet -f %camera"; + setAttr ".o" yes; +createNode transform -s -n "side"; + rename -uid "A0C3D175-449E-7B5B-D899-FF9B17C13E61"; + setAttr ".v" no; + setAttr ".t" -type "double3" 1000.1 0 0 ; + setAttr ".r" -type "double3" 0 90 0 ; +createNode camera -s -n "sideShape" -p "side"; + rename -uid "66235CFF-4444-AC8C-8342-11BCFC26C626"; + setAttr -k off ".v" no; + setAttr ".rnd" no; + setAttr ".coi" 1000.1; + setAttr ".ow" 30; + setAttr ".imn" -type "string" "side"; + setAttr ".den" -type "string" "side_depth"; + setAttr ".man" -type "string" "side_mask"; + setAttr ".hc" -type "string" "viewSet -s %camera"; + setAttr ".o" yes; +createNode transform -n "group1"; + rename -uid "1CB7CECE-45AB-888D-2BA4-DCAF8B3A8459"; + setAttr ".s" -type "double3" 0.5 1 1 ; +createNode transform -n "pPlane1" -p "group1"; + rename -uid "AE70271D-4BF6-3649-B0CF-9D869235C011"; + setAttr ".t" -type "double3" -3.03 0 0 ; +createNode mesh -n "pPlaneShape1" -p "pPlane1"; + rename -uid "C398501F-4DFE-B24A-0751-4D83FAB0961E"; + setAttr -k off ".v"; + setAttr ".vir" yes; + setAttr ".vif" yes; + setAttr ".uvst[0].uvsn" -type "string" "map1"; + setAttr ".cuvs" -type "string" "map1"; + setAttr ".dcc" -type "string" "Ambient+Diffuse"; + setAttr ".covm[0]" 0 1 1; + setAttr ".cdvm[0]" 0 1 1; +createNode transform -n "pPlane2" -p "group1"; + rename -uid "AB193516-44CA-7673-05AC-5B826E3434E4"; + setAttr ".t" -type "double3" -2.02 0 0 ; +createNode mesh -n "pPlaneShape2" -p "pPlane2"; + rename -uid "5B673453-4986-DCDA-59F6-2089997772C9"; + setAttr -k off ".v"; + setAttr ".vir" yes; + setAttr ".vif" yes; + setAttr -s 5 ".gtag"; + setAttr ".gtag[0].gtagnm" -type "string" "back"; + setAttr ".gtag[0].gtagcmp" -type "componentList" 1 "e[3]"; + setAttr ".gtag[1].gtagnm" -type "string" "front"; + setAttr ".gtag[1].gtagcmp" -type "componentList" 1 "e[0]"; + setAttr ".gtag[2].gtagnm" -type "string" "left"; + setAttr ".gtag[2].gtagcmp" -type "componentList" 1 "e[1]"; + setAttr ".gtag[3].gtagnm" -type "string" "right"; + setAttr ".gtag[3].gtagcmp" -type "componentList" 1 "e[2]"; + setAttr ".gtag[4].gtagnm" -type "string" "rim"; + setAttr ".gtag[4].gtagcmp" -type "componentList" 1 "e[0:3]"; + setAttr ".uvst[0].uvsn" -type "string" "map1"; + setAttr -s 4 ".uvst[0].uvsp[0:3]" -type "float2" 0 0 1 0 0 1 1 1; + setAttr ".cuvs" -type "string" "map1"; + setAttr ".dcc" -type "string" "Ambient+Diffuse"; + setAttr ".covm[0]" 0 1 1; + setAttr ".cdvm[0]" 0 1 1; + setAttr -s 4 ".vt[0:3]" -0.5 0 0.25 0.5 0 0.25 -0.5 0 -0.25 0.5 0 -0.25; + setAttr -s 4 ".ed[0:3]" 0 1 0 0 2 0 1 3 0 2 3 0; + setAttr -ch 4 ".fc[0]" -type "polyFaces" + f 4 0 2 -4 -2 + mu 0 4 0 1 3 2; + setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ; + setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ; + setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ; + setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ; +createNode transform -n "pPlane3" -p "group1"; + rename -uid "6D67039E-491D-A8F4-8B33-10B047DA05F4"; + setAttr ".t" -type "double3" -1.01 0 0 ; +createNode mesh -n "pPlaneShape3" -p "pPlane3"; + rename -uid "21B1062A-4F68-B2F8-C9A6-4A8DC5A70266"; + setAttr -k off ".v"; + setAttr ".vir" yes; + setAttr ".vif" yes; + setAttr -s 5 ".gtag"; + setAttr ".gtag[0].gtagnm" -type "string" "back"; + setAttr ".gtag[0].gtagcmp" -type "componentList" 1 "e[3]"; + setAttr ".gtag[1].gtagnm" -type "string" "front"; + setAttr ".gtag[1].gtagcmp" -type "componentList" 1 "e[0]"; + setAttr ".gtag[2].gtagnm" -type "string" "left"; + setAttr ".gtag[2].gtagcmp" -type "componentList" 1 "e[1]"; + setAttr ".gtag[3].gtagnm" -type "string" "right"; + setAttr ".gtag[3].gtagcmp" -type "componentList" 1 "e[2]"; + setAttr ".gtag[4].gtagnm" -type "string" "rim"; + setAttr ".gtag[4].gtagcmp" -type "componentList" 1 "e[0:3]"; + setAttr ".uvst[0].uvsn" -type "string" "map1"; + setAttr -s 4 ".uvst[0].uvsp[0:3]" -type "float2" 0 0 1 0 0 1 1 1; + setAttr ".cuvs" -type "string" "map1"; + setAttr ".dcc" -type "string" "Ambient+Diffuse"; + setAttr ".covm[0]" 0 1 1; + setAttr ".cdvm[0]" 0 1 1; + setAttr -s 4 ".vt[0:3]" -0.5 0 0.25 0.5 0 0.25 -0.5 0 -0.25 0.5 0 -0.25; + setAttr -s 4 ".ed[0:3]" 0 1 0 0 2 0 1 3 0 2 3 0; + setAttr -ch 4 ".fc[0]" -type "polyFaces" + f 4 0 2 -4 -2 + mu 0 4 0 1 3 2; + setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ; + setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ; + setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ; + setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ; +createNode transform -n "pPlane4" -p "group1"; + rename -uid "9FDC4121-416B-D43A-0E8B-B193BA6BCA60"; +createNode mesh -n "pPlaneShape4" -p "pPlane4"; + rename -uid "A6F1CD6D-48B1-E73C-7FC0-9CA8070F91EE"; + setAttr -k off ".v"; + setAttr ".vir" yes; + setAttr ".vif" yes; + setAttr -s 5 ".gtag"; + setAttr ".gtag[0].gtagnm" -type "string" "back"; + setAttr ".gtag[0].gtagcmp" -type "componentList" 1 "e[3]"; + setAttr ".gtag[1].gtagnm" -type "string" "front"; + setAttr ".gtag[1].gtagcmp" -type "componentList" 1 "e[0]"; + setAttr ".gtag[2].gtagnm" -type "string" "left"; + setAttr ".gtag[2].gtagcmp" -type "componentList" 1 "e[1]"; + setAttr ".gtag[3].gtagnm" -type "string" "right"; + setAttr ".gtag[3].gtagcmp" -type "componentList" 1 "e[2]"; + setAttr ".gtag[4].gtagnm" -type "string" "rim"; + setAttr ".gtag[4].gtagcmp" -type "componentList" 1 "e[0:3]"; + setAttr ".uvst[0].uvsn" -type "string" "map1"; + setAttr -s 4 ".uvst[0].uvsp[0:3]" -type "float2" 0 0 1 0 0 1 1 1; + setAttr ".cuvs" -type "string" "map1"; + setAttr ".dcc" -type "string" "Ambient+Diffuse"; + setAttr ".covm[0]" 0 1 1; + setAttr ".cdvm[0]" 0 1 1; + setAttr -s 4 ".vt[0:3]" -0.5 0 0.25 0.5 0 0.25 -0.5 0 -0.25 0.5 0 -0.25; + setAttr -s 4 ".ed[0:3]" 0 1 0 0 2 0 1 3 0 2 3 0; + setAttr -ch 4 ".fc[0]" -type "polyFaces" + f 4 0 2 -4 -2 + mu 0 4 0 1 3 2; + setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ; + setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ; + setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ; + setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ; +createNode transform -n "pPlane5" -p "group1"; + rename -uid "2627DB82-4A7D-6F22-16B2-5EA8068A2DFD"; + setAttr ".t" -type "double3" 1.01 0 0 ; +createNode mesh -n "pPlaneShape5" -p "pPlane5"; + rename -uid "3EA41FF5-4133-144E-50E6-7CB82291854B"; + setAttr -k off ".v"; + setAttr ".vir" yes; + setAttr ".vif" yes; + setAttr -s 5 ".gtag"; + setAttr ".gtag[0].gtagnm" -type "string" "back"; + setAttr ".gtag[0].gtagcmp" -type "componentList" 1 "e[3]"; + setAttr ".gtag[1].gtagnm" -type "string" "front"; + setAttr ".gtag[1].gtagcmp" -type "componentList" 1 "e[0]"; + setAttr ".gtag[2].gtagnm" -type "string" "left"; + setAttr ".gtag[2].gtagcmp" -type "componentList" 1 "e[1]"; + setAttr ".gtag[3].gtagnm" -type "string" "right"; + setAttr ".gtag[3].gtagcmp" -type "componentList" 1 "e[2]"; + setAttr ".gtag[4].gtagnm" -type "string" "rim"; + setAttr ".gtag[4].gtagcmp" -type "componentList" 1 "e[0:3]"; + setAttr ".uvst[0].uvsn" -type "string" "map1"; + setAttr -s 4 ".uvst[0].uvsp[0:3]" -type "float2" 0 0 1 0 0 1 1 1; + setAttr ".cuvs" -type "string" "map1"; + setAttr ".dcc" -type "string" "Ambient+Diffuse"; + setAttr ".covm[0]" 0 1 1; + setAttr ".cdvm[0]" 0 1 1; + setAttr -s 4 ".vt[0:3]" -0.5 0 0.25 0.5 0 0.25 -0.5 0 -0.25 0.5 0 -0.25; + setAttr -s 4 ".ed[0:3]" 0 1 0 0 2 0 1 3 0 2 3 0; + setAttr -ch 4 ".fc[0]" -type "polyFaces" + f 4 0 2 -4 -2 + mu 0 4 0 1 3 2; + setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ; + setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ; + setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ; + setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ; +createNode transform -n "pPlane6" -p "group1"; + rename -uid "5AB53EC0-4AD6-BB1F-9066-23951B5E2A83"; + setAttr ".t" -type "double3" 2.02 0 0 ; +createNode mesh -n "pPlaneShape6" -p "pPlane6"; + rename -uid "CC781739-4C03-B969-350A-979349A56060"; + setAttr -k off ".v"; + setAttr ".vir" yes; + setAttr ".vif" yes; + setAttr -s 5 ".gtag"; + setAttr ".gtag[0].gtagnm" -type "string" "back"; + setAttr ".gtag[0].gtagcmp" -type "componentList" 1 "e[3]"; + setAttr ".gtag[1].gtagnm" -type "string" "front"; + setAttr ".gtag[1].gtagcmp" -type "componentList" 1 "e[0]"; + setAttr ".gtag[2].gtagnm" -type "string" "left"; + setAttr ".gtag[2].gtagcmp" -type "componentList" 1 "e[1]"; + setAttr ".gtag[3].gtagnm" -type "string" "right"; + setAttr ".gtag[3].gtagcmp" -type "componentList" 1 "e[2]"; + setAttr ".gtag[4].gtagnm" -type "string" "rim"; + setAttr ".gtag[4].gtagcmp" -type "componentList" 1 "e[0:3]"; + setAttr ".uvst[0].uvsn" -type "string" "map1"; + setAttr -s 4 ".uvst[0].uvsp[0:3]" -type "float2" 0 0 1 0 0 1 1 1; + setAttr ".cuvs" -type "string" "map1"; + setAttr ".dcc" -type "string" "Ambient+Diffuse"; + setAttr ".covm[0]" 0 1 1; + setAttr ".cdvm[0]" 0 1 1; + setAttr -s 4 ".vt[0:3]" -0.5 0 0.25 0.5 0 0.25 -0.5 0 -0.25 0.5 0 -0.25; + setAttr -s 4 ".ed[0:3]" 0 1 0 0 2 0 1 3 0 2 3 0; + setAttr -ch 4 ".fc[0]" -type "polyFaces" + f 4 0 2 -4 -2 + mu 0 4 0 1 3 2; + setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ; + setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ; + setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ; + setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ; +createNode transform -n "pPlane7" -p "group1"; + rename -uid "7369C83F-4088-B57A-3AEB-52A262DF2692"; + setAttr ".t" -type "double3" 3.03 0 0 ; +createNode mesh -n "pPlaneShape7" -p "pPlane7"; + rename -uid "11E83C77-406B-2983-B8A2-5983379C99DA"; + setAttr -k off ".v"; + setAttr ".vir" yes; + setAttr ".vif" yes; + setAttr -s 5 ".gtag"; + setAttr ".gtag[0].gtagnm" -type "string" "back"; + setAttr ".gtag[0].gtagcmp" -type "componentList" 1 "e[3]"; + setAttr ".gtag[1].gtagnm" -type "string" "front"; + setAttr ".gtag[1].gtagcmp" -type "componentList" 1 "e[0]"; + setAttr ".gtag[2].gtagnm" -type "string" "left"; + setAttr ".gtag[2].gtagcmp" -type "componentList" 1 "e[1]"; + setAttr ".gtag[3].gtagnm" -type "string" "right"; + setAttr ".gtag[3].gtagcmp" -type "componentList" 1 "e[2]"; + setAttr ".gtag[4].gtagnm" -type "string" "rim"; + setAttr ".gtag[4].gtagcmp" -type "componentList" 1 "e[0:3]"; + setAttr ".uvst[0].uvsn" -type "string" "map1"; + setAttr -s 4 ".uvst[0].uvsp[0:3]" -type "float2" 0 0 1 0 0 1 1 1; + setAttr ".cuvs" -type "string" "map1"; + setAttr ".dcc" -type "string" "Ambient+Diffuse"; + setAttr ".covm[0]" 0 1 1; + setAttr ".cdvm[0]" 0 1 1; + setAttr -s 4 ".vt[0:3]" -0.5 0 0.25 0.5 0 0.25 -0.5 0 -0.25 0.5 0 -0.25; + setAttr -s 4 ".ed[0:3]" 0 1 0 0 2 0 1 3 0 2 3 0; + setAttr -ch 4 ".fc[0]" -type "polyFaces" + f 4 0 2 -4 -2 + mu 0 4 0 1 3 2; + setAttr ".cd" -type "dataPolyComponent" Index_Data Edge 0 ; + setAttr ".cvd" -type "dataPolyComponent" Index_Data Vertex 0 ; + setAttr ".pd[0]" -type "dataPolyComponent" Index_Data UV 0 ; + setAttr ".hfd" -type "dataPolyComponent" Index_Data Face 0 ; +createNode lightLinker -s -n "lightLinker1"; + rename -uid "B4B8E36A-46A7-C141-37D7-DA9612789DFD"; + setAttr -s 9 ".lnk"; + setAttr -s 9 ".slnk"; +createNode shapeEditorManager -n "shapeEditorManager"; + rename -uid "634C62CB-4341-B675-E3F6-13A93911FC48"; +createNode poseInterpolatorManager -n "poseInterpolatorManager"; + rename -uid "BADCF7EC-4A1F-49B5-3676-08B9456C86F9"; +createNode displayLayerManager -n "layerManager"; + rename -uid "DDD1C4AF-4FEE-AC27-CB67-F49404781F29"; +createNode displayLayer -n "defaultLayer"; + rename -uid "4B810EDD-4655-6320-E162-5D908D7C4221"; + setAttr ".ufem" -type "stringArray" 0 ; +createNode renderLayerManager -n "renderLayerManager"; + rename -uid "DF64D0EF-4CEB-AA5D-86C2-42BEB5C67CC4"; +createNode renderLayer -n "defaultRenderLayer"; + rename -uid "F1510015-4BEC-B339-E3E8-039BDF8C97D8"; + setAttr ".g" yes; +createNode polyPlane -n "polyPlane1"; + rename -uid "AD9534EE-4BAA-4941-3F48-98B5A9E6C98D"; + setAttr ".h" 0.5; + setAttr ".sw" 1; + setAttr ".sh" 1; +createNode usdPreviewSurface -n "usdPreviewSurface1"; + rename -uid "9342D9E0-42A5-19B7-4A8F-2DBCA1B94B69"; + setAttr ".dc" -type "float3" 0 0 0 ; + setAttr ".rgh" 1; +createNode shadingEngine -n "usdPreviewSurface1SG"; + rename -uid "7D051271-4E87-4E23-8220-EBBE3281A910"; + setAttr ".ihi" 0; + setAttr ".ro" yes; +createNode materialInfo -n "materialInfo4"; + rename -uid "D8F9CB79-4106-53AD-ACF8-58BF815256A7"; +createNode file -n "file1"; + rename -uid "3C1B4A2E-4377-B1B7-D93C-63A98ACC11BA"; + setAttr ".ftn" -type "string" "textures/color_palette_ACEScg.exr"; + setAttr ".cs" -type "string" "ACEScg"; + setAttr ".ifr" yes; +createNode place2dTexture -n "place2dTexture1"; + rename -uid "0F29EE4E-47D1-6342-E53A-A99B9ACAE487"; +createNode script -n "uiConfigurationScriptNode"; + rename -uid "68047047-4A90-041E-6D86-78BA4414120E"; + setAttr ".b" -type "string" ( + "// Maya Mel UI Configuration File.\n//\n// This script is machine generated. Edit at your own risk.\n//\n//\n\nglobal string $gMainPane;\nif (`paneLayout -exists $gMainPane`) {\n\n\tglobal int $gUseScenePanelConfig;\n\tint $useSceneConfig = $gUseScenePanelConfig;\n\tint $nodeEditorPanelVisible = stringArrayContains(\"nodeEditorPanel1\", `getPanel -vis`);\n\tint $nodeEditorWorkspaceControlOpen = (`workspaceControl -exists nodeEditorPanel1Window` && `workspaceControl -q -visible nodeEditorPanel1Window`);\n\tint $menusOkayInPanels = `optionVar -q allowMenusInPanels`;\n\tint $nVisPanes = `paneLayout -q -nvp $gMainPane`;\n\tint $nPanes = 0;\n\tstring $editorName;\n\tstring $panelName;\n\tstring $itemFilterName;\n\tstring $panelConfig;\n\n\t//\n\t// get current state of the UI\n\t//\n\tsceneUIReplacement -update $gMainPane;\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Top View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Top View\")) -mbv $menusOkayInPanels $panelName;\n" + + "\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"|top\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n" + + " -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n" + + " -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -bluePencil 1\n -greasePencils 0\n -excludeObjectPreset \"All\" \n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n" + + "\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Side View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Side View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"|side\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n" + + " -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n" + + " -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -bluePencil 1\n -greasePencils 0\n -excludeObjectPreset \"All\" \n" + + " -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Front View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Front View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"|front\" \n -useInteractiveMode 0\n -displayLights \"default\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n" + + " -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 0\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n" + + " -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n" + + " -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -bluePencil 1\n -greasePencils 0\n -excludeObjectPreset \"All\" \n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"modelPanel\" (localizedPanelLabel(\"Persp View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tmodelPanel -edit -l (localizedPanelLabel(\"Persp View\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n modelEditor -e \n" + + " -camera \"|persp\" \n -useInteractiveMode 0\n -displayLights \"all\" \n -displayAppearance \"smoothShaded\" \n -activeOnly 0\n -ignorePanZoom 0\n -wireframeOnShaded 0\n -headsUpDisplay 1\n -holdOuts 1\n -selectionHiliteDisplay 1\n -useDefaultMaterial 0\n -bufferMode \"double\" \n -twoSidedLighting 0\n -backfaceCulling 0\n -xray 0\n -jointXray 0\n -activeComponentsXray 0\n -displayTextures 1\n -smoothWireframe 0\n -lineWidth 1\n -textureAnisotropic 0\n -textureHilight 1\n -textureSampling 2\n -textureDisplay \"modulate\" \n -textureMaxSize 32768\n -fogging 0\n -fogSource \"fragment\" \n -fogMode \"linear\" \n -fogStart 0\n -fogEnd 100\n -fogDensity 0.1\n -fogColor 0.5 0.5 0.5 1 \n -depthOfFieldPreview 1\n" + + " -maxConstantTransparency 1\n -rendererName \"vp2Renderer\" \n -objectFilterShowInHUD 1\n -isFiltered 0\n -colorResolution 256 256 \n -bumpResolution 512 512 \n -textureCompression 0\n -transparencyAlgorithm \"frontAndBackCull\" \n -transpInShadows 0\n -cullingOverride \"none\" \n -lowQualityLighting 0\n -maximumNumHardwareLights 1\n -occlusionCulling 0\n -shadingModel 0\n -useBaseRenderer 0\n -useReducedRenderer 0\n -smallObjectCulling 0\n -smallObjectThreshold -1 \n -interactiveDisableShadows 0\n -interactiveBackFaceCull 0\n -sortTransparent 1\n -controllers 1\n -nurbsCurves 1\n -nurbsSurfaces 1\n -polymeshes 1\n -subdivSurfaces 1\n -planes 1\n -lights 1\n -cameras 1\n -controlVertices 1\n -hulls 1\n -grid 1\n" + + " -imagePlane 1\n -joints 1\n -ikHandles 1\n -deformers 1\n -dynamics 1\n -particleInstancers 1\n -fluids 1\n -hairSystems 1\n -follicles 1\n -nCloths 1\n -nParticles 1\n -nRigids 1\n -dynamicConstraints 1\n -locators 1\n -manipulators 1\n -pluginShapes 1\n -dimensions 1\n -handles 1\n -pivots 1\n -textures 1\n -strokes 1\n -motionTrails 1\n -clipGhosts 1\n -bluePencil 1\n -greasePencils 0\n -excludeObjectPreset \"All\" \n -shadows 0\n -captureSequenceNumber -1\n -width 1959\n -height 1071\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n modelEditor -e \n -pluginObjects \"gpuCacheDisplayFilter\" 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n" + + "\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"outlinerPanel\" (localizedPanelLabel(\"ToggledOutliner\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\toutlinerPanel -edit -l (localizedPanelLabel(\"ToggledOutliner\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n outlinerEditor -e \n -showShapes 0\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 1\n -showReferenceMembers 1\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -autoExpandAllAnimatedShapes 1\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 1\n" + + " -ignoreDagHierarchy 0\n -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -isSet 0\n -isSetMember 0\n -showUfeItems 1\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n" + + " -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n -renderFilterIndex 0\n -selectionOrder \"chronological\" \n -expandAttribute 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"outlinerPanel\" (localizedPanelLabel(\"Outliner\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\toutlinerPanel -edit -l (localizedPanelLabel(\"Outliner\")) -mbv $menusOkayInPanels $panelName;\n\t\t$editorName = $panelName;\n outlinerEditor -e \n -showShapes 0\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n" + + " -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -autoExpandAllAnimatedShapes 1\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 1\n -ignoreDagHierarchy 0\n -expandConnections 0\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 0\n -highlightActive 1\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"defaultSetFilter\" \n -showSetMembers 1\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -showUfeItems 1\n -displayMode \"DAG\" \n -expandObjects 0\n" + + " -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 0\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"graphEditor\" (localizedPanelLabel(\"Graph Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Graph Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n" + + " -showShapes 1\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 1\n -autoExpandAllAnimatedShapes 1\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 0\n -ignoreDagHierarchy 0\n -expandConnections 1\n -showUpstreamCurves 1\n -showUnitlessCurves 1\n -showCompounds 0\n -showLeafs 1\n -showNumericAttrsOnly 1\n -highlightActive 0\n" + + " -autoSelectNewObjects 1\n -doNotSelectNewObjects 0\n -dropIsParent 1\n -transmitFilters 1\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -showUfeItems 1\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 1\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n" + + " -renderFilterVisible 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"GraphEd\");\n animCurveEditor -e \n -displayValues 0\n -snapTime \"integer\" \n -snapValue \"none\" \n -showPlayRangeShades \"on\" \n -lockPlayRangeShades \"off\" \n -smoothness \"fine\" \n -resultSamples 1\n -resultScreenSamples 0\n -resultUpdate \"delayed\" \n -showUpstreamCurves 1\n -keyMinScale 1\n -stackedCurvesMin -1\n -stackedCurvesMax 1\n -stackedCurvesSpace 0.2\n -preSelectionHighlight 1\n -limitToSelectedCurves 0\n -constrainDrag 0\n -valueLinesToggle 0\n -highlightAffectedCurves 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dopeSheetPanel\" (localizedPanelLabel(\"Dope Sheet\")) `;\n" + + "\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Dope Sheet\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showAssignedMaterials 0\n -showTimeEditor 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -organizeByClip 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -autoExpandAllAnimatedShapes 1\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 0\n -showParentContainers 0\n -showContainerContents 0\n -ignoreDagHierarchy 0\n" + + " -expandConnections 1\n -showUpstreamCurves 1\n -showUnitlessCurves 0\n -showCompounds 1\n -showLeafs 1\n -showNumericAttrsOnly 1\n -highlightActive 0\n -autoSelectNewObjects 0\n -doNotSelectNewObjects 1\n -dropIsParent 1\n -transmitFilters 0\n -setFilter \"0\" \n -showSetMembers 0\n -allowMultiSelection 1\n -alwaysToggleSelect 0\n -directSelect 0\n -showUfeItems 1\n -displayMode \"DAG\" \n -expandObjects 0\n -setsIgnoreFilters 1\n -containersIgnoreFilters 0\n -editAttrName 0\n -showAttrValues 0\n -highlightSecondary 0\n -showUVAttrsOnly 0\n -showTextureNodesOnly 0\n -attrAlphaOrder \"default\" \n -animLayerFilterOptions \"allAffecting\" \n" + + " -sortOrder \"none\" \n -longNames 0\n -niceNames 1\n -showNamespace 1\n -showPinIcons 0\n -mapMotionTrails 1\n -ignoreHiddenAttribute 0\n -ignoreOutlinerColor 0\n -renderFilterVisible 0\n $editorName;\n\n\t\t\t$editorName = ($panelName+\"DopeSheetEd\");\n dopeSheetEditor -e \n -displayValues 0\n -snapTime \"integer\" \n -snapValue \"none\" \n -outliner \"dopeSheetPanel1OutlineEd\" \n -showSummary 1\n -showScene 0\n -hierarchyBelow 0\n -showTicks 1\n -selectionWindow 0 0 0 0 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"timeEditorPanel\" (localizedPanelLabel(\"Time Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Time Editor\")) -mbv $menusOkayInPanels $panelName;\n" + + "\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"clipEditorPanel\" (localizedPanelLabel(\"Trax Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Trax Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = clipEditorNameFromPanel($panelName);\n clipEditor -e \n -displayValues 0\n -snapTime \"none\" \n -snapValue \"none\" \n -initialized 0\n -manageSequencer 0 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"sequenceEditorPanel\" (localizedPanelLabel(\"Camera Sequencer\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Camera Sequencer\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = sequenceEditorNameFromPanel($panelName);\n" + + " clipEditor -e \n -displayValues 0\n -snapTime \"none\" \n -snapValue \"none\" \n -initialized 0\n -manageSequencer 1 \n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"hyperGraphPanel\" (localizedPanelLabel(\"Hypergraph Hierarchy\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Hypergraph Hierarchy\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"HyperGraphEd\");\n hyperGraph -e \n -graphLayoutStyle \"hierarchicalLayout\" \n -orientation \"horiz\" \n -mergeConnections 0\n -zoom 1\n -animateTransition 0\n -showRelationships 1\n -showShapes 0\n -showDeformers 0\n -showExpressions 0\n -showConstraints 0\n" + + " -showConnectionFromSelected 0\n -showConnectionToSelected 0\n -showConstraintLabels 0\n -showUnderworld 0\n -showInvisible 0\n -transitionFrames 1\n -opaqueContainers 0\n -freeform 0\n -imagePosition 0 0 \n -imageScale 1\n -imageEnabled 0\n -graphType \"DAG\" \n -heatMapDisplay 0\n -updateSelection 1\n -updateNodeAdded 1\n -useDrawOverrideColor 0\n -limitGraphTraversal -1\n -range 0 0 \n -iconSize \"smallIcons\" \n -showCachedConnections 0\n $editorName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"hyperShadePanel\" (localizedPanelLabel(\"Hypershade\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Hypershade\")) -mbv $menusOkayInPanels $panelName;\n" + + "\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"visorPanel\" (localizedPanelLabel(\"Visor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Visor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"nodeEditorPanel\" (localizedPanelLabel(\"Node Editor\")) `;\n\tif ($nodeEditorPanelVisible || $nodeEditorWorkspaceControlOpen) {\n\t\tif (\"\" == $panelName) {\n\t\t\tif ($useSceneConfig) {\n\t\t\t\t$panelName = `scriptedPanel -unParent -type \"nodeEditorPanel\" -l (localizedPanelLabel(\"Node Editor\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = ($panelName+\"NodeEditorEd\");\n nodeEditor -e \n -allAttributes 0\n -allNodes 0\n -autoSizeNodes 1\n -consistentNameSize 1\n -createNodeCommand \"nodeEdCreateNodeCommand\" \n" + + " -connectNodeOnCreation 0\n -connectOnDrop 0\n -copyConnectionsOnPaste 0\n -connectionStyle \"bezier\" \n -defaultPinnedState 0\n -additiveGraphingMode 0\n -connectedGraphingMode 1\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n -gridSnap 0\n -gridVisibility 1\n -crosshairOnEdgeDragging 0\n -popupMenuScript \"nodeEdBuildPanelMenus\" \n -showNamespace 1\n -showShapes 1\n -showSGShapes 0\n -showTransforms 1\n -useAssets 1\n -syncedSelection 1\n -extendToShapes 1\n -showUnitConversions 0\n -editorMode \"default\" \n -hasWatchpoint 0\n $editorName;\n\t\t\t}\n\t\t} else {\n\t\t\t$label = `panel -q -label $panelName`;\n" + + "\t\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Node Editor\")) -mbv $menusOkayInPanels $panelName;\n\n\t\t\t$editorName = ($panelName+\"NodeEditorEd\");\n nodeEditor -e \n -allAttributes 0\n -allNodes 0\n -autoSizeNodes 1\n -consistentNameSize 1\n -createNodeCommand \"nodeEdCreateNodeCommand\" \n -connectNodeOnCreation 0\n -connectOnDrop 0\n -copyConnectionsOnPaste 0\n -connectionStyle \"bezier\" \n -defaultPinnedState 0\n -additiveGraphingMode 0\n -connectedGraphingMode 1\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n -gridSnap 0\n -gridVisibility 1\n -crosshairOnEdgeDragging 0\n -popupMenuScript \"nodeEdBuildPanelMenus\" \n -showNamespace 1\n" + + " -showShapes 1\n -showSGShapes 0\n -showTransforms 1\n -useAssets 1\n -syncedSelection 1\n -extendToShapes 1\n -showUnitConversions 0\n -editorMode \"default\" \n -hasWatchpoint 0\n $editorName;\n\t\t\tif (!$useSceneConfig) {\n\t\t\t\tpanel -e -l $label $panelName;\n\t\t\t}\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"createNodePanel\" (localizedPanelLabel(\"Create Node\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Create Node\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"polyTexturePlacementPanel\" (localizedPanelLabel(\"UV Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"UV Editor\")) -mbv $menusOkayInPanels $panelName;\n" + + "\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"renderWindowPanel\" (localizedPanelLabel(\"Render View\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Render View\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"shapePanel\" (localizedPanelLabel(\"Shape Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tshapePanel -edit -l (localizedPanelLabel(\"Shape Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextPanel \"posePanel\" (localizedPanelLabel(\"Pose Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tposePanel -edit -l (localizedPanelLabel(\"Pose Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n" + + "\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dynRelEdPanel\" (localizedPanelLabel(\"Dynamic Relationships\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Dynamic Relationships\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"relationshipPanel\" (localizedPanelLabel(\"Relationship Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Relationship Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"referenceEditorPanel\" (localizedPanelLabel(\"Reference Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Reference Editor\")) -mbv $menusOkayInPanels $panelName;\n" + + "\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"dynPaintScriptedPanelType\" (localizedPanelLabel(\"Paint Effects\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Paint Effects\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"scriptEditorPanel\" (localizedPanelLabel(\"Script Editor\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Script Editor\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"profilerPanel\" (localizedPanelLabel(\"Profiler Tool\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Profiler Tool\")) -mbv $menusOkayInPanels $panelName;\n" + + "\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\t$panelName = `sceneUIReplacement -getNextScriptedPanel \"contentBrowserPanel\" (localizedPanelLabel(\"Content Browser\")) `;\n\tif (\"\" != $panelName) {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Content Browser\")) -mbv $menusOkayInPanels $panelName;\n\t\tif (!$useSceneConfig) {\n\t\t\tpanel -e -l $label $panelName;\n\t\t}\n\t}\n\n\n\tif ($useSceneConfig) {\n string $configName = `getPanel -cwl (localizedPanelLabel(\"Current Layout\"))`;\n if (\"\" != $configName) {\n\t\t\tpanelConfiguration -edit -label (localizedPanelLabel(\"Current Layout\")) \n\t\t\t\t-userCreated false\n\t\t\t\t-defaultImage \"\"\n\t\t\t\t-image \"\"\n\t\t\t\t-sc false\n\t\t\t\t-configString \"global string $gMainPane; paneLayout -e -cn \\\"single\\\" -ps 1 100 100 $gMainPane;\"\n\t\t\t\t-removeAllPanels\n\t\t\t\t-ap false\n\t\t\t\t\t(localizedPanelLabel(\"Persp View\")) \n\t\t\t\t\t\"modelPanel\"\n" + + "\t\t\t\t\t\"$panelName = `modelPanel -unParent -l (localizedPanelLabel(\\\"Persp View\\\")) -mbv $menusOkayInPanels `;\\n$editorName = $panelName;\\nmodelEditor -e \\n -cam `findStartUpCamera persp` \\n -useInteractiveMode 0\\n -displayLights \\\"all\\\" \\n -displayAppearance \\\"smoothShaded\\\" \\n -activeOnly 0\\n -ignorePanZoom 0\\n -wireframeOnShaded 0\\n -headsUpDisplay 1\\n -holdOuts 1\\n -selectionHiliteDisplay 1\\n -useDefaultMaterial 0\\n -bufferMode \\\"double\\\" \\n -twoSidedLighting 0\\n -backfaceCulling 0\\n -xray 0\\n -jointXray 0\\n -activeComponentsXray 0\\n -displayTextures 1\\n -smoothWireframe 0\\n -lineWidth 1\\n -textureAnisotropic 0\\n -textureHilight 1\\n -textureSampling 2\\n -textureDisplay \\\"modulate\\\" \\n -textureMaxSize 32768\\n -fogging 0\\n -fogSource \\\"fragment\\\" \\n -fogMode \\\"linear\\\" \\n -fogStart 0\\n -fogEnd 100\\n -fogDensity 0.1\\n -fogColor 0.5 0.5 0.5 1 \\n -depthOfFieldPreview 1\\n -maxConstantTransparency 1\\n -rendererName \\\"vp2Renderer\\\" \\n -objectFilterShowInHUD 1\\n -isFiltered 0\\n -colorResolution 256 256 \\n -bumpResolution 512 512 \\n -textureCompression 0\\n -transparencyAlgorithm \\\"frontAndBackCull\\\" \\n -transpInShadows 0\\n -cullingOverride \\\"none\\\" \\n -lowQualityLighting 0\\n -maximumNumHardwareLights 1\\n -occlusionCulling 0\\n -shadingModel 0\\n -useBaseRenderer 0\\n -useReducedRenderer 0\\n -smallObjectCulling 0\\n -smallObjectThreshold -1 \\n -interactiveDisableShadows 0\\n -interactiveBackFaceCull 0\\n -sortTransparent 1\\n -controllers 1\\n -nurbsCurves 1\\n -nurbsSurfaces 1\\n -polymeshes 1\\n -subdivSurfaces 1\\n -planes 1\\n -lights 1\\n -cameras 1\\n -controlVertices 1\\n -hulls 1\\n -grid 1\\n -imagePlane 1\\n -joints 1\\n -ikHandles 1\\n -deformers 1\\n -dynamics 1\\n -particleInstancers 1\\n -fluids 1\\n -hairSystems 1\\n -follicles 1\\n -nCloths 1\\n -nParticles 1\\n -nRigids 1\\n -dynamicConstraints 1\\n -locators 1\\n -manipulators 1\\n -pluginShapes 1\\n -dimensions 1\\n -handles 1\\n -pivots 1\\n -textures 1\\n -strokes 1\\n -motionTrails 1\\n -clipGhosts 1\\n -bluePencil 1\\n -greasePencils 0\\n -excludeObjectPreset \\\"All\\\" \\n -shadows 0\\n -captureSequenceNumber -1\\n -width 1959\\n -height 1071\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $editorName;\\nmodelEditor -e \\n -pluginObjects \\\"gpuCacheDisplayFilter\\\" 1 \\n $editorName\"\n" + + "\t\t\t\t\t\"modelPanel -edit -l (localizedPanelLabel(\\\"Persp View\\\")) -mbv $menusOkayInPanels $panelName;\\n$editorName = $panelName;\\nmodelEditor -e \\n -cam `findStartUpCamera persp` \\n -useInteractiveMode 0\\n -displayLights \\\"all\\\" \\n -displayAppearance \\\"smoothShaded\\\" \\n -activeOnly 0\\n -ignorePanZoom 0\\n -wireframeOnShaded 0\\n -headsUpDisplay 1\\n -holdOuts 1\\n -selectionHiliteDisplay 1\\n -useDefaultMaterial 0\\n -bufferMode \\\"double\\\" \\n -twoSidedLighting 0\\n -backfaceCulling 0\\n -xray 0\\n -jointXray 0\\n -activeComponentsXray 0\\n -displayTextures 1\\n -smoothWireframe 0\\n -lineWidth 1\\n -textureAnisotropic 0\\n -textureHilight 1\\n -textureSampling 2\\n -textureDisplay \\\"modulate\\\" \\n -textureMaxSize 32768\\n -fogging 0\\n -fogSource \\\"fragment\\\" \\n -fogMode \\\"linear\\\" \\n -fogStart 0\\n -fogEnd 100\\n -fogDensity 0.1\\n -fogColor 0.5 0.5 0.5 1 \\n -depthOfFieldPreview 1\\n -maxConstantTransparency 1\\n -rendererName \\\"vp2Renderer\\\" \\n -objectFilterShowInHUD 1\\n -isFiltered 0\\n -colorResolution 256 256 \\n -bumpResolution 512 512 \\n -textureCompression 0\\n -transparencyAlgorithm \\\"frontAndBackCull\\\" \\n -transpInShadows 0\\n -cullingOverride \\\"none\\\" \\n -lowQualityLighting 0\\n -maximumNumHardwareLights 1\\n -occlusionCulling 0\\n -shadingModel 0\\n -useBaseRenderer 0\\n -useReducedRenderer 0\\n -smallObjectCulling 0\\n -smallObjectThreshold -1 \\n -interactiveDisableShadows 0\\n -interactiveBackFaceCull 0\\n -sortTransparent 1\\n -controllers 1\\n -nurbsCurves 1\\n -nurbsSurfaces 1\\n -polymeshes 1\\n -subdivSurfaces 1\\n -planes 1\\n -lights 1\\n -cameras 1\\n -controlVertices 1\\n -hulls 1\\n -grid 1\\n -imagePlane 1\\n -joints 1\\n -ikHandles 1\\n -deformers 1\\n -dynamics 1\\n -particleInstancers 1\\n -fluids 1\\n -hairSystems 1\\n -follicles 1\\n -nCloths 1\\n -nParticles 1\\n -nRigids 1\\n -dynamicConstraints 1\\n -locators 1\\n -manipulators 1\\n -pluginShapes 1\\n -dimensions 1\\n -handles 1\\n -pivots 1\\n -textures 1\\n -strokes 1\\n -motionTrails 1\\n -clipGhosts 1\\n -bluePencil 1\\n -greasePencils 0\\n -excludeObjectPreset \\\"All\\\" \\n -shadows 0\\n -captureSequenceNumber -1\\n -width 1959\\n -height 1071\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $editorName;\\nmodelEditor -e \\n -pluginObjects \\\"gpuCacheDisplayFilter\\\" 1 \\n $editorName\"\n" + + "\t\t\t\t$configName;\n\n setNamedPanelLayout (localizedPanelLabel(\"Current Layout\"));\n }\n\n panelHistory -e -clear mainPanelHistory;\n sceneUIReplacement -clear;\n\t}\n\n\ngrid -spacing 5 -size 12 -divisions 5 -displayAxes yes -displayGridLines yes -displayDivisionLines yes -displayPerspectiveLabels no -displayOrthographicLabels no -displayAxesBold yes -perspectiveLabelPosition axis -orthographicLabelPosition edge;\nviewManip -drawCompass 0 -compassAngle 0 -frontParameters \"\" -homeParameters \"\" -selectionLockParameters \"\";\n}\n"); + setAttr ".st" 3; +createNode script -n "sceneConfigurationScriptNode"; + rename -uid "36F29056-4447-1B86-3019-82B8C8CDAE03"; + setAttr ".b" -type "string" "playbackOptions -min 1 -max 120 -ast 1 -aet 200 "; + setAttr ".st" 6; +createNode usdPreviewSurface -n "usdPreviewSurface9"; + rename -uid "F39BA394-4A1A-7309-634A-17BED475B92C"; + setAttr ".dc" -type "float3" 0 0 0 ; + setAttr ".rgh" 1; +createNode shadingEngine -n "usdPreviewSurface9SG"; + rename -uid "A98C963E-4812-3FE2-2657-CD8F831BA540"; + setAttr ".ihi" 0; + setAttr ".ro" yes; +createNode materialInfo -n "materialInfo12"; + rename -uid "CA00F731-4B85-1834-D234-71BC09CB5989"; +createNode file -n "file8"; + rename -uid "F0B64C3B-4EAB-8454-D749-719D325AB4E6"; + setAttr ".ftn" -type "string" "textures/color_palette_ADX10.exr"; + setAttr ".cs" -type "string" "ADX10"; + setAttr ".ifr" yes; +createNode place2dTexture -n "place2dTexture8"; + rename -uid "C5CB1772-45E1-78C2-C5CB-E5AFE8739E79"; +createNode usdPreviewSurface -n "usdPreviewSurface10"; + rename -uid "5CDF8EDE-443B-48BA-C2AA-62B4844B3C24"; + setAttr ".dc" -type "float3" 0 0 0 ; + setAttr ".rgh" 1; +createNode shadingEngine -n "usdPreviewSurface10SG"; + rename -uid "25D10B78-45E9-FB87-3691-AFB76395A665"; + setAttr ".ihi" 0; + setAttr ".ro" yes; +createNode materialInfo -n "materialInfo13"; + rename -uid "76F44121-4198-F1F4-3159-7586A03E8FC8"; +createNode file -n "file9"; + rename -uid "BF6FFCA2-47CF-9DD6-7166-02AC67F52996"; + setAttr ".ftn" -type "string" "textures/color_palette_ADX16.exr"; + setAttr ".cs" -type "string" "ADX16"; + setAttr ".ifr" yes; +createNode place2dTexture -n "place2dTexture9"; + rename -uid "B1801A8E-4C22-564A-806F-1F8764E0D6B9"; +createNode usdPreviewSurface -n "usdPreviewSurface11"; + rename -uid "57C166B5-4602-39EC-B452-CABD03BB920E"; + setAttr ".dc" -type "float3" 0 0 0 ; + setAttr ".rgh" 1; +createNode shadingEngine -n "usdPreviewSurface11SG"; + rename -uid "76BDF54B-4549-92F6-2B66-BF9E663BE864"; + setAttr ".ihi" 0; + setAttr ".ro" yes; +createNode materialInfo -n "materialInfo14"; + rename -uid "8479F37D-4E03-D41F-7963-B1A85136F91B"; +createNode file -n "file10"; + rename -uid "E9740FE7-481C-2469-BC07-3D860667B601"; + setAttr ".ftn" -type "string" "textures/color_palette_arri_logc4.exr"; + setAttr ".cs" -type "string" "ARRI LogC4 - Curve"; + setAttr ".ifr" yes; +createNode place2dTexture -n "place2dTexture10"; + rename -uid "62653A4C-4760-6549-07A8-479165051C4D"; +createNode usdPreviewSurface -n "usdPreviewSurface12"; + rename -uid "526849AE-47B4-48CC-B6C6-9CB0BF02DE9D"; + setAttr ".dc" -type "float3" 0 0 0 ; + setAttr ".rgh" 1; +createNode shadingEngine -n "usdPreviewSurface12SG"; + rename -uid "BF1ED8C1-4263-E786-CD9D-36B2F581386F"; + setAttr ".ihi" 0; + setAttr ".ro" yes; +createNode materialInfo -n "materialInfo15"; + rename -uid "18F6E64A-4437-C257-C611-FA9930A27D7E"; +createNode file -n "file11"; + rename -uid "3433D3DA-4CB0-A705-48AA-D1BA761ECD22"; + setAttr ".ftn" -type "string" "textures/color_palette_g24_rec709.exr"; + setAttr ".cs" -type "string" "Gamma 2.4 Rec.709 - Texture"; + setAttr ".ifr" yes; +createNode place2dTexture -n "place2dTexture11"; + rename -uid "2714C4FC-415A-953A-4007-B8A753F3FA54"; +createNode usdPreviewSurface -n "usdPreviewSurface13"; + rename -uid "CF2375D1-4BE2-ABDE-BC87-A9942877B5A0"; + setAttr ".dc" -type "float3" 0 0 0 ; + setAttr ".rgh" 1; +createNode shadingEngine -n "usdPreviewSurface13SG"; + rename -uid "AD576090-44CA-DF14-97AD-85A3CFD260EB"; + setAttr ".ihi" 0; + setAttr ".ro" yes; +createNode materialInfo -n "materialInfo16"; + rename -uid "80F6D45D-4528-E101-AB6E-3DB7BECA4A46"; +createNode file -n "file12"; + rename -uid "8A85BC9F-413A-4DA6-EF89-16A9EBCDB150"; + setAttr ".ftn" -type "string" "textures/color_palette_lin_p3d65.exr"; + setAttr ".cs" -type "string" "Linear P3-D65"; + setAttr ".ifr" yes; +createNode place2dTexture -n "place2dTexture12"; + rename -uid "3A229B0F-4AD1-2E7F-3F2F-528501135DCD"; +createNode usdPreviewSurface -n "usdPreviewSurface14"; + rename -uid "A1F7563A-427D-FC69-1078-6B865CAE3AFD"; + setAttr ".dc" -type "float3" 0 0 0 ; + setAttr ".rgh" 1; +createNode shadingEngine -n "usdPreviewSurface14SG"; + rename -uid "3850DC86-49F6-8FF6-F030-78B8E178FF8D"; + setAttr ".ihi" 0; + setAttr ".ro" yes; +createNode materialInfo -n "materialInfo17"; + rename -uid "EF6D8285-4443-A586-3F65-0E936E120FEA"; +createNode file -n "file13"; + rename -uid "A7168056-4A5C-F31F-FD7D-15938476D499"; + setAttr ".ftn" -type "string" "textures/color_palette_srgb_texture.exr"; + setAttr ".cs" -type "string" "sRGB - Texture"; + setAttr ".ifr" yes; +createNode place2dTexture -n "place2dTexture13"; + rename -uid "1168DEC9-4339-9E46-E173-868069B88D8D"; +createNode nodeGraphEditorInfo -n "hyperShadePrimaryNodeEditorSavedTabsInfo"; + rename -uid "5E31733A-46C9-121B-BEAC-9CAFF553DE2C"; + setAttr ".tgi[0].tn" -type "string" "Untitled_1"; + setAttr ".tgi[0].vl" -type "double2" -44.047617297323995 -617.85711830570688 ; + setAttr ".tgi[0].vh" -type "double2" 604.76188073082676 44.047617297323995 ; +createNode mayaUsdLayerManager -n "mayaUsdLayerManager1"; + rename -uid "B4E2810A-473B-7E1F-DDBD-59A57F181A7A"; + setAttr ".sst" -type "string" "|WIP|WIPShape"; +select -ne :time1; + setAttr ".o" 1; + setAttr ".unw" 1; +select -ne :hardwareRenderingGlobals; + setAttr ".otfna" -type "stringArray" 22 "NURBS Curves" "NURBS Surfaces" "Polygons" "Subdiv Surface" "Particles" "Particle Instance" "Fluids" "Strokes" "Image Planes" "UI" "Lights" "Cameras" "Locators" "Joints" "IK Handles" "Deformers" "Motion Trails" "Components" "Hair Systems" "Follicles" "Misc. UI" "Ornaments" ; + setAttr ".otfva" -type "Int32Array" 22 0 1 1 1 1 1 + 1 1 1 0 0 0 0 0 0 0 0 0 + 0 0 0 0 ; + setAttr ".fprt" yes; + setAttr ".rtfm" 1; +select -ne :renderPartition; + setAttr -s 9 ".st"; +select -ne :renderGlobalsList1; +select -ne :defaultShaderList1; + setAttr -s 12 ".s"; +select -ne :postProcessList1; + setAttr -s 2 ".p"; +select -ne :defaultRenderUtilityList1; + setAttr -s 7 ".u"; +select -ne :defaultRenderingList1; +select -ne :defaultTextureList1; + setAttr -s 7 ".tx"; +select -ne :standardSurface1; + setAttr ".bc" -type "float3" 0.40000001 0.40000001 0.40000001 ; + setAttr ".sr" 0.5; +select -ne :initialShadingGroup; + setAttr ".ro" yes; +select -ne :initialParticleSE; + setAttr ".ro" yes; +select -ne :defaultRenderGlobals; + addAttr -ci true -h true -sn "dss" -ln "defaultSurfaceShader" -dt "string"; + setAttr ".ren" -type "string" "mayaHardware2"; + setAttr ".dss" -type "string" "standardSurface1"; +select -ne :defaultResolution; + setAttr ".pa" 1; +select -ne :hardwareRenderGlobals; + setAttr ".ctrs" 256; + setAttr ".btrs" 512; +connectAttr "polyPlane1.out" "pPlaneShape1.i"; +relationship "link" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message"; +relationship "link" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message"; +relationship "link" ":lightLinker1" "usdPreviewSurface1SG.message" ":defaultLightSet.message"; +relationship "link" ":lightLinker1" "usdPreviewSurface9SG.message" ":defaultLightSet.message"; +relationship "link" ":lightLinker1" "usdPreviewSurface10SG.message" ":defaultLightSet.message"; +relationship "link" ":lightLinker1" "usdPreviewSurface11SG.message" ":defaultLightSet.message"; +relationship "link" ":lightLinker1" "usdPreviewSurface12SG.message" ":defaultLightSet.message"; +relationship "link" ":lightLinker1" "usdPreviewSurface13SG.message" ":defaultLightSet.message"; +relationship "link" ":lightLinker1" "usdPreviewSurface14SG.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" "usdPreviewSurface1SG.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" "usdPreviewSurface9SG.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" "usdPreviewSurface10SG.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" "usdPreviewSurface11SG.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" "usdPreviewSurface12SG.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" "usdPreviewSurface13SG.message" ":defaultLightSet.message"; +relationship "shadowLink" ":lightLinker1" "usdPreviewSurface14SG.message" ":defaultLightSet.message"; +connectAttr "layerManager.dli[0]" "defaultLayer.id"; +connectAttr "renderLayerManager.rlmi[0]" "defaultRenderLayer.rlid"; +connectAttr "file1.oc" "usdPreviewSurface1.ec"; +connectAttr "usdPreviewSurface1.oc" "usdPreviewSurface1SG.ss"; +connectAttr "pPlaneShape1.iog" "usdPreviewSurface1SG.dsm" -na; +connectAttr "usdPreviewSurface1SG.msg" "materialInfo4.sg"; +connectAttr "usdPreviewSurface1.msg" "materialInfo4.m"; +connectAttr "usdPreviewSurface1.msg" "materialInfo4.t" -na; +connectAttr ":defaultColorMgtGlobals.cme" "file1.cme"; +connectAttr ":defaultColorMgtGlobals.cfe" "file1.cmcf"; +connectAttr ":defaultColorMgtGlobals.cfp" "file1.cmcp"; +connectAttr ":defaultColorMgtGlobals.wsn" "file1.ws"; +connectAttr "place2dTexture1.c" "file1.c"; +connectAttr "place2dTexture1.tf" "file1.tf"; +connectAttr "place2dTexture1.rf" "file1.rf"; +connectAttr "place2dTexture1.mu" "file1.mu"; +connectAttr "place2dTexture1.mv" "file1.mv"; +connectAttr "place2dTexture1.s" "file1.s"; +connectAttr "place2dTexture1.wu" "file1.wu"; +connectAttr "place2dTexture1.wv" "file1.wv"; +connectAttr "place2dTexture1.re" "file1.re"; +connectAttr "place2dTexture1.of" "file1.of"; +connectAttr "place2dTexture1.r" "file1.ro"; +connectAttr "place2dTexture1.n" "file1.n"; +connectAttr "place2dTexture1.vt1" "file1.vt1"; +connectAttr "place2dTexture1.vt2" "file1.vt2"; +connectAttr "place2dTexture1.vt3" "file1.vt3"; +connectAttr "place2dTexture1.vc1" "file1.vc1"; +connectAttr "place2dTexture1.o" "file1.uv"; +connectAttr "place2dTexture1.ofs" "file1.fs"; +connectAttr "file8.oc" "usdPreviewSurface9.ec"; +connectAttr "usdPreviewSurface9.oc" "usdPreviewSurface9SG.ss"; +connectAttr "pPlaneShape2.iog" "usdPreviewSurface9SG.dsm" -na; +connectAttr "usdPreviewSurface9SG.msg" "materialInfo12.sg"; +connectAttr "usdPreviewSurface9.msg" "materialInfo12.m"; +connectAttr "usdPreviewSurface9.msg" "materialInfo12.t" -na; +connectAttr ":defaultColorMgtGlobals.cme" "file8.cme"; +connectAttr ":defaultColorMgtGlobals.cfe" "file8.cmcf"; +connectAttr ":defaultColorMgtGlobals.cfp" "file8.cmcp"; +connectAttr ":defaultColorMgtGlobals.wsn" "file8.ws"; +connectAttr "place2dTexture8.c" "file8.c"; +connectAttr "place2dTexture8.tf" "file8.tf"; +connectAttr "place2dTexture8.rf" "file8.rf"; +connectAttr "place2dTexture8.mu" "file8.mu"; +connectAttr "place2dTexture8.mv" "file8.mv"; +connectAttr "place2dTexture8.s" "file8.s"; +connectAttr "place2dTexture8.wu" "file8.wu"; +connectAttr "place2dTexture8.wv" "file8.wv"; +connectAttr "place2dTexture8.re" "file8.re"; +connectAttr "place2dTexture8.of" "file8.of"; +connectAttr "place2dTexture8.r" "file8.ro"; +connectAttr "place2dTexture8.n" "file8.n"; +connectAttr "place2dTexture8.vt1" "file8.vt1"; +connectAttr "place2dTexture8.vt2" "file8.vt2"; +connectAttr "place2dTexture8.vt3" "file8.vt3"; +connectAttr "place2dTexture8.vc1" "file8.vc1"; +connectAttr "place2dTexture8.o" "file8.uv"; +connectAttr "place2dTexture8.ofs" "file8.fs"; +connectAttr "file9.oc" "usdPreviewSurface10.ec"; +connectAttr "usdPreviewSurface10.oc" "usdPreviewSurface10SG.ss"; +connectAttr "pPlaneShape3.iog" "usdPreviewSurface10SG.dsm" -na; +connectAttr "usdPreviewSurface10SG.msg" "materialInfo13.sg"; +connectAttr "usdPreviewSurface10.msg" "materialInfo13.m"; +connectAttr "usdPreviewSurface10.msg" "materialInfo13.t" -na; +connectAttr ":defaultColorMgtGlobals.cme" "file9.cme"; +connectAttr ":defaultColorMgtGlobals.cfe" "file9.cmcf"; +connectAttr ":defaultColorMgtGlobals.cfp" "file9.cmcp"; +connectAttr ":defaultColorMgtGlobals.wsn" "file9.ws"; +connectAttr "place2dTexture9.c" "file9.c"; +connectAttr "place2dTexture9.tf" "file9.tf"; +connectAttr "place2dTexture9.rf" "file9.rf"; +connectAttr "place2dTexture9.mu" "file9.mu"; +connectAttr "place2dTexture9.mv" "file9.mv"; +connectAttr "place2dTexture9.s" "file9.s"; +connectAttr "place2dTexture9.wu" "file9.wu"; +connectAttr "place2dTexture9.wv" "file9.wv"; +connectAttr "place2dTexture9.re" "file9.re"; +connectAttr "place2dTexture9.of" "file9.of"; +connectAttr "place2dTexture9.r" "file9.ro"; +connectAttr "place2dTexture9.n" "file9.n"; +connectAttr "place2dTexture9.vt1" "file9.vt1"; +connectAttr "place2dTexture9.vt2" "file9.vt2"; +connectAttr "place2dTexture9.vt3" "file9.vt3"; +connectAttr "place2dTexture9.vc1" "file9.vc1"; +connectAttr "place2dTexture9.o" "file9.uv"; +connectAttr "place2dTexture9.ofs" "file9.fs"; +connectAttr "file10.oc" "usdPreviewSurface11.ec"; +connectAttr "usdPreviewSurface11.oc" "usdPreviewSurface11SG.ss"; +connectAttr "pPlaneShape4.iog" "usdPreviewSurface11SG.dsm" -na; +connectAttr "usdPreviewSurface11SG.msg" "materialInfo14.sg"; +connectAttr "usdPreviewSurface11.msg" "materialInfo14.m"; +connectAttr "usdPreviewSurface11.msg" "materialInfo14.t" -na; +connectAttr ":defaultColorMgtGlobals.cme" "file10.cme"; +connectAttr ":defaultColorMgtGlobals.cfe" "file10.cmcf"; +connectAttr ":defaultColorMgtGlobals.cfp" "file10.cmcp"; +connectAttr ":defaultColorMgtGlobals.wsn" "file10.ws"; +connectAttr "place2dTexture10.c" "file10.c"; +connectAttr "place2dTexture10.tf" "file10.tf"; +connectAttr "place2dTexture10.rf" "file10.rf"; +connectAttr "place2dTexture10.mu" "file10.mu"; +connectAttr "place2dTexture10.mv" "file10.mv"; +connectAttr "place2dTexture10.s" "file10.s"; +connectAttr "place2dTexture10.wu" "file10.wu"; +connectAttr "place2dTexture10.wv" "file10.wv"; +connectAttr "place2dTexture10.re" "file10.re"; +connectAttr "place2dTexture10.of" "file10.of"; +connectAttr "place2dTexture10.r" "file10.ro"; +connectAttr "place2dTexture10.n" "file10.n"; +connectAttr "place2dTexture10.vt1" "file10.vt1"; +connectAttr "place2dTexture10.vt2" "file10.vt2"; +connectAttr "place2dTexture10.vt3" "file10.vt3"; +connectAttr "place2dTexture10.vc1" "file10.vc1"; +connectAttr "place2dTexture10.o" "file10.uv"; +connectAttr "place2dTexture10.ofs" "file10.fs"; +connectAttr "file11.oc" "usdPreviewSurface12.ec"; +connectAttr "usdPreviewSurface12.oc" "usdPreviewSurface12SG.ss"; +connectAttr "pPlaneShape5.iog" "usdPreviewSurface12SG.dsm" -na; +connectAttr "usdPreviewSurface12SG.msg" "materialInfo15.sg"; +connectAttr "usdPreviewSurface12.msg" "materialInfo15.m"; +connectAttr "usdPreviewSurface12.msg" "materialInfo15.t" -na; +connectAttr ":defaultColorMgtGlobals.cme" "file11.cme"; +connectAttr ":defaultColorMgtGlobals.cfe" "file11.cmcf"; +connectAttr ":defaultColorMgtGlobals.cfp" "file11.cmcp"; +connectAttr ":defaultColorMgtGlobals.wsn" "file11.ws"; +connectAttr "place2dTexture11.c" "file11.c"; +connectAttr "place2dTexture11.tf" "file11.tf"; +connectAttr "place2dTexture11.rf" "file11.rf"; +connectAttr "place2dTexture11.mu" "file11.mu"; +connectAttr "place2dTexture11.mv" "file11.mv"; +connectAttr "place2dTexture11.s" "file11.s"; +connectAttr "place2dTexture11.wu" "file11.wu"; +connectAttr "place2dTexture11.wv" "file11.wv"; +connectAttr "place2dTexture11.re" "file11.re"; +connectAttr "place2dTexture11.of" "file11.of"; +connectAttr "place2dTexture11.r" "file11.ro"; +connectAttr "place2dTexture11.n" "file11.n"; +connectAttr "place2dTexture11.vt1" "file11.vt1"; +connectAttr "place2dTexture11.vt2" "file11.vt2"; +connectAttr "place2dTexture11.vt3" "file11.vt3"; +connectAttr "place2dTexture11.vc1" "file11.vc1"; +connectAttr "place2dTexture11.o" "file11.uv"; +connectAttr "place2dTexture11.ofs" "file11.fs"; +connectAttr "file12.oc" "usdPreviewSurface13.ec"; +connectAttr "usdPreviewSurface13.oc" "usdPreviewSurface13SG.ss"; +connectAttr "pPlaneShape6.iog" "usdPreviewSurface13SG.dsm" -na; +connectAttr "usdPreviewSurface13SG.msg" "materialInfo16.sg"; +connectAttr "usdPreviewSurface13.msg" "materialInfo16.m"; +connectAttr "usdPreviewSurface13.msg" "materialInfo16.t" -na; +connectAttr ":defaultColorMgtGlobals.cme" "file12.cme"; +connectAttr ":defaultColorMgtGlobals.cfe" "file12.cmcf"; +connectAttr ":defaultColorMgtGlobals.cfp" "file12.cmcp"; +connectAttr ":defaultColorMgtGlobals.wsn" "file12.ws"; +connectAttr "place2dTexture12.c" "file12.c"; +connectAttr "place2dTexture12.tf" "file12.tf"; +connectAttr "place2dTexture12.rf" "file12.rf"; +connectAttr "place2dTexture12.mu" "file12.mu"; +connectAttr "place2dTexture12.mv" "file12.mv"; +connectAttr "place2dTexture12.s" "file12.s"; +connectAttr "place2dTexture12.wu" "file12.wu"; +connectAttr "place2dTexture12.wv" "file12.wv"; +connectAttr "place2dTexture12.re" "file12.re"; +connectAttr "place2dTexture12.of" "file12.of"; +connectAttr "place2dTexture12.r" "file12.ro"; +connectAttr "place2dTexture12.n" "file12.n"; +connectAttr "place2dTexture12.vt1" "file12.vt1"; +connectAttr "place2dTexture12.vt2" "file12.vt2"; +connectAttr "place2dTexture12.vt3" "file12.vt3"; +connectAttr "place2dTexture12.vc1" "file12.vc1"; +connectAttr "place2dTexture12.o" "file12.uv"; +connectAttr "place2dTexture12.ofs" "file12.fs"; +connectAttr "file13.oc" "usdPreviewSurface14.ec"; +connectAttr "usdPreviewSurface14.oc" "usdPreviewSurface14SG.ss"; +connectAttr "pPlaneShape7.iog" "usdPreviewSurface14SG.dsm" -na; +connectAttr "usdPreviewSurface14SG.msg" "materialInfo17.sg"; +connectAttr "usdPreviewSurface14.msg" "materialInfo17.m"; +connectAttr "usdPreviewSurface14.msg" "materialInfo17.t" -na; +connectAttr ":defaultColorMgtGlobals.cme" "file13.cme"; +connectAttr ":defaultColorMgtGlobals.cfe" "file13.cmcf"; +connectAttr ":defaultColorMgtGlobals.cfp" "file13.cmcp"; +connectAttr ":defaultColorMgtGlobals.wsn" "file13.ws"; +connectAttr "place2dTexture13.c" "file13.c"; +connectAttr "place2dTexture13.tf" "file13.tf"; +connectAttr "place2dTexture13.rf" "file13.rf"; +connectAttr "place2dTexture13.mu" "file13.mu"; +connectAttr "place2dTexture13.mv" "file13.mv"; +connectAttr "place2dTexture13.s" "file13.s"; +connectAttr "place2dTexture13.wu" "file13.wu"; +connectAttr "place2dTexture13.wv" "file13.wv"; +connectAttr "place2dTexture13.re" "file13.re"; +connectAttr "place2dTexture13.of" "file13.of"; +connectAttr "place2dTexture13.r" "file13.ro"; +connectAttr "place2dTexture13.n" "file13.n"; +connectAttr "place2dTexture13.vt1" "file13.vt1"; +connectAttr "place2dTexture13.vt2" "file13.vt2"; +connectAttr "place2dTexture13.vt3" "file13.vt3"; +connectAttr "place2dTexture13.vc1" "file13.vc1"; +connectAttr "place2dTexture13.o" "file13.uv"; +connectAttr "place2dTexture13.ofs" "file13.fs"; +connectAttr "usdPreviewSurface1SG.pa" ":renderPartition.st" -na; +connectAttr "usdPreviewSurface9SG.pa" ":renderPartition.st" -na; +connectAttr "usdPreviewSurface10SG.pa" ":renderPartition.st" -na; +connectAttr "usdPreviewSurface11SG.pa" ":renderPartition.st" -na; +connectAttr "usdPreviewSurface12SG.pa" ":renderPartition.st" -na; +connectAttr "usdPreviewSurface13SG.pa" ":renderPartition.st" -na; +connectAttr "usdPreviewSurface14SG.pa" ":renderPartition.st" -na; +connectAttr "usdPreviewSurface1.msg" ":defaultShaderList1.s" -na; +connectAttr "usdPreviewSurface9.msg" ":defaultShaderList1.s" -na; +connectAttr "usdPreviewSurface10.msg" ":defaultShaderList1.s" -na; +connectAttr "usdPreviewSurface11.msg" ":defaultShaderList1.s" -na; +connectAttr "usdPreviewSurface12.msg" ":defaultShaderList1.s" -na; +connectAttr "usdPreviewSurface13.msg" ":defaultShaderList1.s" -na; +connectAttr "usdPreviewSurface14.msg" ":defaultShaderList1.s" -na; +connectAttr "place2dTexture1.msg" ":defaultRenderUtilityList1.u" -na; +connectAttr "place2dTexture8.msg" ":defaultRenderUtilityList1.u" -na; +connectAttr "place2dTexture9.msg" ":defaultRenderUtilityList1.u" -na; +connectAttr "place2dTexture10.msg" ":defaultRenderUtilityList1.u" -na; +connectAttr "place2dTexture11.msg" ":defaultRenderUtilityList1.u" -na; +connectAttr "place2dTexture12.msg" ":defaultRenderUtilityList1.u" -na; +connectAttr "place2dTexture13.msg" ":defaultRenderUtilityList1.u" -na; +connectAttr "defaultRenderLayer.msg" ":defaultRenderingList1.r" -na; +connectAttr "file1.msg" ":defaultTextureList1.tx" -na; +connectAttr "file8.msg" ":defaultTextureList1.tx" -na; +connectAttr "file9.msg" ":defaultTextureList1.tx" -na; +connectAttr "file10.msg" ":defaultTextureList1.tx" -na; +connectAttr "file11.msg" ":defaultTextureList1.tx" -na; +connectAttr "file12.msg" ":defaultTextureList1.tx" -na; +connectAttr "file13.msg" ":defaultTextureList1.tx" -na; +// End of color_management.ma diff --git a/test/testSamples/MaterialX/color_management_MTLX.usda b/test/testSamples/MaterialX/color_management_MTLX.usda new file mode 100644 index 0000000000..a044bd4472 --- /dev/null +++ b/test/testSamples/MaterialX/color_management_MTLX.usda @@ -0,0 +1,600 @@ +#usda 1.0 +( + defaultPrim = "pPlane1" + metersPerUnit = 0.01 + upAxis = "Y" +) + +def Mesh "pPlane1" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (-3.03, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface1SG" + { + string inputs:file1:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface1" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface1SG" + { + string inputs:file1:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file1" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_ACEScg.exr@ ( + colorSpace = "ACEScg" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "file1_MayafileTexture" + { + uniform token info:id = "MayaND_fileTexture_color4" + string inputs:colorSpace = "ACEScg" + color4f inputs:defaultColor = (0.5, 0.5, 0.5, 1) + color4f inputs:inColor.connect = + color4f inputs:uvCoord.connect = + color4f outputs:outColor + } + + def Shader "MayaConvert_file1_MayafileTexture" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture1" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane2" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (-2.02, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface9SG" + { + string inputs:file8:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface9" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface9SG" + { + string inputs:file8:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file8" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_ADX10.exr@ ( + colorSpace = "ADX10" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "file8_MayafileTexture" + { + uniform token info:id = "MayaND_fileTexture_color4" + string inputs:colorSpace = "ADX10" + color4f inputs:defaultColor = (0.5, 0.5, 0.5, 1) + color4f inputs:inColor.connect = + color4f inputs:uvCoord.connect = + color4f outputs:outColor + } + + def Shader "MayaConvert_file8_MayafileTexture" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture8" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane3" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (-1.01, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface10SG" + { + string inputs:file9:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface10" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface10SG" + { + string inputs:file9:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file9" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_ADX16.exr@ ( + colorSpace = "ADX16" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "file9_MayafileTexture" + { + uniform token info:id = "MayaND_fileTexture_color4" + string inputs:colorSpace = "ADX16" + color4f inputs:defaultColor = (0.5, 0.5, 0.5, 1) + color4f inputs:inColor.connect = + color4f inputs:uvCoord.connect = + color4f outputs:outColor + } + + def Shader "MayaConvert_file9_MayafileTexture" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture9" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane4" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + + def Scope "mtl" + { + def Material "usdPreviewSurface11SG" + { + string inputs:file10:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface11" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface11SG" + { + string inputs:file10:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file10" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_arri_logc4.exr@ ( + colorSpace = "ARRI LogC4 - Curve" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "file10_MayafileTexture" + { + uniform token info:id = "MayaND_fileTexture_color4" + string inputs:colorSpace = "ARRI LogC4 - Curve" + color4f inputs:defaultColor = (0.5, 0.5, 0.5, 1) + color4f inputs:inColor.connect = + color4f inputs:uvCoord.connect = + color4f outputs:outColor + } + + def Shader "MayaConvert_file10_MayafileTexture" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture10" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane5" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (1.01, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface12SG" + { + string inputs:file11:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface12" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface12SG" + { + string inputs:file11:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file11" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_g24_rec709.exr@ ( + colorSpace = "Gamma 2.4 Rec.709 - Texture" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "file11_MayafileTexture" + { + uniform token info:id = "MayaND_fileTexture_color4" + string inputs:colorSpace = "Gamma 2.4 Rec.709 - Texture" + color4f inputs:defaultColor = (0.5, 0.5, 0.5, 1) + color4f inputs:inColor.connect = + color4f inputs:uvCoord.connect = + color4f outputs:outColor + } + + def Shader "MayaConvert_file11_MayafileTexture" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture11" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane6" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (2.02, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface13SG" + { + string inputs:file12:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface13" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface13SG" + { + string inputs:file12:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file12" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_lin_p3d65.exr@ ( + colorSpace = "Linear P3-D65" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "file12_MayafileTexture" + { + uniform token info:id = "MayaND_fileTexture_color4" + string inputs:colorSpace = "Linear P3-D65" + color4f inputs:defaultColor = (0.5, 0.5, 0.5, 1) + color4f inputs:inColor.connect = + color4f inputs:uvCoord.connect = + color4f outputs:outColor + } + + def Shader "MayaConvert_file12_MayafileTexture" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture12" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane7" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (3.03, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface14SG" + { + string inputs:file13:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface14" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface14SG" + { + string inputs:file13:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file13" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_srgb_texture.exr@ ( + colorSpace = "sRGB - Texture" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "file13_MayafileTexture" + { + uniform token info:id = "MayaND_fileTexture_color4" + string inputs:colorSpace = "sRGB - Texture" + color4f inputs:defaultColor = (0.5, 0.5, 0.5, 1) + color4f inputs:inColor.connect = + color4f inputs:uvCoord.connect = + color4f outputs:outColor + } + + def Shader "MayaConvert_file13_MayafileTexture" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture13" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + diff --git a/test/testSamples/MaterialX/color_management_MTLX_Raw.usda b/test/testSamples/MaterialX/color_management_MTLX_Raw.usda new file mode 100644 index 0000000000..d77a5561bb --- /dev/null +++ b/test/testSamples/MaterialX/color_management_MTLX_Raw.usda @@ -0,0 +1,530 @@ +#usda 1.0 +( + defaultPrim = "pPlane1" + metersPerUnit = 0.01 + upAxis = "Y" +) + +def Mesh "pPlane1" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (-3.03, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface1SG" + { + string inputs:file1:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface1" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface1SG" + { + string inputs:file1:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file1" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_ACEScg.exr@ ( + colorSpace = "ACEScg" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "MayaConvert_file1" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture1" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane2" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (-2.02, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface9SG" + { + string inputs:file8:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface9" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface9SG" + { + string inputs:file8:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file8" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_ADX10.exr@ ( + colorSpace = "ADX10" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "MayaConvert_file8" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture8" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane3" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (-1.01, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface10SG" + { + string inputs:file9:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface10" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface10SG" + { + string inputs:file9:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file9" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_ADX16.exr@ ( + colorSpace = "ADX16" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "MayaConvert_file9" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture9" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane4" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + + def Scope "mtl" + { + def Material "usdPreviewSurface11SG" + { + string inputs:file10:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface11" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface11SG" + { + string inputs:file10:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file10" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_arri_logc4.exr@ ( + colorSpace = "ARRI LogC4 - Curve" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "MayaConvert_file10" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture10" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane5" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (1.01, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface12SG" + { + string inputs:file11:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface12" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface12SG" + { + string inputs:file11:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file11" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_g24_rec709.exr@ ( + colorSpace = "Gamma 2.4 Rec.709 - Texture" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "MayaConvert_file11" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture11" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane6" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (2.02, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface13SG" + { + string inputs:file12:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface13" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface13SG" + { + string inputs:file12:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file12" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_lin_p3d65.exr@ ( + colorSpace = "Linear P3-D65" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "MayaConvert_file12" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture12" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + +def Mesh "pPlane7" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (3.03, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface14SG" + { + string inputs:file13:varname = "st" + token outputs:mtlx:surface.connect = + + def Shader "usdPreviewSurface14" + { + uniform token info:id = "ND_UsdPreviewSurface_surfaceshader" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:out + } + + def NodeGraph "MayaNG_usdPreviewSurface14SG" + { + string inputs:file13:varname.connect = + color3f outputs:emissiveColor.connect = + + def Shader "file13" + { + uniform token info:id = "ND_image_color4" + asset inputs:file = @textures/color_palette_srgb_texture.exr@ ( + colorSpace = "sRGB - Texture" + ) + string inputs:filtertype = "cubic" + float2 inputs:texcoord.connect = + string inputs:uaddressmode = "periodic" + string inputs:vaddressmode = "periodic" + color4f outputs:out + } + + def Shader "MayaConvert_file13" + { + uniform token info:id = "ND_convert_color4_color3" + color4f inputs:in.connect = + color3f outputs:out + } + + def Shader "place2dTexture13" + { + uniform token info:id = "ND_geompropvalue_vector2" + string inputs:geomprop.connect = + float2 outputs:out + } + } + } + } +} + diff --git a/test/testSamples/MaterialX/color_management_USD.usda b/test/testSamples/MaterialX/color_management_USD.usda new file mode 100644 index 0000000000..139e8a1bf4 --- /dev/null +++ b/test/testSamples/MaterialX/color_management_USD.usda @@ -0,0 +1,435 @@ +#usda 1.0 +( + defaultPrim = "pPlane1" + metersPerUnit = 0.01 + upAxis = "Y" +) + +def Mesh "pPlane1" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (-3.03, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface1SG" + { + string inputs:file1:varname = "st" + token outputs:surface.connect = + + def Shader "usdPreviewSurface1" + { + uniform token info:id = "UsdPreviewSurface" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:displacement + token outputs:surface + } + + def Shader "file1" + { + uniform token info:id = "UsdUVTexture" + float4 inputs:fallback = (0.5, 0.5, 0.5, 1) + asset inputs:file = @textures/color_palette_ACEScg.exr@ + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + } + + def Shader "place2dTexture1" + { + uniform token info:id = "UsdPrimvarReader_float2" + string inputs:varname.connect = + float2 outputs:result + } + } + } +} + +def Mesh "pPlane2" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (-2.02, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface9SG" + { + string inputs:file8:varname = "st" + token outputs:surface.connect = + + def Shader "usdPreviewSurface9" + { + uniform token info:id = "UsdPreviewSurface" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:displacement + token outputs:surface + } + + def Shader "file8" + { + uniform token info:id = "UsdUVTexture" + float4 inputs:fallback = (0.5, 0.5, 0.5, 1) + asset inputs:file = @textures/color_palette_ADX10.exr@ + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + } + + def Shader "place2dTexture8" + { + uniform token info:id = "UsdPrimvarReader_float2" + string inputs:varname.connect = + float2 outputs:result + } + } + } +} + +def Mesh "pPlane3" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (-1.01, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface10SG" + { + string inputs:file9:varname = "st" + token outputs:surface.connect = + + def Shader "usdPreviewSurface10" + { + uniform token info:id = "UsdPreviewSurface" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:displacement + token outputs:surface + } + + def Shader "file9" + { + uniform token info:id = "UsdUVTexture" + float4 inputs:fallback = (0.5, 0.5, 0.5, 1) + asset inputs:file = @textures/color_palette_ADX16.exr@ + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + } + + def Shader "place2dTexture9" + { + uniform token info:id = "UsdPrimvarReader_float2" + string inputs:varname.connect = + float2 outputs:result + } + } + } +} + +def Mesh "pPlane4" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + + def Scope "mtl" + { + def Material "usdPreviewSurface11SG" + { + string inputs:file10:varname = "st" + token outputs:surface.connect = + + def Shader "usdPreviewSurface11" + { + uniform token info:id = "UsdPreviewSurface" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:displacement + token outputs:surface + } + + def Shader "file10" + { + uniform token info:id = "UsdUVTexture" + float4 inputs:fallback = (0.5, 0.5, 0.5, 1) + asset inputs:file = @textures/color_palette_arri_logc4.exr@ + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + } + + def Shader "place2dTexture10" + { + uniform token info:id = "UsdPrimvarReader_float2" + string inputs:varname.connect = + float2 outputs:result + } + } + } +} + +def Mesh "pPlane5" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (1.01, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface12SG" + { + string inputs:file11:varname = "st" + token outputs:surface.connect = + + def Shader "usdPreviewSurface12" + { + uniform token info:id = "UsdPreviewSurface" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:displacement + token outputs:surface + } + + def Shader "file11" + { + uniform token info:id = "UsdUVTexture" + float4 inputs:fallback = (0.5, 0.5, 0.5, 1) + asset inputs:file = @textures/color_palette_g24_rec709.exr@ + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + } + + def Shader "place2dTexture11" + { + uniform token info:id = "UsdPrimvarReader_float2" + string inputs:varname.connect = + float2 outputs:result + } + } + } +} + +def Mesh "pPlane6" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (2.02, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface13SG" + { + string inputs:file12:varname = "st" + token outputs:surface.connect = + + def Shader "usdPreviewSurface13" + { + uniform token info:id = "UsdPreviewSurface" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:displacement + token outputs:surface + } + + def Shader "file12" + { + uniform token info:id = "UsdUVTexture" + float4 inputs:fallback = (0.5, 0.5, 0.5, 1) + asset inputs:file = @textures/color_palette_lin_p3d65.exr@ + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + } + + def Shader "place2dTexture12" + { + uniform token info:id = "UsdPrimvarReader_float2" + string inputs:varname.connect = + float2 outputs:result + } + } + } +} + +def Mesh "pPlane7" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, 0, -0.25), (0.5, 0, 0.25)] + int[] faceVertexCounts = [4] + int[] faceVertexIndices = [0, 1, 3, 2] + rel material:binding = + point3f[] points = [(-0.5, 0, 0.25), (0.5, 0, 0.25), (-0.5, 0, -0.25), (0.5, 0, -0.25)] + texCoord2f[] primvars:st = [(0, 0), (1, 0), (0, 1), (1, 1)] ( + customData = { + dictionary Maya = { + token name = "map1" + } + } + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 3, 2] + double3 xformOp:translate = (3.03, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "mtl" + { + def Material "usdPreviewSurface14SG" + { + string inputs:file13:varname = "st" + token outputs:surface.connect = + + def Shader "usdPreviewSurface14" + { + uniform token info:id = "UsdPreviewSurface" + color3f inputs:diffuseColor = (0, 0, 0) + color3f inputs:emissiveColor.connect = + float inputs:roughness = 1 + token outputs:displacement + token outputs:surface + } + + def Shader "file13" + { + uniform token info:id = "UsdUVTexture" + float4 inputs:fallback = (0.5, 0.5, 0.5, 1) + asset inputs:file = @textures/color_palette_srgb_texture.exr@ ( + colorSpace = "sRGB" + ) + token inputs:sourceColorSpace = "sRGB" + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + } + + def Shader "place2dTexture13" + { + uniform token info:id = "UsdPrimvarReader_float2" + string inputs:varname.connect = + float2 outputs:result + } + } + } +} + diff --git a/test/testSamples/MaterialX/studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio b/test/testSamples/MaterialX/studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio new file mode 100644 index 0000000000..ccbf7f5c5d --- /dev/null +++ b/test/testSamples/MaterialX/studio-config-v1.0.0_aces-v1.3_ocio-v2.0.ocio @@ -0,0 +1,1238 @@ +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: ACESCG, extension: "exr", pattern: "*ACEScg*", colorspace: ACEScg} + - ! {name: ADX10, extension: "exr", pattern: "*ADX10*", colorspace: ADX10} + - ! {name: ADX16, extension: "exr", pattern: "*ADX16*", colorspace: ADX16} + - ! {name: G24REC709, extension: "exr", pattern: "*g24_rec709*", colorspace: Gamma 2.4 Rec.709 - Texture} + - ! {name: LINP3D65, extension: "exr", pattern: "*lin_p3d65*", colorspace: Linear P3-D65} + - ! {name: SRGB, extension: "exr", pattern: "*srgb_texture*", colorspace: sRGB - Texture} + - ! {name: ARRILOGC4, extension: "exr", pattern: "*arri_logc4*", colorspace: ARRI LogC4 - Curve} + - ! {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} diff --git a/test/testSamples/MaterialX/textures/color_palette_ACEScg.exr b/test/testSamples/MaterialX/textures/color_palette_ACEScg.exr new file mode 100644 index 0000000000000000000000000000000000000000..7be5437ac95c6a6cbfc144236e50f2694bb25ee5 GIT binary patch literal 37403 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

dVtVA$60XysMuG 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ⅆz0xS)Mt=h;k+{Pu2od#&nA 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𝔒i4gz4zs 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 literal 0 HcmV?d00001 diff --git a/test/testSamples/MaterialX/textures/color_palette_srgb_texture.exr b/test/testSamples/MaterialX/textures/color_palette_srgb_texture.exr new file mode 100644 index 0000000000000000000000000000000000000000..7fc53ce40c801d957c86fbaaaacee8c997760e1d GIT binary patch literal 34111 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 literal 0 HcmV?d00001 From 0ab4c35c56d9cd4eb8432f0f5594c4012f12d2cf Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Mon, 19 Jun 2023 09:39:51 -0400 Subject: [PATCH 2/4] Help the compiler to fix Posix build break --- .../render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp | 1 + lib/mayaUsd/render/vp2RenderDelegate/material.cpp | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp index 474383167d..f2bbe7682c 100644 --- a/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp @@ -25,6 +25,7 @@ #include #include +#include #include MATERIALX_NAMESPACE_BEGIN diff --git a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp index f2aaede226..b52c944a21 100644 --- a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp +++ b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp @@ -2663,11 +2663,12 @@ TfToken _RequiresColorManagement( for (auto&& csAttrName : _knownColorSpaceAttrs) { auto paramIt = n.parameters.find(csAttrName); if (paramIt != n.parameters.end()) { - if (paramIt->second.IsHolding()) { - sourceColorSpace = paramIt->second.UncheckedGet().GetString(); + const VtValue& val = paramIt->second; + if (val.IsHolding()) { + sourceColorSpace = val.UncheckedGet().GetString(); return; - } else if (paramIt->second.IsHolding()) { - sourceColorSpace = paramIt->second.UncheckedGet(); + } else if (val.IsHolding()) { + sourceColorSpace = val.UncheckedGet(); return; } } From 58923f7974e8de5add6762bf32a345953e5509a6 Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Mon, 19 Jun 2023 10:36:53 -0400 Subject: [PATCH 3/4] Fix OS/X build --- lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp index f2bbe7682c..a86fe029c4 100644 --- a/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp @@ -57,7 +57,6 @@ constexpr const char TAG_SOURCE[] = "source"; // Lengths where needed: constexpr auto TAG_TEXTURE2_LEN = sizeof(TAG_TEXTURE2) / sizeof(TAG_TEXTURE2[0]); -constexpr auto TAG_SAMPLER_LEN = sizeof(TAG_SAMPLER) / sizeof(TAG_SAMPLER[0]); // Expected XML attribute names for an OCIO fragment: constexpr const char ATTR_NAME[] = "name"; From 10ef4ae963427774fd1e69eefa76353e5625e277 Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Mon, 19 Jun 2023 11:34:04 -0400 Subject: [PATCH 4/4] Fix unused constant for OS/X builds --- lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp index a86fe029c4..af5630c222 100644 --- a/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp +++ b/lib/mayaUsd/render/MaterialXGenOgsXml/GlslOcioNodeImpl.cpp @@ -52,7 +52,6 @@ constexpr const char TAG_VALUES[] = "values"; constexpr const char TAG_OUTPUTS[] = "outputs"; constexpr const char TAG_IMPLEMENTATION[] = "implementation"; constexpr const char TAG_TEXTURE2[] = "texture2"; -constexpr const char TAG_SAMPLER[] = "sampler"; constexpr const char TAG_SOURCE[] = "source"; // Lengths where needed: