USDShader : Fix loading of terminals with USD 24.08 #6017
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.
At some point - and for reasons unknown - terminals started confidently declaring themselves as a cleanly mapped Token type in
SdrShaderProperty.GetTypeAsSdfType()
. This caused us to load them as StringPlugs, which certainly doesn't match the intent behind terminals. We now check theSdrShaderProperty.GetType()
explicitly to detect terminals and vstructs so we can continue to load them as bare Plugs. This seems cleaner than the original approach, and lets us simplifyloadParameter()
such that it just needs to accept anSdfValueTypeName
rather than the more convolutedNdrSdfTypeIndicator
that has no relevance when loading from schemas rather than the shader registry.This should let us drop the last commit from #6016 and merge it.