From f8e5d9551325e74380450d6ef71a9519f7a0ab4e Mon Sep 17 00:00:00 2001 From: JGamache-autodesk Date: Wed, 7 Oct 2020 17:00:58 -0400 Subject: [PATCH 1/4] MAYA-102319 - Material import options rework The major item of this work is to remove the material import dropdown in favor of a single checkbox for importing materials or not. The strategy is to provide a list of shadingModes to try in the import options and let the code execute each one in sequence until a material is found. Major work: The shadingMode import option is now a list of shading modes to try. - Added code to extract array of tokens from options string. - Added code to generate options string containing arrays - The mayaUSDListShadingModes command will list the modes in a predefined order that tries more complex shading modes first. - The pxrRis shadingMode import has been made more strict to let other shading modes succeed. - Shading modes that declare a renderContext will no longer explore the universal context. This allow universal context shading modes importers to successfully run. Added materialConversion support for import modes. This mirrors the export mode exactly. - Added registry functions to register an importer with materialConversion. - Shares and uses the renderContext concept used for export. - Renamed shadingConversion to preferredMaterial to prevent confusion. This represents an optional "convertTo" that can be added on top of the "convertFrom" that materialConversion represents. Other work: The displayColor shading mode is removed in favor of a better handling of the exportDisplayColor geometry option. This fixes #520. - The exportDisplayColor now default to false - The exportOptions MEL script has been reworked to still present a Display Color material export that toggles the exportDisplayColor import option. Minor work: - SetPlugValue can now handle 4x4 matrices - UsdPreviewSurface added to the list of preferred materials on import. Support for displayColor import/export added. - PhongE removed from list of preferred materials on import. - Symmetric shader writer now skips hidden attributes. - vp2RenderDelegate will convert linear displayColor to Maya to provide better color match between the original lambert and the displayColor. --- lib/mayaUsd/commands/baseImportCommand.cpp | 7 +- lib/mayaUsd/commands/baseImportCommand.h | 2 +- .../commands/baseListShadingModesCommand.cpp | 148 +++++--- lib/mayaUsd/fileio/jobs/jobArgs.cpp | 81 +++- lib/mayaUsd/fileio/jobs/jobArgs.h | 7 +- .../shading/shadingModeDisplayColor.cpp | 347 ++++-------------- .../fileio/shading/shadingModePxrRis.cpp | 45 ++- .../fileio/shading/shadingModeRegistry.cpp | 91 ++++- .../fileio/shading/shadingModeRegistry.h | 117 ++++-- .../fileio/shading/shadingModeUseRegistry.cpp | 46 ++- .../fileio/shading/symmetricShaderReader.cpp | 12 +- .../fileio/shading/symmetricShaderReader.h | 6 +- .../fileio/shading/symmetricShaderWriter.cpp | 3 +- .../fileio/translators/translatorMaterial.cpp | 34 +- lib/mayaUsd/render/vp2RenderDelegate/mesh.cpp | 3 +- lib/mayaUsd/utils/util.cpp | 199 ++++++++-- lib/mayaUsd/utils/util.h | 7 + .../pxrUsdPreviewSurface/usdPreviewSurface.h | 6 +- .../usdPreviewSurfaceReader.cpp | 8 + .../usdPreviewSurfaceWriter.cpp | 10 +- lib/usd/translators/shading/CMakeLists.txt | 1 - .../shading/rfmShaderTranslation.cpp | 13 +- .../translators/shading/usdBlinnReader.cpp | 4 +- .../translators/shading/usdLambertReader.cpp | 4 +- .../translators/shading/usdPhongEReader.cpp | 115 ------ .../translators/shading/usdPhongReader.cpp | 4 +- .../shading/usdStandardSurfaceReader.cpp | 4 +- plugin/adsk/plugin/exportTranslator.cpp | 10 +- plugin/adsk/plugin/importTranslator.cpp | 12 +- .../adsk/scripts/mayaUsdTranslatorExport.mel | 46 ++- .../adsk/scripts/mayaUsdTranslatorImport.mel | 73 ++-- plugin/pxr/doc/README.md | 4 +- .../pxr/maya/lib/usdMaya/exportTranslator.cpp | 12 +- .../pxr/maya/lib/usdMaya/importTranslator.cpp | 12 +- .../lib/usdMaya/readJobWithSceneAssembly.cpp | 10 +- test/lib/usd/plugin/mayaShaderTranslation.cpp | 40 +- test/lib/usd/translators/CMakeLists.txt | 24 +- .../RedCube.ma | 260 ------------- .../Brazilian_rosewood_pxr128.png | Bin 0 -> 505048 bytes .../UsdImportCustomConverterTest.usda | 182 +++++++++ .../UsdImportRfMShadersTest/MarbleCube.usda | 8 +- ...tUsdExportImportRoundtripPreviewSurface.py | 4 +- .../translators/testUsdExportOverImport.py | 2 +- .../testUsdExportShadingInstanced.py | 4 +- .../testUsdExportShadingModeDisplayColor.py | 135 ------- .../usd/translators/testUsdImportColorSets.py | 3 +- .../testUsdImportCustomConverter.py | 133 +++++++ .../translators/testUsdImportMayaReference.py | 2 +- test/lib/usd/translators/testUsdImportMesh.py | 2 +- .../testUsdImportPreviewSurface.py | 6 +- .../usd/translators/testUsdImportRfMLight.py | 2 +- .../translators/testUsdImportRfMShaders.py | 2 +- .../testUsdImportShadingModeDisplayColor.py | 2 +- .../testUsdImportShadingModePxrRis.py | 2 +- .../usd/translators/testUsdImportSkeleton.py | 2 +- .../usd/translators/testUsdImportUVSets.py | 2 +- .../usd/translators/testUsdImportXforms.py | 4 +- .../usd/translators/testUsdMayaAdaptorGeom.py | 2 +- .../translators/testUsdMayaAdaptorMetadata.py | 19 +- .../testUsdMayaListShadingModesCommand.py | 38 +- 60 files changed, 1243 insertions(+), 1140 deletions(-) delete mode 100644 lib/usd/translators/shading/usdPhongEReader.cpp delete mode 100644 test/lib/usd/translators/UsdExportShadingModeDisplayColor/RedCube.ma create mode 100644 test/lib/usd/translators/UsdImportCustomConverterTest/Brazilian_rosewood_pxr128.png create mode 100644 test/lib/usd/translators/UsdImportCustomConverterTest/UsdImportCustomConverterTest.usda delete mode 100644 test/lib/usd/translators/testUsdExportShadingModeDisplayColor.py create mode 100644 test/lib/usd/translators/testUsdImportCustomConverter.py diff --git a/lib/mayaUsd/commands/baseImportCommand.cpp b/lib/mayaUsd/commands/baseImportCommand.cpp index 9e7aaa4178..92fbc20833 100644 --- a/lib/mayaUsd/commands/baseImportCommand.cpp +++ b/lib/mayaUsd/commands/baseImportCommand.cpp @@ -44,9 +44,10 @@ MayaUSDImportCommand::createSyntax() // UsdMayaJobImportArgs::GetDefaultDictionary. syntax.addFlag(kShadingModeFlag, UsdMayaJobImportArgsTokens->shadingMode.GetText(), - MSyntax::kString); - syntax.addFlag(kShadingConversionFlag, - UsdMayaJobImportArgsTokens->shadingConversion.GetText(), + MSyntax::kString, MSyntax::kString); + syntax.makeFlagMultiUse(kShadingModeFlag); + syntax.addFlag(kPreferredMaterialFlag, + UsdMayaJobImportArgsTokens->preferredMaterial.GetText(), MSyntax::kString); syntax.addFlag(kAssemblyRepFlag, UsdMayaJobImportArgsTokens->assemblyRep.GetText(), diff --git a/lib/mayaUsd/commands/baseImportCommand.h b/lib/mayaUsd/commands/baseImportCommand.h index ea4179bdb1..573218e7f7 100644 --- a/lib/mayaUsd/commands/baseImportCommand.h +++ b/lib/mayaUsd/commands/baseImportCommand.h @@ -42,7 +42,7 @@ class MAYAUSD_CORE_PUBLIC MayaUSDImportCommand : public MPxCommand // // The list of short forms of flags defined as Arg Tokens: static constexpr auto kShadingModeFlag = "shd"; - static constexpr auto kShadingConversionFlag = "shc"; + static constexpr auto kPreferredMaterialFlag = "prm"; static constexpr auto kAssemblyRepFlag = "ar"; static constexpr auto kMetadataFlag = "md"; static constexpr auto kApiSchemaFlag = "api"; diff --git a/lib/mayaUsd/commands/baseListShadingModesCommand.cpp b/lib/mayaUsd/commands/baseListShadingModesCommand.cpp index fff8da14e4..4ee41e153a 100644 --- a/lib/mayaUsd/commands/baseListShadingModesCommand.cpp +++ b/lib/mayaUsd/commands/baseListShadingModesCommand.cpp @@ -35,11 +35,14 @@ TF_DEFINE_PRIVATE_TOKENS( ((NoneOption, "none")) ((NoneNiceName, "None")) - ((NoneDescription, "No material data gets exported.")) + ((NoneExportDescription, "No material data gets exported.")) + ((NoneImportDescription, + "Stop the search for materials. Can signal that no materials are to be" + " imported when used alone.")) ); namespace { - std::pair _GetOptions(const MString& niceName) { + std::pair _GetOptions(const MString& niceName, bool isExport) { TfToken niceToken(niceName.asChar()); TfToken shadingMode, convertMaterialsTo; @@ -47,15 +50,19 @@ namespace { return std::make_pair(_tokens->NoneOption, convertMaterialsTo); } - for (auto const& e: UsdMayaShadingModeRegistry::ListExporters()) { - if (niceToken == UsdMayaShadingModeRegistry::GetExporterNiceName(e)) { + for (auto const& e : (isExport ? UsdMayaShadingModeRegistry::ListExporters() + : UsdMayaShadingModeRegistry::ListImporters())) { + if (niceToken == (isExport ? UsdMayaShadingModeRegistry::GetExporterNiceName(e) + : UsdMayaShadingModeRegistry::GetImporterNiceName(e))) { shadingMode = e; break; } } if (shadingMode.IsEmpty()) { - for (auto const& r: UsdMayaShadingModeRegistry::ListExportConversions()) { - if (niceToken == UsdMayaShadingModeRegistry::GetExportConversionInfo(r).niceName) { + for (auto const& r : UsdMayaShadingModeRegistry::ListMaterialConversions()) { + auto const& info = UsdMayaShadingModeRegistry::GetMaterialConversionInfo(r); + if (niceToken == info.niceName + && (isExport ? info.hasExporter : info.hasImporter)) { shadingMode = UsdMayaShadingModeTokens->useRegistry; convertMaterialsTo = r; } @@ -75,41 +82,59 @@ MayaUSDListShadingModesCommand::doIt(const MArgList& args) { } if (argData.isFlagSet("export")) { - // We have these default exporters which are always 1-2-3 in the options: - appendToResult(UsdMayaShadingModeRegistry::GetExportConversionInfo( + // We have these default exporters which are always 1-2 in the options: + appendToResult(UsdMayaShadingModeRegistry::GetMaterialConversionInfo( UsdImagingTokens->UsdPreviewSurface) .niceName.GetText()); - appendToResult( - UsdMayaShadingModeRegistry::GetExporterNiceName(UsdMayaShadingModeTokens->displayColor) - .c_str()); appendToResult(_tokens->NoneNiceName.GetText()); // Then we explore the registries: - for (auto const& shadingMode : UsdMayaShadingModeRegistry::ListExporters()) { - if (shadingMode != UsdMayaShadingModeTokens->useRegistry - && shadingMode != UsdMayaShadingModeTokens->displayColor) { - appendToResult( - UsdMayaShadingModeRegistry::GetExporterNiceName(shadingMode).c_str()); + for (auto const& s : UsdMayaShadingModeRegistry::ListExporters()) { + if (s != UsdMayaShadingModeTokens->useRegistry) { + appendToResult(UsdMayaShadingModeRegistry::GetExporterNiceName(s).c_str()); } } - for (auto const& materialConversion : UsdMayaShadingModeRegistry::ListExportConversions()) { - appendToResult( - UsdMayaShadingModeRegistry::GetExportConversionInfo(materialConversion) - .niceName.GetText()); + for (auto const& c : UsdMayaShadingModeRegistry::ListMaterialConversions()) { + if (c != UsdImagingTokens->UsdPreviewSurface) { + auto const& info = UsdMayaShadingModeRegistry::GetMaterialConversionInfo(c); + if (info.hasExporter) { + appendToResult(info.niceName.GetText()); + } + } } } else if (argData.isFlagSet("import")) { - // Always include the "none" shading mode. - appendToResult(UsdMayaShadingModeTokens->none.GetText()); - for (const auto& e : UsdMayaShadingModeRegistry::ListImporters()) { - appendToResult(e.GetText()); + // Default priorities for searching for materials is defined here: + // - Specialized importers using registry based import. + // - Specialized importers, non-registry based. + // - Universal importers (MaterialX? UsdPreviewSurface) using registry based import. + // - Display colors as last resort + // This is to be used when importing via the dialog. Finer grained import is available at + // the command level. + // + for (const auto c : UsdMayaShadingModeRegistry::ListMaterialConversions()) { + if (c != UsdImagingTokens->UsdPreviewSurface) { + auto const& info = UsdMayaShadingModeRegistry::GetMaterialConversionInfo(c); + if (info.hasImporter) { + appendToResult(info.niceName.GetText()); + } + } + } + for (const auto s : UsdMayaShadingModeRegistry::ListImporters()) { + if (s != UsdMayaShadingModeTokens->useRegistry) { + appendToResult(UsdMayaShadingModeRegistry::GetImporterNiceName(s).c_str()); + } } + appendToResult(UsdMayaShadingModeRegistry::GetMaterialConversionInfo( + UsdImagingTokens->UsdPreviewSurface) + .niceName.GetText()); + appendToResult(_tokens->NoneNiceName.GetText()); } else if (argData.isFlagSet("exportOptions")) { - MString niceName; + MString niceName; status = argData.getFlagArgument("exportOptions", 0, niceName); if (status != MS::kSuccess) { return status; } TfToken shadingMode, materialConversion; - std::tie(shadingMode, materialConversion) = _GetOptions(niceName); + std::tie(shadingMode, materialConversion) = _GetOptions(niceName, true); if (shadingMode.IsEmpty()) { return MS::kNotFound; } @@ -120,29 +145,56 @@ MayaUSDListShadingModesCommand::doIt(const MArgList& args) { options += materialConversion.GetText(); } setResult(options); - } else if (argData.isFlagSet("exportAnnotation")) { - MString niceName; - status = argData.getFlagArgument("exportAnnotation", 0, niceName); + } else if (argData.isFlagSet("importOptions")) { + MString niceName; + status = argData.getFlagArgument("importOptions", 0, niceName); + if (status != MS::kSuccess) { + return status; + } + TfToken shadingMode, materialConversion; + std::tie(shadingMode, materialConversion) = _GetOptions(niceName, false); + if (shadingMode.IsEmpty()) { + return MS::kNotFound; + } + appendToResult(shadingMode.GetText()); + if (!materialConversion.IsEmpty()) { + appendToResult(materialConversion.GetText()); + } else { + appendToResult(UsdMayaShadingModeTokens->default.GetText()); + } + } else if (argData.isFlagSet("exportAnnotation") || argData.isFlagSet("importAnnotation")) { + const bool isExport = argData.isFlagSet("exportAnnotation"); + MString niceName; + status = argData.getFlagArgument( + isExport ? "exportAnnotation" : "importAnnotation", 0, niceName); if (status != MS::kSuccess) { return status; } TfToken shadingMode, materialConversion; - std::tie(shadingMode, materialConversion) = _GetOptions(niceName); + std::tie(shadingMode, materialConversion) = _GetOptions(niceName, isExport); if (shadingMode.IsEmpty()) { return MS::kNotFound; } else if (materialConversion.IsEmpty()) { if (shadingMode == _tokens->NoneOption) { - setResult(_tokens->NoneDescription.GetText()); + setResult(_tokens->NoneExportDescription.GetText()); } else { - setResult(UsdMayaShadingModeRegistry::GetExporterDescription(shadingMode).c_str()); + setResult( + isExport + ? UsdMayaShadingModeRegistry::GetExporterDescription(shadingMode).c_str() + : UsdMayaShadingModeRegistry::GetImporterDescription(shadingMode).c_str()); } } else { - setResult(UsdMayaShadingModeRegistry::GetExportConversionInfo(materialConversion) - .description.GetText()); + auto const& info + = UsdMayaShadingModeRegistry::GetMaterialConversionInfo(materialConversion); + setResult( + isExport ? info.exportDescription.GetText() + : info.importDescription.GetText()); } - } else if (argData.isFlagSet("findExportName")) { - MString optName; - status = argData.getFlagArgument("findExportName", 0, optName); + } else if (argData.isFlagSet("findExportName") || argData.isFlagSet("findImportName")) { + const bool isExport = argData.isFlagSet("findExportName"); + MString optName; + status + = argData.getFlagArgument(isExport ? "findExportName" : "findImportName", 0, optName); if (status != MS::kSuccess) { return status; } @@ -151,16 +203,17 @@ MayaUSDListShadingModesCommand::doIt(const MArgList& args) { setResult(_tokens->NoneNiceName.GetText()); return MS::kSuccess; } - for (auto const& r: UsdMayaShadingModeRegistry::ListExportConversions()) { - if (r == optToken) { - setResult( - UsdMayaShadingModeRegistry::GetExportConversionInfo(r).niceName.GetText()); - return MS::kSuccess; - } + auto const& info = UsdMayaShadingModeRegistry::GetMaterialConversionInfo(optToken); + if (isExport ? info.hasExporter : info.hasImporter) { + setResult(info.niceName.GetText()); + return MS::kSuccess; } - for (auto const& s: UsdMayaShadingModeRegistry::ListExporters()) { - if (s == optToken && s != UsdMayaShadingModeTokens->useRegistry) { - setResult(UsdMayaShadingModeRegistry::GetExporterNiceName(s).c_str()); + if (optToken != UsdMayaShadingModeTokens->useRegistry) { + const std::string& niceName = isExport + ? UsdMayaShadingModeRegistry::GetExporterNiceName(optToken) + : UsdMayaShadingModeRegistry::GetImporterNiceName(optToken); + if (!niceName.empty()) { + setResult(niceName.c_str()); return MS::kSuccess; } } @@ -176,8 +229,11 @@ MayaUSDListShadingModesCommand::createSyntax() { syntax.addFlag("-ex", "-export", MSyntax::kNoArg); syntax.addFlag("-im", "-import", MSyntax::kNoArg); syntax.addFlag("-eo", "-exportOptions", MSyntax::kString); + syntax.addFlag("-io", "-importOptions", MSyntax::kString); syntax.addFlag("-ea", "-exportAnnotation", MSyntax::kString); + syntax.addFlag("-ia", "-importAnnotation", MSyntax::kString); syntax.addFlag("-fen", "-findExportName", MSyntax::kString); + syntax.addFlag("-fin", "-findImportName", MSyntax::kString); syntax.enableQuery(false); syntax.enableEdit(false); diff --git a/lib/mayaUsd/fileio/jobs/jobArgs.cpp b/lib/mayaUsd/fileio/jobs/jobArgs.cpp index 443247c344..fe2ffe34fb 100644 --- a/lib/mayaUsd/fileio/jobs/jobArgs.cpp +++ b/lib/mayaUsd/fileio/jobs/jobArgs.cpp @@ -207,6 +207,51 @@ _ChaserArgs(const VtDictionary& userArgs, const TfToken& key) return result; } +// The shadingMode args are stored as vectors of vectors (since this is how you +// would need to pass them in the Maya Python command API). +static UsdMayaJobImportArgs::ShadingModes +_shadingModesImportArgs(const VtDictionary& userArgs, const TfToken& key) +{ + const std::vector> shadingModeArgs + = _Vector>(userArgs, key); + + TfTokenVector modes = UsdMayaShadingModeRegistry::ListImporters(); + + UsdMayaJobImportArgs::ShadingModes result; + for (const std::vector& argTuple : shadingModeArgs) { + if (argTuple.size() != 2) { + TF_CODING_ERROR( + "Each shadingMode arg must be a tuple (shadingMode, convertMaterialFrom)"); + return UsdMayaJobImportArgs::ShadingModes(); + } + + TfToken shadingMode = TfToken(argTuple[0].Get().c_str()); + TfToken convertMaterialFrom = TfToken(argTuple[1].Get().c_str()); + + if (shadingMode == UsdMayaShadingModeTokens->none) { + break; + } + + if (std::find(modes.cbegin(), modes.cend(), shadingMode) == modes.cend()) { + TF_CODING_ERROR("Unknown shading mode '%s'", shadingMode.GetText()); + return UsdMayaJobImportArgs::ShadingModes(); + } + + if (shadingMode == UsdMayaShadingModeTokens->useRegistry) { + auto const& info + = UsdMayaShadingModeRegistry::GetMaterialConversionInfo(convertMaterialFrom); + if (!info.hasImporter) { + TF_CODING_ERROR("Unknown material conversion '%s'", convertMaterialFrom.GetText()); + return UsdMayaJobImportArgs::ShadingModes(); + } + // Do not validate second parameter if not in a useRegistry scenario. + } + + result.emplace_back(shadingMode, convertMaterialFrom); + } + return result; +} + static TfToken _GetMaterialsScopeName(const std::string& materialsScopeName) @@ -342,7 +387,7 @@ UsdMayaJobExportArgs::UsdMayaJobExportArgs( _Token(userArgs, UsdMayaJobExportArgsTokens->convertMaterialsTo, UsdImagingTokens->UsdPreviewSurface, - UsdMayaShadingModeRegistry::ListExportConversions())), + UsdMayaShadingModeRegistry::ListMaterialConversions())), verbose( _Boolean(userArgs, UsdMayaJobExportArgsTokens->verbose)), @@ -466,7 +511,7 @@ UsdMayaJobExportArgs::GetDefaultDictionary() d[UsdMayaJobExportArgsTokens->eulerFilter] = false; d[UsdMayaJobExportArgsTokens->exportCollectionBasedBindings] = false; d[UsdMayaJobExportArgsTokens->exportColorSets] = true; - d[UsdMayaJobExportArgsTokens->exportDisplayColor] = true; + d[UsdMayaJobExportArgsTokens->exportDisplayColor] = false; d[UsdMayaJobExportArgsTokens->exportInstances] = true; d[UsdMayaJobExportArgsTokens->exportMaterialCollections] = false; d[UsdMayaJobExportArgsTokens->exportReferenceObjects] = false; @@ -565,16 +610,13 @@ UsdMayaJobImportArgs::UsdMayaJobImportArgs( _TokenSet(userArgs, UsdMayaJobImportArgsTokens->apiSchema)), includeMetadataKeys( _TokenSet(userArgs, UsdMayaJobImportArgsTokens->metadata)), - shadingMode( + shadingModes( + _shadingModesImportArgs(userArgs, UsdMayaJobImportArgsTokens->shadingMode)), + preferredMaterial( _Token(userArgs, - UsdMayaJobImportArgsTokens->shadingMode, - UsdMayaShadingModeTokens->none, - UsdMayaShadingModeRegistry::ListImporters())), - shadingConversion( - _Token(userArgs, - UsdMayaJobImportArgsTokens->shadingConversion, - UsdMayaShadingConversionTokens->none, - UsdMayaShadingConversionTokens->allTokens)), + UsdMayaJobImportArgsTokens->preferredMaterial, + UsdMayaPreferredMaterialTokens->none, + UsdMayaPreferredMaterialTokens->allTokens)), useAsAnimationCache( _Boolean(userArgs, UsdMayaJobImportArgsTokens->useAsAnimationCache)), @@ -613,10 +655,11 @@ const VtDictionary& UsdMayaJobImportArgs::GetDefaultDictionary() VtValue(SdfFieldKeys->Instanceable.GetString()), VtValue(SdfFieldKeys->Kind.GetString()) }); - d[UsdMayaJobImportArgsTokens->shadingMode] = - UsdMayaShadingModeTokens->displayColor.GetString(); - d[UsdMayaJobImportArgsTokens->shadingConversion] = - UsdMayaShadingConversionTokens->lambert.GetString(); + d[UsdMayaJobImportArgsTokens->shadingMode] = std::vector { VtValue( + std::vector { VtValue(UsdMayaShadingModeTokens->useRegistry.GetString()), + VtValue(UsdImagingTokens->UsdPreviewSurface.GetString()) }) }; + d[UsdMayaJobImportArgsTokens->preferredMaterial] + = UsdMayaPreferredMaterialTokens->none.GetString(); d[UsdMayaJobImportArgsTokens->useAsAnimationCache] = false; // plugInfo.json site defaults. @@ -634,8 +677,12 @@ const VtDictionary& UsdMayaJobImportArgs::GetDefaultDictionary() std::ostream& operator <<(std::ostream& out, const UsdMayaJobImportArgs& importArgs) { - out << "shadingMode: " << importArgs.shadingMode << std::endl - << "shadingConversion: " << importArgs.shadingConversion << std::endl + out << "shadingModes (" << importArgs.shadingModes.size() << ")" << std::endl; + for (const auto& shadingMode : importArgs.shadingModes) { + out << " " << TfStringify(shadingMode.first) << ", " << TfStringify(shadingMode.second) + << std::endl; + } + out << "preferredMaterial: " << importArgs.preferredMaterial << std::endl << "assemblyRep: " << importArgs.assemblyRep << std::endl << "timeInterval: " << importArgs.timeInterval << std::endl << "useAsAnimationCache: " << TfStringify(importArgs.useAsAnimationCache) << std::endl diff --git a/lib/mayaUsd/fileio/jobs/jobArgs.h b/lib/mayaUsd/fileio/jobs/jobArgs.h index 2f3a5a0fc4..fb059df936 100644 --- a/lib/mayaUsd/fileio/jobs/jobArgs.h +++ b/lib/mayaUsd/fileio/jobs/jobArgs.h @@ -107,7 +107,7 @@ TF_DECLARE_PUBLIC_TOKENS( (excludePrimvar) \ (metadata) \ (shadingMode) \ - (shadingConversion) \ + (preferredMaterial) \ (useAsAnimationCache) \ /* assemblyRep values */ \ (Collapsed) \ @@ -250,8 +250,9 @@ struct UsdMayaJobImportArgs const TfToken::Set excludePrimvarNames; const TfToken::Set includeAPINames; const TfToken::Set includeMetadataKeys; - TfToken shadingMode; // XXX can we make this const? - const TfToken shadingConversion; + using ShadingModes = std::vector>; + ShadingModes shadingModes; // XXX can we make this const? + const TfToken preferredMaterial; const bool useAsAnimationCache; const bool importWithProxyShapes; diff --git a/lib/mayaUsd/fileio/shading/shadingModeDisplayColor.cpp b/lib/mayaUsd/fileio/shading/shadingModeDisplayColor.cpp index 2f19dc6c62..04dfb4123a 100644 --- a/lib/mayaUsd/fileio/shading/shadingModeDisplayColor.cpp +++ b/lib/mayaUsd/fileio/shading/shadingModeDisplayColor.cpp @@ -13,11 +13,10 @@ // See the License for the specific language governing permissions and // limitations under the License. // -#include -#include #include #include #include +#include #include #include @@ -47,7 +46,6 @@ #include #include #include -#include #include #include #include @@ -64,290 +62,60 @@ PXR_NAMESPACE_OPEN_SCOPE TF_DEFINE_PRIVATE_TOKENS( _tokens, - (displayColor) - (displayOpacity) (diffuseColor) - (transmissionColor) - (transparency) + (opacity) - ((DefaultShaderId, "PxrDiffuse")) - ((DefaultShaderOutputName, "out")) + ((NiceName, "Display Colors")) + ((ImportDescription, "Imports the displayColor primvar on the USD mesh as a Maya" + " surface shader.")) ); - -namespace { -class DisplayColorShadingModeExporter : public UsdMayaShadingModeExporter -{ -public: - DisplayColorShadingModeExporter() {} -private: - void Export(const UsdMayaShadingModeExportContext& context, - UsdShadeMaterial * const mat, - SdfPathSet * const boundPrimPaths) override - { - MStatus status; - const MFnDependencyNode ssDepNode(context.GetSurfaceShader(), &status); - if (status != MS::kSuccess) { - return; - } - - const UsdMayaShadingModeExportContext::AssignmentVector& assignments = - context.GetAssignments(); - if (assignments.empty()) { - return; - } - - GfVec3f color; - GfVec3f transparency; - - // We might use the Maya shading node's transparency to author a scalar - // displayOpacity value on the UsdGeomGprim, as well as an input on the - // shader prim. How we compute that value will depend on which Maya - // shading node we're working with. - float transparencyAvg; - - const MFnLambertShader lambertFn(ssDepNode.object(), &status); - if (status == MS::kSuccess) { - const MColor mayaColor = lambertFn.color(); - const MColor mayaTransparency = lambertFn.transparency(); - const float diffuseCoeff = lambertFn.diffuseCoeff(); - color = UsdMayaColorSpace::ConvertMayaToLinear( - diffuseCoeff*GfVec3f(mayaColor[0], mayaColor[1], mayaColor[2])); - transparency = UsdMayaColorSpace::ConvertMayaToLinear( - GfVec3f(mayaTransparency[0], mayaTransparency[1], mayaTransparency[2])); - // Compute the average transparency using the un-linearized Maya - // value. - transparencyAvg = (mayaTransparency[0] + - mayaTransparency[1] + - mayaTransparency[2]) / 3.0f; - } else { -#if MAYA_API_VERSION >= 20200000 - const MFnStandardSurfaceShader surfaceFn(ssDepNode.object(), &status); - if (status != MS::kSuccess) { - return; - } - const MColor mayaColor = surfaceFn.baseColor(); - const float base = surfaceFn.base(); - color = UsdMayaColorSpace::ConvertMayaToLinear( - base*GfVec3f(mayaColor[0], mayaColor[1], mayaColor[2])); - const float mayaTransparency = surfaceFn.transmission(); - transparency = GfVec3f(mayaTransparency, mayaTransparency, mayaTransparency); - // We can directly use the scalar transmission value as the - // "average". - transparencyAvg = mayaTransparency; -#else - return; -#endif - } - - VtVec3fArray displayColorAry; - displayColorAry.push_back(color); - - VtFloatArray displayOpacityAry; - if (transparencyAvg > 0.0f) { - displayOpacityAry.push_back(1.0f - transparencyAvg); - } - - const UsdStageRefPtr& stage = context.GetUsdStage(); - - TF_FOR_ALL(iter, assignments) { - const SdfPath& boundPrimPath = iter->first; - const VtIntArray& faceIndices = iter->second; - if (!faceIndices.empty()) { - continue; - } - - UsdPrim boundPrim = stage->GetPrimAtPath(boundPrimPath); - if (!boundPrim) { - TF_CODING_ERROR( - "Couldn't find bound prim <%s>", - boundPrimPath.GetText()); - continue; - } - - if (boundPrim.IsInstance() || boundPrim.IsInstanceProxy()) { - TF_WARN("Not authoring displayColor or displayOpacity for <%s> " - "because it is instanced", boundPrimPath.GetText()); - continue; - } - - UsdGeomGprim primSchema(boundPrim); - // Set color if not already authored - if (!primSchema.GetDisplayColorAttr().HasAuthoredValue()) { - // not animatable - primSchema.CreateDisplayColorPrimvar().Set(displayColorAry); - } - if (transparencyAvg > 0.0f && - !primSchema.GetDisplayOpacityAttr().HasAuthoredValue()) { - // not animatable - primSchema.CreateDisplayOpacityPrimvar().Set(displayOpacityAry); - } - } - - UsdPrim materialPrim = context.MakeStandardMaterialPrim(assignments, - std::string(), - boundPrimPaths); - UsdShadeMaterial material(materialPrim); - if (material) { - *mat = material; - - // Create a Diffuse RIS shader for the Material. - // Although Maya can't yet make use of it, downstream apps - // can make use of Material interface inputs, so create one to - // drive the shader's color. - // - // NOTE! We do not set any values directly on the shaders; - // instead we set the values only on the material's interface, - // emphasizing that the interface is a value provider for - // its shading networks. - UsdShadeInput dispColorIA = - material.CreateInput(_tokens->displayColor, - SdfValueTypeNames->Color3f); - dispColorIA.Set(VtValue(color)); - - const std::string shaderName = - TfStringPrintf("%s_lambert", materialPrim.GetName().GetText()); - const TfToken shaderPrimName(shaderName); - UsdShadeShader shaderSchema = - UsdShadeShader::Define( - stage, - materialPrim.GetPath().AppendChild(shaderPrimName)); - shaderSchema.CreateIdAttr(VtValue(_tokens->DefaultShaderId)); - UsdShadeInput diffuse = - shaderSchema.CreateInput(_tokens->diffuseColor, - SdfValueTypeNames->Color3f); - - diffuse.ConnectToSource(dispColorIA); - - // Make an interface input for transparency, which we will hook up - // to the shader, and a displayOpacity, for any shader that might - // want to consume it. Only author a *value* if we got a - // non-zero transparency - UsdShadeInput transparencyIA = - material.CreateInput(_tokens->transparency, - SdfValueTypeNames->Color3f); - UsdShadeInput dispOpacityIA = - material.CreateInput(_tokens->displayOpacity, - SdfValueTypeNames->Float); - - // PxrDiffuse's transmissionColor may not produce similar - // results to MfnLambertShader's transparency, but it's in - // the general ballpark... - UsdShadeInput transmission = - shaderSchema.CreateInput(_tokens->transmissionColor, - SdfValueTypeNames->Color3f); - transmission.ConnectToSource(transparencyIA); - - if (transparencyAvg > 0.0f) { - transparencyIA.Set(VtValue(transparency)); - dispOpacityIA.Set(VtValue(1.0f - transparencyAvg)); - } - - UsdShadeOutput shaderDefaultOutput = - shaderSchema.CreateOutput(_tokens->DefaultShaderOutputName, - SdfValueTypeNames->Token); - if (!shaderDefaultOutput) { - return; - } - - UsdRiMaterialAPI riMaterialAPI(materialPrim); - riMaterialAPI.SetSurfaceSource( - shaderDefaultOutput.GetAttr().GetPath()); - } - } -}; -} - -TF_REGISTRY_FUNCTION_WITH_TAG(UsdMayaShadingModeExportContext, displayColor) -{ - UsdMayaShadingModeRegistry::GetInstance().RegisterExporter( - "displayColor", - "Display Colors", - "Exports the diffuse color of the bound shader as a displayColor primvar on the USD mesh.", - []() -> UsdMayaShadingModeExporterPtr { - return UsdMayaShadingModeExporterPtr( - static_cast( - new DisplayColorShadingModeExporter())); - } - ); -} - -DEFINE_SHADING_MODE_IMPORTER_WITH_JOB_ARGUMENTS(displayColor, context, jobArguments) +DEFINE_SHADING_MODE_IMPORTER_WITH_JOB_ARGUMENTS( + displayColor, + _tokens->NiceName.GetString(), + _tokens->ImportDescription.GetString(), + context, + jobArguments) { const UsdShadeMaterial& shadeMaterial = context->GetShadeMaterial(); const UsdGeomGprim& primSchema = context->GetBoundPrim(); MStatus status; - // Note that we always couple the source of the displayColor with the - // source of the displayOpacity. It would not make sense to get the - // displayColor from a bound Material, while getting the displayOpacity from - // the gprim itself, for example, even if the Material did not have - // displayOpacity authored. When the Material or gprim does not have - // displayOpacity authored, we fall back to full opacity. - bool gotDisplayColorAndOpacity = false; - // Get Display Color from USD (linear) and convert to Display GfVec3f linearDisplayColor(.5,.5,.5); GfVec3f linearTransparency(0, 0, 0); - UsdShadeInput shadeInput = shadeMaterial ? - shadeMaterial.GetInput(_tokens->displayColor) : - UsdShadeInput(); - - if (!shadeInput || !shadeInput.Get(&linearDisplayColor)) { - - VtVec3fArray gprimDisplayColor(1); - if (primSchema && - primSchema.GetDisplayColorPrimvar().ComputeFlattened(&gprimDisplayColor)) { - linearDisplayColor = gprimDisplayColor[0]; - VtFloatArray gprimDisplayOpacity(1); - if (primSchema.GetDisplayOpacityPrimvar().GetAttr().HasAuthoredValue() && - primSchema.GetDisplayOpacityPrimvar().ComputeFlattened(&gprimDisplayOpacity)) { - const float trans = 1.0 - gprimDisplayOpacity[0]; - linearTransparency = GfVec3f(trans, trans, trans); - } - gotDisplayColorAndOpacity = true; - } else { - TF_WARN("Unable to retrieve displayColor on Material: %s " - "or Gprim: %s", - shadeMaterial ? - shadeMaterial.GetPrim().GetPath().GetText() : - "", - primSchema ? - primSchema.GetPrim().GetPath().GetText() : - ""); + VtVec3fArray gprimDisplayColor(1); + if (primSchema && + primSchema.GetDisplayColorPrimvar().ComputeFlattened(&gprimDisplayColor)) { + linearDisplayColor = gprimDisplayColor[0]; + VtFloatArray gprimDisplayOpacity(1); + if (primSchema.GetDisplayOpacityPrimvar().GetAttr().HasAuthoredValue() && + primSchema.GetDisplayOpacityPrimvar().ComputeFlattened(&gprimDisplayOpacity)) { + const float trans = 1.0 - gprimDisplayOpacity[0]; + linearTransparency = GfVec3f(trans, trans, trans); } } else { - shadeMaterial - .GetInput(_tokens->transparency) - .GetAttr() - .Get(&linearTransparency); - gotDisplayColorAndOpacity = true; - } - - if (!gotDisplayColorAndOpacity) { return MObject(); } const GfVec3f displayColor = UsdMayaColorSpace::ConvertLinearToMaya(linearDisplayColor); - const GfVec3f transparencyColor = - UsdMayaColorSpace::ConvertLinearToMaya(linearTransparency); // We default to lambert if no conversion was requested: - const TfToken& shadingConversion - = jobArguments.shadingConversion != UsdMayaShadingConversionTokens->none - ? jobArguments.shadingConversion - : UsdMayaShadingConversionTokens->lambert; - std::string shaderName(shadingConversion.GetText()); + const TfToken& preferredMaterial + = jobArguments.preferredMaterial != UsdMayaPreferredMaterialTokens->none + ? jobArguments.preferredMaterial + : UsdMayaPreferredMaterialTokens->lambert; + std::string shaderName(preferredMaterial.GetText()); SdfPath shaderParentPath = SdfPath::AbsoluteRootPath(); if (shadeMaterial) { const UsdPrim& shadeMaterialPrim = shadeMaterial.GetPrim(); shaderName = TfStringPrintf("%s_%s", shadeMaterialPrim.GetName().GetText(), - shadingConversion.GetText()); + preferredMaterial.GetText()); shaderParentPath = shadeMaterialPrim.GetPath(); } @@ -355,28 +123,60 @@ DEFINE_SHADING_MODE_IMPORTER_WITH_JOB_ARGUMENTS(displayColor, context, jobArgume MObject shadingObj; UsdMayaTranslatorUtil::CreateShaderNode( MString(shaderName.c_str()), - shadingConversion.GetText(), + preferredMaterial.GetText(), UsdMayaShadingNodeType::Shader, &status, &shadingObj); if (status != MS::kSuccess) { TF_RUNTIME_ERROR( "Could not create node of type '%s' for prim '%s'.\n", - shadingConversion.GetText(), + preferredMaterial.GetText(), primSchema.GetPath().GetText()); return MObject(); } MPlug outputPlug; #if MAYA_API_VERSION >= 20200000 - if (shadingConversion != UsdMayaShadingConversionTokens->standardSurface) { + if (preferredMaterial == UsdMayaPreferredMaterialTokens->standardSurface) { + MFnStandardSurfaceShader surfaceFn; + surfaceFn.setObject(shadingObj); + surfaceFn.setBase(1.0f); + surfaceFn.setBaseColor( + MColor(displayColor[0], displayColor[1], displayColor[2])); + + surfaceFn.setTransmission(linearTransparency[0]); + + const SdfPath surfacePath = + shaderParentPath.AppendChild(TfToken(surfaceFn.name().asChar())); + context->AddCreatedObject(surfacePath, shadingObj); + + // Find the outColor plug so we can connect it as the surface shader of the + // shading engine. + outputPlug = surfaceFn.findPlug("outColor", &status); + CHECK_MSTATUS_AND_RETURN(status, MObject()); + } else #endif + if (preferredMaterial == UsdMayaPreferredMaterialTokens->usdPreviewSurface) { + MFnDependencyNode depNodeFn; + depNodeFn.setObject(shadingObj); + + MPlug diffusePlug = depNodeFn.findPlug(_tokens->diffuseColor.GetText()); + UsdMayaReadUtil::SetMayaAttr( + diffusePlug, VtValue(displayColor), /*unlinearizeColors*/ false); + + MPlug opacityPlug = depNodeFn.findPlug(_tokens->opacity.GetText()); + UsdMayaReadUtil::SetMayaAttr( + opacityPlug, VtValue(1.0f - linearTransparency[0]), /*unlinearizeColors*/ false); + + outputPlug = depNodeFn.findPlug("outColor", &status); + CHECK_MSTATUS_AND_RETURN(status, MObject()); + } else { MFnLambertShader lambertFn; lambertFn.setObject(shadingObj); lambertFn.setColor( MColor(displayColor[0], displayColor[1], displayColor[2])); lambertFn.setTransparency( - MColor(transparencyColor[0], transparencyColor[1], transparencyColor[2])); + MColor(linearTransparency[0], linearTransparency[1], linearTransparency[2])); // We explicitly set diffuse coefficient to 1.0 here since new lamberts // default to 0.8. This is to make sure the color value matches visually @@ -390,29 +190,7 @@ DEFINE_SHADING_MODE_IMPORTER_WITH_JOB_ARGUMENTS(displayColor, context, jobArgume outputPlug = lambertFn.findPlug("outColor", &status); CHECK_MSTATUS_AND_RETURN(status, MObject()); -#if MAYA_API_VERSION >= 20200000 - } else { - MFnStandardSurfaceShader surfaceFn; - surfaceFn.setObject(shadingObj); - surfaceFn.setBase(1.0f); - surfaceFn.setBaseColor( - MColor(displayColor[0], displayColor[1], displayColor[2])); - - float transmission - = (transparencyColor[0] + transparencyColor[1] + transparencyColor[2]) / 3.0f; - surfaceFn.setTransmission(transmission); - - const SdfPath surfacePath = - shaderParentPath.AppendChild(TfToken(surfaceFn.name().asChar())); - context->AddCreatedObject(surfacePath, shadingObj); - - // Find the outColor plug so we can connect it as the surface shader of the - // shading engine. - outputPlug = surfaceFn.findPlug("outColor", &status); - CHECK_MSTATUS_AND_RETURN(status, MObject()); } -#endif - // Create the shading engine. MObject shadingEngine = context->CreateShadingEngine(); if (shadingEngine.isNull()) { @@ -436,5 +214,4 @@ DEFINE_SHADING_MODE_IMPORTER_WITH_JOB_ARGUMENTS(displayColor, context, jobArgume return shadingEngine; } - PXR_NAMESPACE_CLOSE_SCOPE diff --git a/lib/mayaUsd/fileio/shading/shadingModePxrRis.cpp b/lib/mayaUsd/fileio/shading/shadingModePxrRis.cpp index 2ff1ef4855..ca21a453b0 100644 --- a/lib/mayaUsd/fileio/shading/shadingModePxrRis.cpp +++ b/lib/mayaUsd/fileio/shading/shadingModePxrRis.cpp @@ -396,6 +396,23 @@ TF_REGISTRY_FUNCTION_WITH_TAG(UsdMayaShadingModeExportContext, pxrRis) namespace { +static +TfToken +_GetMayaTypeNameForShaderId( + const TfToken& shaderId, + bool defaultToMayaNodes = true) +{ + // Remap the mayaTypeName if found in the RIS table. + for (const auto & i : RfmNodesToShaderIds) { + if (i.second == shaderId) { + return i.first; + } + } + + // Otherwise, just return shaderId: + return defaultToMayaNodes ? shaderId : TfToken(); +} + static MObject _CreateAndPopulateShaderObject( @@ -415,6 +432,16 @@ _GetOrCreateShaderObject( return shaderObj; } + if (shadingNodeType == UsdMayaShadingNodeType::Shader) { + // We specifically reload only Pxr type shaders and let other importers + // work on unsupported nodes: + TfToken shaderId; + shaderSchema.GetIdAttr().Get(&shaderId); + if (_GetMayaTypeNameForShaderId(shaderId, false).IsEmpty()) { + return shaderObj; + } + } + if (context->GetCreatedObject(shaderSchema.GetPrim(), &shaderObj)) { return shaderObj; } @@ -448,22 +475,6 @@ _ImportAttr(const UsdAttribute& usdAttr, const MFnDependencyNode& fnDep) return mayaAttrPlug; } -static -TfToken -_GetMayaTypeNameForShaderId( - const TfToken& shaderId) -{ - // Remap the mayaTypeName if found in the RIS table. - for (const auto & i : RfmNodesToShaderIds) { - if (i.second == shaderId) { - return i.first; - } - } - - // Otherwise, just return shaderId - return shaderId; -} - static UsdMayaShadingNodeType _ComputeShadingNodeTypeForShaderId( @@ -627,7 +638,7 @@ _CreateAndPopulateShaderObject( }; // anonymous namespace -DEFINE_SHADING_MODE_IMPORTER(pxrRis, context) +DEFINE_SHADING_MODE_IMPORTER(pxrRis, "RfM Shaders", "",context) { // RenderMan for Maya wants the shader nodes to get hooked into the shading // group via its own plugs. diff --git a/lib/mayaUsd/fileio/shading/shadingModeRegistry.cpp b/lib/mayaUsd/fileio/shading/shadingModeRegistry.cpp index ad55114471..80bbb77844 100644 --- a/lib/mayaUsd/fileio/shading/shadingModeRegistry.cpp +++ b/lib/mayaUsd/fileio/shading/shadingModeRegistry.cpp @@ -38,19 +38,19 @@ namespace { static const std::string _kEmptyString; } -struct _ShadingMode { +struct _ExportShadingMode { std::string _niceName; std::string _description; UsdMayaShadingModeExporterCreator _fn; }; -using _ExportRegistry = std::map; +using _ExportRegistry = std::map; static _ExportRegistry _exportReg; -TF_DEFINE_PUBLIC_TOKENS(UsdMayaShadingConversionTokens, +TF_DEFINE_PUBLIC_TOKENS(UsdMayaPreferredMaterialTokens, PXRUSDMAYA_SHADINGCONVERSION_TOKENS); using _MaterialConversionRegistry = std:: - unordered_map; + unordered_map; static _MaterialConversionRegistry _conversionReg; bool @@ -63,7 +63,7 @@ UsdMayaShadingModeRegistry::RegisterExporter( const TfToken nameToken(name); std::pair<_ExportRegistry::const_iterator, bool> insertStatus = _exportReg.insert(_ExportRegistry::value_type( - nameToken, _ShadingMode { std::move(niceName), std::move(description), fn })); + nameToken, _ExportShadingMode { std::move(niceName), std::move(description), fn })); if (insertStatus.second) { UsdMaya_RegistryHelper::AddUnloader([nameToken]() { _exportReg.erase(nameToken); @@ -99,18 +99,25 @@ UsdMayaShadingModeRegistry::_GetExporterDescription(const TfToken& name) { return it == _exportReg.end() ? _kEmptyString : it->second._description; } -using _ImportRegistry = std::map; +struct _ImportShadingMode { + std::string _niceName; + std::string _description; + UsdMayaShadingModeImporter _fn; +}; +using _ImportRegistry = std::map; static _ImportRegistry _importReg; bool UsdMayaShadingModeRegistry::RegisterImporter( const std::string& name, + std::string niceName, + std::string description, UsdMayaShadingModeImporter fn) { const TfToken nameToken(name); - std::pair<_ImportRegistry::const_iterator, bool> insertStatus = - _importReg.insert( - std::make_pair(nameToken, fn)); + std::pair<_ImportRegistry::const_iterator, bool> insertStatus + = _importReg.insert(_ImportRegistry::value_type( + nameToken, _ImportShadingMode { std::move(niceName), std::move(description), fn })); if (insertStatus.second) { UsdMaya_RegistryHelper::AddUnloader([nameToken]() { _importReg.erase(nameToken); @@ -125,8 +132,26 @@ UsdMayaShadingModeRegistry::RegisterImporter( UsdMayaShadingModeImporter UsdMayaShadingModeRegistry::_GetImporter(const TfToken& name) { + UsdMaya_RegistryHelper::LoadShadingModePlugins(); TfRegistryManager::GetInstance().SubscribeTo(); - return _importReg[name]; + const auto it = _importReg.find(name); + return it == _importReg.end() ? nullptr : it->second._fn; +} + +const std::string& +UsdMayaShadingModeRegistry::_GetImporterNiceName(const TfToken& name) { + UsdMaya_RegistryHelper::LoadShadingModePlugins(); + TfRegistryManager::GetInstance().SubscribeTo(); + const auto it = _importReg.find(name); + return it == _importReg.end() ? _kEmptyString : it->second._niceName; +} + +const std::string& +UsdMayaShadingModeRegistry::_GetImporterDescription(const TfToken& name) { + UsdMaya_RegistryHelper::LoadShadingModePlugins(); + TfRegistryManager::GetInstance().SubscribeTo(); + const auto it = _importReg.find(name); + return it == _importReg.end() ? _kEmptyString : it->second._description; } TfTokenVector UsdMayaShadingModeRegistry::_ListExporters() @@ -143,6 +168,7 @@ TfTokenVector UsdMayaShadingModeRegistry::_ListExporters() TfTokenVector UsdMayaShadingModeRegistry::_ListImporters() { + UsdMaya_RegistryHelper::LoadShadingModePlugins(); TfRegistryManager::GetInstance().SubscribeTo(); TfTokenVector ret; ret.reserve(_importReg.size()); @@ -161,15 +187,46 @@ void UsdMayaShadingModeRegistry::RegisterExportConversion( // It is perfectly valid to register the same material conversion more than once, // especially if exporters for a conversion are split across multiple libraries. // We will keep the first niceName registered. - _conversionReg.insert(_MaterialConversionRegistry::value_type( - materialConversion, - ExportConversionInfo { renderContext, niceName, description })); + _MaterialConversionRegistry::iterator insertionPoint; + bool hasInserted; + std::tie(insertionPoint, hasInserted) + = _conversionReg.insert(_MaterialConversionRegistry::value_type( + materialConversion, + ConversionInfo { renderContext, niceName, description, TfToken(), true, false })); + if (!hasInserted) { + // Update the info: + insertionPoint->second.exportDescription = description; + insertionPoint->second.hasExporter = true; + } +} + +void UsdMayaShadingModeRegistry::RegisterImportConversion( + const TfToken& materialConversion, + const TfToken& renderContext, + const TfToken& niceName, + const TfToken& description) +{ + // It is perfectly valid to register the same material conversion more than once, + // especially if importers for a conversion are split across multiple libraries. + // We will keep the first niceName registered. + _MaterialConversionRegistry::iterator insertionPoint; + bool hasInserted; + std::tie(insertionPoint, hasInserted) + = _conversionReg.insert(_MaterialConversionRegistry::value_type( + materialConversion, + ConversionInfo { renderContext, niceName, TfToken(), description, false, true })); + if (!hasInserted) { + // Update the info: + insertionPoint->second.importDescription = description; + insertionPoint->second.hasImporter = true; + } } TfTokenVector -UsdMayaShadingModeRegistry::_ListExportConversions() { +UsdMayaShadingModeRegistry::_ListMaterialConversions() { UsdMaya_RegistryHelper::LoadShadingModePlugins(); TfRegistryManager::GetInstance().SubscribeTo(); + TfRegistryManager::GetInstance().SubscribeTo(); TfTokenVector ret; ret.reserve(_conversionReg.size()); for (const auto& e : _conversionReg) { @@ -178,13 +235,13 @@ UsdMayaShadingModeRegistry::_ListExportConversions() { return ret; } -const UsdMayaShadingModeRegistry::ExportConversionInfo& -UsdMayaShadingModeRegistry::_GetExportConversionInfo(const TfToken& materialConversion) +const UsdMayaShadingModeRegistry::ConversionInfo& +UsdMayaShadingModeRegistry::_GetMaterialConversionInfo(const TfToken& materialConversion) { UsdMaya_RegistryHelper::LoadShadingModePlugins(); TfRegistryManager::GetInstance().SubscribeTo(); auto it = _conversionReg.find(materialConversion); - static const ExportConversionInfo _emptyInfo; + static const ConversionInfo _emptyInfo; return it != _conversionReg.end() ? it->second : _emptyInfo; } diff --git a/lib/mayaUsd/fileio/shading/shadingModeRegistry.h b/lib/mayaUsd/fileio/shading/shadingModeRegistry.h index 2c18205efb..ea25cb429e 100644 --- a/lib/mayaUsd/fileio/shading/shadingModeRegistry.h +++ b/lib/mayaUsd/fileio/shading/shadingModeRegistry.h @@ -37,7 +37,8 @@ PXR_NAMESPACE_OPEN_SCOPE #define PXRUSDMAYA_SHADINGMODE_TOKENS \ (none) \ (displayColor) \ - (useRegistry) + (useRegistry) \ + (default) TF_DECLARE_PUBLIC_TOKENS(UsdMayaShadingModeTokens, MAYAUSD_CORE_PUBLIC, @@ -47,11 +48,11 @@ TF_DECLARE_PUBLIC_TOKENS(UsdMayaShadingModeTokens, (none) \ (lambert) \ (standardSurface) \ + (usdPreviewSurface) \ (blinn) \ - (phong) \ - (phongE) + (phong) -TF_DECLARE_PUBLIC_TOKENS(UsdMayaShadingConversionTokens, +TF_DECLARE_PUBLIC_TOKENS(UsdMayaPreferredMaterialTokens, MAYAUSD_CORE_PUBLIC, PXRUSDMAYA_SHADINGCONVERSION_TOKENS); @@ -86,12 +87,24 @@ class UsdMayaShadingModeRegistry : public TfWeakBase return GetInstance()._GetExporterNiceName(name); } + /// Gets the nice name of an importer. Used for the UI label of the import options + static const std::string& GetImporterNiceName(const TfToken& name) + { + return GetInstance()._GetImporterNiceName(name); + } + /// Gets the description of an exporter. Used for the popup help of the export options static const std::string& GetExporterDescription(const TfToken& name) { return GetInstance()._GetExporterDescription(name); } + /// Gets the description of an importer. Used for the popup help of the import options + static const std::string& GetImporterDescription(const TfToken& name) + { + return GetInstance()._GetImporterDescription(name); + } + MAYAUSD_CORE_PUBLIC static UsdMayaShadingModeRegistry& GetInstance(); @@ -105,30 +118,41 @@ class UsdMayaShadingModeRegistry : public TfWeakBase MAYAUSD_CORE_PUBLIC bool RegisterImporter( const std::string& name, + std::string niceName, + std::string description, UsdMayaShadingModeImporter fn); - /// The useRegistry exporters can be specialized to support material conversions. The most well - /// known is the default conversion to UsdPreviewSurface shaders. This registry allows - /// introducing other material conversions as necessary to support other renderers. + /// The useRegistry exporters and importers can be specialized to support material conversions. + /// The most well known is the default conversion to UsdPreviewSurface shaders. This registry + /// allows introducing other material conversions as necessary to support other renderers. We + /// also allow specifying that an import path is available for these renderers if support has + /// been implemented. /// - /// To register a material conversion, you need to use the + /// To register a material conversion on export, you need to use the /// REGISTER_SHADING_MODE_EXPORT_MATERIAL_CONVERSION macro for each material conversion /// supported by the library. Multiple registration is supported, so each plugin should declare /// once the material conversions it supports. /// - static TfTokenVector ListExportConversions() { return GetInstance()._ListExportConversions(); } + /// To register a material conversion on import, you need to use the + /// REGISTER_SHADING_MODE_IMPORT_MATERIAL_CONVERSION macro for each material conversion. + + /// Get all registered export conversions: + static TfTokenVector ListMaterialConversions() { return GetInstance()._ListMaterialConversions(); } /// All the information registered for a specific material conversion. - struct ExportConversionInfo { + struct ConversionInfo { TfToken renderContext; TfToken niceName; - TfToken description; + TfToken exportDescription; + TfToken importDescription; + bool hasExporter = false; + bool hasImporter = false; }; - /// Gets the information associated with \p materialConversion - static const ExportConversionInfo& GetExportConversionInfo(const TfToken& materialConversion) + /// Gets the conversion information associated with \p materialConversion on export + static const ConversionInfo& GetMaterialConversionInfo(const TfToken& materialConversion) { - return GetInstance()._GetExportConversionInfo(materialConversion); + return GetInstance()._GetMaterialConversionInfo(materialConversion); } /// Registers an export material conversion, with render context, nice name and description. @@ -152,6 +176,28 @@ class UsdMayaShadingModeRegistry : public TfWeakBase const TfToken& niceName, const TfToken& description); + /// Registers an import material conversion, with render context, nice name and description. + /// This is the import counterpart of the RegisterExportConversion to be used if importers are + /// available for a specific materialConversion. This covers only the "where to look in USD" + /// part of material import. Extra conversion to a specified Maya surface node requires setting + /// the optional preferredMaterial import option. + /// + /// The \p materialConversion name will be used directly in the import option string as one of + /// the valid values of the second parameter to the shadingMode list to search on import. + /// + /// The \p renderContext will be used to locate the binding point used on export. See + /// RegisterExportConversion for more details. + /// + /// The \p niceName is the name to be displayed in the import options dialog. + /// + /// The \p description is displayed as a tooltip in the import options dialog. + MAYAUSD_CORE_PUBLIC + void RegisterImportConversion( + const TfToken& materialConversion, + const TfToken& renderContext, + const TfToken& niceName, + const TfToken& description); + private: MAYAUSD_CORE_PUBLIC UsdMayaShadingModeExporterCreator _GetExporter(const TfToken& name); @@ -160,39 +206,42 @@ class UsdMayaShadingModeRegistry : public TfWeakBase MAYAUSD_CORE_PUBLIC UsdMayaShadingModeImporter _GetImporter(const TfToken& name); + MAYAUSD_CORE_PUBLIC const std::string& _GetImporterNiceName(const TfToken&); + MAYAUSD_CORE_PUBLIC const std::string& _GetImporterDescription(const TfToken&); MAYAUSD_CORE_PUBLIC TfTokenVector _ListExporters(); MAYAUSD_CORE_PUBLIC TfTokenVector _ListImporters(); - MAYAUSD_CORE_PUBLIC TfTokenVector _ListExportConversions(); - MAYAUSD_CORE_PUBLIC const ExportConversionInfo& _GetExportConversionInfo(const TfToken&); + MAYAUSD_CORE_PUBLIC TfTokenVector _ListMaterialConversions(); + MAYAUSD_CORE_PUBLIC const ConversionInfo& _GetMaterialConversionInfo(const TfToken&); UsdMayaShadingModeRegistry(); ~UsdMayaShadingModeRegistry(); friend class TfSingleton; }; -#define DEFINE_SHADING_MODE_IMPORTER(name, contextName) \ +#define DEFINE_SHADING_MODE_IMPORTER(name, niceName, description, contextName) \ + static MObject _ShadingModeImporter_##name( \ + UsdMayaShadingModeImportContext*, const UsdMayaJobImportArgs&); \ + TF_REGISTRY_FUNCTION_WITH_TAG(UsdMayaShadingModeImportContext, name) \ + { \ + UsdMayaShadingModeRegistry::GetInstance().RegisterImporter( \ + #name, niceName, description, &_ShadingModeImporter_##name); \ + } \ + MObject _ShadingModeImporter_##name( \ + UsdMayaShadingModeImportContext* contextName, const UsdMayaJobImportArgs&) + +#define DEFINE_SHADING_MODE_IMPORTER_WITH_JOB_ARGUMENTS( \ + name, niceName, description, contextName, jobArgumentsName) \ static MObject _ShadingModeImporter_##name( \ UsdMayaShadingModeImportContext*, const UsdMayaJobImportArgs&); \ TF_REGISTRY_FUNCTION_WITH_TAG(UsdMayaShadingModeImportContext, name) \ { \ UsdMayaShadingModeRegistry::GetInstance().RegisterImporter( \ - #name, &_ShadingModeImporter_##name); \ + #name, niceName, description, &_ShadingModeImporter_##name); \ } \ MObject _ShadingModeImporter_##name( \ - UsdMayaShadingModeImportContext* contextName, const UsdMayaJobImportArgs&) - -#define DEFINE_SHADING_MODE_IMPORTER_WITH_JOB_ARGUMENTS(name, contextName, jobArgumentsName) \ - static MObject _ShadingModeImporter_##name( \ - UsdMayaShadingModeImportContext*, const UsdMayaJobImportArgs&); \ - TF_REGISTRY_FUNCTION_WITH_TAG(UsdMayaShadingModeImportContext, name) \ - { \ - UsdMayaShadingModeRegistry::GetInstance().RegisterImporter( \ - #name, &_ShadingModeImporter_##name); \ - } \ - MObject _ShadingModeImporter_##name( \ - UsdMayaShadingModeImportContext* contextName, \ + UsdMayaShadingModeImportContext* contextName, \ const UsdMayaJobImportArgs& jobArgumentsName) #define REGISTER_SHADING_MODE_EXPORT_MATERIAL_CONVERSION( \ @@ -203,6 +252,14 @@ class UsdMayaShadingModeRegistry : public TfWeakBase name, renderContext, niceName, description); \ } +#define REGISTER_SHADING_MODE_IMPORT_MATERIAL_CONVERSION( \ + name, renderContext, niceName, description) \ + TF_REGISTRY_FUNCTION(UsdMayaShadingModeImportContext) \ + { \ + UsdMayaShadingModeRegistry::GetInstance().RegisterImportConversion( \ + name, renderContext, niceName, description); \ + } + PXR_NAMESPACE_CLOSE_SCOPE diff --git a/lib/mayaUsd/fileio/shading/shadingModeUseRegistry.cpp b/lib/mayaUsd/fileio/shading/shadingModeUseRegistry.cpp index ebe9566681..dbf3a26802 100644 --- a/lib/mayaUsd/fileio/shading/shadingModeUseRegistry.cpp +++ b/lib/mayaUsd/fileio/shading/shadingModeUseRegistry.cpp @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -56,6 +57,16 @@ PXR_NAMESPACE_OPEN_SCOPE namespace { +TF_DEFINE_PRIVATE_TOKENS( + _tokens, + ((ArgName, "useRegistry")) + ((NiceName, "Use Registry")) + ((ExportDescription, "Use a registry based mechanism, complemented with material conversions," + " to export to a UsdShade network")) + ((ImportDescription, "Use a registry based mechanism, complemented with material conversions," + " to import from a UsdShade network")) +); + using _NodeHandleToShaderWriterMap = UsdMayaUtil::MObjectHandleUnorderedMap; @@ -335,7 +346,7 @@ class UseRegistryShadingModeExporter : public UsdMayaShadingModeExporter const TfToken& convertMaterialsTo = context.GetExportArgs().convertMaterialsTo; const TfToken& renderContext - = UsdMayaShadingModeRegistry::GetExportConversionInfo(convertMaterialsTo) + = UsdMayaShadingModeRegistry::GetMaterialConversionInfo(convertMaterialsTo) .renderContext; SdfPath materialExportPath = materialPrim.GetPath(); @@ -379,10 +390,9 @@ class UseRegistryShadingModeExporter : public UsdMayaShadingModeExporter TF_REGISTRY_FUNCTION_WITH_TAG(UsdMayaShadingModeExportContext, useRegistry) { UsdMayaShadingModeRegistry::GetInstance().RegisterExporter( - "useRegistry", - "Use Registry", - "Use a registry based mechanism, complemented with material conversions, to export to a " - "UsdShade network", + _tokens->ArgName.GetString(), + _tokens->NiceName.GetString(), + _tokens->ExportDescription.GetString(), []() -> UsdMayaShadingModeExporterPtr { return UsdMayaShadingModeExporterPtr( static_cast( @@ -409,12 +419,29 @@ class UseRegistryShadingModeImporter { /// shading network. MObject Read() { + if (_jobArguments.shadingModes.size() != 1) { + // The material translator will make sure we only get a single shading mode + // at a time. + TF_CODING_ERROR("useRegistry importer can only handle a single shadingMode"); + return MObject(); + } + const TfToken& materialConversion = _jobArguments.shadingModes.front().second; + TfToken renderContext = UsdMayaShadingModeRegistry::GetMaterialConversionInfo( + materialConversion).renderContext; + const UsdShadeMaterial& shadeMaterial = _context->GetShadeMaterial(); if (!shadeMaterial) { return MObject(); } - UsdShadeShader surfaceShader = shadeMaterial.ComputeSurfaceSource(); + // ComputeSurfaceSource will default to the universal render context if + // renderContext is not found. Therefore we need to test first that the + // render context output we are looking for really exists: + if (!shadeMaterial.GetSurfaceOutput(renderContext)) { + return MObject(); + } + + UsdShadeShader surfaceShader = shadeMaterial.ComputeSurfaceSource(renderContext); if (!surfaceShader) { return MObject(); } @@ -596,7 +623,12 @@ class UseRegistryShadingModeImporter { }; // anonymous namespace -DEFINE_SHADING_MODE_IMPORTER_WITH_JOB_ARGUMENTS(useRegistry, context, jobArguments) +DEFINE_SHADING_MODE_IMPORTER_WITH_JOB_ARGUMENTS( + useRegistry, + _tokens->NiceName.GetString(), + _tokens->ImportDescription.GetString(), + context, + jobArguments) { UseRegistryShadingModeImporter importer(context, jobArguments); return importer.Read(); diff --git a/lib/mayaUsd/fileio/shading/symmetricShaderReader.cpp b/lib/mayaUsd/fileio/shading/symmetricShaderReader.cpp index 9d51b4f0dc..e0eadbd81b 100644 --- a/lib/mayaUsd/fileio/shading/symmetricShaderReader.cpp +++ b/lib/mayaUsd/fileio/shading/symmetricShaderReader.cpp @@ -64,14 +64,14 @@ void UsdMayaSymmetricShaderReader::RegisterReader( const TfToken& usdShaderId, const TfToken& mayaNodeTypeName, - const TfToken& shadingConversionName) + const TfToken& materialConversion) { UsdMayaShaderReaderRegistry::Register( usdShaderId, - [shadingConversionName](const UsdMayaJobImportArgs& importArgs) { + [materialConversion](const UsdMayaJobImportArgs& importArgs) { return UsdMayaSymmetricShaderReader::CanImport( importArgs, - shadingConversionName); + materialConversion); }, [mayaNodeTypeName](const UsdMayaPrimReaderArgs& readerArgs) { return std::make_shared( @@ -84,10 +84,10 @@ UsdMayaSymmetricShaderReader::RegisterReader( UsdMayaShaderReader::ContextSupport UsdMayaSymmetricShaderReader::CanImport( const UsdMayaJobImportArgs& importArgs, - const TfToken& shadingConversionName) + const TfToken& materialConversion) { - if (shadingConversionName.IsEmpty() || - importArgs.shadingConversion == shadingConversionName) { + if (materialConversion.IsEmpty() + || importArgs.shadingModes.front().second == materialConversion) { // This shader reader advertises "Fallback" support so that any more // specialized readers for a particular shader ID can take precedence. return ContextSupport::Fallback; diff --git a/lib/mayaUsd/fileio/shading/symmetricShaderReader.h b/lib/mayaUsd/fileio/shading/symmetricShaderReader.h index cd3bbe7511..7aa037b583 100644 --- a/lib/mayaUsd/fileio/shading/symmetricShaderReader.h +++ b/lib/mayaUsd/fileio/shading/symmetricShaderReader.h @@ -52,7 +52,7 @@ PXR_NAMESPACE_OPEN_SCOPE /// UsdMayaSymmetricShaderReader::RegisterReader( /// TfToken("MyUsdShaderId"), /// TfToken("myMayaNodeTypeName"), -/// /* shadingConversionName = */ TfToken("myShadingConversionName")); +/// TfToken("myMaterialConversion")); /// }; /// \endcode /// @@ -75,12 +75,12 @@ class UsdMayaSymmetricShaderReader : public UsdMayaShaderReader static void RegisterReader( const TfToken& usdShaderId, const TfToken& mayaNodeTypeName, - const TfToken& shadingConversionName = TfToken()); + const TfToken& materialConversion); MAYAUSD_CORE_PUBLIC static ContextSupport CanImport( const UsdMayaJobImportArgs& importArgs, - const TfToken& shadingConversionName = TfToken()); + const TfToken& materialConversion); MAYAUSD_CORE_PUBLIC UsdMayaSymmetricShaderReader( diff --git a/lib/mayaUsd/fileio/shading/symmetricShaderWriter.cpp b/lib/mayaUsd/fileio/shading/symmetricShaderWriter.cpp index 33944a86a8..a79f4e098c 100644 --- a/lib/mayaUsd/fileio/shading/symmetricShaderWriter.cpp +++ b/lib/mayaUsd/fileio/shading/symmetricShaderWriter.cpp @@ -115,8 +115,9 @@ UsdMayaSymmetricShaderWriter::UsdMayaSymmetricShaderWriter( for (unsigned int i = 0u; i < depNodeFn.attributeCount(); ++i) { const MObject attrObj = depNodeFn.reorderedAttribute(i); MPlug attrPlug = depNodeFn.findPlug(attrObj, true); + MFnAttribute attrFn(attrObj); - if (attrPlug.isProcedural()) { + if (attrPlug.isProcedural() || attrFn.isHidden()) { // The Maya docs say these should not be saved off. continue; } diff --git a/lib/mayaUsd/fileio/translators/translatorMaterial.cpp b/lib/mayaUsd/fileio/translators/translatorMaterial.cpp index e00c3a33af..438a27ad92 100644 --- a/lib/mayaUsd/fileio/translators/translatorMaterial.cpp +++ b/lib/mayaUsd/fileio/translators/translatorMaterial.cpp @@ -52,14 +52,13 @@ PXR_NAMESPACE_OPEN_SCOPE /* static */ -MObject -UsdMayaTranslatorMaterial::Read( - const UsdMayaJobImportArgs& jobArguments, - const UsdShadeMaterial& shadeMaterial, - const UsdGeomGprim& boundPrim, - UsdMayaPrimReaderContext* context) +MObject UsdMayaTranslatorMaterial::Read( + const UsdMayaJobImportArgs& jobArguments, + const UsdShadeMaterial& shadeMaterial, + const UsdGeomGprim& boundPrim, + UsdMayaPrimReaderContext* context) { - if (jobArguments.shadingMode == UsdMayaShadingModeTokens->none) { + if (jobArguments.shadingModes.empty()) { return MObject(); } @@ -71,15 +70,22 @@ UsdMayaTranslatorMaterial::Read( return shadingEngine; } - if (UsdMayaShadingModeImporter importer = - UsdMayaShadingModeRegistry::GetImporter(jobArguments.shadingMode)) { - shadingEngine = importer(&c, jobArguments); - } + UsdMayaJobImportArgs localArguments = jobArguments; + for (const auto& shadingMode : jobArguments.shadingModes) { + if (shadingMode.first == UsdMayaShadingModeTokens->none) { + break; + } + if (UsdMayaShadingModeImporter importer + = UsdMayaShadingModeRegistry::GetImporter(shadingMode.first)) { + localArguments.shadingModes = UsdMayaJobImportArgs::ShadingModes(1, shadingMode); + shadingEngine = importer(&c, localArguments); + } - if (!shadingEngine.isNull()) { - c.AddCreatedObject(shadeMaterial.GetPrim(), shadingEngine); + if (!shadingEngine.isNull()) { + c.AddCreatedObject(shadeMaterial.GetPrim(), shadingEngine); + return shadingEngine; + } } - return shadingEngine; } diff --git a/lib/mayaUsd/render/vp2RenderDelegate/mesh.cpp b/lib/mayaUsd/render/vp2RenderDelegate/mesh.cpp index 2bc1764499..0d853da996 100644 --- a/lib/mayaUsd/render/vp2RenderDelegate/mesh.cpp +++ b/lib/mayaUsd/render/vp2RenderDelegate/mesh.cpp @@ -38,6 +38,7 @@ #include "tokens.h" #include +#include PXR_NAMESPACE_OPEN_SCOPE @@ -1013,7 +1014,7 @@ void HdVP2Mesh::_UpdateDrawItem( // Use fallback shader if there is no material binding or we // failed to create a shader instance from the material. if (!stateToCommit._shader) { - const GfVec3f& color = colorArray[0]; + const GfVec3f& color = UsdMayaColorSpace::ConvertLinearToMaya(colorArray[0]); MHWRender::MShaderInstance* shader = _delegate->GetFallbackShader( MColor(color[0], color[1], color[2], alphaArray[0])); diff --git a/lib/mayaUsd/utils/util.cpp b/lib/mayaUsd/utils/util.cpp index 70cceb8a39..161c6623bb 100644 --- a/lib/mayaUsd/utils/util.cpp +++ b/lib/mayaUsd/utils/util.cpp @@ -62,6 +62,7 @@ #include #include #include +#include #include #include #include @@ -825,7 +826,7 @@ _GetColorAndTransparencyFromLambert( MColor trn = lambertFn.transparency(); // Assign Alpha as 1.0 - average of shader transparency // and check if they are all the same - *alpha = 1.0 - ((trn[0] + trn[1] + trn[2]) / 3.0); + *alpha = 1.0f - ((trn[0] + trn[1] + trn[2]) / 3.0f); } return true; } @@ -869,16 +870,14 @@ _GetColorAndTransparencyFromDepNode( { MStatus status; MFnDependencyNode d(shaderObj); - MPlug colorPlug = d.findPlug("color", true, &status); - if (!status) { - return false; - } - MPlug transparencyPlug = d.findPlug("transparency", true, &status); - if (!status) { - return false; - } - if (rgb) { + MPlug colorPlug = d.findPlug("color", true, &status); + if (!status) { + colorPlug = d.findPlug("diffuseColor", true, &status); + if (!status) { + return false; + } + } GfVec3f displayColor; for (int j=0; j<3; j++) { colorPlug.child(j).getValue(displayColor[j]); @@ -887,13 +886,23 @@ _GetColorAndTransparencyFromDepNode( } if (alpha) { - float trans = 0.f; - for (int j=0; j<3; j++) { - float t = 0.f; - transparencyPlug.child(j).getValue(t); - trans += t/3.f; + MPlug transparencyPlug = d.findPlug("transparency", true, &status); + if (status) { + float trans = 0.f; + for (int j=0; j<3; j++) { + float t = 0.f; + transparencyPlug.child(j).getValue(t); + trans += t/3.f; + } + *alpha = 1.f - trans; + } else { + MPlug opacityPlug = d.findPlug("opacity", true, &status); + if (!status) { + *alpha = 1.f; + return false; + } + *alpha = opacityPlug.asFloat(); } - (*alpha) = 1.f - trans; } return true; } @@ -1590,7 +1599,23 @@ UsdMayaUtil::setPlugValue( } } } - else if (val.IsHolding()) { + else if (val.IsHolding()) { + MObject object = attrPlug.attribute(); + if (object.hasFn(MFn::kTypedAttribute) + && MFnTypedAttribute(object).attrType() == MFnData::kMatrix) { + GfMatrix4d mat = val.Get(); + MMatrix mayaMat; + for (size_t i = 0; i < 4; ++i) { + for (size_t j = 0; j < 4; ++j) { + mayaMat[i][j] = mat[i][j]; + } + } + MFnMatrixData data; + MObject dataObj = data.create(); + data.set(mayaMat); + status = attrPlug.setValue(dataObj); + } + } else if (val.IsHolding()) { const VtDoubleArray& valArray = val.UncheckedGet(); status = attrPlug.setNumElements(static_cast(valArray.size())); CHECK_MSTATUS_AND_RETURN(status, false); @@ -1953,35 +1978,143 @@ UsdMayaUtil::GetDictionaryFromArgDatabase( return args; } -VtValue -UsdMayaUtil::ParseArgumentValue( - const std::string& key, - const std::string& value, - const VtDictionary& guideDict) +namespace { +VtValue _ParseArgumentValue(const JsValue& jsValue, const VtValue& guideValue) +{ + if (guideValue.IsHolding()) { + if (jsValue.GetType() == JsValue::StringType) { + return VtValue(TfUnstringify(jsValue.GetString())); + } else { + return VtValue(); + } + } else if (guideValue.IsHolding()) { + if (jsValue.GetType() == JsValue::StringType) { + return VtValue(jsValue.GetString()); + } else { + return VtValue(); + } + } else if (guideValue.IsHolding>()) { + if (jsValue.GetType() == JsValue::ArrayType) { + const JsArray& jsArray = jsValue.GetJsArray(); + std::vector guideVector = guideValue.Get>(); + std::vector vtValue; + if (guideVector.empty() && !jsArray.empty()) { + TF_CODING_ERROR("Guide vector is empty. Can not recursively parse."); + return VtValue(vtValue); + } + for (const JsValue& jsItem : jsArray) { + vtValue.push_back(_ParseArgumentValue(jsItem, guideVector.front())); + } + return VtValue(vtValue); + } else { + return VtValue(); + } + } + return VtValue(); +} + +VtValue _ParseArgumentValue(const std::string& value, const VtValue& guideValue) +{ + // The export UI only has boolean and string parameters. + if (guideValue.IsHolding()) { + return VtValue(TfUnstringify(value)); + } else if (guideValue.IsHolding()) { + return VtValue(value); + } else if (guideValue.IsHolding>()) { + // To prevent quoting issues in MEL scripts, we expect a string that is + // completely unquoted, containing an array of booleans, tokens, or + // other arrays: + // [0,1,true,false] + // [none,default] + // [[useRegistry,UsdPreviewSurface],[displayColors,default]] + // So, to be able to parse this as valid JSON, we need to add quotes at + // each "[[," to alphanumeric transition. + // NOTE: The array contains *tokens*, not freeform strings. So we can + // skip spaces and consider all commas to be element separators. + bool wasArrayDelimiter = true; + std::string quotedString; + for (auto c = value.cbegin(); c != value.cend(); ++c) { + if (*c == ' ') { + continue; + } + bool isArrayDelimiter = *c == '[' || *c == ']' || *c == ','; + if (isArrayDelimiter != wasArrayDelimiter) { + quotedString += "\""; + wasArrayDelimiter = isArrayDelimiter; + } + quotedString += *c; + } + + JsParseError jsError; + const JsValue jsValue = JsParseString(quotedString, &jsError); + if (!jsValue) { + TF_CODING_ERROR( + "Failed to parse vector parameter '%s'. Invalid JSON: '%s'", + value.c_str(), + jsError.reason.c_str()); + return VtValue(); + } + return _ParseArgumentValue(jsValue, guideValue); + } + + return VtValue(); +} +} // namespace + +VtValue UsdMayaUtil::ParseArgumentValue( + const std::string& key, + const std::string& value, + const VtDictionary& guideDict) { // We handle two types of arguments: // 1 - bools: Should be encoded by translator UI as a "1" or "0" string. // 2 - strings: Just strings! - // We don't handle any vectors because none of the translator UIs currently - // pass around any of the vector flags. + // 3 - vectors: We expect [token1,token2] or [[token1,token2],[t3,t4]] + // tokens are unquoted alphanumeric strings + // vector> is passed for shadingMode auto iter = guideDict.find(key); if (iter != guideDict.end()) { const VtValue& guideValue = iter->second; - // The export UI only has boolean and string parameters. - if (guideValue.IsHolding()) { - return VtValue(TfUnstringify(value)); - } - else if (guideValue.IsHolding()) { - return VtValue(value); - } - } - else { + return _ParseArgumentValue(value, guideValue); + } else { TF_CODING_ERROR("Unknown flag '%s'", key.c_str()); } return VtValue(); } +std::pair +UsdMayaUtil::ValueToArgument(const VtValue& value) { + if (value.IsHolding()) { + return std::make_pair(true, std::string(value.Get() ? "1" : "0")); + } + else if (value.IsHolding()) { + return std::make_pair(true, value.Get()); + } + else if (value.IsHolding>()) { + std::string arrayValue{"["}; + bool firstElement = true; + for (auto const & elemValue: value.Get>()) { + if (firstElement) { + firstElement = false; + } else { + arrayValue += ","; + } + bool canConvert; + std::string elemString; + std::tie(canConvert, elemString) = ValueToArgument(elemValue); + if (canConvert) { + arrayValue += elemString; + } else { + return std::make_pair(false, std::string()); + } + } + arrayValue += "]"; + return std::make_pair(true, arrayValue); + } + return std::make_pair(false, std::string()); +} + std::vector UsdMayaUtil::GetAllAncestorMayaNodeTypes(const std::string& ty) { diff --git a/lib/mayaUsd/utils/util.h b/lib/mayaUsd/utils/util.h index 6fac9ed7b3..1acd4ed4bb 100644 --- a/lib/mayaUsd/utils/util.h +++ b/lib/mayaUsd/utils/util.h @@ -530,6 +530,13 @@ VtValue ParseArgumentValue( const std::string& value, const VtDictionary& guideDict); +/// Converts a value into a string that can be parsed back using ParseArgumentValue. +/// Should be used when generating argument strings that are to be used by translators. +/// Has the same rules and limitations as the former function. +/// Will return false if the variant type is not supported. +MAYAUSD_CORE_PUBLIC +std::pair ValueToArgument(const VtValue& value); + /// Gets all Maya node types that are ancestors of the given Maya node type /// \p ty. If \p ty isn't registered in Maya's type system, issues a runtime /// error and returns an empty string. diff --git a/lib/usd/pxrUsdPreviewSurface/usdPreviewSurface.h b/lib/usd/pxrUsdPreviewSurface/usdPreviewSurface.h index f19e2c40e8..90bbcc5bae 100644 --- a/lib/usd/pxrUsdPreviewSurface/usdPreviewSurface.h +++ b/lib/usd/pxrUsdPreviewSurface/usdPreviewSurface.h @@ -51,7 +51,11 @@ PXR_NAMESPACE_OPEN_SCOPE ((SpecularColorAttrName, "specularColor")) \ ((UseSpecularWorkflowAttrName, "useSpecularWorkflow")) \ ((OutColorAttrName, "outColor")) \ - ((OutTransparencyAttrName, "outTransparency")) + ((OutTransparencyAttrName, "outTransparency")) \ + ((niceName, "USD Preview Surface")) \ + ((exportDescription, "Exports the bound shader as a USD preview surface UsdShade network.")) \ + ((importDescription, "Search for a USD preview surface UsdShade network to import.")) + TF_DECLARE_PUBLIC_TOKENS( PxrMayaUsdPreviewSurfaceTokens, diff --git a/lib/usd/pxrUsdPreviewSurface/usdPreviewSurfaceReader.cpp b/lib/usd/pxrUsdPreviewSurface/usdPreviewSurfaceReader.cpp index 9246c463da..b80b82e2ea 100644 --- a/lib/usd/pxrUsdPreviewSurface/usdPreviewSurfaceReader.cpp +++ b/lib/usd/pxrUsdPreviewSurface/usdPreviewSurfaceReader.cpp @@ -15,6 +15,7 @@ // #include "usdPreviewSurfaceReader.h" +#include #include #include #include @@ -31,6 +32,7 @@ #include #include #include +#include #include #include @@ -41,6 +43,12 @@ PXR_NAMESPACE_OPEN_SCOPE +REGISTER_SHADING_MODE_IMPORT_MATERIAL_CONVERSION( + UsdImagingTokens->UsdPreviewSurface, + UsdShadeTokens->universalRenderContext, + PxrMayaUsdPreviewSurfaceTokens->niceName, + PxrMayaUsdPreviewSurfaceTokens->importDescription); + PxrMayaUsdPreviewSurface_Reader::PxrMayaUsdPreviewSurface_Reader( const UsdMayaPrimReaderArgs& readArgs, const TfToken& mayaTypeName) : UsdMayaShaderReader(readArgs) diff --git a/lib/usd/pxrUsdPreviewSurface/usdPreviewSurfaceWriter.cpp b/lib/usd/pxrUsdPreviewSurface/usdPreviewSurfaceWriter.cpp index 97065b88c6..6f57898270 100644 --- a/lib/usd/pxrUsdPreviewSurface/usdPreviewSurfaceWriter.cpp +++ b/lib/usd/pxrUsdPreviewSurface/usdPreviewSurfaceWriter.cpp @@ -45,17 +45,11 @@ PXR_NAMESPACE_OPEN_SCOPE -TF_DEFINE_PRIVATE_TOKENS( - _tokens, - ((niceName, "USD Preview Surface")) - ((description, "Exports the bound shader as a USD preview surface UsdShade network.")) -); - REGISTER_SHADING_MODE_EXPORT_MATERIAL_CONVERSION( UsdImagingTokens->UsdPreviewSurface, UsdShadeTokens->universalRenderContext, - _tokens->niceName, - _tokens->description); + PxrMayaUsdPreviewSurfaceTokens->niceName, + PxrMayaUsdPreviewSurfaceTokens->exportDescription); UsdMayaShaderWriter::ContextSupport PxrMayaUsdPreviewSurface_Writer::CanExport(const UsdMayaJobExportArgs& exportArgs) diff --git a/lib/usd/translators/shading/CMakeLists.txt b/lib/usd/translators/shading/CMakeLists.txt index e69acd9ccf..15ff325504 100644 --- a/lib/usd/translators/shading/CMakeLists.txt +++ b/lib/usd/translators/shading/CMakeLists.txt @@ -12,7 +12,6 @@ target_sources(${TARGET_NAME} usdMaterialWriter.cpp usdPhongReader.cpp usdPhongWriter.cpp - usdPhongEReader.cpp usdPhongEWriter.cpp usdReflectWriter.cpp usdUVTextureReader.cpp diff --git a/lib/usd/translators/shading/rfmShaderTranslation.cpp b/lib/usd/translators/shading/rfmShaderTranslation.cpp index 086542452f..0e2027e7cd 100644 --- a/lib/usd/translators/shading/rfmShaderTranslation.cpp +++ b/lib/usd/translators/shading/rfmShaderTranslation.cpp @@ -35,7 +35,8 @@ TF_DEFINE_PRIVATE_TOKENS( ((conversionName, "rendermanForMaya")) ((renderContext, "ri")) ((niceName, "RenderMan for Maya")) - ((description, "Exports bound shaders as a RenderMan for Maya UsdShade network.")) + ((exportDescription, "Exports bound shaders as a RenderMan for Maya UsdShade network.")) + ((importDescription, "Imports a RenderMan UsdShade network.")) ); @@ -43,8 +44,13 @@ REGISTER_SHADING_MODE_EXPORT_MATERIAL_CONVERSION( _tokens->conversionName, _tokens->renderContext, _tokens->niceName, - _tokens->description); + _tokens->exportDescription); +REGISTER_SHADING_MODE_IMPORT_MATERIAL_CONVERSION( + _tokens->conversionName, + _tokens->renderContext, + _tokens->niceName, + _tokens->importDescription); // Register a symmetric shader writer for each Maya node type name and USD // shader ID mapping. These writers will only apply when the applicable @@ -67,7 +73,8 @@ TF_REGISTRY_FUNCTION(UsdMayaShaderReaderRegistry) for (const auto& i : RfmNodesToShaderIds) { UsdMayaSymmetricShaderReader::RegisterReader( i.second, - i.first); + i.first, + _tokens->conversionName); } }; diff --git a/lib/usd/translators/shading/usdBlinnReader.cpp b/lib/usd/translators/shading/usdBlinnReader.cpp index c697f3ed7a..45887b8816 100644 --- a/lib/usd/translators/shading/usdBlinnReader.cpp +++ b/lib/usd/translators/shading/usdBlinnReader.cpp @@ -89,14 +89,14 @@ PxrUsdTranslators_BlinnReader::PxrUsdTranslators_BlinnReader(const UsdMayaPrimRe UsdMayaShaderReader::ContextSupport PxrUsdTranslators_BlinnReader::CanImport(const UsdMayaJobImportArgs& importArgs) { - return importArgs.shadingConversion == UsdMayaShadingConversionTokens->blinn + return importArgs.preferredMaterial == UsdMayaPreferredMaterialTokens->blinn ? ContextSupport::Supported : ContextSupport::Unsupported; } const TfToken& PxrUsdTranslators_BlinnReader::_GetMayaNodeTypeName() const { - return UsdMayaShadingConversionTokens->blinn; + return UsdMayaPreferredMaterialTokens->blinn; } void PxrUsdTranslators_BlinnReader::_OnBeforeReadAttribute( diff --git a/lib/usd/translators/shading/usdLambertReader.cpp b/lib/usd/translators/shading/usdLambertReader.cpp index 1082ca2ddd..de070b8919 100644 --- a/lib/usd/translators/shading/usdLambertReader.cpp +++ b/lib/usd/translators/shading/usdLambertReader.cpp @@ -68,14 +68,14 @@ PxrUsdTranslators_LambertReader::PxrUsdTranslators_LambertReader( UsdMayaShaderReader::ContextSupport PxrUsdTranslators_LambertReader::CanImport(const UsdMayaJobImportArgs& importArgs) { - return importArgs.shadingConversion == UsdMayaShadingConversionTokens->lambert + return importArgs.preferredMaterial == UsdMayaPreferredMaterialTokens->lambert ? ContextSupport::Supported : ContextSupport::Unsupported; } const TfToken& PxrUsdTranslators_LambertReader::_GetMayaNodeTypeName() const { - return UsdMayaShadingConversionTokens->lambert; + return UsdMayaPreferredMaterialTokens->lambert; } void PxrUsdTranslators_LambertReader::_OnBeforeReadAttribute( diff --git a/lib/usd/translators/shading/usdPhongEReader.cpp b/lib/usd/translators/shading/usdPhongEReader.cpp deleted file mode 100644 index 428f0aa9c8..0000000000 --- a/lib/usd/translators/shading/usdPhongEReader.cpp +++ /dev/null @@ -1,115 +0,0 @@ -// -// Copyright 2020 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 "usdLambertReader.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -PXR_NAMESPACE_OPEN_SCOPE - -/// Shader reader for importing UsdPreviewSurface to Maya's phongE material nodes -class PxrUsdTranslators_PhongEReader : public PxrUsdTranslators_LambertReader { - using _BaseClass = PxrUsdTranslators_LambertReader; - -public: - PxrUsdTranslators_PhongEReader(const UsdMayaPrimReaderArgs&); - - static ContextSupport CanImport(const UsdMayaJobImportArgs& importArgs); - - /// Get the name of the Maya shading attribute that corresponds to the - /// USD attribute named \p usdAttrName. - TfToken GetMayaNameForUsdAttrName(const TfToken& usdAttrName) const override; - -protected: - /// What is the Maya node type name we want to convert to: - const TfToken& _GetMayaNodeTypeName() const override; -}; - -PXRUSDMAYA_REGISTER_SHADER_READER(UsdPreviewSurface, PxrUsdTranslators_PhongEReader); - -// clang-format off -TF_DEFINE_PRIVATE_TOKENS( - _tokens, - - // Maya material nodes attribute names - (roughness) - (specularColor) -); -// clang-format on - -PxrUsdTranslators_PhongEReader::PxrUsdTranslators_PhongEReader( - const UsdMayaPrimReaderArgs& readArgs) - : PxrUsdTranslators_LambertReader(readArgs) -{ -} - -/* static */ -UsdMayaShaderReader::ContextSupport -PxrUsdTranslators_PhongEReader::CanImport(const UsdMayaJobImportArgs& importArgs) -{ - return importArgs.shadingConversion == UsdMayaShadingConversionTokens->phongE - ? ContextSupport::Supported - : ContextSupport::Unsupported; -} - -const TfToken& PxrUsdTranslators_PhongEReader::_GetMayaNodeTypeName() const -{ - return UsdMayaShadingConversionTokens->phongE; -} - -/* virtual */ -TfToken PxrUsdTranslators_PhongEReader::GetMayaNameForUsdAttrName(const TfToken& usdAttrName) const -{ - TfToken usdInputName; - UsdShadeAttributeType attrType; - std::tie(usdInputName, attrType) = UsdShadeUtils::GetBaseNameAndType(usdAttrName); - - if (attrType == UsdShadeAttributeType::Input) { - if (usdInputName == PxrMayaUsdPreviewSurfaceTokens->SpecularColorAttrName) { - return _tokens->specularColor; - } else if (usdInputName == PxrMayaUsdPreviewSurfaceTokens->RoughnessAttrName) { - return _tokens->roughness; - } - } - - return _BaseClass::GetMayaNameForUsdAttrName(usdAttrName); -} - -PXR_NAMESPACE_CLOSE_SCOPE diff --git a/lib/usd/translators/shading/usdPhongReader.cpp b/lib/usd/translators/shading/usdPhongReader.cpp index 119a13e0d8..3f6cbf1664 100644 --- a/lib/usd/translators/shading/usdPhongReader.cpp +++ b/lib/usd/translators/shading/usdPhongReader.cpp @@ -87,14 +87,14 @@ PxrUsdTranslators_PhongReader::PxrUsdTranslators_PhongReader(const UsdMayaPrimRe UsdMayaShaderReader::ContextSupport PxrUsdTranslators_PhongReader::CanImport(const UsdMayaJobImportArgs& importArgs) { - return importArgs.shadingConversion == UsdMayaShadingConversionTokens->phong + return importArgs.preferredMaterial == UsdMayaPreferredMaterialTokens->phong ? ContextSupport::Supported : ContextSupport::Unsupported; } const TfToken& PxrUsdTranslators_PhongReader::_GetMayaNodeTypeName() const { - return UsdMayaShadingConversionTokens->phong; + return UsdMayaPreferredMaterialTokens->phong; } void PxrUsdTranslators_PhongReader::_ConvertToMaya(const TfToken& mayaAttrName, VtValue& usdValue) diff --git a/lib/usd/translators/shading/usdStandardSurfaceReader.cpp b/lib/usd/translators/shading/usdStandardSurfaceReader.cpp index 08750477b3..dcfc97a654 100644 --- a/lib/usd/translators/shading/usdStandardSurfaceReader.cpp +++ b/lib/usd/translators/shading/usdStandardSurfaceReader.cpp @@ -105,14 +105,14 @@ UsdMayaShaderReader::ContextSupport PxrUsdTranslators_StandardSurfaceReader::CanImport(const UsdMayaJobImportArgs& importArgs) { // Check to see if import requested conversion - return importArgs.shadingConversion == UsdMayaShadingConversionTokens->standardSurface + return importArgs.preferredMaterial == UsdMayaPreferredMaterialTokens->standardSurface ? ContextSupport::Supported : ContextSupport::Unsupported; } const TfToken& PxrUsdTranslators_StandardSurfaceReader::_GetMayaNodeTypeName() const { - return UsdMayaShadingConversionTokens->standardSurface; + return UsdMayaPreferredMaterialTokens->standardSurface; } void PxrUsdTranslators_StandardSurfaceReader::_ConvertToMaya( diff --git a/plugin/adsk/plugin/exportTranslator.cpp b/plugin/adsk/plugin/exportTranslator.cpp index 37b56ae190..ae44ab7acb 100644 --- a/plugin/adsk/plugin/exportTranslator.cpp +++ b/plugin/adsk/plugin/exportTranslator.cpp @@ -196,11 +196,11 @@ UsdMayaExportTranslator::GetDefaultOptions() std::ostringstream optionsStream; for (const std::pair keyValue : PXR_NS::UsdMayaJobExportArgs::GetDefaultDictionary()) { - if (keyValue.second.IsHolding()) { - optionsStream << keyValue.first.c_str() << "=" << static_cast(keyValue.second.Get()) << ";"; - } - else if (keyValue.second.IsHolding()) { - optionsStream << keyValue.first.c_str() << "=" << keyValue.second.Get().c_str() << ";"; + bool canConvert; + std::string valueStr; + std::tie(canConvert, valueStr) = UsdMayaUtil::ValueToArgument(keyValue.second); + if (canConvert) { + optionsStream << keyValue.first.c_str() << "=" << valueStr.c_str() << ";"; } } optionsStream << "animation=0;"; diff --git a/plugin/adsk/plugin/importTranslator.cpp b/plugin/adsk/plugin/importTranslator.cpp index 1d946cb670..d35426fa3d 100644 --- a/plugin/adsk/plugin/importTranslator.cpp +++ b/plugin/adsk/plugin/importTranslator.cpp @@ -172,15 +172,13 @@ UsdMayaImportTranslator::GetDefaultOptions() std::vector entries; for (const std::pair keyValue : UsdMayaJobImportArgs::GetDefaultDictionary()) { - if (keyValue.second.IsHolding()) { - entries.push_back(TfStringPrintf("%s=%d", - keyValue.first.c_str(), - static_cast(keyValue.second.Get()))); - } - else if (keyValue.second.IsHolding()) { + bool canConvert; + std::string valueStr; + std::tie(canConvert, valueStr) = UsdMayaUtil::ValueToArgument(keyValue.second); + if (canConvert) { entries.push_back(TfStringPrintf("%s=%s", keyValue.first.c_str(), - keyValue.second.Get().c_str())); + valueStr.c_str())); } } entries.push_back("readAnimData=0"); diff --git a/plugin/adsk/scripts/mayaUsdTranslatorExport.mel b/plugin/adsk/scripts/mayaUsdTranslatorExport.mel index 4093c527c2..6faa7c9b17 100644 --- a/plugin/adsk/scripts/mayaUsdTranslatorExport.mel +++ b/plugin/adsk/scripts/mayaUsdTranslatorExport.mel @@ -85,12 +85,6 @@ proc string mayaUsdTranslatorExport_AppendFromPopup(string $currentOptions, stri return $currentOptions + ";" + $arg + "=" + $annotation; } -proc string mayaUsdTranslatorExport_AppendFromMaterialPopup(string $currentOptions) { - string $niceName = `optionMenuGrp -q -value "shadingModePopup"`; - string $shadingOptions = `mayaUSDListShadingModes -eo $niceName`; - return $currentOptions + ";" + $shadingOptions; -} - proc string mayaUsdTranslatorExport_AppendFromBoolPopup(string $currentOptions, string $arg, string $widget) { int $index = `optionMenuGrp -q -select $widget` - 1; return $currentOptions + ";" + $arg + "=" + $index; @@ -164,6 +158,20 @@ proc mayaUsdTranslatorExport_SetMaterialOptionMenu(string $shadingMode, string $ optionMenuGrp -e -value $info[0] $widget; } +proc string mayaUsdTranslatorExport_AppendFromMaterialPopup(string $currentOptions) { + string $shadingModeData[] = mayaUsdTranslatorExport_shadingModeData(); + string $niceName = `optionMenuGrp -q -value "shadingModePopup"`; + + if ($niceName == $shadingModeData[4]) { + // Display colors is a geometry option, not a material option: + $currentOptions = $currentOptions + ";exportDisplayColor=1;shadingMode=none"; + } else { + string $shadingOptions = `mayaUSDListShadingModes -eo $niceName`; + $currentOptions = $currentOptions + ";exportDisplayColor=0;" + $shadingOptions; + } + return $currentOptions; +} + global proc int mayaUsdTranslatorExport (string $parent, string $action, string $initialSettings, @@ -212,6 +220,7 @@ global proc int mayaUsdTranslatorExport (string $parent, string $frameSamplesAnn = "Specifies the value(s) used to multi-sample time frames during animation export. Multiple values separated by a space (-0.1 0.2) are supported."; string $defaultFormatAnn = "Select whether the .usd file is written out in binary or ASCII"; string $defaultFormatStatus = "Select whether the .usd file is written out in binary or ASCII. You can save a file in .usdc (binary), or .usda (ASCII) format. Manually entering a file name with an extension overrides the selection in this drop-down menu."; + string $shadingModeData[] = mayaUsdTranslatorExport_shadingModeData(); setParent $parent; @@ -249,6 +258,10 @@ global proc int mayaUsdTranslatorExport (string $parent, for ($exporter in $exporters) { string $ann = `mayaUSDListShadingModes -ea $exporter`; menuItem -l $exporter -ann $ann; + if ($exporter == "USD Preview Surface") { + // Insert exportDisplayColor geometry option in material menu: + menuItem -l $shadingModeData[4] -ann $shadingModeData[5]; + } } separator -style "none"; @@ -330,13 +343,32 @@ global proc int mayaUsdTranslatorExport (string $parent, } else if ($optionBreakDown[0] == "shadingMode") { string $niceName = `mayaUSDListShadingModes -fen $optionBreakDown[1]`; if (size($niceName)) { - optionMenuGrp -e -value $niceName "shadingModePopup"; + // Everything wins over displayColor except none. + if ($niceName != $shadingModeData[7]) { + optionMenuGrp -e -value $niceName "shadingModePopup"; + } else { + string $currentName = `optionMenuGrp -q -value "shadingModePopup"`; + // If not displayColor, then none wins: + if ($currentName != $shadingModeData[4]) { + optionMenuGrp -e -value $niceName "shadingModePopup"; + } + } } } else if ($optionBreakDown[0] == "convertMaterialsTo") { string $niceName = `mayaUSDListShadingModes -fen $optionBreakDown[1]`; if (size($niceName)) { optionMenuGrp -e -value $niceName "shadingModePopup"; } + } else if ($optionBreakDown[0] == "exportDisplayColor") { + if ("1" == $optionBreakDown[1]) { + optionMenuGrp -e -value $shadingModeData[4] "shadingModePopup"; + } else { + // If popup is displayColor, then set to None: + string $niceName = `optionMenuGrp -q -value "shadingModePopup"`; + if ($niceName == $shadingModeData[4]) { + optionMenuGrp -e -value $shadingModeData[7] "shadingModePopup"; + } + } } else if ($optionBreakDown[0] == "exportInstances") { mayaUsdTranslatorExport_SetOptionMenuByBool($optionBreakDown[1], "exportInstancesPopup"); } else if ($optionBreakDown[0] == "exportVisibility") { diff --git a/plugin/adsk/scripts/mayaUsdTranslatorImport.mel b/plugin/adsk/scripts/mayaUsdTranslatorImport.mel index db8563cbcf..86b0c69ea1 100644 --- a/plugin/adsk/scripts/mayaUsdTranslatorImport.mel +++ b/plugin/adsk/scripts/mayaUsdTranslatorImport.mel @@ -123,33 +123,21 @@ global proc int mayaUsdTranslatorImport (string $parent, // menuItem -label "World space"; // optionMenuGrp -e -sl 1 mayaUsdTranslator_CoordSystemOptionMenu; - string $importers[] = `mayaUSDListShadingModes -import`; - optionMenuGrp -l "Materials:" -cw 1 $cw1 mayaUsdTranslator_MaterialsOptionMenu; - for ($modeName in $importers) { - string $niceName = $modeName; - if ($modeName == "displayColor") { - $niceName = "Display Colors"; - } else if ($modeName == "pxrRis") { - $niceName = "RfM Shaders"; - } else if ($modeName == "useRegistry") { - $niceName = "Preview Surface Shaders"; - } - menuItem -l $niceName -ann $modeName; - } - mayaUsdTranslatorImport_SetOptionMenuByAnnotation("useRegistry", "mayaUsdTranslator_MaterialsOptionMenu"); + string $materialsAnn = "If selected, shading data is extracted from the USD file for import"; + checkBoxGrp -label "Materials: " -cw 1 $cw1 -value1 1 -ann $materialsAnn -cc ("mayaUsdTranslatorImport_MaterialsCB") mayaUsdTranslator_MaterialsCheckBox; - optionMenuGrp -l "Material Conversion:" -cw 1 $cw1 mayaUsdTranslator_MaterialsConversionMenu; - menuItem -l "No Conversion" -ann "none"; - menuItem -l "To Lambert" -ann "lambert"; string $apiString = `about -q -apiVersion`; $apiString = `substring $apiString 1 4`; + string $convertAnn = "Select the preferred conversion method for inbound USD shading data to bind with Maya geometry"; + optionMenuGrp -l "Convert to:" -cw 1 $cw1 -ann $convertAnn mayaUsdTranslator_MaterialsConversionMenu; + menuItem -l "No Conversion" -ann "none"; if ((int)$apiString >= 2020) { - menuItem -l "To Standard Surface" -ann "standardSurface"; + menuItem -l "Standard Surface" -ann "standardSurface"; } - menuItem -l "To Blinn" -ann "blinn"; - menuItem -l "To Phong" -ann "phong"; - menuItem -l "To Phong Explorer" -ann "phongE"; - mayaUsdTranslatorImport_SetOptionMenuByAnnotation("none", "mayaUsdTranslator_MaterialsConversionMenu"); + menuItem -l "Lambert" -ann "lambert"; + menuItem -l "USD Preview Surface" -ann "usdPreviewSurface"; + menuItem -l "Blinn" -ann "blinn"; + menuItem -l "Phong" -ann "phong"; // checkBoxGrp -label "InstancedPrims: " -label1 "Convert to Instances" -cw 1 $cw1 mayaUsdTranslator_InstancedPrimsCheckBox; // @@ -180,13 +168,14 @@ global proc int mayaUsdTranslatorImport (string $parent, string $optionBreakDown[]; int $index; string $currentOptions = $initialSettings; + if (size($currentOptions) > 0) { tokenize($currentOptions, ";", $optionList); for ($index = 0; $index < size($optionList); $index++) { tokenize($optionList[$index], "=", $optionBreakDown); if ($optionBreakDown[0] == "shadingMode") { - mayaUsdTranslatorImport_SetOptionMenuByAnnotation($optionBreakDown[1], "mayaUsdTranslator_MaterialsOptionMenu"); - } else if ($optionBreakDown[0] == "shadingConversion") { + mayaUsdTranslatorImport_SetMaterialsCheckBox($optionBreakDown[1], "mayaUsdTranslator_MaterialsCheckBox"); + } else if ($optionBreakDown[0] == "preferredMaterial") { mayaUsdTranslatorImport_SetOptionMenuByAnnotation($optionBreakDown[1], "mayaUsdTranslator_MaterialsConversionMenu"); } else if ($optionBreakDown[0] == "readAnimData") { mayaUsdTranslatorImport_SetCheckBoxGrp($optionBreakDown[1], "mayaUsdTranslator_AnimDataCheckBox"); @@ -206,8 +195,8 @@ global proc int mayaUsdTranslatorImport (string $parent, } else if ($action == "query") { string $currentOptions = ""; - $currentOptions = mayaUsdTranslatorImport_AppendFromPopup($currentOptions, "shadingMode", "mayaUsdTranslator_MaterialsOptionMenu"); - $currentOptions = mayaUsdTranslatorImport_AppendFromPopup($currentOptions, "shadingConversion", "mayaUsdTranslator_MaterialsConversionMenu"); + $currentOptions = mayaUsdTranslatorImport_AppendMaterialsFromCheckBoxGrp($currentOptions, "shadingMode", "mayaUsdTranslator_MaterialsCheckBox"); + $currentOptions = mayaUsdTranslatorImport_AppendFromPopup($currentOptions, "preferredMaterial", "mayaUsdTranslator_MaterialsConversionMenu"); $currentOptions = mayaUsdTranslatorImport_AppendFromDialog($currentOptions, "primPath", "-primPath"); $currentOptions = mayaUsdTranslatorImport_AppendFromCheckBoxGrp($currentOptions, "readAnimData", "mayaUsdTranslator_AnimDataCheckBox"); $currentOptions = mayaUsdTranslatorImport_AppendFromCheckBoxGrp($currentOptions, "useCustomFrameRange", "mayaUsdTranslator_CustomFrameRangeCheckBox"); @@ -284,6 +273,12 @@ global proc mayaUsdTranslatorImport_SetCheckBoxGrp(string $arg, string $widget) checkBoxGrp -e -value1 ($arg != "0") $widget; } +global proc mayaUsdTranslatorImport_SetMaterialsCheckBox(string $arg, string $widget) +{ + checkBoxGrp -e -value1 ($arg != "[[none,default]]") $widget; + mayaUsdTranslatorImport_MaterialsCB(); +} + global proc mayaUsdTranslatorImport_AnimationCB() { if (`checkBoxGrp -q -value1 mayaUsdTranslator_AnimDataCheckBox` == 1) { @@ -296,6 +291,15 @@ global proc mayaUsdTranslatorImport_AnimationCB() } } +global proc mayaUsdTranslatorImport_MaterialsCB() +{ + if (`checkBoxGrp -q -value1 mayaUsdTranslator_MaterialsCheckBox` == 1) { + optionMenuGrp -e -vis true mayaUsdTranslator_MaterialsConversionMenu; + } else { + optionMenuGrp -e -vis false mayaUsdTranslator_MaterialsConversionMenu; + } +} + global proc string mayaUsdTranslatorImport_AppendFromCheckBoxGrp(string $currentOptions, string $arg, string $widget) { if (`checkBoxGrp -q -value1 $widget` == 1) { @@ -305,6 +309,23 @@ global proc string mayaUsdTranslatorImport_AppendFromCheckBoxGrp(string $current } } +global proc string mayaUsdTranslatorImport_AppendMaterialsFromCheckBoxGrp(string $currentOptions, string $arg, string $widget) +{ + if (`checkBoxGrp -q -value1 $widget` == 1) { + // Here we will return ALL supported import modes. Finer grained control + // can be found at the script-level: + string $importers[] = `mayaUSDListShadingModes -import`; + string $options[]; + for ($importer in $importers) { + string $option[] = `mayaUSDListShadingModes -io $importer`; + stringArrayInsertAtIndex(255, $options, "[" + stringArrayToString($option, ",") + "]"); + } + return $currentOptions + ";" + $arg + "=[" + stringArrayToString($options, ",") + "]"; + } else { + return $currentOptions + ";" + $arg + "=[[none,default]]"; + } +} + global proc string mayaUsdTranslatorImport_AppendFromPopup(string $currentOptions, string $arg, string $widget) { int $index = `optionMenuGrp -q -select $widget` - 1; string $allItems[] = `optionMenuGrp -q -itemListLong $widget`; diff --git a/plugin/pxr/doc/README.md b/plugin/pxr/doc/README.md index a02489189c..855e8a3525 100644 --- a/plugin/pxr/doc/README.md +++ b/plugin/pxr/doc/README.md @@ -38,8 +38,8 @@ The plugin creates two commands: `usdImport` and `usdExport`, and will also regi | `-p` | `-parent` | string | none | Name of the Maya scope that will be the parent of the imported data. | | `-pp` | `-primPath` | string | none (defaultPrim) | Name of the USD scope where traversing will being. The prim at the specified primPath (including the prim) will be imported. Specifying the pseudo-root (`/`) means you want to import everything in the file. If the passed prim path is empty, it will first try to import the defaultPrim for the rootLayer if it exists. Otherwise, it will behave as if the pseudo-root was passed in. | | `-ani` | `-readAnimData` | bool | false | Read animation data from prims while importing the specified USD file. If the USD file being imported specifies `startTimeCode` and/or `endTimeCode`, Maya's MinTime and/or MaxTime will be expanded if necessary to include that frame range. **Note**: Only some types of animation are currently supported, for example: animated visibility, animated transforms, animated cameras, mesh and NURBS surface animation via blend shape deformers. Other types are not yet supported, for example: time-varying curve points, time-varying mesh points/normals, time-varying NURBS surface points | -| `-shd` | `-shadingMode` | string | `displayColor` | Enable importing of materials according to a defined shading mode. Allowed values are: `none` (extract no shading data from the USD), `displayColor` (if there are bound materials in the USD, create corresponding Lambertian shaders and bind them to the appropriate Maya geometry nodes), `pxrRis` (attempt to reconstruct a Maya shading network from (presumed) Renderman RIS shading networks in the USD), `useRegistry` (attempt to reconstruct a Maya shading network from (presumed) UsdPreviewSurface shading networks in the USD) | -| `-shc` | `-shadingConversion` | string | `lambert` | Enable conversion of foreign surface materials to a single type of Maya native surface material. Allowed values are `none` (prefer plugin nodes like pxrUsdPreviewSurface and aiStandardSurface) or one of `lambert`, `standardSurface`, `blinn`, `phong`, `phongE`. In displayColor shading mode, a value of `none` will default to `lambert`. +| `-shd` | `-shadingMode` | string[2] multi | `useRegistry` `UsdPreviewSurface` | Ordered list of shading mode importers to try when importing materials. The search stops as soon as one valid material is found. Allowed values for the first parameter are: `none` (stop search immediately, must be used to signal no material import), `displayColor` (if there are bound materials in the USD, create corresponding Lambertian shaders and bind them to the appropriate Maya geometry nodes), `pxrRis` (attempt to reconstruct a Maya shading network from (presumed) Renderman RIS shading networks in the USD), `useRegistry` (attempt to reconstruct a Maya shading network from (presumed) UsdShade shading networks in the USD) the second item in the parameter pair is a convertMaterialFrom flag which allows specifying which one of the registered USD material sources to explore. The full list of registered USD material sources can be found via the `mayaUSDListShadingModes` command. | +| `-prm` | `-preferredMaterial` | string | `lambert` | Indicate a preference towards a Maya native surface material for importers that can resolve to multiple Maya materials. Allowed values are `none` (prefer plugin nodes like pxrUsdPreviewSurface and aiStandardSurface) or one of `lambert`, `standardSurface`, `blinn`, `phong`. In displayColor shading mode, a value of `none` will default to `lambert`. | `-uac` | `-useAsAnimationCache` | bool | false | Imports geometry prims with time-sampled point data using a point-based deformer node that references the imported USD file. When this parameter is enabled, `usdImport` will create a `pxrUsdStageNode` for the USD file that is being imported. Then for each geometry prim being imported that has time-sampled points, a `pxrUsdPointBasedDeformerNode` will be created that reads the points for that prim from USD and uses them to deform the imported Maya geometry. This provides better import and playback performance when importing time-sampled geometry from USD, and it should reduce the weight of the resulting Maya scene since it will bypass creating blend shape deformers with per-object, per-time sample geometry. Only point data from the geometry prim will be computed by the deformer from the referenced USD. Transform data from the geometry prim will still be imported into native Maya form on the Maya shape's transform node. **Note**: This means that a link is created between the resulting Maya scene and the USD file that was imported. With this parameter off (as is the default), the USD file that was imported can be freely changed or deleted post-import. With the parameter on, however, the Maya scene will have a dependency on that USD file, as well as other layers that it may reference. Currently, this functionality is only implemented for Mesh prims/Maya mesh nodes. | | `-var` | `-variant` | string[2] | none | Set variant key value pairs | diff --git a/plugin/pxr/maya/lib/usdMaya/exportTranslator.cpp b/plugin/pxr/maya/lib/usdMaya/exportTranslator.cpp index b8f8c7ae22..8e1657c462 100644 --- a/plugin/pxr/maya/lib/usdMaya/exportTranslator.cpp +++ b/plugin/pxr/maya/lib/usdMaya/exportTranslator.cpp @@ -185,15 +185,13 @@ UsdMayaExportTranslator::GetDefaultOptions() std::vector entries; for (const std::pair keyValue : UsdMayaJobExportArgs::GetDefaultDictionary()) { - if (keyValue.second.IsHolding()) { - entries.push_back(TfStringPrintf("%s=%d", - keyValue.first.c_str(), - static_cast(keyValue.second.Get()))); - } - else if (keyValue.second.IsHolding()) { + bool canConvert; + std::string valueStr; + std::tie(canConvert, valueStr) = UsdMayaUtil::ValueToArgument(keyValue.second); + if (canConvert) { entries.push_back(TfStringPrintf("%s=%s", keyValue.first.c_str(), - keyValue.second.Get().c_str())); + valueStr.c_str())); } } entries.push_back("animation=0"); diff --git a/plugin/pxr/maya/lib/usdMaya/importTranslator.cpp b/plugin/pxr/maya/lib/usdMaya/importTranslator.cpp index e00880b11d..d1af8f4e57 100644 --- a/plugin/pxr/maya/lib/usdMaya/importTranslator.cpp +++ b/plugin/pxr/maya/lib/usdMaya/importTranslator.cpp @@ -155,15 +155,13 @@ UsdMayaImportTranslator::GetDefaultOptions() std::vector entries; for (const std::pair keyValue : UsdMayaJobImportArgs::GetDefaultDictionary()) { - if (keyValue.second.IsHolding()) { - entries.push_back(TfStringPrintf("%s=%d", - keyValue.first.c_str(), - static_cast(keyValue.second.Get()))); - } - else if (keyValue.second.IsHolding()) { + bool canConvert; + std::string valueStr; + std::tie(canConvert, valueStr) = UsdMayaUtil::ValueToArgument(keyValue.second); + if (canConvert) { entries.push_back(TfStringPrintf("%s=%s", keyValue.first.c_str(), - keyValue.second.Get().c_str())); + valueStr.c_str())); } } entries.push_back("readAnimData=0"); diff --git a/plugin/pxr/maya/lib/usdMaya/readJobWithSceneAssembly.cpp b/plugin/pxr/maya/lib/usdMaya/readJobWithSceneAssembly.cpp index 30bbe8f8c9..1c31cc12cf 100644 --- a/plugin/pxr/maya/lib/usdMaya/readJobWithSceneAssembly.cpp +++ b/plugin/pxr/maya/lib/usdMaya/readJobWithSceneAssembly.cpp @@ -21,12 +21,6 @@ PXR_NAMESPACE_OPEN_SCOPE -// For now, we hard code this to use displayColor. But maybe the more -// appropriate thing to do is just to leave shadingMode alone and pass -// "displayColor" in from the UsdMayaRepresentationFull -// (usdMaya/referenceAssembly.cpp) -const static TfToken ASSEMBLY_SHADING_MODE = UsdMayaShadingModeTokens->displayColor; - UsdMaya_ReadJobWithSceneAssembly::UsdMaya_ReadJobWithSceneAssembly( const MayaUsd::ImportData& iImportData, const UsdMayaJobImportArgs &iArgs) : @@ -101,7 +95,9 @@ void UsdMaya_ReadJobWithSceneAssembly::PreImport(Usd_PrimFlagsPredicate& returnP { const bool isSceneAssembly = mMayaRootDagPath.node().hasFn(MFn::kAssembly); if (isSceneAssembly) { - mArgs.shadingMode = ASSEMBLY_SHADING_MODE; + mArgs.shadingModes + = UsdMayaJobImportArgs::ShadingModes { { UsdMayaShadingModeTokens->displayColor, + UsdMayaShadingModeTokens->default } }; // When importing on behalf of a scene assembly, we want to make sure // that we traverse down into instances. The expectation is that the diff --git a/test/lib/usd/plugin/mayaShaderTranslation.cpp b/test/lib/usd/plugin/mayaShaderTranslation.cpp index 52b7dcc140..76dd0c9e64 100644 --- a/test/lib/usd/plugin/mayaShaderTranslation.cpp +++ b/test/lib/usd/plugin/mayaShaderTranslation.cpp @@ -13,8 +13,10 @@ // See the License for the specific language governing permissions and // limitations under the License. // +#include #include #include +#include #include #include @@ -39,26 +41,33 @@ TF_DEFINE_PRIVATE_TOKENS( ((conversionName, "maya")) ((renderContext, "maya")) ((niceName, "Maya Shaders")) - ((description, + ((exportDescription, "Dumps the bound shader in a Maya UsdShade network that can only be " "used for import. Will not render in the Maya viewport or usdView.")) + ((importDescription, + "Fetches back a Maya shader network dumped as UsdShade")) ); - REGISTER_SHADING_MODE_EXPORT_MATERIAL_CONVERSION( _tokens->conversionName, _tokens->renderContext, _tokens->niceName, - _tokens->description); + _tokens->exportDescription); + +REGISTER_SHADING_MODE_IMPORT_MATERIAL_CONVERSION( + _tokens->conversionName, + _tokens->renderContext, + _tokens->niceName, + _tokens->importDescription); +namespace { -TF_REGISTRY_FUNCTION(UsdMayaShaderWriterRegistry) +template +void _RegisterMayaNodes(F _registryFunction) { // All dependency nodes with a "drawdb/shader" classification are supported. - const MString nodeTypesCmd( - "stringArrayToString(listNodeTypes(\"drawdb/shader\"), \" \");"); - const std::string cmdResult = - MGlobal::executeCommandStringResult(nodeTypesCmd).asChar(); + const MString nodeTypesCmd("stringArrayToString(listNodeTypes(\"drawdb/shader\"), \" \");"); + const std::string cmdResult = MGlobal::executeCommandStringResult(nodeTypesCmd).asChar(); std::vector mayaNodeTypeNames = TfStringTokenize(cmdResult); // The "place3dTexture" node which has classification "drawdb/geometry" is @@ -68,12 +77,19 @@ TF_REGISTRY_FUNCTION(UsdMayaShaderWriterRegistry) for (const std::string& mayaNodeTypeName : mayaNodeTypeNames) { const TfToken nodeTypeNameToken(mayaNodeTypeName); - UsdMayaSymmetricShaderWriter::RegisterWriter( - nodeTypeNameToken, - nodeTypeNameToken, - _tokens->conversionName); + _registryFunction(nodeTypeNameToken, nodeTypeNameToken, _tokens->conversionName); } } +} // namespace +TF_REGISTRY_FUNCTION(UsdMayaShaderWriterRegistry) +{ + _RegisterMayaNodes(UsdMayaSymmetricShaderWriter::RegisterWriter); +} + +TF_REGISTRY_FUNCTION(UsdMayaShaderReaderRegistry) +{ + _RegisterMayaNodes(UsdMayaSymmetricShaderReader::RegisterReader); +} PXR_NAMESPACE_CLOSE_SCOPE diff --git a/test/lib/usd/translators/CMakeLists.txt b/test/lib/usd/translators/CMakeLists.txt index 19052d8d58..b6f0f7121c 100644 --- a/test/lib/usd/translators/CMakeLists.txt +++ b/test/lib/usd/translators/CMakeLists.txt @@ -32,7 +32,6 @@ set(TEST_SCRIPT_FILES testUsdExportSelection.py testUsdExportSelectionHierarchy.py testUsdExportShadingInstanced.py - testUsdExportShadingModeDisplayColor.py testUsdExportShadingModePxrRis.py testUsdExportSkeleton.py testUsdExportStripNamespaces.py @@ -124,15 +123,22 @@ mayaUsd_add_test(testUsdImportUVSetsFloat set_property(TEST testUsdImportUVSetsFloat APPEND PROPERTY LABELS translators) # Test using standardSurface, which was introduced in Maya 2020. -if (MAYA_APP_VERSION VERSION_GREATER_EQUAL 2020) - mayaUsd_add_test(testUsdExportCustomConverter - PYTHON_MODULE testUsdExportCustomConverter - WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} - ENV - "MAYA_PLUG_IN_PATH=${CMAKE_CURRENT_BINARY_DIR}/../plugin" - "PXR_PLUGINPATH_NAME=${CMAKE_CURRENT_BINARY_DIR}/../plugin" +if (MAYA_APP_VERSION VERSION_GREATER_EQUAL 2020) + set(CUSTOM_TEST_SCRIPT_FILES + testUsdExportCustomConverter.py + testUsdImportCustomConverter.py ) - set_property(TEST testUsdExportCustomConverter APPEND PROPERTY LABELS translators) + foreach(script ${CUSTOM_TEST_SCRIPT_FILES}) + mayaUsd_get_unittest_target(target ${script}) + mayaUsd_add_test(${target} + PYTHON_MODULE ${target} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ENV + "MAYA_PLUG_IN_PATH=${CMAKE_CURRENT_BINARY_DIR}/../plugin" + "PXR_PLUGINPATH_NAME=${CMAKE_CURRENT_BINARY_DIR}/../plugin" + ) + set_property(TEST ${target} APPEND PROPERTY LABELS translators) + endforeach() endif() # We are explicitly not setting PXR_PLUGINPATH_NAME here. We want to test diff --git a/test/lib/usd/translators/UsdExportShadingModeDisplayColor/RedCube.ma b/test/lib/usd/translators/UsdExportShadingModeDisplayColor/RedCube.ma deleted file mode 100644 index 06f2c427a1..0000000000 --- a/test/lib/usd/translators/UsdExportShadingModeDisplayColor/RedCube.ma +++ /dev/null @@ -1,260 +0,0 @@ -//Maya ASCII 2016 scene -//Name: RedCube.ma -//Last modified: Thu, Dec 21, 2017 11:20:03 AM -//Codeset: UTF-8 -requires maya "2016"; -currentUnit -l centimeter -a degree -t film; -fileInfo "application" "maya"; -fileInfo "product" "Maya 2016"; -fileInfo "version" "2016"; -fileInfo "cutIdentifier" "201610262200-1005964"; -fileInfo "osv" "Linux 3.10.0-693.2.2.el7.x86_64 #1 SMP Sat Sep 9 03:55:24 EDT 2017 x86_64"; -createNode transform -s -n "persp"; - rename -uid "C1B558C0-0000-087C-5A34-142300000224"; - setAttr ".v" no; - setAttr ".t" -type "double3" 21.64333236336984 -21.668011191606261 13.005752923906172 ; - setAttr ".r" -type "double3" 71.066155704526608 0 44.967352835719566 ; -createNode camera -s -n "perspShape" -p "persp"; - rename -uid "C1B558C0-0000-087C-5A34-142300000225"; - setAttr -k off ".v" no; - setAttr ".fl" 34.999999999999993; - setAttr ".coi" 32.377575407819336; - setAttr ".imn" -type "string" "persp"; - setAttr ".den" -type "string" "persp_depth"; - setAttr ".man" -type "string" "persp_mask"; - setAttr ".tp" -type "double3" 0 0 2.5 ; - setAttr ".hc" -type "string" "viewSet -p %camera"; -createNode transform -s -n "top"; - rename -uid "C1B558C0-0000-087C-5A34-142300000226"; - setAttr ".v" no; - setAttr ".t" -type "double3" 0 0 365.86 ; -createNode camera -s -n "topShape" -p "top"; - rename -uid "C1B558C0-0000-087C-5A34-142300000227"; - setAttr -k off ".v" no; - setAttr ".rnd" no; - setAttr ".coi" 365.86; - 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 "C1B558C0-0000-087C-5A34-142300000228"; - setAttr ".v" no; - setAttr ".t" -type "double3" 0 -365.86 0 ; - setAttr ".r" -type "double3" 89.999999999999986 0 0 ; -createNode camera -s -n "frontShape" -p "front"; - rename -uid "C1B558C0-0000-087C-5A34-142300000229"; - setAttr -k off ".v" no; - setAttr ".rnd" no; - setAttr ".coi" 365.86; - 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 "C1B558C0-0000-087C-5A34-14230000022A"; - setAttr ".v" no; - setAttr ".t" -type "double3" 365.86 0 0 ; - setAttr ".r" -type "double3" 90 1.2722218725854067e-14 89.999999999999986 ; -createNode camera -s -n "sideShape" -p "side"; - rename -uid "C1B558C0-0000-087C-5A34-14230000022B"; - setAttr -k off ".v" no; - setAttr ".rnd" no; - setAttr ".coi" 365.86; - 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 "RedCube"; - rename -uid "C1B558C0-0000-087C-5A34-14390000024A"; -createNode transform -n "Geom" -p "RedCube"; - rename -uid "C1B558C0-0000-087C-5A34-143500000249"; -createNode transform -n "Cube" -p "Geom"; - rename -uid "C1B558C0-0000-087C-5A34-142E00000248"; - setAttr ".rp" -type "double3" 0 0 2.5 ; - setAttr ".sp" -type "double3" 0 0 2.5 ; -createNode mesh -n "CubeShape" -p "Cube"; - rename -uid "C1B558C0-0000-087C-5A34-142E00000247"; - addAttr -ci true -sn "mgi" -ln "mayaGprimID" -dt "string"; - 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 ".ds" no; - setAttr ".covm[0]" 0 1 1; - setAttr ".cdvm[0]" 0 1 1; - setAttr ".mgi" -type "string" "ID_4a706d0a-e6ce-4b88-9f35-73e0930faa97"; -createNode lightLinker -s -n "lightLinker1"; - rename -uid "5188A8C0-0000-2D83-5A3C-087A00000252"; - setAttr -s 4 ".lnk"; - setAttr -s 4 ".slnk"; -createNode displayLayerManager -n "layerManager"; - rename -uid "5188A8C0-0000-2D83-5A3C-087A00000253"; -createNode displayLayer -n "defaultLayer"; - rename -uid "C1B558C0-0000-087C-5A34-142300000242"; -createNode renderLayerManager -n "renderLayerManager"; - rename -uid "5188A8C0-0000-2D83-5A3C-087A00000255"; -createNode renderLayer -n "defaultRenderLayer"; - rename -uid "C1B558C0-0000-087C-5A34-142300000244"; - setAttr ".g" yes; -createNode polyCube -n "polyCube1"; - rename -uid "C1B558C0-0000-087C-5A34-142E00000246"; - setAttr ".w" 5; - setAttr ".h" 5; - setAttr ".d" 5; - setAttr ".sw" 5; - setAttr ".sh" 5; - setAttr ".sd" 5; - setAttr ".cuv" 4; -createNode transformGeometry -n "transformGeometry1"; - rename -uid "C1B558C0-0000-087C-5A34-14600000024F"; - setAttr ".txf" -type "matrix" 1 0 0 0 0 1 0 0 - 0 0 1 0 0 0 2.5 1; -createNode script -n "uiConfigurationScriptNode"; - rename -uid "C1B558C0-0000-087C-5A34-152A000002FC"; - 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 $menusOkayInPanels = `optionVar -q allowMenusInPanels`;\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\tif ($useSceneConfig) {\n\t\t\t$panelName = `modelPanel -unParent -l (localizedPanelLabel(\"Top View\")) -mbv $menusOkayInPanels `;\n\t\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 16384\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 \"base_OpenGL_Renderer\" \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 -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 -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n\t\t}\n\t} else {\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 16384\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 \"base_OpenGL_Renderer\" \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 -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 -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $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\tif ($useSceneConfig) {\n\t\t\t$panelName = `modelPanel -unParent -l (localizedPanelLabel(\"Side View\")) -mbv $menusOkayInPanels `;\n\t\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 16384\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 \"base_OpenGL_Renderer\" \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 -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 -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n\t\t}\n\t} else {\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 16384\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 \"base_OpenGL_Renderer\" \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 -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 -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $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\tif ($useSceneConfig) {\n\t\t\t$panelName = `modelPanel -unParent -l (localizedPanelLabel(\"Front View\")) -mbv $menusOkayInPanels `;\n\t\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 16384\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 \"base_OpenGL_Renderer\" \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 -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 -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n\t\t}\n\t} else {\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 16384\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 \"base_OpenGL_Renderer\" \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 -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 -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1\n -height 1\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $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\tif ($useSceneConfig) {\n\t\t\t$panelName = `modelPanel -unParent -l (localizedPanelLabel(\"Persp View\")) -mbv $menusOkayInPanels `;\n\t\t\t$editorName = $panelName;\n modelEditor -e \n -camera \"persp\" \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 16384\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 \"base_OpenGL_Renderer\" \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 -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 -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1613\n -height 1129\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $editorName;\n\t\t}\n\t} else {\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 \"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 16384\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 \"base_OpenGL_Renderer\" \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 -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 -greasePencils 1\n -shadows 0\n -captureSequenceNumber -1\n -width 1613\n -height 1129\n -sceneRenderFilter 0\n $editorName;\n modelEditor -e -viewSelected 0 $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\tif ($useSceneConfig) {\n\t\t\t$panelName = `outlinerPanel -unParent -l (localizedPanelLabel(\"Outliner\")) -mbv $menusOkayInPanels `;\n\t\t\t$editorName = $panelName;\n outlinerEditor -e \n -docTag \"isolOutln_fromSeln\" \n -showShapes 0\n -showReferenceNodes 1\n -showReferenceMembers 0\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n -organizeByLayer 1\n -showAnimLayerWeight 1\n" - + " -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 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 -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 $editorName;\n\t\t}\n\t} else {\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 -docTag \"isolOutln_fromSeln\" \n -showShapes 0\n -showReferenceNodes 1\n -showReferenceMembers 0\n -showAttributes 0\n -showConnected 0\n -showAnimCurvesOnly 0\n -showMuteInfo 0\n -organizeByLayer 1\n" - + " -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 1\n -showAssets 1\n -showContainedOnly 1\n -showPublishedAsConnected 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 -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 $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\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"graphEditor\" -l (localizedPanelLabel(\"Graph Editor\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n" - + " -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 1\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 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 -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 $editorName;\n\n\t\t\t$editorName = ($panelName+\"GraphEd\");\n animCurveEditor -e \n -displayKeys 1\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 1\n -displayInfinities 0\n -autoFit 0\n -snapTime \"integer\" \n -snapValue \"none\" \n" - + " -showResults \"off\" \n -showBufferCurves \"off\" \n -smoothness \"fine\" \n -resultSamples 1\n -resultScreenSamples 0\n -resultUpdate \"delayed\" \n -showUpstreamCurves 1\n -stackedCurves 0\n -stackedCurvesMin -1\n -stackedCurvesMax 1\n -stackedCurvesSpace 0.2\n -displayNormalized 0\n -preSelectionHighlight 0\n -constrainDrag 0\n -classicMode 1\n $editorName;\n\t\t}\n\t} else {\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 -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n" - + " -organizeByLayer 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 1\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 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 -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 $editorName;\n\n\t\t\t$editorName = ($panelName+\"GraphEd\");\n animCurveEditor -e \n -displayKeys 1\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 1\n -displayInfinities 0\n -autoFit 0\n -snapTime \"integer\" \n -snapValue \"none\" \n -showResults \"off\" \n -showBufferCurves \"off\" \n" - + " -smoothness \"fine\" \n -resultSamples 1\n -resultScreenSamples 0\n -resultUpdate \"delayed\" \n -showUpstreamCurves 1\n -stackedCurves 0\n -stackedCurvesMin -1\n -stackedCurvesMax 1\n -stackedCurvesSpace 0.2\n -displayNormalized 0\n -preSelectionHighlight 0\n -constrainDrag 0\n -classicMode 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 \"dopeSheetPanel\" (localizedPanelLabel(\"Dope Sheet\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"dopeSheetPanel\" -l (localizedPanelLabel(\"Dope Sheet\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = ($panelName+\"OutlineEd\");\n outlinerEditor -e \n -showShapes 1\n -showReferenceNodes 0\n -showReferenceMembers 0\n" - + " -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n -showPublishedAsConnected 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 -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 $editorName;\n\n\t\t\t$editorName = ($panelName+\"DopeSheetEd\");\n dopeSheetEditor -e \n -displayKeys 1\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -autoFit 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\t}\n\t} else {\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 -showReferenceNodes 0\n -showReferenceMembers 0\n -showAttributes 1\n -showConnected 1\n -showAnimCurvesOnly 1\n -showMuteInfo 0\n -organizeByLayer 1\n -showAnimLayerWeight 1\n -autoExpandLayers 1\n -autoExpand 0\n -showDagOnly 0\n -showAssets 1\n -showContainedOnly 0\n" - + " -showPublishedAsConnected 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 -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 $editorName;\n\n\t\t\t$editorName = ($panelName+\"DopeSheetEd\");\n dopeSheetEditor -e \n -displayKeys 1\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -autoFit 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 \"clipEditorPanel\" (localizedPanelLabel(\"Trax Editor\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"clipEditorPanel\" -l (localizedPanelLabel(\"Trax Editor\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = clipEditorNameFromPanel($panelName);\n clipEditor -e \n -displayKeys 0\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -autoFit 0\n -snapTime \"none\" \n -snapValue \"none\" \n -manageSequencer 0 \n $editorName;\n\t\t}\n\t} else {\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 -displayKeys 0\n -displayTangents 0\n" - + " -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -autoFit 0\n -snapTime \"none\" \n -snapValue \"none\" \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\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"sequenceEditorPanel\" -l (localizedPanelLabel(\"Camera Sequencer\")) -mbv $menusOkayInPanels `;\n\n\t\t\t$editorName = sequenceEditorNameFromPanel($panelName);\n clipEditor -e \n -displayKeys 0\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -autoFit 0\n -snapTime \"none\" \n -snapValue \"none\" \n" - + " -manageSequencer 1 \n $editorName;\n\t\t}\n\t} else {\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 -displayKeys 0\n -displayTangents 0\n -displayActiveKeys 0\n -displayActiveKeyTangents 0\n -displayInfinities 0\n -autoFit 0\n -snapTime \"none\" \n -snapValue \"none\" \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\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"hyperGraphPanel\" -l (localizedPanelLabel(\"Hypergraph Hierarchy\")) -mbv $menusOkayInPanels `;\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\t}\n\t} else {\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 \"visorPanel\" (localizedPanelLabel(\"Visor\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"visorPanel\" -l (localizedPanelLabel(\"Visor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\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 \"createNodePanel\" (localizedPanelLabel(\"Create Node\")) `;\n" - + "\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"createNodePanel\" -l (localizedPanelLabel(\"Create Node\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\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\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"polyTexturePlacementPanel\" -l (localizedPanelLabel(\"UV Editor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\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\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"renderWindowPanel\" -l (localizedPanelLabel(\"Render View\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\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 \"blendShapePanel\" (localizedPanelLabel(\"Blend Shape\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\tblendShapePanel -unParent -l (localizedPanelLabel(\"Blend Shape\")) -mbv $menusOkayInPanels ;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tblendShapePanel -edit -l (localizedPanelLabel(\"Blend Shape\")) -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\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"dynRelEdPanel\" -l (localizedPanelLabel(\"Dynamic Relationships\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\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\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"relationshipPanel\" -l (localizedPanelLabel(\"Relationship Editor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\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\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"referenceEditorPanel\" -l (localizedPanelLabel(\"Reference Editor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\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 \"componentEditorPanel\" (localizedPanelLabel(\"Component Editor\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"componentEditorPanel\" -l (localizedPanelLabel(\"Component Editor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\t\tscriptedPanel -edit -l (localizedPanelLabel(\"Component 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\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"dynPaintScriptedPanelType\" -l (localizedPanelLabel(\"Paint Effects\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\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\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"scriptEditorPanel\" -l (localizedPanelLabel(\"Script Editor\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\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\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"profilerPanel\" -l (localizedPanelLabel(\"Profiler Tool\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\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 \"hyperShadePanel\" (localizedPanelLabel(\"Hypershade\")) `;\n\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\t\t\t$panelName = `scriptedPanel -unParent -type \"hyperShadePanel\" -l (localizedPanelLabel(\"Hypershade\")) -mbv $menusOkayInPanels `;\n\t\t}\n\t} else {\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 \"nodeEditorPanel\" (localizedPanelLabel(\"Node Editor\")) `;\n" - + "\tif (\"\" == $panelName) {\n\t\tif ($useSceneConfig) {\n\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 -defaultPinnedState 0\n -additiveGraphingMode 0\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n -gridSnap 0\n -gridVisibility 1\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 -activeTab -1\n -editorMode \"default\" \n $editorName;\n\t\t}\n\t} else {\n\t\t$label = `panel -q -label $panelName`;\n\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 -defaultPinnedState 0\n -additiveGraphingMode 0\n -settingsChangedCallback \"nodeEdSyncControls\" \n -traversalDepthLimit -1\n -keyPressCommand \"nodeEdKeyPressCommand\" \n -nodeTitleMode \"name\" \n -gridSnap 0\n -gridVisibility 1\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 -activeTab -1\n -editorMode \"default\" \n $editorName;\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-defaultImage \"vacantCell.xP:/\"\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 \\\"vertical2\\\" -ps 1 20 100 -ps 2 80 100 $gMainPane;\"\n\t\t\t\t-removeAllPanels\n\t\t\t\t-ap false\n\t\t\t\t\t(localizedPanelLabel(\"Outliner\")) \n\t\t\t\t\t\"outlinerPanel\"\n" - + "\t\t\t\t\t\"$panelName = `outlinerPanel -unParent -l (localizedPanelLabel(\\\"Outliner\\\")) -mbv $menusOkayInPanels `;\\n$editorName = $panelName;\\noutlinerEditor -e \\n -docTag \\\"isolOutln_fromSeln\\\" \\n -showShapes 0\\n -showReferenceNodes 1\\n -showReferenceMembers 0\\n -showAttributes 0\\n -showConnected 0\\n -showAnimCurvesOnly 0\\n -showMuteInfo 0\\n -organizeByLayer 1\\n -showAnimLayerWeight 1\\n -autoExpandLayers 1\\n -autoExpand 0\\n -showDagOnly 1\\n -showAssets 1\\n -showContainedOnly 1\\n -showPublishedAsConnected 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 -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 $editorName\"\n" - + "\t\t\t\t\t\"outlinerPanel -edit -l (localizedPanelLabel(\\\"Outliner\\\")) -mbv $menusOkayInPanels $panelName;\\n$editorName = $panelName;\\noutlinerEditor -e \\n -docTag \\\"isolOutln_fromSeln\\\" \\n -showShapes 0\\n -showReferenceNodes 1\\n -showReferenceMembers 0\\n -showAttributes 0\\n -showConnected 0\\n -showAnimCurvesOnly 0\\n -showMuteInfo 0\\n -organizeByLayer 1\\n -showAnimLayerWeight 1\\n -autoExpandLayers 1\\n -autoExpand 0\\n -showDagOnly 1\\n -showAssets 1\\n -showContainedOnly 1\\n -showPublishedAsConnected 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 -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 $editorName\"\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 \\\"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 16384\\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 \\\"base_OpenGL_Renderer\\\" \\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 -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 -greasePencils 1\\n -shadows 0\\n -captureSequenceNumber -1\\n -width 1613\\n -height 1129\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $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 \\\"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 16384\\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 \\\"base_OpenGL_Renderer\\\" \\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 -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 -greasePencils 1\\n -shadows 0\\n -captureSequenceNumber -1\\n -width 1613\\n -height 1129\\n -sceneRenderFilter 0\\n $editorName;\\nmodelEditor -e -viewSelected 0 $editorName\"\n" - + "\t\t\t\t$configName;\n\n setNamedPanelLayout (localizedPanelLabel(\"Current Layout\"));\n }\n\n panelHistory -e -clear mainPanelHistory;\n setFocus `paneLayout -q -p1 $gMainPane`;\n sceneUIReplacement -deleteRemaining;\n sceneUIReplacement -clear;\n\t}\n\n\ngrid -spacing 30.48 -size 365.76 -divisions 12 -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 "C1B558C0-0000-087C-5A34-152A000002FD"; - setAttr ".b" -type "string" "playbackOptions -min 1 -max 120 -ast 1 -aet 200 "; - setAttr ".st" 6; -createNode lambert -n "RedLambert"; - rename -uid "5188A8C0-0000-2D83-5A3C-08CB000002BD"; - setAttr ".c" -type "float3" 1 0 0 ; -createNode shadingEngine -n "RedLambertSG"; - rename -uid "5188A8C0-0000-2D83-5A3C-08CB000002BE"; - setAttr ".ihi" 0; - setAttr ".ro" yes; -createNode materialInfo -n "materialInfo2"; - rename -uid "5188A8C0-0000-2D83-5A3C-08CB000002BF"; -createNode nodeGraphEditorInfo -n "hyperShadePrimaryNodeEditorSavedTabsInfo"; - rename -uid "5188A8C0-0000-2D83-5A3C-0918000002C0"; - setAttr ".tgi[0].tn" -type "string" "Untitled_1"; - setAttr ".tgi[0].vl" -type "double2" -113.71245721035051 -590.4761670127757 ; - setAttr ".tgi[0].vh" -type "double2" 1097.0457514695295 364.28569981030114 ; - setAttr -s 2 ".tgi[0].ni"; - setAttr ".tgi[0].ni[0].x" 1.4285714626312256; - setAttr ".tgi[0].ni[0].y" -1.4285714626312256; - setAttr ".tgi[0].ni[0].nvs" 1923; - setAttr ".tgi[0].ni[1].x" 262.85714721679688; - setAttr ".tgi[0].ni[1].y" -55.714286804199219; - setAttr ".tgi[0].ni[1].nvs" 1923; -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; -select -ne :renderPartition; - setAttr -s 3 ".st"; -select -ne :renderGlobalsList1; -select -ne :defaultShaderList1; - setAttr -s 5 ".s"; -select -ne :postProcessList1; - setAttr -s 2 ".p"; -select -ne :defaultRenderingList1; -select -ne :initialShadingGroup; - setAttr ".ro" yes; -select -ne :initialParticleSE; - setAttr ".ro" yes; -select -ne :defaultResolution; - setAttr ".pa" 1; -select -ne :hardwareRenderGlobals; - setAttr ".ctrs" 256; - setAttr ".btrs" 512; -connectAttr "transformGeometry1.og" "CubeShape.i"; -relationship "link" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message"; -relationship "link" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message"; -relationship "link" ":lightLinker1" "RedLambertSG.message" ":defaultLightSet.message"; -relationship "shadowLink" ":lightLinker1" ":initialShadingGroup.message" ":defaultLightSet.message"; -relationship "shadowLink" ":lightLinker1" ":initialParticleSE.message" ":defaultLightSet.message"; -relationship "shadowLink" ":lightLinker1" "RedLambertSG.message" ":defaultLightSet.message"; -connectAttr "layerManager.dli[0]" "defaultLayer.id"; -connectAttr "renderLayerManager.rlmi[0]" "defaultRenderLayer.rlid"; -connectAttr "polyCube1.out" "transformGeometry1.ig"; -connectAttr "RedLambert.oc" "RedLambertSG.ss"; -connectAttr "CubeShape.iog" "RedLambertSG.dsm" -na; -connectAttr "RedLambertSG.msg" "materialInfo2.sg"; -connectAttr "RedLambert.msg" "materialInfo2.m"; -connectAttr "RedLambert.msg" "hyperShadePrimaryNodeEditorSavedTabsInfo.tgi[0].ni[0].dn" - ; -connectAttr "RedLambertSG.msg" "hyperShadePrimaryNodeEditorSavedTabsInfo.tgi[0].ni[1].dn" - ; -connectAttr "RedLambertSG.pa" ":renderPartition.st" -na; -connectAttr "RedLambert.msg" ":defaultShaderList1.s" -na; -connectAttr "defaultRenderLayer.msg" ":defaultRenderingList1.r" -na; -// End of RedCube.ma diff --git a/test/lib/usd/translators/UsdImportCustomConverterTest/Brazilian_rosewood_pxr128.png b/test/lib/usd/translators/UsdImportCustomConverterTest/Brazilian_rosewood_pxr128.png new file mode 100644 index 0000000000000000000000000000000000000000..63a13ceddd693af45193781f3624a483d103de8e GIT binary patch literal 505048 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
xbD?OQd844eL3j z2>5wht<*?z6gtJwqESE#aGU^8G{YJDgE7(I7xl^adW(&!E)M zKKF4`wQKH;*(hTvG}KIvc{Frlbkr7XoR?+NHrc(xgvNQRAIK&HUj__mG1`&!b_1Ju z3*)v!VcFWg;cTZgni}B>w6C0CZO%Oz`U>HB^#3T=>z3`|bhLzAAMQQ#hkt**ZhNlC z*XA1$=q{w+-22CQ`a>0qYs>rVG~L=D2k%cOlgmpPO7SoQD6)h(^m6MC%hP%KRVLH+ z`#JfbxHnTVGi*fGq*{P8L~IidF|Ja7NVpK(_Piwc3pfm^2cvfnixHVbpN={P1;Ur2 zD+B8oWKWB~Kg3|^=dJ(upI%K&Pp75s?X}!4Z{SQiE_BQF6R=D04F+g@ZT&Ie;{ipx zsA0z7tR)z|dW%QEZ{9BtkJBIi@Ctn_i_3nJu^pXNf`8w5t!k-Ok(ZmRXsXmvHCZak z7X3LLZ=!`|Y@2lGl_WwNfEFx>^h|a#Zc-Ri4C!$9Wh<{QYm+um6N8tOS^18U<|S;}jLl*Ik;_1k-T-VaZujM>;tbBtY*}^Gh|r zM~4?W7y~i}fXsdtos9w!2w(zzIO5u*G<$z^OQKQRP_{7`)zP(*9smX@28|NEf;L}0 zUG{#AhY-;cT9Cc&lZoH?Szl)$yvol;K(u(S@YcX&kcVd{XS3* zY4kixu&3FN;ajr+g45n^`&z!l*7flm^daR@zNC*A+^$VDI z6e_Sh7pAd2y?gxqh?jPmh=W1KH~=m~r%{c-IZjK2A1_yJv$s}QODP0+u(a2*6>+WJ zFY$+m^xJb7FQ3b{)7JINbN{;4>6~yTmF}7=jb7LBwbBK8-ZyFNDLOxA)FLA{_$=n4 z_R{c6r8j|!*aTlkzX*Q4_A1;^H&7KwUg9zdSyS0rx}sYZPh=>x$-(C=q-&HV8;yvGjmw(pLd1KPRO$*CoB&Feupj zWx_b$hOVnz*QVN+$lB%eFa2{?uX;p!x|)|&?IdB=^FnOy{$-BqDlU(l_E z+1u{@Wv^u~wTUuPGcR3l0$a@ibQ{=39&o5cO7Jc2<&l^8y&020;KJVqm zb+5Rt_3Jg~>)5NjS?C0ikp~nut;TiaOWDWh(ShxRRU9=&DAn%Gwo0Xs0ic>#s5eef zq77giXzweAS*73EBpaRgK z?pRy1&>eOu>$XeJ$hDScM?G472-8m+|LZjafHDA7hgn)xW=3-@0)2PV)hy|gsSXA!r`hs6CR{{2DMlM{gLCvH%1^^_YAW9#D8e@Mcw02HYIv$V03M#5< z<}gKTYRfr)&F!*t?RpvXrt?l=RkNxUld@#DdLDZL31pyhs;^z7*XVtYLxK>`lG% zUoyXb-LTaG)e1f?^W8kDl2w^4&DN3vOC^G>i?XX=7R+uo_#+(_7(L+2yb$NTmL$M|*n>EX?>-KFxoo4K&UMpdP1j}T8LHnG0 z?eKDIZQvBpf>=Mz9)Z|E^o@2d)~HcP?x2UbNdC*oMKL9B-$prG-<^Mw5`b@@F5t_h z<+0r#(<#}|nnWGiP2KlZ-j0U{@6Nvb#B#D>a=P#Edfk4$ac4a`x+7>8t_Z4Kn+=9s zJnjuHUvGyQo56~nD21a9&=!$yTnK}eS0Q&;4)u+ZFP**@{E+Fe$i}wH%BkXPo$38=qHs zy$lZ{F&qtCx)!5#&Fflb9%8XT{QS!+-RuzO99{b8BTv|0yITtyKp!G=tyP&rG$UB^ zYc(|F3=jdH0nmE_w2h{KYJ~(L>dI`{q{$m}i3T&|ty$N5*V7!&23H8wW#r3Z>~QhN z+yVFKgtEc{9-(gH15DnmRXEXXp%2Jz5nHJ=>&RFWT{uJb)^!5%;K)0$i{gBONa0H@ z>yY2;Q4tg*^bQcSfzmsSTXTnmGlBFb{^%_ECM}xy?#N#YzA$z4)}c{Gt{slXcw3rL zjVC;!e+stjb-T*lX+Ap6Z9h%(A^Nx6PIFANTPs>)U<_3#h5Kj}>|ug~x09u7_rJ?M zj2%dg;cItai#!*8c^kINM1+vazFqx(52-W0^`1C@7 z!2wmM^^!$Fn!+0(3nOY#6f^_ai<~{G*8(-GXB*n6$nCXjZ@WGoy$fDpF{6z2*2KBA zbzHaV7?R*@RJE7xRdE7g#%pd>%j*i?CVL3xOU?%L`vs4f{&ZDXn?G`jK6l&uut((9 z@)s_{TH|VKYsZdiOk-B7@OW@9dAx0HA9z0a*-fpp_HDh$)yJn8ty8lPr+D`6+s9Dq z_=o@Y|9o@$x5w$!3M=0jjzfd7dG>P%UcIbcxv`IpOt^FOAxs0!Tkd(^{yI$`r-h_s zs0w}#t|&4<&_Sa-Q~2erhBx}_2tVAVf6MGg{rLUI?|$?BKmEU7YlF4pCfZCy;nLf6 z_)9G_)4?WGCuD6LmP;vSj+8)DG+25J(#2lU^}g>V3E;(miU!SOw6;bL4vB**^B%)t zsgugeuv0-}J!VRgA1BicQSkR>^M{Vhc}F(fkB07|(WawAQTuN8gVJ?_^XP|=?oU$+ z@OhQz#v3_?)U*h5Cu-Kb=DtIARX?Z`5*yIOFlI~nR>$C~uI>H!kRPVI8}651H!X2G zqjl@ zjA50Lw_%NXo3597B;-UdtNeDNzdG1oJFI)R(&i{X@1TuO42uIw+6XV~#XBvR4tz+) zqF%XdU%$qP%M`tx`nDaVwFGcXn_KhXq+@yMDNzzcfGt=Vh*Ic@=tn zYn$%ZT@0cOdR@63t(^|WtK~A;@zUzvoHnh(KX2L7_AZ^VD=CBb#=MKuP6e2(nVyK|0B%5$ zzfu3$aah1f+_&8a^Or~Se5Lp=_y7PP07*naRCRw?)%o=<&^OZ(C;g>n0o~ekWATzf zwZpJ9rjQzr?TvSfM~gF{HM%1u7LlrA&Q`Ys6nzr0k#x*dw`wOO!aOPrXK9RSlG5kY z1xOPS4H;H)iU$`{9wj=BJg&9e8mgl7-Gs0lYyf>0T(eYKgG&}|n(R>We3+;?i(r9f zsY8pPS~yr7ES=@aFH8#39JH9yC`2QmLzdncB0|Eg0ba>9q#!m6Fpz;^2oV_*fk_>FC*PE3 zau^^unsmW^1Kf?rLH=yaWct1rA{cB49C+D5?i34A2EZW`>DgoQ@s-Ul&#e?VEYtz_ z8#vMsyrEFacB@)c)4{KImtz*Br06o7Mhsin-x})Wif+&;{v1y8tz`wUY4g zGf^5Mtc464=H4CZnano&wTg2rUD^g@`RL4A^<`kU)3xl~<7u%lC^}9ZuUU~~@c6ao zHueJvkZw9Y&KA%`GbS2u4Mr74=s5K%Z1awRul4-iZZT+v4*I+6{uG=YDw1zNAohQ< z{J;G6_a2jF)|db)25z~}MivASWR*Q{XzwQyPyAfT8X{=a3t39Rq3Yf@hZEJl zms<|}@if1GIQ_JlKYY0+-kVvrVT{7$a(By1mNtqv)TjL(`kKd$PT@ zfBEtH^yIw7eON(C4z3p0t(CpbOSobDm#uy<;IxO~72`^KZUUqFB;?ExQc)`cqp!ve z+ZO^dFwWjQpkpqQx5QF2euLpR-l5WWW;#Yd$YWn`JgjqvX!kBN>Evu1J(Bg-1Pk|5 znvK<=T!V--+#Q*_IE7%W!l*I|h>qa_BXz;d@>;nlohLdQIXa!9r8XRwJj$)}04}Af zpPwGi?-2U{a^c~AIowC%Fa~)zxclTL=YvgO3jC>O>fp8SLyAU_jH77?o8YCxI`nqC zmhJj!)9z+6#-KR|zi0jYRyBC_sb_g^=`jD@|M)leckgCnLySyZ+FCkHaryQ<)2LszObM0X^0uL9_n}xyOQ5ltngf}e z;%$g$T*PXHI>trnMxu%q+`IWarI5=I-W0()JWUoXO&*+q=bdZmM{6F_JUa-ue|PWx z=C|+PozLkMWAf_Jkw!%VWvfFW3&ms)hB-qE$;L@LUUMbY$vBbRMB6YOrS-aAx6za^ zH9}HIfL?iw+C&U$QnY5eDSp0`%dKvEzFwtwTSa!Mz3aMXf!Z2w6)1p3>b(}-8;uL- z&Xl{~wmlNKL;RX=pI^2LsSWeC?_an2X)Vt;1tg@saqgotQ3&+j6ArjuTN!xCjmjR9 zF&aX1N`T({a5sIpvm-%AWmOL$#RI3w&*A=@2>q>a@6|hN4NXP^PDnL9i12>4^Wrr?C5}N3adK`Z6%zu?3z8|S0D5+MPDWU+rGX~VNsy1h zKP=%K;ehg#%*m00M)W}~_lgK#8~wCuLU7bY<)q=aDGI2L`VL}pUW}ML+$f86kITFc zW#+%VkAL+vtJf?+RY;xswrKK70Q6TL{=haN2%mYNqy4c3UY&nOK+eD0{muD~~$Y*@(P&d5l+Po<^KxQeu@mM9&f zm{3p)aOpU@bckCEmCa4uYb8OL4D5riy|b2p+6tO-A$|J_yw;w8=4gxsVTT1B_sMBG zOcv7t2obhh`2g*InBdWoRg0q$OP%MXG8!p&$LTIa*M}4MPj}0C3A?zx)Lg4S98Vr^ zoqs9%RtJHqxLVa1vjjJAERnc$PvYV%s?kbte(aPYJOn9)o^!3%)eiRu7~rmAE=Y4w zPq;ERZUgn_n_deIXEuoKrssS8a35Y2fA^;U^0l1K^f=Qk^YzxYefE86M3nF3JVuP;GU3ZdhHq!T<}@;`mLMbf|eXx33mZRhCXWa`eKzAsI~oHz%%Rm=9wB)O>fI4>r;mFKgK=PSG#3x5BLtk2)BHO|qg5HsV42 zSeqHfvspX5?rlLcr|H_(Uv5|bn}_>9|84n)e`)YC7zY4(EM2XFHM))VPtVuC{r;Qx zcXvJWy&D*VxBg(vaW?7b?yR%A)soRnmc#(`UThURnUoTsv|f{f74!aXnhd}YF}N47 z%%@;}H7e381|vASu9ZO7rkx4Bg0><}yO^A%`p=!Q<=Gj$;H^~cfPwv`6xk$*k;(1@ zZo}9V5^>L%D}%F5w3QP5JXu@Dz7NPvjmd1b0!EO2>1uWgB8m3&n6`$d7&M{xtv3m$ z2RFm#PcPb{k29AYq&cvT3_x&tqDpVz!)o{>aiOo*?QOq5 z9}vSfBus9g+eAg--C=p0{k1}{0gY(mIXGs@MLm+SHrTOPMP!gcjs`|shtPgY4#0VG z4%PCIDuXkVCO3Pe%Hj=V!#$iPPvGBq6FyGATN!u@&i&@jthcrmHEtxr6e1feFpg>Q+EjS}GJqi< z+lxw!F&(Y#d^E-&Z^Ilsze^#U=RY)h%i599_|mk(Mh54}5G8lT+gi&51_D5`XqF__ z)2G+)IrI65Ex4RPOqiGH>$+X`HXVSX4NY3_$K(xZzKt)reeh;+7$WU8sD-MQ#ze&Dam%82GP3-)2w^dM8l(_qi@gee_v$yHMv7$_~Y~K zjoJEea(14loJ+rs`!fmI=RH>?+hPhW*?x3jEP3D#MLC|S-5HHQLdhmFRJs4he}ZO! zX*pW6m^t*4EB_|-?_HF^hU9~53)C&Do$O4ZYR^2TT}>cC{r+e_%;tBuW;<&iJZuOt zB!$`H-<(fQ%TEjy^}&k)cPS_ecSgUT<WYb+`=Nv~%0ur;Y~_OCM<7o!b&aG^%i4h$hq_Li(SAnm$%_AhYc^~h*D-mONC&a~!knGII%k}o({*V9i zU?t6_GCd^w=jT*E=RfRH*mf|}G~K7=R>(QP;?GD3xW;<&cfbUJj|4? zwU*42+X>Q8?V5#5?R3rS!KcO2F6Q}`ow_-?w`xA;9sp3_I`E}y*^3N9DlA|W(>AV% z>2Zo-qrQWrnqfysGny=Y(*!b4M#2FM+(p<}wkBRd5lxVaVnY<5iamOEZgyJlv2TcL z1*`53L`@z5OvHURgOD(*QH;i7Z#-%ZqzI-C0RYkf;Es!JrPUi}vP~_FeMYcA%*@!1 z^L(29FJG>`j+e3v#~7Wcm&)RFGl*S>(5JO6hCUvAbP|*&Kms^Nxw1arV3gvVaVA=W z+_XVwZ3crw=RHLaw_LZqlWNz(k`&FYaTT~bB6+jtQWZKnRDtEl6_4HeP4=vc)d zEx}pU*Nu)AI@X^`b9Q=Ijsbh^lB=c=-UWa1<^Oug-+G$n_@;)toLrpktx5BcfOj23 zjtA$Hy^OM9USvw+=`f8Fl*f~{@3qLkCS7_hhPs0jPW!Wr9Y+c{?3y!ba5TQ!-q&+47~*V=OB-t)J|sc!k__01H79pP5O~ zg4T`$R1+eb1JYwkM(wt+0tNv~WK%zi#6hhGHgTpg3~HnQJBJklm}}Ui~vFoah0;~ol-g&57(C$5J%DDSnF*@AJ4}g zh+k?4d+>|sR=2D?7so;2y!!$LtSSK@q^|TjWCFVu{pGesV+WVh;)4Mb$%B2LM9@<(8{gbD(~-Pz8D)$w(m6Y8?!e$)t8=QHOVPy4~tJ zO69cm{8{Dkbo9hzVM@-TskvXcGs*-_4Mwjoy@fb1E&Du z!zblZD~$GOTOU0_waZ;NPJO(>I)r6R&KM&W_Qe2(<3N;ArZBOWI;v+I0$e)?LJTk| zC&pL6Aa%|Arjs#{W;y*X5cH%C`tGz;mtUm2&%laqJh9t-?R0T38x1KuemXZ2!aVu zp12Pncv;(dp6rx*;{f``aE1AU?FrHss`Ko5H4kaBk*+qRlZ|G0;}HAHwhr{( z!Wrzd4z`kcWG+zqda3sd#`p8@O3#;ij)8<(N8Y&Bj?V67?63SV&E^ZjCqLgs`tD7os*cB85k3gD(hI6fp?()>Hk`N}Ql z;6t=v92;}!Kx03nQS}}PVVF9aHQoj@1K_BtCfLL?0t__TMEbf3MMgi1OCASm6TJ;Q z8od?scUSp<_3M-Io(R<=2^c``L&Ul{nuD{64wVc*Qn-_^^v>TN}tX)eYDRK}D7}7?Kxdtzuf$`Orfo zF7;AZLF4AB@hF#ddYs61BpFIV@#*e_L)$e2T51CnLSIkrnCx_e3qy4l9}rw^t+&_9 zZr<7B!?B*r$XBCk5v3Mr@Y9=Jv)OZ(4h-h4!gVQju%B>4NC+wmDU<}%Q z`eu&G?dR3JbiFtIG2j;Mxk2IAI2fiwh)dKl!MYm6(`gybwYSKj@n9Vi2oYwS?Z7?h ziQq#BU2rW#-2cTy&YIvrT62A<#n-w{9sc`YzWeIl<*Kac$%D0bPVbHV`_<~4Cg`>1 za~1VE#k-xmNAxE4KGw>rWIIxTiiiV_F#*8&f*rv-H3mGnES4LD;D>Kw_#sZGJNnnZ zez*OQ|6%=M9vDU@C^z(OI7rlqt-+6J4o0s#4~4=&$yuQYVu$q6b^t;LkuJF<(fTF(3v#X*C0rTT=Y;c3tc4;_`5sk4ZjV5TV{)uDY-NVEx-Vo--Rz1OFv}d_&Wpa);)-lckI{N4RuzvQR^-;A>k-H;{?%I07OV0Ji>WQ zLonH@7J4726lVi8PyTJs?JdmrUp;*sm)osu@WcSR#Yw(S`%+ z5BvUCdHgG@-{K*-phL3bH_`j9%M^EST!&FmhaisGp*=0)?WOXgH^vYt2g3^x<8TIt zuxde^QG}2yE0}sPk(m;yus+R7YMwVKj!%c#$SiHhXm=BN64c;r{ICSp`cl?gMMpCZ z=mP+0l;Xflr48ss)Hln~3p z&S0~lX?L|2hX581k($C}Q;K$QHLac;s=#%bvgn6HJrbSYM(3f%&bD>k&S!jZX0ZPs z|GQsphw^X#{U7cYI81lB>f64t-4ZMt;3$*_e7_e}JxsbWvZamr4QYl{DsTkE&_<01 zw;A_&YcauFcW*pcbY<)c!l2Ij(W&vU)P#i9r=$Uqi>-=7KpZ$P6VbP6aZbPN{CyrL z$Cm9-+*Q$VMDt}W$r`6-h<$0CT%Q&??<5ou8mga0X(Cdq8mG71qLJQd?Ks%};=zA)jCtov6SPJ<_tsYGJ(~B+^bq1O#`GTAY6>?+ zMgRg;b>z`E&9w83y5F8cFgERFGzRZz zn9ae|IFN20k>lK0Hm191VbdaItJ6W9SGkRKwrFXxK%nD?w>Jx?hvOU!kI_#l-5=rQ zhS#hX)LO|F?|qb7K!Pd^*_3d$M!T+Ht&fUDC#>srs5~BBoF%%+Q_$A0IjJLu0IZwqSLgwWt*e4OC> z(q>t%a_howx>MUEuNo(HWQ7wUs=RH?KHfh*fb{FzXXkvdevaOv+qMF_cP~&0x-6c4 zb)=uR?XTaMI&g$-wA8U$9ID+Ri;-Ilehk?bR-K@W~bt0U?9VEE4-R}O~-BC=Qy?y8o&0fU~AhunYB22rf zBhX8hTfY9${X&$W$=W%wxwP_o?SL`ZJ{$V6=<}z`LN+R1WZ2leODn}6_Cg{CAwsB( z)#0Dqr4L!QXjT3Cc0(QqYr}srwwl>2A)IQv%?XZfDzDec7W5C-OZKJ>NTW|)_V=@> z5VOoUqSxx*mOMmQCb1%JABqM(9^p@yY2Euj*L@6At9kj$zurm~e?&B0 zJ3?o&|Fq)wO))?~l!3Rxqm*wB^kE9OvVD5(*4k*G)v_C0JMLYBY9QWn|GT1Jgu-ls zjQut)#qbh703I6Ffud#WSUO0<-1rm~$UQ&9wYrdw!kdB!jPrUktbca8SKteBM7;Jo zV`ZIlCl4}DAb>9!?xzS2ZfpJ1L;UuAY=})r1z(#SXX`u4&I9M@oVTTejmW1Ec5UO=ntqg^s^7mLRE5J&^WTkBu;d?zB~LDD49+Mz9Db&w=Kk)O#B<`QnHPt%}O7q{v1x z^rOS~i(JIfWr{>q^=;jXn?fa0Q_QqViL0&+Wg<|d5v+p2;yn6osyBH_{5ZQ=Xg^=} za#gdq2uL+qrT_pS07*naR1;XtUbRW?rW>**8;Wg%wb9)%Oe)uX565E6IPa}Sau^MV zdBTR=ZdIF=3DIFFC+C{Dzq-=*x&7;deVA=$ks;lfTCL}Pt$iP$WP!wb4KXz4CSrFs zpe~w@u`Cud?DTgT3Wn*&Zsl6Tt2jN|AK!OxRpAk)JF{%bUEeUD{5F0mT7IDDV< z6mSf13Ry9s9ut0b^#AP<|MoI2%}hw|h`L3IV1*}5-tauD!DV~VIoNL|^Li0*Njf3J zgg8?tOQQzEkdoV5zcfA)-3R$@3@uv%mrZPIViX73)%@4jHu@V5ub;m7ckXbS z9s*x%ys5=azJ}*%y60p|Ygo!?y4N;109g)kQ0<$nK3v?`fIsbh@yVrW!XbStIc~xs zw$jY&KK`+cZ|~hl!?o*|JZ`Fy;d+*i0!Xn*7})};H*fpcwJuY*)r{6!3)(F5X*^8!tAm|AbTj%)ALcs?=E{0F7(ZeW z1k#TIDuJl_g8 zmyony3s{4u0$LXjc;H?f^wRXD4j>3fqmS$?-^SF{`4JEd;AJaU)jJnyZ=alpF0wN|@|`O2=SwHicMgq% zwd+HZcQMqih|8aTWB+*K|NKK=StkW9;8Hwzi!2V@X>x{psd=bj=gTT>Z`0zR9{ufX z@{fCK6dZvz5D*w`sB%A8y?}NAVeZRzCJkB)g&$hh)|9bSAsSLbN zbg+DFqbV-ly#o>6`=HsH4_5E)kFTaqH9H!wNWGGHV{B}Fg|R=znYIQ{iX5Z zqA^On7!g&tvkBCE-fq)8J(6phyBXfkM$NTsJA?(1q}@9@x$wDh6P4Ok!5KY;gtlcF zBC_~N2doAt8YmL6gMnUvW_AHKG4|#RW=)~0*{fQV8`jn}f_i_P6N>b9L&5BcJSGcR zo4A;gM{A5=cWvxt7*#<9tD_@|*a*g^6zJ&WxwNJw;6%oD)y#Vg2Z30%77A*Va;aHr z#6Z{$GR~#v&Rvn%E^ItY{Gx@E0@v#@afjcfwgUyJb24;Nao|6 z-x#qP^*|ZC3aP|k(~`8dV|pmql=E+n$H~XP+HVFmVpzfTepS$eJ1AjS0VoHbP@@2B zqVtds_n|vKWRzUbO{-{LHwZZUKrjSMLpI8!8EssQKN&kY^-lej@4QR*{vpDT6)y$M z=y#zX7pgUFR!mXH!CU;*WUtx&lNqcPdW}%8!~W%&bCXefnOlYV4y`9@bvqgPFsI=C zr;=|n=4Mbt_P#1wSH^T8gx(#R!oI>wf^Vh{gF^|&iO#y;p7S<* zu%y=M@Qbu}M>+lZ|1P(;x97j~g9r9p`%H1wdAszzJjdXCjJ?r%ksb0n;uEE4@yoTl zOdr7Cku=1&rtf`=)*9AY>t|GJ5QAI9o4S75w?Fmq>m`MClO2TvkDGJ&?(V26`)!Y? z712ffK$CH?)~&UAh*LQD559a6{~4?Yxj(?WyQf~c?^1+#XDg_rzno|e^pCgBDvwdg zY9Ri2A1ikl)mws&JG5x}Z+>|kmdxv=ZDV)M@I>vlHyt$ZeJ9q(X(n-t=r;?V{KP`9 zRj!T6Om`NYGw0UD%MlLWO!OG6AievLj>DUmO5|Oq<)`QR{ZF6vw@WVNA9ndE*Qc1$ zavIST?7uzN&)c|n{=>o@cFnx! z?hHP6ddc?VeSA3ht*ZlkQxC)7rbc&0QTakg|H2Wiw1?U63I~?vG zZrfVE+>%Wc=G+*9Uy>uv3)#aIc@&3moNaJ`mb>8quo$Chsx&tM(R}N-w+;qz^2Q_C zQ9$}uvc=`zTSZ1=+2H41R&6Qa==9HLx%9G+Tq-w#1~M3?B+C-eoJ62*tqhqCW{HtS ztn{MvTBO!`@^tjhsN%?5*Q@JS8GC_>fG`LELb8Mu0kDrfpWn*sI@;(4GXaiax2i)qOM>!?yJe0=5iVNBUA-Oh+ z$a#Rufpd{! zDY=h6p?RzPf4{6xQ2y7iPXG1S4~HoP=Tb1i+QL$amc@T_XMZsnZ+#x_x>u1FqK(N< zBw^ISGDV((mMXo}A)UNRUi0})>J>l)B)4_&bq+YC1` z!M9(TKYm&aYqtC_+iwox-gocH)6-Yea+oZCOm3Nc6UnT>7>7n0+&LS9T(BsZKob)Z zNJ5;z74bvM7~6hTk1d@_r+mq|Gn`xhaowy{Qht6LrsId@NaQPM2i&v1u-f zJB{;m9k=ar|76U(v`qbSO}I~PCSf2TyZFW`z!ooC-y0r|aEL>Sv|fy9xuZ6@cMYu< zhquzi!dDiySJ_;=n`3`z+|&kKaqQLQil12X44?+(we>wy(}|=b z$*t$(kWzG;fIOOBoRRrxF6VyE`GYY|2zrk9Uj>Ih{`2p%>mR>mB~uwTt+Ij zrJ(m_Dy%nP-R&w{d6J`&vRU`DI(&b8SO~YC)#)q1=;AOPTp%~fhs zL-N~JK_m~>mLW#$(d*ugvo1BwfdzB9T7Y6DdP+3?c*(u4cgIBJgvkLVt=h+?K@AXO zk>r$mZ9kr0rg=F{%Q^3PdrdKQF-3Av3XuS80NqJj7Z?pSVeAY|wI9(=#4SLp+90Ka zoe)YLMbkU)y@RdQ`xGR!-sR+{;N?r%CQ1Lp2mF^Gu;zgb_eU29w=N3kqPrt$tyE`N z>{dG=7=)&1Eubj3-UnEV5%G9jUJTuGpRI+%JZX2ewJ_bJlXN5EtaBy_k3pcu-6g$0 zpcna8#H#kkNMQ-3lvZmrTKb44zq3JDK6Udj%VZHdm|lH~ zH}yZazO~z9ocs;`uYdP{I12yEZytYh^8cw^252WG=ub<4HaUn-k&#%K-%rsY?pYLj zif|7Uyj-@Sr3PON#;uTNJ&*!XKrf|rFPX74*b6^zjGa8P9Q5(=!^@}Fm;E~%CLWwK zcF^fG)y}r$WpUeJ@zEoFF7*#>m8;lV*D$Y_w-c!Vk;60vXJL4K)9TrU=vLpj+1WA@ zz3x2C;1;)50;dP9w`Tw5^YxFM{q`%@5qeK|3!$B^oA#!C@TwY_?>aX_zda9^=~I=< zz+ug;jcFqgYdjOAz3$uC3Qtxs-`e-39fGshbE^uIH$>CB*En#?@(Lg zfl3};_wkE~o$9`KE+bk^p{GIXb-Q^!P2*tWf%tmfxTQ9@T7I>g|5k2SYO{&9*2{XgV^>5yp-(CC(E01C6=U+K$PrXMbO18=!QnFi16`|r4dcPvEauD0 zItD-p$x&x5d7yAlGA&in26 z1%rwRt^hM2n3kJ*k9U)KWepM3grExuAZwZ@a(+d* zVV55$M)MMV@qXKx=tScGEUZ9525vA*Vpu*Gy4RWx~lCAqD zEP&Q{!XdAv+*_&&bgc`To#m|s2Cl7D#BA_+P#kEm6=9Z|H+pIGWa6msifBre@v>q# z9~LWnt@W+x{lOJQHnsO=Km{eUxZX~4nyhOj7fVb^!hp-FG`9=rYzcY;LlHr_>0<3E znQLidA0q+q=&e;x9`Me^KJaC2xs``>2X53|Elz%NblvZq`Q^vy^;SpDytTDUH8*66 zW&&2{^|Zh*9{sP9`TZs?vyWhC>LdTOkM~oZDJdmun-cWS22~XIg5O4Xe^eL~X9K-u zm2J~gu#3k5FcjxGiP69PQaG;^-cb~4iki`^@fl<90 zL3@7wZU$Y#(Fg}?!{o}o39O0cIgrzyGbA&Xgr$p!u@=dY8o{w^n9v$j-ZGgRIFRL( z27(NgI@YayQTRAVMgwiX61-Ksw4uP#*pZ%DzdP&TdY^C?TsLW84~e9lt;R!m2uUCX zX;&^y#Rf3%mf2K>Mn<|~X-F=ik3q%W+5XMRL)S|eyXU+OXbmA)5qM`(!}X=^;HIC} z4h}H-(J^m~QHA=p;^)@}25o~cH@z7(?M1D;!CiJXyjyNxT)pWOn}-QnriCX8cL-s$ zb8~D=@M=wbE_>UBCu-1CfFRySOjFv&AlznjNNzU$7|h~v-)-IbF;tf@m!4N*D-ASS zJ)P#;Xe?-J@eb+=2=KZBAvi+(r|0zq@EBe6 zIE#}}GlK;th1{_uh1#VBC)(vi4w0YC{-pvsMOj}oN8S~r?j>-F#L*{)M4K1Oe2hax# zKO?VopqqlTjVlW$N7jHE*Y;8NS2RmeG`HO)R$DFz0HoSI4A9t#pDCwo_$&rQ5kym( zF+LouFezu%wU<10+fAedsF{JGK$m%$3er~Db9RL1J`U;*vu)(uA*QN>S8iaz9eu4p zD$xK=wohomLhdj@moXI6K<=E0=R1FQZP&UtGI)PDzW4C|krGWr6`*y7(xY~bLL+!# zQ3i#Stec|Dp3lXU4kF!pM;ZV#j#k>ePhLyDtlMEqha)k-KCpJWk0TfvOkyBsg@R>P zF{FLyuIddr_`9?I{jIDl(1wCD9_|bVW5#HM{BwhC+wQzaXBb^sE9kCwONsM!+uvSu zJo@RuS&OZYDu4s;Jl{(DKJzK5Ag;#N!6H3pAW;}BSX5Ib;9BxX0=w7o<5llDAK#sL z(6*Os2)w(t+JTp7RY`{$;41q)=+nFmiDlIH0j&cEcy!74-Pk<@rvM#55u!(9t;b?T zdgG|wVJu({Dcny=+NMfPB12hb60(QjXRAiz`_x~z4qtA+d2hc>6PJQC$T<_}o0Dy5 z_REb`1TY!2D3jAeP@+NTC&9e$ZKh*NT>ER@Zle3>=P$dem}uhRPB;8i&u`qHQXd@G z;T)M^XYH_12Sj5uNjnn!#eem&N%_81?!0LH_AuoR9}oO4jK9sp0VxkasAx^3 z?`||)+--*^@AVNKqIYuUQE6%-TiJ7mXlC#_V>2v`dLtszV=$LSuiH8$c91*~5daoJ ztcAK3~hPj^obZ zncdb4vXnvydLIDIxcEpTM$FGO?HLb_(U0IEB9Y-$<$av)Y&)730RH}YY{S_YREokb z1!|W2J7dJ`r7tJCf1I@H_0wuQK{pDMG0jD-Upsl@gHjt~XN<|m3cA+%&cL6%I~-@- zG9(Kj09Qppr5qwH^W8S|=iAvH4*&E2_CNjeKmFtPzx&5%=LAOb8fX0Wu?9&y~CtZ_~B*wMZprMVr7Ug>1wCl5yTmbHKyO@8@|* z@l)B2j(|uZU20C!W)0ZKPp%+htl~kQtj8p`E02`ok8ya1s)SgJ8Afg{PYhZ|^58w>l0?D?seM-?alN+95 zg9>GoqVe||oO`oYfph~cfJR*ev8D@xS6wV(RPi(g<4iMFSu!gGOp5^o6##2EXk(fg zhYl*86$cP1SW6htjn=N~DgtOs(|X>vv29U0n7D4bYn`Pbh7?@^_|)*Wk6SK-hshR0 z3enCM9+Peo|NRf`|M_{lOX$R)HXM8zoTblbiRiNRTvepb7TH2WoM>h;Kdj}p55cX$ zcy33F*g*hzA`nAA?kx)}9-OqKzL7&PxfM&vl9_ypR&p;05uCAP%ox$dU*3mzvwY8Z zwBh0C2DDa%{i23jtCNSi$y)=D;mH~`UdSG1ejimFE#zi%Jlq90`6I%IqhCN;<-KIO zH_bT9;-T-7og5|?MsJRoZ6E=!u)<8*kB(D3Zl%}UprT7S+0;ZffhZ>Qij{{F17?UU z`F{2fv%3%Aojr{-sU)oNIPawARh9=V!|q!P2!le2U^{hA#BhHYZ#n(=wt4|W#|)vF z&h2Uea)@R~vh-(*xv>7{*K_Ut*WPt+2w|R$WbPfgnsK{=4J8=?o4NgX-TWL6(eL0| z$6D%I)kTLou6cco)9vQ=Tb=FjFy4M{&u`Z+cl2zfVlKmd+K`bRPY2BPd1nNFHZTn( z#Yq0)XooXp>(+A!Xc&405~~X9^;~wjKiH$O(NCX88BH`|R7uGk{lT|eW*8R0;6Z7! zdhI0_%{c813aYny?_ub4f%WJ)IJg#n$-DLY>`%ypTREnOOYIeEBC=zxP1)KG{6i`K zaLpeM^E35B=$7b6u|u?Fi@@p-8PYEm91KagQ_KDh7uR0J7Yx zKAwU(Itx5xOoptsO#S^KEC^R)HZZBY9(v1i`26;{?0Y1n0LCA0Z*LENe4XGUx}PuF zw64`$GdBnKAuvE4Z3KE7601A`ORk3*F`zf*D4@np_YWtJd|h?r{U$r1^)!Y-vev5( zB^4#<1aGS;GEPU`tl!w=+`%tP!dA+8fImf4TxdiGKh@Yl4hv2WEbGT<`8Z)7f`gnT zVDmJY7r}G!j$AMG%atGfAOShvMIp=OTsd-W25LoeW3ljX@UHUDTjnN>bM(m=k4|7n zQ7tCFcKzvMDA@Z`y1e#{_tX9K3p!N*7fjyIoqMv6Gcf9=He_~NyN&H!(e}Hidke7b z&H540gA%$c2rw)JGP%Olt93-=IkpsmW(T-9ALdpwYunHxO+$+cf3whE%*59GM;fIx za$%Xn+m=87e0l$bhdJFU*py}rpSFElFUyR{yX|J0!)x1z@Wf=|A)tspSz(0YIjbanB>>zP4ndnXs4ARX{vFgt?*}og8@b zVR)N2=_HNd{o;G~KAJ`}KwMHo^jvA}TSOh1Is$rQJmd^@8&3y3g}|%>QUsk0V9<&E zn$7ukeiz5hT3M#MDXQqk-B~(PV9(vS#Qj~6hoqOLkIC==3yr)sMQijvdIT_vvGz`= z)*9o#Incw$B%>!0<8AO(ONop;P)GkV7{Lhx1-zk6*O9EcgZIwffS$M3dll!+u=_=R z4qId2GgWCHW2hXQ>Flm-9J!Ij8sNjsQRQ zv0m~$seWmNdHm8>A+r}9DrM(uQLAb!bqOxweW%yl$)c(8XsjA7HwkKvflBA%FnZ?< z4n;L$peM1jg>9$;ASrYp(1!#Ez&B8_Zp|v&Z8R}tX=kP_FQd1TH(*DEqT{kmcDYNV zf~<-|iS!u4L<+)}rkPO()RC3wF{-hL*Ut8`8j}jzU*HInJ+GaClw5@2i3Y=dxlN1j zf-h{)B&RPVOyQjpMb8H&-B%p!jW1)gGLWqEhW>w&?ql1w>^Kl>L@d9}G56l*G80Im zXo^LZq)w@!wmwDwsg{NsB@G#>28$XbNB{}oxoghZZutl`_#<;_^xGnBm&uDJ{HI-> zYYs?*56(JLY=fLf2SvVoy>0hHaiz{VD`-|V<*k>-+p-2!pU&45+kgJw{`dX!S8H2= ztw|%ol8@WVw$$BQRR#We`Mz{EI%p)){qy$nhp#v4`d6PWWc`{lOHVOtsA0BGAJ6~( zS3iAvco#j(U=n(F9c!0we|W}rF!3InbYXx|%j}U2 z7^AE<-RjUQlp2q!YTS?g<^E=ffAcUsSh6jTs8^xysq8F?6%qJg9v(-h5OedQ0-45` zdby?C8V3gs*>I~|_bl(^k2Ck0qt;-lhK=rKjESa*NMzuiet1 zTu3`|stw$~0WIK;mVpHY_L?R~=Lt%^_rft3ZmUN-oAGKHTB{`~5nwdfh9EWf6|43j;Oi8DkF!_9?5lFG5x(uE*Tiay z>}Jn{g8)E6_mnlXlG=KIcBUx=X~1GWdhiCnr*iW3KRjI>nTX7!4A*PmkMBZe`gSX- zqjrjcPhN;Ryme?Ij}AV1_ra6X+G8*2hyeNb$GrS;mLb8R5jDj+;s{(kJQTke%? z7`Je~A=ULb83Us!0IDiH`d}g3@ms-rZVSiO(6W25dP0+OF2LaD2k-vs>Msuyigcl+ z;Fj9Ked(;-uoeBw%eE1ihtug{Kry$q8p^8YkkoQyl`BCdGlKV6b)Eggr zF10IV3}8*X?@Ol6_+D)Tc47G`s85r=s+LPhz@t+S9)a5*U-D~gR8p#GCtFzY;1*QN z>(;o5qf1b;rP^gJyzdPd6ai}lw9e?sIw}16mX->8=PgOA!=!`a;-qqhT$o9>oc6f1 z-g_UACTpC6uCSxRma{1bL9Pl(HK*89sl2{zOJE4#UJq!bbpX%+ijb)*6%-X)a7SmX_kij=xnVRh3lliNytjf7=Fy-ksi#!yzHi$Ns08#pL2vJ!AJnLI?<9`loyUh@ydpErYM#6ihZukm zQMm~+)wrV)GHN1x@@BA3)6r~Kb|S>uW6M%Ru|Tkd3XYg!QH4|kJW@SsJ1QW|7WMr& z?(5F6Zo6I!rCbUNdgF(&q)vHv%-yI$GmMxL2ob*Y;bN?~$QnK=P!fc~F*w zfwdUTh`4m_L{HXyyf~V4B8NVV4lXXR@=#%5v;+pgGNP7M(iYJPe{}d1#@RUp{BrMt z+S!njpokK!lsY*}!iNZ18^{?;cCrp_1H#bXpCrsQ4Ei#vaUkR9UC^HbTmnxOM`S%9 zI!q1r2+SO;CbClSWZ`4L+33^(RI8Q$bXz?(Ci%YB`<_G*OF#*0;h37Ws`Z{T_5?NK z66y1{=D4)Rue){*lMQ-SKnV~BGY4Ivkzwq<}&%f z26D^N(}xj%w$yWOnLQ4kromY=yM)qW|Jm11Gu&9!wm(>W97e4mi@bO6-@S8x{qFog zb2{ib77=-WI&(cA-(TO!+r{~{j$2I@j`x;6ScjyGwuCAe1t3MZD^j{ciC^FHm!;*s z4;+8})K4>|+!*@B!v}&vNII>1`+D?SZ&<|vCWM_4HTltEht_-WmYBSiAG|*cK8-|^ zzuk|#+`}~H^ZQ(bcmDhktmfI{ujavl`Few;bW{w=H<4azAblDQ_qOf#rVxg+Rfapu zu|Czi)}t0U8)g%pQ`}3<5uJ2!c8wfP^RNHoUw!ZD+mR&YepE4owo{Ka-M3@mShyjQ zk`BEPTOdFcJJ4&3gft?K4wZ97j7ily$ZYDdW39Y_$?ZCjGb6*uD!|2G2M&tYBKLGC zr?tD>_r2HqG^&TE5Qs5Tr_%=NGK3!=&Rd6Np;!Q^pS9NB>cIxp2q+AX%7vWzeL0{d z+n8Hb+JHFfwfE!qx0iqZ_C`HloGy*tdhdWO@w%+oVX&unay z)E7Gp)+!SQZIx(a!qZtR#jS9Q5fSG>oxCU$8e1c%dwV(ROX*1g0|bCiC-*Qp@4G|c z#?P-u=h{Fcqd}eqLrZu3r;N~JMaRN4xgf?brJ z7~fx}@$B|^>?IY01vL=^@7jPL2NA~JE9)&|P0|W^(#ZI)_wCqjKidoH%ii-=_Sd6S zND8p9kW~@=%dQb{9_VV_Xgp~bjQMbygPXra+4k-Yy?1!AeIAuEc~12;t}J z_4$6k-4Y5SiX{YubZ}3LhNB;{-ZqAA!^x|6lMS4ASNSq&@`?+hq=d(UvZp^@*#9cs8Od~D^laRl8CK5{<@5(B7q@u0}Z2HRHa5v4R1 zd0oqWNV?gzTZro-2m=9366n=hrdwbo=#%XJ5 zueHi=U-y6hddIyxs8n}J2e!PF_^sEkdw$*0mijMW+kMYrARtu=61rU^<{}l>Eq{4i zct0LPI3Q%^lQ!S7dM*5DOh8E`YeZ)(Do2Czo?2RKFVhqZ#8iaE2a=AhA}Biu&l&b? z3h}7e-g>Q^MA~y#fNC82`?G!L=cnO>s>ad)ttjQK9mq7PKV63RmvimO==R}cN$A+( z#mYsgw}?ebLtYY>3doo$e#>Bscrs)hxn7&-X>yO}tu<)--#yOn&QoW4IsB2~z1dHW zQh|M|Uyt~Y_wA2yuch?LYqMPqg>mhjhv7U7*V&Ak)7n#P4RCLn+vW^Z#LxG2j|VDh z7Wdw?w$25It&=F7XHWq2=^g*i|I=Um`^TT|(d1-=JIi(&!ZZ((q27{*ZarCoGb%*_ z#6gcnYlXX4v`4eP?Voh36~5i~z8}9H#`l+N7dEhX8(tDF?Rc8Q)wnausAzZ?%y}*q zSqVz9IaYu}(3&n@IZdTFJ|x@XSy<(`h3ij*ZXu|gf56H*0mz=RZ(H;VqW@Rztb z&3`e^Pt#0_I~P7`t2__ddE9HSECl4$U_A-3&TD;nalM_47KE>__n4v(AT<>zG0L%P zs7`}sXxxg~V;88T&@BfauQ$$VW!etsB>Z@$lNSJVOp~W&+rE8$aezd;m%Oq~T8*|# zEk}WeNBiIW?e){irv_`)uZjM!c1PL-{a=4~PnDiNII?&zz~r5A-qVkd3Q2b5m3CO< z>s$SPJ9tn}zy8(3=nXavstH+RQn=Q( z-9-zlfbMZt%;DFU@r13GI&1r*AFY^Fl~&`2 zK!X)wAVJMV_a6K;T<1dEiGpBhn+QO2(5Zp+E(p-eR?9}jLr{*r5-72*w_ZD7i>=10 z5&x>D&Y1K)!Xn_r4!7ZQn{wRfrh{MH!xSccVAs#Eom;4@;v{ zKTL|usWq~)Tg?qEJ7W;EB4vaCofx7zD1Hk1I*oc78%X6gI`ttak072-qgd&PUKtvC zrH&W|(0J5NVn?*vT2`jy3POkAFSq!|@Ad!wzI49-rwg8)+B)s=C~3vk9cYBGMu<%S z%u(BI-(rF1rM$h|RF!Us95ijd6n@(!DJTPdKJaxZVH8yKd2cVdtsTIF;o2HsCO6oi z3_J#IrF>6YV;KRZHui>v;#y)!!J;GcR-x?N8a!7%5Q3Hw*|Iufc*}CM!hjV>A%m_b z1&>-AgBrM(atMB@%m}?Hun^BCdvH=@6(RCk zl!BgWyw%*GG?Wa|YtqPsYH7K)-K%!7dNOWws#Lh&(%|jSzxg;>tM5TkU)z z{Vhx6I$E{%_I6~%2q0|*=u9RqN!|8#!u=Y2Lt9x4!i-#i{&~yazrT{*ohPRzr7-o} zWfwPo6Qx!E%?K9iQ9!D?75SbIg!F!JlXIxd#e~KJxdtLa(t_o{D4D;>fx8pH$0C;;AcV^R;sS|i=26iYN}w4^$1 zwSY)gRE=0JrcxslbeE7BT5HZ;lzy~Lc@!Z}*qiz7R^Rsgr(FJSa)^8{iO?CPkk@J| zgR>;sN-D*ZH`;08w_LxaLc+z+68qB$jOesVJ*SEnuB~!gMSPKThE-$Ilx=x3)uT zwUHnyWct3e7$djbDqX#OVSeRiwR(4beD~9%q*v)(p&3>GA!x<$R;xD3^|q`lcOAwt zrr6s)`@p3isR$g?I1MTwNMloLZV ze3%6|k*RMw5y9DY|<55%*Z?1!&8bxd8skN9Z z>(lAu!{zn)U^%oZ(q$3jiY&D(iD@dAUarK^7;F%*{$Z8>@(iE-umYe_pNbJ0e+6&BM z1*>@(qpy=5_6&dja+4hY`Vy)$k!4lvEpshjP?jtWo%cByFGgBCR2!CjaH}|E>&DDb zO)Lo&fl|VW0{RS6ve5$u=Ok+4-Rk08I3!D9Irw^}zYJ6vme{$Kic%tYHHnd}Y^#C9 z__FRV+YT_F=lJAk8p2wlML?pxaI9dwo=1$?E-$g{JPs(BW`=0TFQqq(Klx#A;WZzR z6A#Xuvp)xU&82X02%s=%e+qi<($|_*c0yM-agG0S<1DD~7(&q6=!QxPGB`zmozW4L zO_D}WSoU7W=5*bIiaX-oiVRMeO6qSFE|VUujujbQEMQQKDv*NO~5oc$D^i zYkwd6x5|GzgugovqcTBP)VU@TI(LxF^5FU$RNLUTu4MIDS0EalZ>2XSr2TqGFLBh$ zYF53sA|vKtbYG=}I863P9jToxJdE~R%*&42`AKWVFghH;-48q@cVIs9YMPg7ipkx8|j!Rs{?&3P>G;YnEaz1Hzk9IP2E=Pk;FK z;fdc}$LGZ7THA88u3GcfpwTiK_;bfn5mAD2T9NY_G~v#p9-P2&?5x6BX=g%`(t33? zWP?k*SV(mL8T|VvOFLyu)8!<#~IX&JSmQs`WlqndfWT zm6ZCHMR#E|4!VOB5E!we-&%F3W+Yag9^?s+>TGq4u#i_stIGd75* zJtJ=rk1pDsE|&l=-|Mmb!h_D6*Bi~U1GN6U#RWlu8z?C!oP=(}RSo1L|!tq3&XU7AZ->!MptbiYN z!U;knMD`^jgZo1r3teyvK!)M*y@idAr5dYxR?B!B4q7A3JB0z+5Ktpqs92 zwTMF0)D}PbKZaM;xmxUA9_H zvt9_H_0mLH73kk)=R7+=7dBRkr=X=O3Ic0Bwk#~z zq&F$0Qf*3GwD)`{qQt%Jyrm3EpeRB4_2n>xw-w2eJAo+roQEy) z?rH~W0tD0=&!e)eiTS>#JyR*rx`-tWytdv{dK~)T-lFp_%e z?(966^=&CWUYswYgr%mIs6z&=kppE6PJym#5mlRGqfQQt^4(Cu9t0t`oO=TK9(&7t z0{E!q*K=jGdx2Inb7uhygZ0cHYrzDnB@gRBzK&Y7>#?bJ@E->^k*jv_r;GhQSPO69gVS_≈=B@m*PtA$Q_%Uev0lm{9* zx?q~N#GPi~Cyg%x#?e;N@+OrzVVaZ^ps%U@pj8kAFdFnxn((2_)PE?zL*gfl*V?G2K#T14yMt7|Bk55;9Q@lOet0cUA7-PxYU#O^vx3>0B$!hDx*tactyN+l8yVXb;d19D z{Og~F>BIZ@?SOP^m|hzu3YtpAu8_d=Qll197A8#=87pclxuF38MWCeT0$g6Dn%6if zx^?6xLGj8sk-b6_1A9Zw{mJ8pc}n}+%bpD36tsgOv#63Ms|Ql|);}-HSi%pdOCpGc zvGts8)yZWT%#Jz5Fz^YmvFr?uL37E(&9Hl?;mL-7+;(pJ$)7aL)^rb*J82}Vtsy=V zx3{gE6It~ba6q~r+n=Rtbq#?^+dyE@!69(i(HSF9 z3_;I555b>}VD0JcK0CYrOLUMqikkRNZI$;qV8z}!35d03YHB1Ui1(ITM}uN@ z8pNlgiH7URj{sG~h`M@jG#*R*vM%0A>tK`)x*ZjD7(zVSw$phIgk5;WXws~j1x&TD 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 )|t-~&e73_mL#P?3f!n!jf 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�In3tmRwN7qExA}=Ca8i@2^o~`HrZHBKc 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 FN-r?fm_$6ia_Y#rmDp2IoEcM~}SI~;pS$^X+u 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 qNge@*Z&QGQXOfTA#F7 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 literal 0 HcmV?d00001 diff --git a/test/lib/usd/translators/UsdImportCustomConverterTest/UsdImportCustomConverterTest.usda b/test/lib/usd/translators/UsdImportCustomConverterTest/UsdImportCustomConverterTest.usda new file mode 100644 index 0000000000..607104e42b --- /dev/null +++ b/test/lib/usd/translators/UsdImportCustomConverterTest/UsdImportCustomConverterTest.usda @@ -0,0 +1,182 @@ +#usda 1.0 +( + defaultPrim = "pCube1" + metersPerUnit = 0.01 + upAxis = "Y" +) + +def Mesh "pCube1" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, -0.5, -0.5), (0.5, 0.5, 0.5)] + int[] faceVertexCounts = [4, 4, 4, 4, 4, 4] + int[] faceVertexIndices = [0, 1, 3, 2, 2, 3, 5, 4, 4, 5, 7, 6, 6, 7, 1, 0, 1, 7, 5, 3, 6, 0, 2, 4] + point3f[] points = [(-0.5, -0.5, 0.5), (0.5, -0.5, 0.5), (-0.5, 0.5, 0.5), (0.5, 0.5, 0.5), (-0.5, 0.5, -0.5), (0.5, 0.5, -0.5), (-0.5, -0.5, -0.5), (0.5, -0.5, -0.5)] + color3f[] primvars:displayColor = [(0.6120656, 0, 0)] ( + customData = { + dictionary Maya = { + bool generated = 1 + } + } + ) + texCoord2f[] primvars:st = [(0.375, 0), (0.625, 0), (0.625, 0.25), (0.375, 0.25), (0.625, 0.5), (0.375, 0.5), (0.625, 0.75), (0.375, 0.75), (0.625, 1), (0.375, 1), (0.875, 0), (0.875, 0.25), (0.125, 0), (0.125, 0.25)] ( + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 2, 3, 3, 2, 4, 5, 5, 4, 6, 7, 7, 6, 8, 9, 1, 10, 11, 2, 12, 0, 3, 13] + double3 xformOp:translate = (-2, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] +} + +def Mesh "pCube2" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, -0.5, -0.5), (0.5, 0.5, 0.5)] + int[] faceVertexCounts = [4, 4, 4, 4, 4, 4] + int[] faceVertexIndices = [0, 1, 3, 2, 2, 3, 5, 4, 4, 5, 7, 6, 6, 7, 1, 0, 1, 7, 5, 3, 6, 0, 2, 4] + rel material:binding = + point3f[] points = [(-0.5, -0.5, 0.5), (0.5, -0.5, 0.5), (-0.5, 0.5, 0.5), (0.5, 0.5, 0.5), (-0.5, 0.5, -0.5), (0.5, 0.5, -0.5), (-0.5, -0.5, -0.5), (0.5, -0.5, -0.5)] + color3f[] primvars:displayColor = [(0, 0.6120656, 0)] ( + customData = { + dictionary Maya = { + bool generated = 1 + } + } + ) + texCoord2f[] primvars:st = [(0.375, 0), (0.625, 0), (0.625, 0.25), (0.375, 0.25), (0.625, 0.5), (0.375, 0.5), (0.625, 0.75), (0.375, 0.75), (0.625, 1), (0.375, 1), (0.875, 0), (0.875, 0.25), (0.125, 0), (0.125, 0.25)] ( + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 2, 3, 3, 2, 4, 5, 5, 4, 6, 7, 7, 6, 8, 9, 1, 10, 11, 2, 12, 0, 3, 13] + + def Scope "Looks" + { + def Material "standardSurface3SG" + { + token outputs:maya:surface.connect = + + def Shader "standardSurface3" + { + uniform token info:id = "standardSurface" + color3f inputs:baseColor = (0, 0, 0) + color3f inputs:baseColor.connect = + token outputs:surface + } + + def Shader "file1" + { + uniform token info:id = "file" + string inputs:colorSpace = "sRGB" + float2 inputs:coverage.connect = + asset inputs:fileTextureName = @E:/Ws/UsdBuild/ecg-maya-usd/maya-usd/test/lib/usd/translators/UsdImportCustomConverterTest/Brazilian_rosewood_pxr128.png@ + bool inputs:mirrorU.connect = + bool inputs:mirrorV.connect = + float2 inputs:noiseUV = (0, 0) + float2 inputs:noiseUV.connect = + float2 inputs:offset.connect = + float2 inputs:repeatUV.connect = + double inputs:rotateFrame.connect = + double inputs:rotateUV.connect = + bool inputs:stagger.connect = + float2 inputs:translateFrame.connect = + float2 inputs:uvCoord = (0, 0) + float2 inputs:uvCoord.connect = + float2 inputs:uvFilterSize.connect = + float3 inputs:vertexCameraOne.connect = + float2 inputs:vertexUvOne.connect = + float2 inputs:vertexUvThree.connect = + float2 inputs:vertexUvTwo.connect = + bool inputs:wrapU.connect = + bool inputs:wrapV.connect = + float3 outputs:outColor + } + + def Shader "place2dTexture1" + { + uniform token info:id = "place2dTexture" + float2 inputs:coverage + bool inputs:mirrorU + bool inputs:mirrorV + float2 inputs:noiseUV + float2 inputs:offset + float2 inputs:repeatUV + double inputs:rotateFrame + double inputs:rotateUV + bool inputs:stagger + float2 inputs:translateFrame + float3 inputs:vertexCameraOne + float2 inputs:vertexUvOne + float2 inputs:vertexUvThree + float2 inputs:vertexUvTwo + bool inputs:wrapU + bool inputs:wrapV + float2 outputs:outUV + float2 outputs:outUvFilterSize + } + } + } +} + +def Mesh "pCube3" ( + prepend apiSchemas = ["MaterialBindingAPI"] + kind = "component" +) +{ + uniform bool doubleSided = 1 + float3[] extent = [(-0.5, -0.5, -0.5), (0.5, 0.5, 0.5)] + int[] faceVertexCounts = [4, 4, 4, 4, 4, 4] + int[] faceVertexIndices = [0, 1, 3, 2, 2, 3, 5, 4, 4, 5, 7, 6, 6, 7, 1, 0, 1, 7, 5, 3, 6, 0, 2, 4] + rel material:binding = + point3f[] points = [(-0.5, -0.5, 0.5), (0.5, -0.5, 0.5), (-0.5, 0.5, 0.5), (0.5, 0.5, 0.5), (-0.5, 0.5, -0.5), (0.5, 0.5, -0.5), (-0.5, -0.5, -0.5), (0.5, -0.5, -0.5)] + color3f[] primvars:displayColor = [(1, 1, 0.6120656)] ( + customData = { + dictionary Maya = { + bool generated = 1 + } + } + ) + texCoord2f[] primvars:st = [(0.375, 0), (0.625, 0), (0.625, 0.25), (0.375, 0.25), (0.625, 0.5), (0.375, 0.5), (0.625, 0.75), (0.375, 0.75), (0.625, 1), (0.375, 1), (0.875, 0), (0.875, 0.25), (0.125, 0), (0.125, 0.25)] ( + interpolation = "faceVarying" + ) + int[] primvars:st:indices = [0, 1, 2, 3, 3, 2, 4, 5, 5, 4, 6, 7, 7, 6, 8, 9, 1, 10, 11, 2, 12, 0, 3, 13] + double3 xformOp:translate = (2, 0, 0) + uniform token[] xformOpOrder = ["xformOp:translate"] + + def Scope "Looks" + { + def Material "usdPreviewSurface1SG" + { + token outputs:surface.connect = + + def Shader "usdPreviewSurface1" + { + uniform token info:id = "UsdPreviewSurface" + color3f inputs:diffuseColor.connect = + token outputs:displacement + token outputs:surface + } + + def Shader "file2" + { + uniform token info:id = "UsdUVTexture" + float4 inputs:fallback = (0.5, 0.5, 0.5, 1) + asset inputs:file = @E:/Ws/UsdBuild/ecg-maya-usd/maya-usd/test/lib/usd/translators/UsdImportCustomConverterTest/Brazilian_rosewood_pxr128.png@ + float2 inputs:st.connect = + token inputs:wrapS = "repeat" + token inputs:wrapT = "repeat" + float3 outputs:rgb + + def Shader "TexCoordReader" + { + uniform token info:id = "UsdPrimvarReader_float2" + token inputs:varname = "st" + float2 outputs:result + } + } + } + } +} diff --git a/test/lib/usd/translators/UsdImportRfMShadersTest/MarbleCube.usda b/test/lib/usd/translators/UsdImportRfMShadersTest/MarbleCube.usda index c76fd54a1f..381026f358 100644 --- a/test/lib/usd/translators/UsdImportRfMShadersTest/MarbleCube.usda +++ b/test/lib/usd/translators/UsdImportRfMShadersTest/MarbleCube.usda @@ -40,13 +40,7 @@ def Xform "MarbleCube" ( { def Material "MarbleCubeSG" { - # XXX: Note that the rendermanForMaya material conversion at export - # will create this surface terminal output using the "ri" - # renderContext as opposed to using the universal renderContext as - # we do here. Further work is needed in the "useRegistry" - # shadingMode to be able to support finding materials in - # renderContexts other than universal. - token outputs:surface.connect = + token outputs:ri:surface.connect = def Shader "MarbleLambert" { diff --git a/test/lib/usd/translators/testUsdExportImportRoundtripPreviewSurface.py b/test/lib/usd/translators/testUsdExportImportRoundtripPreviewSurface.py index a43af2cb77..5d99c4c28f 100644 --- a/test/lib/usd/translators/testUsdExportImportRoundtripPreviewSurface.py +++ b/test/lib/usd/translators/testUsdExportImportRoundtripPreviewSurface.py @@ -102,8 +102,8 @@ def testUsdPreviewSurfaceRoundtrip(self): cmds.file(defaultExtensions=default_ext_setting) # Import back: - import_options = ("shadingMode=useRegistry", - "shadingConversion=none", + import_options = ("shadingMode=[[useRegistry,UsdPreviewSurface]]", + "preferredMaterial=none", "primPath=/") cmds.file(usd_path, i=True, type="USD Import", ignoreVersion=True, ra=True, mergeNamespacesOnClash=False, diff --git a/test/lib/usd/translators/testUsdExportOverImport.py b/test/lib/usd/translators/testUsdExportOverImport.py index fb61e76827..3aa70725bb 100644 --- a/test/lib/usd/translators/testUsdExportOverImport.py +++ b/test/lib/usd/translators/testUsdExportOverImport.py @@ -78,7 +78,7 @@ def testImportModifyAndExportCubeModel(self): """ self._ValidateUsdBeforeExport() - cmds.usdImport(file=self.USD_FILE, shadingMode='none') + cmds.usdImport(file=self.USD_FILE, shadingMode=[["none", "default"], ]) self._ModifyMayaScene() diff --git a/test/lib/usd/translators/testUsdExportShadingInstanced.py b/test/lib/usd/translators/testUsdExportShadingInstanced.py index 4b39a721c7..9c8e70f128 100644 --- a/test/lib/usd/translators/testUsdExportShadingInstanced.py +++ b/test/lib/usd/translators/testUsdExportShadingInstanced.py @@ -39,7 +39,7 @@ def setUpClass(cls): usdFilePath = os.path.abspath('InstancedShading.usda') cmds.usdExport(mergeTransformAndShape=True, file=usdFilePath, - shadingMode='displayColor', exportInstances=True, + shadingMode='useRegistry', exportInstances=True, materialsScopeName='Materials', exportCollectionBasedBindings=True, exportMaterialCollections=True, @@ -53,7 +53,7 @@ def setUpClass(cls): usdFilePath = os.path.abspath('NestedInstancedShading.usda') cmds.usdExport(mergeTransformAndShape=True, file=usdFilePath, - shadingMode='displayColor', exportInstances=True, + shadingMode='useRegistry', exportInstances=True, materialsScopeName='Materials', exportCollectionBasedBindings=True, exportMaterialCollections=True, diff --git a/test/lib/usd/translators/testUsdExportShadingModeDisplayColor.py b/test/lib/usd/translators/testUsdExportShadingModeDisplayColor.py deleted file mode 100644 index 85fdd9f0a8..0000000000 --- a/test/lib/usd/translators/testUsdExportShadingModeDisplayColor.py +++ /dev/null @@ -1,135 +0,0 @@ -#!/pxrpythonsubst -# -# Copyright 2017 Pixar -# -# 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. -# - -from pxr import Gf -from pxr import Usd -from pxr import UsdGeom -from pxr import UsdShade - -import mayaUsd.lib as mayaUsdLib - -from maya import cmds -from maya import standalone - -import os -import unittest - -import fixturesUtils - -class testUsdExportShadingModeDisplayColor(unittest.TestCase): - - RED_COLOR = 0.8 * Gf.Vec3f(1.0, 0.0, 0.0) - - @classmethod - def setUpClass(cls): - inputPath = fixturesUtils.setUpClass(__file__) - - mayaFile = os.path.join(inputPath, "UsdExportShadingModeDisplayColor", "RedCube.ma") - cmds.file(mayaFile, force=True, open=True) - - # Export to USD. - usdFilePath = os.path.abspath('RedCube.usda') - cmds.usdExport(mergeTransformAndShape=True, file=usdFilePath, - shadingMode='displayColor', materialsScopeName='Materials') - - cls._stage = Usd.Stage.Open(usdFilePath) - - @classmethod - def tearDownClass(cls): - standalone.uninitialize() - - def testStageOpens(self): - """ - Tests that the USD stage was opened successfully. - """ - self.assertTrue(self._stage) - - def testExportDisplayColorShading(self): - """ - Tests that exporting a Maya mesh with a simple Maya shading setup - results in the correct shading on the USD mesh. - """ - # Validate the displayColor on the mesh prim. - cubePrim = self._stage.GetPrimAtPath('/RedCube/Geom/Cube') - self.assertTrue(cubePrim) - - cubeMesh = UsdGeom.Mesh(cubePrim) - self.assertTrue(cubeMesh) - - meshDisplayColors = cubeMesh.GetDisplayColorPrimvar().Get() - self.assertEqual(len(meshDisplayColors), 1) - self.assertTrue(Gf.IsClose(meshDisplayColors[0], - mayaUsdLib.ConvertMayaToLinear(self.RED_COLOR), - 1e-6)) - - # Validate the Material prim bound to the Mesh prim. - materialBindingAPI = UsdShade.MaterialBindingAPI(cubePrim) - material = materialBindingAPI.ComputeBoundMaterial()[0] - self.assertTrue(material) - materialPath = material.GetPath().pathString - self.assertEqual(materialPath, '/RedCube/Materials/RedLambertSG') - - materialInputs = material.GetInputs() - self.assertEqual(len(materialInputs), 3) - - materialInput = material.GetInput('displayColor') - matDisplayColor = materialInput.Get() - self.assertTrue(Gf.IsClose(matDisplayColor, - mayaUsdLib.ConvertMayaToLinear(self.RED_COLOR), - 1e-6)) - - # Just verify that displayOpacity and transparency exist. - materialInput = material.GetInput('displayOpacity') - self.assertTrue(materialInput) - - materialInput = material.GetInput('transparency') - self.assertTrue(materialInput) - - # Validate the surface shader that is connected to the material. - materialOutputs = material.GetOutputs() - self.assertEqual(len(materialOutputs), 4) - print(self._stage.ExportToString()) - materialOutput = material.GetOutput('ri:surface') - (connectableAPI, outputName, outputType) = materialOutput.GetConnectedSource() - self.assertEqual(outputName, 'out') - shader = UsdShade.Shader(connectableAPI) - self.assertTrue(shader) - self.assertEqual(shader.GetPrim().GetName(), 'RedLambertSG_lambert') - - shaderId = shader.GetIdAttr().Get() - self.assertEqual(shaderId, 'PxrDiffuse') - - shaderInputs = shader.GetInputs() - self.assertEqual(len(shaderInputs), 2) - - diffuseInput = shader.GetInput('diffuseColor') - self.assertTrue(diffuseInput) - (connectableAPI, outputName, outputType) = diffuseInput.GetConnectedSource() - self.assertEqual(outputName, 'displayColor') - self.assertTrue(connectableAPI) - self.assertEqual(connectableAPI.GetPath().pathString, materialPath) - - transmissionInput = shader.GetInput('transmissionColor') - self.assertTrue(transmissionInput) - (connectableAPI, outputName, outputType) = transmissionInput.GetConnectedSource() - self.assertEqual(outputName, 'transparency') - self.assertTrue(connectableAPI) - self.assertEqual(connectableAPI.GetPath().pathString, materialPath) - - -if __name__ == '__main__': - unittest.main(verbosity=2) diff --git a/test/lib/usd/translators/testUsdImportColorSets.py b/test/lib/usd/translators/testUsdImportColorSets.py index 7803d018c4..04413769ed 100644 --- a/test/lib/usd/translators/testUsdImportColorSets.py +++ b/test/lib/usd/translators/testUsdImportColorSets.py @@ -130,7 +130,8 @@ def setUpClass(cls): inputPath = fixturesUtils.readOnlySetUpClass(__file__) usdFile = os.path.join(inputPath, "UsdImportColorSetsTest", "UsdImportColorSetsTest.usda") - cmds.usdImport(file=usdFile, shadingMode='none', excludePrimvar='ExcludeMe') + cmds.usdImport(file=usdFile, shadingMode=[['none', 'default'], ], + excludePrimvar='ExcludeMe') def _GetMayaMesh(self, meshName): selectionList = OpenMaya.MSelectionList() diff --git a/test/lib/usd/translators/testUsdImportCustomConverter.py b/test/lib/usd/translators/testUsdImportCustomConverter.py new file mode 100644 index 0000000000..919c1ade43 --- /dev/null +++ b/test/lib/usd/translators/testUsdImportCustomConverter.py @@ -0,0 +1,133 @@ +#!/pxrpythonsubst +# +# Copyright 2020 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. +# + +from pxr import Usd +from pxr import UsdShade + +import json +import os +import unittest + +from maya import cmds +from maya import standalone + +import fixturesUtils + +class testUsdImportCustomConverter(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls.input_path = fixturesUtils.setUpClass(__file__) + + cls.test_dir = os.path.join(cls.input_path, + "UsdImportCustomConverterTest") + + cls.usd_path = os.path.join(cls.test_dir, + 'UsdImportCustomConverterTest.usda') + + cmds.workspace(cls.test_dir, o=True) + + @classmethod + def tearDownClass(cls): + standalone.uninitialize() + + def setUp(self): + """Clear the scene""" + cmds.file(f=True, new=True) + self.default_materials = cmds.ls(materials=True) + + def checkMaterials(self, expected): + """Check that all the cubes are linked to the right material""" + for cube_name, material_type in expected: + sgs = cmds.listConnections(cube_name, type="shadingEngine") + shaders = cmds.listConnections(sgs[0] + ".surfaceShader") + if material_type: + node_type = cmds.nodeType(shaders[0]) + self.assertEqual(node_type, material_type) + else: + self.assertTrue(shaders[0] in self.default_materials) + + def testImportCommand(self): + """ + Tests a custom exporter for a conversion that exists in an unloaded + plugin using the mayaUSDImport command. + """ + modes = [["useRegistry", "maya"], + ["useRegistry", "UsdPreviewSurface"], + ["displayColor", "default"]] + cmds.mayaUSDImport(file=self.usd_path, shadingMode=modes, + preferredMaterial="none", primPath="/") + + expected = [["pCube1Shape", "lambert"], + ["pCube2Shape", "standardSurface"], + ["pCube3Shape", "usdPreviewSurface"]] + self.checkMaterials(expected) + + def testNoImport(self): + """ + Do not import any materials. + """ + + modes = [["none", "default"], ] + cmds.mayaUSDImport(file=self.usd_path, shadingMode=modes, primPath="/") + + expected = [["pCube1Shape", None], + ["pCube2Shape", None], + ["pCube3Shape", None]] + + self.checkMaterials(expected) + + def testNoDisplayColors(self): + """ + Do not get default down to display colors: + """ + modes = [["useRegistry", "maya"], + ["useRegistry", "UsdPreviewSurface"]] + cmds.mayaUSDImport(file=self.usd_path, shadingMode=modes, + preferredMaterial="none", primPath="/") + + expected = [["pCube1Shape", None], + ["pCube2Shape", "standardSurface"], + ["pCube3Shape", "usdPreviewSurface"]] + self.checkMaterials(expected) + + def testFileCommand(self): + """ + Tests a custom exporter for a conversion that exists in an unloaded + plugin using the file command. + """ + + modes = ["[useRegistry,maya]", + "[useRegistry,UsdPreviewSurface]", + "[displayColor, default]"] + modes = "[" + ",".join(modes) + "]" + import_options = ("shadingMode=%s" % modes, + "preferredMaterial=phong", + "primPath=/") + cmds.file(self.usd_path, i=True, type="USD Import", ignoreVersion=True, + ra=True, mergeNamespacesOnClash=False, namespace="Test", + pr=True, importTimeRange="combine", + options=";".join(import_options)) + + expected = [["pCube1Shape", "phong"], + ["pCube2Shape", "standardSurface"], + ["pCube3Shape", "phong"]] + self.checkMaterials(expected) + + +if __name__ == '__main__': + unittest.main(verbosity=2) diff --git a/test/lib/usd/translators/testUsdImportMayaReference.py b/test/lib/usd/translators/testUsdImportMayaReference.py index 94653ec211..6dfd225806 100644 --- a/test/lib/usd/translators/testUsdImportMayaReference.py +++ b/test/lib/usd/translators/testUsdImportMayaReference.py @@ -35,7 +35,7 @@ def setUpClass(cls): inputPath = fixturesUtils.readOnlySetUpClass(__file__) usdFile = os.path.join(inputPath, "UsdImportMayaReferenceTest", "MayaReference.usda") - cmds.usdImport(file=usdFile, shadingMode='none') + cmds.usdImport(file=usdFile, shadingMode=[['none', 'default'], ]) @classmethod def tearDownClass(cls): diff --git a/test/lib/usd/translators/testUsdImportMesh.py b/test/lib/usd/translators/testUsdImportMesh.py index 7b639f4043..e4435e6ef8 100644 --- a/test/lib/usd/translators/testUsdImportMesh.py +++ b/test/lib/usd/translators/testUsdImportMesh.py @@ -34,7 +34,7 @@ def setUpClass(cls): inputPath = fixturesUtils.readOnlySetUpClass(__file__) usdFile = os.path.join(inputPath, "UsdImportMeshTest", "Mesh.usda") - cmds.usdImport(file=usdFile, shadingMode='none') + cmds.usdImport(file=usdFile, shadingMode=[['none', 'default'], ]) @classmethod def tearDownClass(cls): diff --git a/test/lib/usd/translators/testUsdImportPreviewSurface.py b/test/lib/usd/translators/testUsdImportPreviewSurface.py index 6f316daea6..af51e6dc2e 100644 --- a/test/lib/usd/translators/testUsdImportPreviewSurface.py +++ b/test/lib/usd/translators/testUsdImportPreviewSurface.py @@ -46,9 +46,9 @@ def testImportReferenceWithRelativeFilePath(self): cmds.file(f=True, new=True) usd_path = os.path.join(self.test_dir, "world.usda") - options = ["shadingMode=useRegistry", + options = ["shadingMode=[[useRegistry,UsdPreviewSurface]]", "primPath=/", - "shadingConversion=none"] + "preferredMaterial=none"] cmds.file(usd_path, i=True, type="USD Import", ignoreVersion=True, ra=True, mergeNamespacesOnClash=False, namespace="Test", pr=True, importTimeRange="combine", @@ -81,7 +81,7 @@ def testImportReferenceWithRelativeFilePath(self): # Re-import, but with lamberts: lambert_before = len(cmds.ls(typ="lambert")) options = options[:-1] - options.append("shadingConversion=lambert") + options.append("preferredMaterial=lambert") cmds.file(usd_path, i=True, type="USD Import", ignoreVersion=True, ra=True, mergeNamespacesOnClash=False, namespace="Test", pr=True, importTimeRange="combine", diff --git a/test/lib/usd/translators/testUsdImportRfMLight.py b/test/lib/usd/translators/testUsdImportRfMLight.py index 90ae40df69..140620bd6a 100644 --- a/test/lib/usd/translators/testUsdImportRfMLight.py +++ b/test/lib/usd/translators/testUsdImportRfMLight.py @@ -42,7 +42,7 @@ def setUpClass(cls): # Import from USD. usdFilePath = os.path.join(inputPath, "UsdImportRfMLightTest", "RfMLightsTest.usda") - cmds.usdImport(file=usdFilePath, shadingMode='pxrRis', readAnimData=True) + cmds.usdImport(file=usdFilePath, shadingMode=[['pxrRis', 'default'], ], readAnimData=True) cls._stage = Usd.Stage.Open(usdFilePath) diff --git a/test/lib/usd/translators/testUsdImportRfMShaders.py b/test/lib/usd/translators/testUsdImportRfMShaders.py index 888b2fa12a..97d1b1de58 100644 --- a/test/lib/usd/translators/testUsdImportRfMShaders.py +++ b/test/lib/usd/translators/testUsdImportRfMShaders.py @@ -40,7 +40,7 @@ def setUpClass(cls): cmds.file(new=True, force=True) - cmds.mayaUSDImport(file=usdFilePath, shadingMode='useRegistry') + cmds.mayaUSDImport(file=usdFilePath, shadingMode=[['useRegistry', 'rendermanForMaya'], ]) @classmethod def tearDownClass(cls): diff --git a/test/lib/usd/translators/testUsdImportShadingModeDisplayColor.py b/test/lib/usd/translators/testUsdImportShadingModeDisplayColor.py index 9fc738927f..fea632f1cd 100644 --- a/test/lib/usd/translators/testUsdImportShadingModeDisplayColor.py +++ b/test/lib/usd/translators/testUsdImportShadingModeDisplayColor.py @@ -39,7 +39,7 @@ def setUpClass(cls): # Import from USD. usdFilePath = os.path.join(inputPath, "UsdImportShadingModeDisplayColor", "RedCube.usda") - cmds.usdImport(file=usdFilePath, shadingMode='displayColor') + cmds.usdImport(file=usdFilePath, shadingMode=[['displayColor', 'default'], ]) cls._stage = Usd.Stage.Open(usdFilePath) diff --git a/test/lib/usd/translators/testUsdImportShadingModePxrRis.py b/test/lib/usd/translators/testUsdImportShadingModePxrRis.py index 1e51c7c31b..bdc7e959a7 100644 --- a/test/lib/usd/translators/testUsdImportShadingModePxrRis.py +++ b/test/lib/usd/translators/testUsdImportShadingModePxrRis.py @@ -38,7 +38,7 @@ def setUpClass(cls): # Import from USD. usdFilePath = os.path.join(inputPath, "UsdImportShadingModePxrRis", "MarbleCube.usda") - cmds.usdImport(file=usdFilePath, shadingMode='pxrRis') + cmds.usdImport(file=usdFilePath, shadingMode=[['pxrRis', 'default'], ]) cls._stage = Usd.Stage.Open(usdFilePath) diff --git a/test/lib/usd/translators/testUsdImportSkeleton.py b/test/lib/usd/translators/testUsdImportSkeleton.py index cb4253d178..a3d87c4bd4 100644 --- a/test/lib/usd/translators/testUsdImportSkeleton.py +++ b/test/lib/usd/translators/testUsdImportSkeleton.py @@ -231,7 +231,7 @@ def test_SkelImport(self): path = os.path.join(self.inputPath, "UsdImportSkeleton", "skelCube.usda") cmds.usdImport(file=path, readAnimData=True, primPath="/Root", - assemblyRep="Import", shadingMode="none") + assemblyRep="Import", shadingMode=[["none", "default"], ]) stage = Usd.Stage.Open(path) skelCache = UsdSkel.Cache() diff --git a/test/lib/usd/translators/testUsdImportUVSets.py b/test/lib/usd/translators/testUsdImportUVSets.py index 905ea6fc4a..3a3d47f6e3 100644 --- a/test/lib/usd/translators/testUsdImportUVSets.py +++ b/test/lib/usd/translators/testUsdImportUVSets.py @@ -77,7 +77,7 @@ def setUpClass(cls): else: usdFile = os.path.join(cls.inputPath, "UsdImportUVSetsTest", "UsdImportUVSetsTest.usda") - cmds.usdImport(file=usdFile, shadingMode='none') + cmds.usdImport(file=usdFile, shadingMode=[["none", "default"], ]) def _GetMayaMesh(self, meshName): selectionList = OM.MSelectionList() diff --git a/test/lib/usd/translators/testUsdImportXforms.py b/test/lib/usd/translators/testUsdImportXforms.py index 03e5419c54..fbf4a35a09 100644 --- a/test/lib/usd/translators/testUsdImportXforms.py +++ b/test/lib/usd/translators/testUsdImportXforms.py @@ -56,7 +56,7 @@ def testImportInverseXformOpsOnly(self): as inverse ops results in the correct transform when imported into Maya. """ usdFile = os.path.join(self.inputPath, "UsdImportXformsTest", "UsdImportXformsTest.usda") - cmds.usdImport(file=usdFile, shadingMode='none') + cmds.usdImport(file=usdFile, shadingMode=[["none", "default"], ]) mayaTransform = self._GetMayaTransform('InverseOpsOnlyCube') transformationMatrix = mayaTransform.transformation() @@ -198,7 +198,7 @@ def testImportXformsRotateAxis(self): still imports correctly """ usdFile = os.path.join(self.inputPath, "UsdImportXformsTest", "UsdImportXformsTestRotateAxis.usda") - cmds.usdImport(file=usdFile, shadingMode='none') + cmds.usdImport(file=usdFile, shadingMode=[["none", "default"], ]) expectedRotates = { 'X': (60, 0, 0), diff --git a/test/lib/usd/translators/testUsdMayaAdaptorGeom.py b/test/lib/usd/translators/testUsdMayaAdaptorGeom.py index ed0f6fedc4..c0b9592e0b 100644 --- a/test/lib/usd/translators/testUsdMayaAdaptorGeom.py +++ b/test/lib/usd/translators/testUsdMayaAdaptorGeom.py @@ -39,7 +39,7 @@ def setUpClass(cls): usdFile = os.path.join(cls.inputPath, 'UsdMayaAdaptorGeomTest', 'UsdAttrs.usda') - cmds.usdImport(file=usdFile, shadingMode='none') + cmds.usdImport(file=usdFile, shadingMode=[["none", "default"], ]) def testImportImageable(self): """ diff --git a/test/lib/usd/translators/testUsdMayaAdaptorMetadata.py b/test/lib/usd/translators/testUsdMayaAdaptorMetadata.py index d317664773..05f38fa450 100644 --- a/test/lib/usd/translators/testUsdMayaAdaptorMetadata.py +++ b/test/lib/usd/translators/testUsdMayaAdaptorMetadata.py @@ -48,7 +48,7 @@ def testImport_HiddenInstanceableKind(self): hidden, instanceable, and kind metadata properly. """ cmds.file(new=True, force=True) - cmds.usdImport(file=self.inputUsdFile, shadingMode='none') + cmds.usdImport(file=self.inputUsdFile, shadingMode=[["none", "default"], ]) # pCube1 and pCube2 have USD_kind. self.assertEqual(cmds.getAttr('pCube1.USD_kind'), 'potato') @@ -77,7 +77,8 @@ def testImport_HiddenInstanceableKind(self): def testImport_HiddenInstanceable(self): """Tests import with only hidden, instanceable metadata and not kind.""" cmds.file(new=True, force=True) - cmds.usdImport(file=self.inputUsdFile, shadingMode='none', + cmds.usdImport(file=self.inputUsdFile, + shadingMode=[["none", "default"], ], metadata=['hidden', 'instanceable']) # pCube1 and pCube2 have USD_kind, but that shouldn't be imported. @@ -99,7 +100,8 @@ def testImport_HiddenInstanceable(self): def testImport_TypeName(self): """Tests import with metadata=typeName manually specified.""" cmds.file(new=True, force=True) - cmds.usdImport(file=self.inputUsdFile, shadingMode='none', + cmds.usdImport(file=self.inputUsdFile, + shadingMode=[["none", "default"], ], metadata=["typeName"]) # typeName metadata should come through. @@ -121,7 +123,8 @@ def testImport_TypeName(self): def testImport_GeomModelAPI(self): """Tests importing UsdGeomModelAPI attributes.""" cmds.file(new=True, force=True) - cmds.usdImport(file=self.inputUsdFile, shadingMode='none', + cmds.usdImport(file=self.inputUsdFile, + shadingMode=[["none", "default"], ], apiSchema=['GeomModelAPI']) worldProxy = mayaUsdLib.Adaptor('World') @@ -154,7 +157,7 @@ def testExport(self): the correct metadata in the output USD file. """ cmds.file(new=True, force=True) - cmds.usdImport(file=self.inputUsdFile, shadingMode='none') + cmds.usdImport(file=self.inputUsdFile, shadingMode=[["none", "default"], ]) newUsdFilePath = os.path.abspath('UsdAttrsNew.usda') cmds.usdExport(file=newUsdFilePath, shadingMode='none') @@ -184,7 +187,8 @@ def testExport(self): def testExport_GeomModelAPI(self): """Tests export with the GeomModelAPI.""" cmds.file(new=True, force=True) - cmds.usdImport(file=self.inputUsdFile, shadingMode='none', + cmds.usdImport(file=self.inputUsdFile, + shadingMode=[["none", "default"], ], apiSchema=['GeomModelAPI']) newUsdFilePath = os.path.abspath('UsdAttrsNew_GeomModelAPI.usda') @@ -201,7 +205,8 @@ def testExport_GeomModelAPI(self): def testExport_GeomModelAPI_MotionAPI(self): """Tests export with both the GeomModelAPI and MotionAPI.""" cmds.file(new=True, force=True) - cmds.usdImport(file=self.inputUsdFile, shadingMode='none', + cmds.usdImport(file=self.inputUsdFile, + shadingMode=[["none", "default"], ], apiSchema=['GeomModelAPI', 'MotionAPI']) newUsdFilePath = os.path.abspath('UsdAttrsNew_TwoAPIs.usda') diff --git a/test/lib/usd/translators/testUsdMayaListShadingModesCommand.py b/test/lib/usd/translators/testUsdMayaListShadingModesCommand.py index 55a9aec6c9..db47180921 100644 --- a/test/lib/usd/translators/testUsdMayaListShadingModesCommand.py +++ b/test/lib/usd/translators/testUsdMayaListShadingModesCommand.py @@ -48,20 +48,47 @@ def testUsdMayaListShadingModesCommand(self): maya_shaders = "Maya Shaders" maya_options = ";".join(("shadingMode=useRegistry", "convertMaterialsTo=maya")) + none = "None" + none_options = "shadingMode=none" - # These 3 should always be there: + # These 2 should always be there: exporters = modes(ex=True) self.assertTrue("None" in exporters) - self.assertTrue("Display Colors" in exporters) self.assertTrue(preview in exporters) + # This one is no longer an exported shading mode: + self.assertFalse("Display Colors" in exporters) + self.assertEqual(modes(findExportName="UsdPreviewSurface"), preview) self.assertTrue(len(modes(exportAnnotation=preview)) > 5) self.assertEqual(modes(exportOptions=preview), preview_option) + self.assertEqual(modes(findExportName="none"), none) + self.assertTrue(len(modes(exportAnnotation=none)) > 5) + self.assertEqual(modes(exportOptions=none), none_options) + # And we should not have this one yet self.assertFalse(maya_shaders in exporters) + # Check importers: + importers = modes(im=True) + self.assertTrue("None" in importers) + self.assertTrue("Display Colors" in importers) + self.assertTrue(preview in importers) + + self.assertEqual(modes(findImportName="UsdPreviewSurface"), preview) + self.assertTrue(len(modes(importAnnotation=preview)) > 5) + self.assertEqual(modes(importOptions=preview), ["useRegistry", + "UsdPreviewSurface"]) + + self.assertEqual(modes(findImportName="none"), none) + self.assertTrue(len(modes(importAnnotation=none)) > 5) + self.assertEqual(modes(importOptions=none), ["none", + "default"]) + + # And we should not have this one yet + self.assertFalse(maya_shaders in importers) + # Load the test plugin directly to get the "Maya shading" export. This # plugin was not discoverable by USD so it was not loaded when asking # for the modes the first time. We will test discoverability in the @@ -76,6 +103,13 @@ def testUsdMayaListShadingModesCommand(self): self.assertTrue(len(modes(ea=maya_shaders)) > 5) self.assertEqual(modes(eo=maya_shaders), maya_options) + importers = modes(im=True) + + self.assertTrue(maya_shaders in importers) + self.assertEqual(modes(fin="maya"), maya_shaders) + self.assertTrue(len(modes(ia=maya_shaders)) > 5) + self.assertEqual(modes(io=maya_shaders), ["useRegistry", "maya"]) + if __name__ == '__main__': unittest.main(verbosity=2) From b2eb9e5484335da6e2314bcf8d179ca14c1c2805 Mon Sep 17 00:00:00 2001 From: JGamache-autodesk Date: Thu, 8 Oct 2020 15:24:55 -0400 Subject: [PATCH 2/4] MAYA-102319 - Fix Linux build --- .../commands/baseListShadingModesCommand.cpp | 8 ++- .../fileio/shading/shadingModeRegistry.h | 3 +- .../lib/usdMaya/readJobWithSceneAssembly.cpp | 2 +- .../testUsdImportCustomConverter.py | 49 +++++++++++++++++++ .../testUsdMayaListShadingModesCommand.py | 2 +- 5 files changed, 58 insertions(+), 6 deletions(-) diff --git a/lib/mayaUsd/commands/baseListShadingModesCommand.cpp b/lib/mayaUsd/commands/baseListShadingModesCommand.cpp index 4ee41e153a..f829501d21 100644 --- a/lib/mayaUsd/commands/baseListShadingModesCommand.cpp +++ b/lib/mayaUsd/commands/baseListShadingModesCommand.cpp @@ -119,13 +119,17 @@ MayaUSDListShadingModesCommand::doIt(const MArgList& args) { } } for (const auto s : UsdMayaShadingModeRegistry::ListImporters()) { - if (s != UsdMayaShadingModeTokens->useRegistry) { + if (s != UsdMayaShadingModeTokens->useRegistry + && s != UsdMayaShadingModeTokens->displayColor) { appendToResult(UsdMayaShadingModeRegistry::GetImporterNiceName(s).c_str()); } } appendToResult(UsdMayaShadingModeRegistry::GetMaterialConversionInfo( UsdImagingTokens->UsdPreviewSurface) .niceName.GetText()); + appendToResult( + UsdMayaShadingModeRegistry::GetImporterNiceName(UsdMayaShadingModeTokens->displayColor) + .c_str()); appendToResult(_tokens->NoneNiceName.GetText()); } else if (argData.isFlagSet("exportOptions")) { MString niceName; @@ -160,7 +164,7 @@ MayaUSDListShadingModesCommand::doIt(const MArgList& args) { if (!materialConversion.IsEmpty()) { appendToResult(materialConversion.GetText()); } else { - appendToResult(UsdMayaShadingModeTokens->default.GetText()); + appendToResult(UsdMayaShadingModeTokens->none.GetText()); } } else if (argData.isFlagSet("exportAnnotation") || argData.isFlagSet("importAnnotation")) { const bool isExport = argData.isFlagSet("exportAnnotation"); diff --git a/lib/mayaUsd/fileio/shading/shadingModeRegistry.h b/lib/mayaUsd/fileio/shading/shadingModeRegistry.h index ea25cb429e..5d46bd1606 100644 --- a/lib/mayaUsd/fileio/shading/shadingModeRegistry.h +++ b/lib/mayaUsd/fileio/shading/shadingModeRegistry.h @@ -37,8 +37,7 @@ PXR_NAMESPACE_OPEN_SCOPE #define PXRUSDMAYA_SHADINGMODE_TOKENS \ (none) \ (displayColor) \ - (useRegistry) \ - (default) + (useRegistry) TF_DECLARE_PUBLIC_TOKENS(UsdMayaShadingModeTokens, MAYAUSD_CORE_PUBLIC, diff --git a/plugin/pxr/maya/lib/usdMaya/readJobWithSceneAssembly.cpp b/plugin/pxr/maya/lib/usdMaya/readJobWithSceneAssembly.cpp index 1c31cc12cf..c8cd7f760b 100644 --- a/plugin/pxr/maya/lib/usdMaya/readJobWithSceneAssembly.cpp +++ b/plugin/pxr/maya/lib/usdMaya/readJobWithSceneAssembly.cpp @@ -97,7 +97,7 @@ void UsdMaya_ReadJobWithSceneAssembly::PreImport(Usd_PrimFlagsPredicate& returnP if (isSceneAssembly) { mArgs.shadingModes = UsdMayaJobImportArgs::ShadingModes { { UsdMayaShadingModeTokens->displayColor, - UsdMayaShadingModeTokens->default } }; + UsdMayaShadingModeTokens->none } }; // When importing on behalf of a scene assembly, we want to make sure // that we traverse down into instances. The expectation is that the diff --git a/test/lib/usd/translators/testUsdImportCustomConverter.py b/test/lib/usd/translators/testUsdImportCustomConverter.py index 919c1ade43..091a10878f 100644 --- a/test/lib/usd/translators/testUsdImportCustomConverter.py +++ b/test/lib/usd/translators/testUsdImportCustomConverter.py @@ -128,6 +128,55 @@ def testFileCommand(self): ["pCube3Shape", "phong"]] self.checkMaterials(expected) + def testAsMayaDoesItNoConversion(self): + """ + Tests using the full importer list to make sure we get the expected + result. + """ + + nice_names = cmds.mayaUSDListShadingModes(im=True) + modes = [] + for nice_name in nice_names: + shading_options = cmds.mayaUSDListShadingModes(io=nice_name) + modes.append("[%s,%s]" % tuple(shading_options)) + modes = "[" + ",".join(modes) + "]" + import_options = ("shadingMode=%s" % modes, + "primPath=/") + cmds.file(self.usd_path, i=True, type="USD Import", ignoreVersion=True, + ra=True, mergeNamespacesOnClash=False, namespace="Test", + pr=True, importTimeRange="combine", + options=";".join(import_options)) + + expected = [["pCube1Shape", "lambert"], + ["pCube2Shape", "standardSurface"], + ["pCube3Shape", "usdPreviewSurface"]] + self.checkMaterials(expected) + + def testAsMayaDoesItWithConversion(self): + """ + Tests using the full importer list to make sure we get the expected + result. + """ + + nice_names = cmds.mayaUSDListShadingModes(im=True) + modes = [] + for nice_name in nice_names: + shading_options = cmds.mayaUSDListShadingModes(io=nice_name) + modes.append("[%s,%s]" % tuple(shading_options)) + modes = "[" + ",".join(modes) + "]" + import_options = ("shadingMode=%s" % modes, + "preferredMaterial=phong", + "primPath=/") + cmds.file(self.usd_path, i=True, type="USD Import", ignoreVersion=True, + ra=True, mergeNamespacesOnClash=False, namespace="Test", + pr=True, importTimeRange="combine", + options=";".join(import_options)) + + expected = [["pCube1Shape", "phong"], + ["pCube2Shape", "standardSurface"], + ["pCube3Shape", "phong"]] + self.checkMaterials(expected) + if __name__ == '__main__': unittest.main(verbosity=2) diff --git a/test/lib/usd/translators/testUsdMayaListShadingModesCommand.py b/test/lib/usd/translators/testUsdMayaListShadingModesCommand.py index db47180921..bd2e139910 100644 --- a/test/lib/usd/translators/testUsdMayaListShadingModesCommand.py +++ b/test/lib/usd/translators/testUsdMayaListShadingModesCommand.py @@ -84,7 +84,7 @@ def testUsdMayaListShadingModesCommand(self): self.assertEqual(modes(findImportName="none"), none) self.assertTrue(len(modes(importAnnotation=none)) > 5) self.assertEqual(modes(importOptions=none), ["none", - "default"]) + "none"]) # And we should not have this one yet self.assertFalse(maya_shaders in importers) From fe91628b1d574845d5bf028af7b1df5422f7e7eb Mon Sep 17 00:00:00 2001 From: JGamache-autodesk Date: Tue, 13 Oct 2020 12:58:00 -0400 Subject: [PATCH 3/4] Updates from code review. --- .../commands/baseListShadingModesCommand.cpp | 4 +++- lib/mayaUsd/fileio/jobs/jobArgs.cpp | 13 +++++++++---- lib/mayaUsd/fileio/jobs/jobArgs.h | 10 +++++++++- lib/mayaUsd/fileio/shading/shadingModeRegistry.cpp | 8 ++++++-- lib/mayaUsd/fileio/shading/shadingModeRegistry.h | 6 +++--- .../fileio/shading/shadingModeUseRegistry.cpp | 3 +-- .../fileio/shading/symmetricShaderReader.cpp | 2 +- lib/mayaUsd/fileio/shading/symmetricShaderReader.h | 4 ++-- .../fileio/shading/symmetricShaderWriter.cpp | 4 ++-- .../fileio/translators/translatorMaterial.cpp | 4 ++-- lib/mayaUsd/utils/util.cpp | 3 ++- .../usd/translators/testUsdImportCustomConverter.py | 4 ---- 12 files changed, 40 insertions(+), 25 deletions(-) diff --git a/lib/mayaUsd/commands/baseListShadingModesCommand.cpp b/lib/mayaUsd/commands/baseListShadingModesCommand.cpp index f829501d21..82556fbeef 100644 --- a/lib/mayaUsd/commands/baseListShadingModesCommand.cpp +++ b/lib/mayaUsd/commands/baseListShadingModesCommand.cpp @@ -180,7 +180,9 @@ MayaUSDListShadingModesCommand::doIt(const MArgList& args) { return MS::kNotFound; } else if (materialConversion.IsEmpty()) { if (shadingMode == _tokens->NoneOption) { - setResult(_tokens->NoneExportDescription.GetText()); + setResult( + isExport ? _tokens->NoneExportDescription.GetText() + : _tokens->NoneImportDescription.GetText()); } else { setResult( isExport diff --git a/lib/mayaUsd/fileio/jobs/jobArgs.cpp b/lib/mayaUsd/fileio/jobs/jobArgs.cpp index fe2ffe34fb..1f2dee09c7 100644 --- a/lib/mayaUsd/fileio/jobs/jobArgs.cpp +++ b/lib/mayaUsd/fileio/jobs/jobArgs.cpp @@ -215,7 +215,7 @@ _shadingModesImportArgs(const VtDictionary& userArgs, const TfToken& key) const std::vector> shadingModeArgs = _Vector>(userArgs, key); - TfTokenVector modes = UsdMayaShadingModeRegistry::ListImporters(); + const TfTokenVector modes = UsdMayaShadingModeRegistry::ListImporters(); UsdMayaJobImportArgs::ShadingModes result; for (const std::vector& argTuple : shadingModeArgs) { @@ -247,7 +247,7 @@ _shadingModesImportArgs(const VtDictionary& userArgs, const TfToken& key) // Do not validate second parameter if not in a useRegistry scenario. } - result.emplace_back(shadingMode, convertMaterialFrom); + result.push_back(UsdMayaJobImportArgs::ShadingMode{shadingMode, convertMaterialFrom}); } return result; } @@ -626,6 +626,11 @@ UsdMayaJobImportArgs::UsdMayaJobImportArgs( { } +TfToken +UsdMayaJobImportArgs::GetMaterialConversion() const { + return shadingModes.empty() ? TfToken() : shadingModes.front().materialConversion; +} + /* static */ UsdMayaJobImportArgs UsdMayaJobImportArgs::CreateFromDictionary( const VtDictionary& userArgs, @@ -679,8 +684,8 @@ operator <<(std::ostream& out, const UsdMayaJobImportArgs& importArgs) { out << "shadingModes (" << importArgs.shadingModes.size() << ")" << std::endl; for (const auto& shadingMode : importArgs.shadingModes) { - out << " " << TfStringify(shadingMode.first) << ", " << TfStringify(shadingMode.second) - << std::endl; + out << " " << TfStringify(shadingMode.mode) << ", " + << TfStringify(shadingMode.materialConversion) << std::endl; } out << "preferredMaterial: " << importArgs.preferredMaterial << std::endl << "assemblyRep: " << importArgs.assemblyRep << std::endl diff --git a/lib/mayaUsd/fileio/jobs/jobArgs.h b/lib/mayaUsd/fileio/jobs/jobArgs.h index fb059df936..caaac659b0 100644 --- a/lib/mayaUsd/fileio/jobs/jobArgs.h +++ b/lib/mayaUsd/fileio/jobs/jobArgs.h @@ -250,7 +250,11 @@ struct UsdMayaJobImportArgs const TfToken::Set excludePrimvarNames; const TfToken::Set includeAPINames; const TfToken::Set includeMetadataKeys; - using ShadingModes = std::vector>; + struct ShadingMode { + TfToken mode; + TfToken materialConversion; + }; + using ShadingModes = std::vector; ShadingModes shadingModes; // XXX can we make this const? const TfToken preferredMaterial; const bool useAsAnimationCache; @@ -265,6 +269,10 @@ struct UsdMayaJobImportArgs /// non-empty interval. const GfInterval timeInterval; + /// Get the current material conversion. + MAYAUSD_CORE_PUBLIC + TfToken GetMaterialConversion() const; + /// Creates a UsdMayaJobImportArgs from the given \p dict, overlaid on /// top of the default dictionary given by GetDefaultDictionary(). /// The values of \p dict are stronger (will override) the values from the diff --git a/lib/mayaUsd/fileio/shading/shadingModeRegistry.cpp b/lib/mayaUsd/fileio/shading/shadingModeRegistry.cpp index 80bbb77844..770e97eb84 100644 --- a/lib/mayaUsd/fileio/shading/shadingModeRegistry.cpp +++ b/lib/mayaUsd/fileio/shading/shadingModeRegistry.cpp @@ -195,7 +195,9 @@ void UsdMayaShadingModeRegistry::RegisterExportConversion( ConversionInfo { renderContext, niceName, description, TfToken(), true, false })); if (!hasInserted) { // Update the info: - insertionPoint->second.exportDescription = description; + if (insertionPoint->second.exportDescription.IsEmpty()) { + insertionPoint->second.exportDescription = description; + } insertionPoint->second.hasExporter = true; } } @@ -217,7 +219,9 @@ void UsdMayaShadingModeRegistry::RegisterImportConversion( ConversionInfo { renderContext, niceName, TfToken(), description, false, true })); if (!hasInserted) { // Update the info: - insertionPoint->second.importDescription = description; + if (insertionPoint->second.importDescription.IsEmpty()) { + insertionPoint->second.importDescription = description; + } insertionPoint->second.hasImporter = true; } } diff --git a/lib/mayaUsd/fileio/shading/shadingModeRegistry.h b/lib/mayaUsd/fileio/shading/shadingModeRegistry.h index 5d46bd1606..35135529f0 100644 --- a/lib/mayaUsd/fileio/shading/shadingModeRegistry.h +++ b/lib/mayaUsd/fileio/shading/shadingModeRegistry.h @@ -148,7 +148,7 @@ class UsdMayaShadingModeRegistry : public TfWeakBase bool hasImporter = false; }; - /// Gets the conversion information associated with \p materialConversion on export + /// Gets the conversion information associated with \p materialConversion on export and import static const ConversionInfo& GetMaterialConversionInfo(const TfToken& materialConversion) { return GetInstance()._GetMaterialConversionInfo(materialConversion); @@ -184,8 +184,8 @@ class UsdMayaShadingModeRegistry : public TfWeakBase /// The \p materialConversion name will be used directly in the import option string as one of /// the valid values of the second parameter to the shadingMode list to search on import. /// - /// The \p renderContext will be used to locate the binding point used on export. See - /// RegisterExportConversion for more details. + /// The \p renderContext will be used to locate the specialized binding point in the USD data. + /// See UsdShadeMaterial documentation for details. /// /// The \p niceName is the name to be displayed in the import options dialog. /// diff --git a/lib/mayaUsd/fileio/shading/shadingModeUseRegistry.cpp b/lib/mayaUsd/fileio/shading/shadingModeUseRegistry.cpp index dbf3a26802..136de4bad4 100644 --- a/lib/mayaUsd/fileio/shading/shadingModeUseRegistry.cpp +++ b/lib/mayaUsd/fileio/shading/shadingModeUseRegistry.cpp @@ -38,7 +38,6 @@ #include #include #include -#include #include #include @@ -425,7 +424,7 @@ class UseRegistryShadingModeImporter { TF_CODING_ERROR("useRegistry importer can only handle a single shadingMode"); return MObject(); } - const TfToken& materialConversion = _jobArguments.shadingModes.front().second; + const TfToken& materialConversion = _jobArguments.GetMaterialConversion(); TfToken renderContext = UsdMayaShadingModeRegistry::GetMaterialConversionInfo( materialConversion).renderContext; diff --git a/lib/mayaUsd/fileio/shading/symmetricShaderReader.cpp b/lib/mayaUsd/fileio/shading/symmetricShaderReader.cpp index e0eadbd81b..e1b59c0233 100644 --- a/lib/mayaUsd/fileio/shading/symmetricShaderReader.cpp +++ b/lib/mayaUsd/fileio/shading/symmetricShaderReader.cpp @@ -87,7 +87,7 @@ UsdMayaSymmetricShaderReader::CanImport( const TfToken& materialConversion) { if (materialConversion.IsEmpty() - || importArgs.shadingModes.front().second == materialConversion) { + || importArgs.GetMaterialConversion() == materialConversion) { // This shader reader advertises "Fallback" support so that any more // specialized readers for a particular shader ID can take precedence. return ContextSupport::Fallback; diff --git a/lib/mayaUsd/fileio/shading/symmetricShaderReader.h b/lib/mayaUsd/fileio/shading/symmetricShaderReader.h index 7aa037b583..a5c1b851e6 100644 --- a/lib/mayaUsd/fileio/shading/symmetricShaderReader.h +++ b/lib/mayaUsd/fileio/shading/symmetricShaderReader.h @@ -75,12 +75,12 @@ class UsdMayaSymmetricShaderReader : public UsdMayaShaderReader static void RegisterReader( const TfToken& usdShaderId, const TfToken& mayaNodeTypeName, - const TfToken& materialConversion); + const TfToken& materialConversion = TfToken()); MAYAUSD_CORE_PUBLIC static ContextSupport CanImport( const UsdMayaJobImportArgs& importArgs, - const TfToken& materialConversion); + const TfToken& materialConversion = TfToken()); MAYAUSD_CORE_PUBLIC UsdMayaSymmetricShaderReader( diff --git a/lib/mayaUsd/fileio/shading/symmetricShaderWriter.cpp b/lib/mayaUsd/fileio/shading/symmetricShaderWriter.cpp index a79f4e098c..094ad5a224 100644 --- a/lib/mayaUsd/fileio/shading/symmetricShaderWriter.cpp +++ b/lib/mayaUsd/fileio/shading/symmetricShaderWriter.cpp @@ -115,7 +115,7 @@ UsdMayaSymmetricShaderWriter::UsdMayaSymmetricShaderWriter( for (unsigned int i = 0u; i < depNodeFn.attributeCount(); ++i) { const MObject attrObj = depNodeFn.reorderedAttribute(i); MPlug attrPlug = depNodeFn.findPlug(attrObj, true); - MFnAttribute attrFn(attrObj); + const MFnAttribute attrFn(attrObj); if (attrPlug.isProcedural() || attrFn.isHidden()) { // The Maya docs say these should not be saved off. @@ -168,7 +168,7 @@ UsdMayaSymmetricShaderWriter::UsdMayaSymmetricShaderWriter( // If the Maya attribute is writable, we assume it must be an input. // Inputs can still be connected as sources to inputs on other shaders. - if (MFnAttribute(attrPlug.attribute()).isWritable()) { + if (attrFn.isWritable()) { UsdShadeInput input = shaderSchema.CreateInput(usdAttrName, valueTypeName); if (!input) { diff --git a/lib/mayaUsd/fileio/translators/translatorMaterial.cpp b/lib/mayaUsd/fileio/translators/translatorMaterial.cpp index 438a27ad92..fa76cb67cb 100644 --- a/lib/mayaUsd/fileio/translators/translatorMaterial.cpp +++ b/lib/mayaUsd/fileio/translators/translatorMaterial.cpp @@ -72,11 +72,11 @@ MObject UsdMayaTranslatorMaterial::Read( UsdMayaJobImportArgs localArguments = jobArguments; for (const auto& shadingMode : jobArguments.shadingModes) { - if (shadingMode.first == UsdMayaShadingModeTokens->none) { + if (shadingMode.mode == UsdMayaShadingModeTokens->none) { break; } if (UsdMayaShadingModeImporter importer - = UsdMayaShadingModeRegistry::GetImporter(shadingMode.first)) { + = UsdMayaShadingModeRegistry::GetImporter(shadingMode.mode)) { localArguments.shadingModes = UsdMayaJobImportArgs::ShadingModes(1, shadingMode); shadingEngine = importer(&c, localArguments); } diff --git a/lib/mayaUsd/utils/util.cpp b/lib/mayaUsd/utils/util.cpp index 161c6623bb..2b35f6663e 100644 --- a/lib/mayaUsd/utils/util.cpp +++ b/lib/mayaUsd/utils/util.cpp @@ -873,6 +873,7 @@ _GetColorAndTransparencyFromDepNode( if (rgb) { MPlug colorPlug = d.findPlug("color", true, &status); if (!status) { + // For UsdPreviewSurface support: colorPlug = d.findPlug("diffuseColor", true, &status); if (!status) { return false; @@ -896,9 +897,9 @@ _GetColorAndTransparencyFromDepNode( } *alpha = 1.f - trans; } else { + // For UsdPreviewSurface support: MPlug opacityPlug = d.findPlug("opacity", true, &status); if (!status) { - *alpha = 1.f; return false; } *alpha = opacityPlug.asFloat(); diff --git a/test/lib/usd/translators/testUsdImportCustomConverter.py b/test/lib/usd/translators/testUsdImportCustomConverter.py index 091a10878f..ddbdcac112 100644 --- a/test/lib/usd/translators/testUsdImportCustomConverter.py +++ b/test/lib/usd/translators/testUsdImportCustomConverter.py @@ -15,10 +15,6 @@ # limitations under the License. # -from pxr import Usd -from pxr import UsdShade - -import json import os import unittest From 7140d64c2dd1aadc29fab449b59aec1cce46588b Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Tue, 13 Oct 2020 15:25:12 -0400 Subject: [PATCH 4/4] Fix Linux build --- lib/mayaUsd/ufe/UsdUIInfoHandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mayaUsd/ufe/UsdUIInfoHandler.cpp b/lib/mayaUsd/ufe/UsdUIInfoHandler.cpp index 36f6317524..1ec549932f 100644 --- a/lib/mayaUsd/ufe/UsdUIInfoHandler.cpp +++ b/lib/mayaUsd/ufe/UsdUIInfoHandler.cpp @@ -55,7 +55,7 @@ namespace template void addMetadataCount(const T& op, std::string& tooltip, bool& needComma, const std::string& singular, const std::string& plural) { - T::ItemVector refs; + typename T::ItemVector refs; op.ApplyOperations(&refs); if (!refs.empty()) { addMetadataStrings(refs.size(), tooltip, needComma, singular, plural);