MaterialX / glTF / USD material interop

Continuing the discussion from SIGGRAPH 2023, Open Source Days 2023, etc. Sessions Round-Up
which mentions GLTF, MaterialX, and USD in the presentations:

I’m curious what the thoughts are on maintaining this “triplet” in terms of materials, as there can be any or all of these bidirectional transfers occurring depending on workflow:

  1. USD ↔ MaterialX
  2. USD ↔ glTF
  3. MaterialX ↔ glTF

I’d assume you’d want each to be as lossless as possible and kept in sync as much as possible.


USD can encode more than MaterialX can encode more than glTF. So if there’s a glTF MaterialX file, you could losslessly

gltF → MaterialX → USD

There’s talk of adopting MaterialX into glTF but until such a thing happens, the reverse direction, USD → MaterialX → glTF is strictly a narrowing.