Referenced shader attributes issue #3214
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When exporting file nodes from Maya to Usd and the file node is referenced, the export code does not recognize that the Maya attributes for scale/bias are not set properly despite these values being correct in the referenced Maya scene. This seems to be because the exporting code is using MPlug::getSetAttrCmds and checking the result to see if it is empty to determine if the values need to be written.
This P/R checks the Dependency node to see if it is from a referenced file, then uses MPlug::isDefaultValue to determine if the plug values need to be authored on the exported Usd data.
Note:
In my past testing, Plug::isDefaultValue seemed unreliable, and I suspect it remains so based on the code using MPlug::getSetAttrCmds, so if there is a better approach, please advise.
MPlug::isFromReferencedFile does not seem to work, which is why MFnDependencyNode::isFromReferencedFile is used.
Note
This was migrated from a previous P/R that had to be removed - Check if node is referenced - use default value to detect change #2917.