USDZExporter support for multiple materials on single Xform

Hello there! I am quite new to the whole USD stuff so sorry in advance for wrong terminology.

Current USDZExporter works only in case the material property of Mesh object is of type MeshStandardMaterial but shouldn’t MeshStandardMaterial[] be accepted as well?

Based on Pixar’s docs, material binding to collections seems to be supported. I tried doing PoC on my own but was unable to find correct syntax to use that would work.

Can someone please confirm that it’s possible to assign (bind) a collection of materials to Xform and if so, lead me to correct syntax to use?

Originally USDZExporter was written so that projects could load glTF files at runtime, convert them to USDZ, and then launch Apple’s AR Quick Look application. Apple does not support WebXR, so any access to AR capabilities on the web must be done by creating a USDZ file and handing it off to the native renderer.

For that reason, any features that (a) would not be present in glTF input files, or (b) are not supported by Apple’s USDZ renderer, are probably not implemented at this point. USD is a huge format, and Apple implements only a small subset of its capabilities.

If there’s a feature three.js supports, which could in theory be exported to USDZ but which USDZExporter doesn’t implement, I’d recommend filing a feature request on the repository. If it’s a feature USD has, but which does not exist in three.js, then it may be out of scope for USDZExporter.