ensure UsdShadeMaterialBindingAPI schema is applied when authoring bindings during export #804
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.
Since
UsdShadeMaterialBindingAPI
is an API schema, it should be applied any time it is used for authoring. This allows querying for whether the API schema has been authored on a prim by usingUsdPrim::HasAPI()
. See some additional discussion of API schemas in the USD glossary here:https://graphics.pixar.com/usd/docs/USD-Glossary.html#USDGlossary-APISchema
I believe that the shading export code updated here somewhat predated the concept of applying API schemas, which is why we weren't already doing this.
It's not strictly required that API schemas be applied in order to read data for them, but it is definitely good practice. Ideally, all API schemas would always be applied whenever they're used for authoring so that consumers of that USD could then determine whether or not they need to consider those schemas when working with a given prim. Otherwise, they have to assume that all prims might have had the API schema authored and consider the schema on every one.