Look / Variant authoring in USD or MaterialX #1602
Replies: 1 comment 1 reply
-
Great question, Sean. Our phase 1 of MaterialX support in MayaUSD focused on interop and visualization. Maya's standard surface and preview surface translating in and out of UsdShade with MaterialX node definitions. Such material networks we can then visualize in VP2 directly from USD. We touched more on this and current limitations in https://github.com/Autodesk/maya-usd/blob/dev/doc/MaterialX.md As you can notice, in interop we didn't yet have to deal with the problem you are describing. Visualization on the other hand is something that can receive mtlx document referenced directly, but here we rely on the USD file format plugin to do the translation and by the time the network gets to Hydra, we don't have to worry about anything else than UsdShade/HdMaterialNetwork. You mention render-agnostic material networks, but USD brings in as well render context, that is render-specific. It is something we want to understand better how it fits into the translation framework. For example, we can currently translate to preview surface, or Arnold (with limitations), or VRay, or MaterialX. Preview surface lives in the universal render context, where MaterialX and Arnold have their own. What if you want to export to multiple render contexts at once? Anyway, finally onto material bindings in MaterialX and/or USD. I would hope all the options can be available, and one cold chose to use MaterialX only for material interop (leaving binding to USD), or interop+binding. Which path is the one you would like to take and why? Cheers, |
Beta Was this translation helpful? Give feedback.
-
Hello, I'm looking to start a discussion on the direction Maya-USD is taking on the implementation of material assignments with "looks" or "variants" support.
(Please let me know if this discussion is better suited for Pixar's USD repository or MaterialX's)
MaterialX has concepts of VariantSet, Collections, Looks... ect.
USD has concepts of Scopes, VariantSets, Shader Connections... ect.
Since they both are able to execute material assignments and looks, is the future of development direction up in the air for this feature or is there already a plan to tackle variable material assignments to USD geometry within Maya?
An example Idea to illustrate:
Enable the USD MaterialX plugin and provide the ability to handle references to .mtlx files for dynamic shader generation per-purpose.
Use MaterialX's GenGLSL to generate shader code for the Proxy Preview in Viewport 2.0, And GenOSL for generating and binding shaders to the render-only geometry representation that Arnold, VRay or PRman can use.
An Asset's ModelVariants are authored entirely in USD.
An Asset's ShadingVariants are authored and bound in a MaterialX file which USD references and exposes to the user & renderer.
The end goal being to enable Maya the ability to represent both render and preview USD-compatible looks in a render-agnostic way which are easily exchangeable based on desired Look from the user.
Beta Was this translation helpful? Give feedback.
All reactions