-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MaterialX metadata is not parsed into Sdr metadata #1874
Comments
Hi @JGamache-autodesk - this mostly sounds great! Few things to discuss:
Thanks, Jerry! |
Hi @spiffmon,
For That is for the Maya side of things. On the engineering side of things, a diamond patterned steel floor material will have a very strict definition of how many units of real world distance are covered per unit of texture space. Covering a factory floor correctly will require a scaling factor between ST coordinates and world space pixel positions. It is presently unclear to me how this will be handled and if this requires metadata awareness and UI hints. |
Filed as internal issue #USD-7380 |
1 and 2 sound great, @JGamache-autodesk !
Sdr Help metadata for the
Yeah, so this is the fun part :-) As I've argued to @ashwin.bhat and @jstone-lucasfilm, from a USD perspective, it's preferred that any specification of units or scaling be encoded as a shader parameter rather than as metadata. But hierarchical scenegraphs (inherited scaling) and USD composition (referencing data encoded in different frames of reference, and sparse overrides) make this quite tricky. The easy, wash-our-hands solution, I think, is something along the lines of always having (for materials sensitive to it) a textureCoordinate scaling node whose input is driven by a (constant) primvar that could be authored sparsely in the scenegraph (e.g. at referencing prims where we have applied a corrective transformation to bring referenced objects into the scale of the referencing scene, or could also be authored per primitive if/when needed. That way materials set up in assets could be "easily" adjusted in any consuming context. Possibly there's a system that could auto-compute these scale factors, but that seems possibly mysterious and difficult to debug when it goes wrong. This quite likely merits a wider discussion... curious to hear what @jstone-lucasfilem and @meshula think. |
Fixes PixarAnimationStudios#1874 - "enum" and "enumvalues" are parsed as options - "doc" is parsed as help - "uiname" is parsed as label - "uifolder" is parsed as page - all other MaterialX metadata is added as hints
Fixes PixarAnimationStudios#1874 - "enum" and "enumvalues" are parsed as options - "doc" is parsed as help - "uiname" is parsed as label - "uifolder" is parsed as page - all other MaterialX metadata is added as hints
Description of Issue
We would like to offer rich parameter editing in our DCC, which requires some metadata information to be present in Sdr.
Let's start with Metadata that has a direct Sdr counterpart:
This should allow us to split the standard_surface parameters into their proper pages, offer a dropdown for enum-like string inputs, and use nicer labels on these controls.
This leaves a long list of metadata with no Sdr counterpart:
uimin
,uimax
,uistep
,uisoftmin
,uisoftmax
,unit
,unittype
,defaultgeomprop
,enumvalues
,colorspace
. We would like to transfer them as-is into the SdrProperty metadata dictionary so DCCs that can make use of them will find them without having to reparse MaterialX definitions.Would you be OK with that?
Steps to Reproduce
System Information (OS, Hardware)
Package Versions
Build Flags
Enable MaterialX.
The text was updated successfully, but these errors were encountered: