...
There is no support for exporting Shader networks to MaterialX.
MaterialX as UsdShade
...
(transport, composition, file format plugin, interop, shader definition)
The import workflow of MaterialX to UsdShade is done by the UsdMtlx plugin. The UsdMtlx plugin translates MaterialX data to UsdShade.
...
For HdStorm, a MaterialX document is reconstructed from UsdShade Network to create glslfx via CodeGen. The missing features in the UsdMtlx plugin makes HdStorm hard to use and extend for other Viewport work-flows.
MaterialX in Hydra
...
(visualization, viewport, runtime, rendering)
To leverage MaterialX CodeGen (or ShaderGen) functionality in Hydra a delegate is required to reconstruct a MaterialX document from UsdShade or natively handle UsdShade graphs.
...
- For multi-backend support for Vulkan, MDL, Metal, etc applications need to maintain multiple Shader Gen paths that can easily get out of sync and are hard to maintain.
- MaterialX nodes as ground truth definitions of UsdPreviewSurface.
- UsdLux v.s MaterialX Light nodes
- Customize shaders for selection, highlighting.
- For Hardware renderers customize shader stages, render state management
...
Areas for
...
Review
Expand |
---|
|
Property | Description | USD level | USD/MTLX level | MTLX level | Status | Proposal(s) |
---|
namespace | Helpful to qualify definitions with a given scope to avoid name clashes. e.g. there may be a Adobe vs ILM namespace. |
|
|
| Issue 1614 logged | - Encode namespace as part of definition identifier (no consensus) (PR 1631)
| colorspace | Color management tagging for inputs as well as color management system specification. | Y |
|
| - Agreement to support as formal property. Needs scoping and definition.
- Issue 1532 logged for MTLX export. Internal issue: USD-6703 (old - pre-agreement)
| - "Follow what is going on with MaterialX". (vague)
| ui value properties | Hints for UI. e.g. ui min, max, step etc. | Y |
|
| Separate proposal for this. |
| unit / dimension support | Support for a real world unit or dimension for an given shader input. The type of the unit may be dynamic / data driven. |
|
|
| Issue 1632 logged. Internal issue: USD-6928. |
| tokens | Import and resolving of token names used for geometric and file identifiers. Can include consistency of token delimiters |
| Y |
|
|
| fileprefx |
|
|
|
| Issue 974 logged. Admin: not closed | | version | Definition versioning |
|
|
| tbd |
|
|
|
|
|
|
|
|
|
Expand |
---|
| Support multiple |
Expand |
---|
|
Property | Description | USD level | USD/MTLX level | MTLX level | Status | Proposal(s) |
---|
Support nodes with multiple outputs |
|
|
|
| issue 1581 logged. Internal issue: USD-6820 |
|
|
|
|
|
|
|
| definition information association | Import does not capture the correct association between a definition and a nodegraph sometimes. |
|
|
| Issue 1629 logged | - Specific code fix proposed for conversion to MaterialX
| definition variations | Definitions may be specified in a variety of different ways. Not all appear to be consumable properly. Some deal with definition discovery. |
|
|
| issue 1636 logged | - Refactor import discovery logic. (PR 1641)
| definition search path | Related to definition discovery (definition not found in path) |
|
|
| Issue 1586 logged. Internal issue USD-6941 | - consider USD search path env variable on read for mtlx (partial, no concensus) (PR 1628)
| load / reload | Robustness / repeatability of loading documents |
|
|
| - Issue 1504 logged. Internal issue: USD-6670 (data loss)
- Issue 1502 logged. Internal issue: USD-6669 (node missing)
|
|
|
|
|
|
|
|
|
|
|
Current list of all MaterialX related issues (not all applicable)
https://github.com/PixarAnimationStudios/USD/issues?q=is%3Aissue+is%3Aopen+Materialx
Unsupported Documentation notes (appears notes are from 1.37)
https://graphics.pixar.com/usd/docs/api/usd_mtlx_page_front.html#usdMtlx_unsupported
Appendix: Examples
Namespaces and Versioning
https://github.com/autodesk-forks/MaterialX/blob/adsk_contrib/dev/resources/Materials/TestSuite/adsklib/archviz/adsk_metal.mtlx
...