...
There is no support for exporting Shader networks to MaterialX.
...
1. 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.
2. 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
3. Knowledge Sharing
Goal: To facilitate sharing of knowledge / examples around consumption and rendering use cases.
This includes
- ensuring that the documentation is up-to-date with a given version of USD and MaterialX.
- a robust set of examples of types / configurations of shaders / materials, (in USD format, in MTLX format).
- examples of custom shader generation integration for different renderers.
...
Areas for Review
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
...
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||
|
...
Information Sharing
Issues Filtering
The "Areas for Review" is currently hand-culled from the current list of all
...
issues with the keyword MaterialX. Not all are applicable.
Q: Iis there a better way to manage this such as by adding labels to allow for quick filtering of relevant issues.
https://github.com/PixarAnimationStudios/USD/issues?q=is%3Aissue+is%3Aopen+Materialx
Documentation for Unsupported Features
Documentation notes (appears notes are from and there is already the intent to update. (Current notes appear to be valid for MaterialX version 1.37)
https://graphics.pixar.com/usd/docs/api/usd_mtlx_page_front.html#usdMtlx_unsupported
...
Examples
...
Polymorphic signature variations: | https://github.com/autodesk-forks/MaterialX/blob/adsk_contrib/dev/resources/Materials/TestSuite/pbrlib/surfaceshader/unlit_surfaceshader.mtlx | |
... |
Renderer integration
- WIP: To decide what to add here.
- want to include role of shaders and backends
- help to aid those that want to figure out how their renderer fits in
- custom shader generator integration examples would be useful here.