---
title: "MaterialX"
canonical: "https://rmanwiki-27.pixar.com/space/REN27/542220715/MaterialX"
format: markdown
---
![image](media://12f8d0ab-0e13-46d5-9100-72c0d2c24b05)

<span style="color: #4269b8">**The Open Chess Set**</span><span style="color: #7a869a">* *</span>  
<span style="color: #7a869a">*( authored by Moeen and Mujtaba Sayed, contributed to MaterialX by SideFX, rendered in RenderMan for Houdini within Solaris *</span><span style="color: #7a869a">)</span>  


  
MaterialX is a [ASWF](https://www.aswf.io/) standard for the material definition and exchange between renderers.  It provides definitions around a set of Physically Based Shading Nodes, as well as a set of pattern nodes (like texture nodes, procedural noise, etc) that you can use to build up a material.  Each renderer that supports MaterialX takes the material definitions and either renders them directly or converts them to an internal representation.  Because there are many renderers in this world, each approaching the challenge of rendering from a different perspective, MaterialX doesn't guarantee a pixel match between renderers. MaterialX only provides guidance to each renderer, and each renderer will do their best to match the intent of the material in the best way that they can.

## MaterialX Support in RenderMan

RenderMan supports [MaterialX](https://materialx.org/) in both RIS and XPU, although the underlying implementations differ significantly.

### MaterialX in RIS

RIS support for MaterialX relies on the MaterialX ShaderGen system to transform MaterialX shading networks into native RenderMan materials. The Physically Based Shading Nodes used in MaterialX graphs, including MaterialX Standard Surface and OpenPBR materials, are translated into [PxrSurface](https://rmanwiki-27.pixar.com/space/REN27/542213836) networks before being passed to the renderer. As a result, these materials inherit the capabilities and limitations of the [PxrSurface](https://rmanwiki-27.pixar.com/space/REN27/542213836) representation. Since [PxrSurface](https://rmanwiki-27.pixar.com/space/REN27/542213836) can represent most of the shading models defined by MaterialX, RenderMan is able to support a large portion of the MaterialX specification in RIS.

It is important to note that, as with any renderer implementation, the image produced by RenderMan for a given MaterialX network may differ from the image produced by another renderer using the same network. One current limitation of the RIS implementation is that MaterialX material layering is not supported, whereas it is fully supported in XPU.

### MaterialX in XPU

XPU provides native support for MaterialX [BSDF](https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/Specification/MaterialX.PBRSpec.md#bsdf-nodes), [EDF](https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/Specification/MaterialX.PBRSpec.md#edf-nodes) and [combiner nodes](https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/Specification/MaterialX.PBRSpec.md#utility-nodes), enabling support for arbitrary MaterialX shading networks directly within the renderer. This allows artists to render MaterialX materials using both CPU and GPU rendering workflows without relying on translation to [PxrSurface](https://rmanwiki-27.pixar.com/space/REN27/542213836).

Support includes both traditional MaterialX shading networks and MaterialX BSDF graphs, making XPU a first-class renderer for MaterialX workflows while benefiting from XPU's interactive and GPU-accelerated rendering capabilities.

It is important to note that native MaterialX BSDF and combiner support in XPU is currently available through RenderMan's Hydra integration and USD workflows, and is presently supported in Solaris-based pipelines.

MaterialX Standard Surface and OpenPBR are both supported through this native MaterialX BSDF and combiner evaluation path when used in Hydra-based workflows such as Solaris.

There are still a small number of MaterialX features that are not yet supported in RenderMan:

- Only the [uniform_edf](https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/Specification/MaterialX.PBRSpec.md#uniform_edf) node is currently supported. Other EDF nodes are not yet available.
- MaterialX [VDF](https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/Specification/MaterialX.PBRSpec.md#vdf-nodes) nodes are not currently supported. Support for volumetric shading nodes is planned for a future release.
- MaterialX [PBR shader nodes](https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/Specification/MaterialX.PBRSpec.md#pbr-shader-nodes) used directly as surface shaders are not currently supported.

### OSL Pattern Support

Both RIS and XPU support OSL patterns. As a result, the pattern nodes used in MaterialX networks are translated into OSL and executed natively by RenderMan, providing behavior consistent with equivalent RenderMan shading networks.

### Solaris Support

RenderMan supports MaterialX workflows in Solaris through hdPrman, enabling USD-native look development using MaterialX materials directly inside Houdini's Solaris environment. Artists can author MaterialX materials in Solaris and render them with RenderMan RIS or XPU.

For XPU, Solaris currently provides the primary workflow for native MaterialX BSDF and combiner evaluation, allowing MaterialX materials to be rendered without conversion to RenderMan-specific shader networks. This simplifies USD-based pipelines and improves interoperability across DCC applications.

---