- Import a GLB model into threejs editor
- Export it as usdz
- Try to import the usdz asset to Reality Composer Pro
- Reality Composer Pro pops up a warning: “Multiple root level objects exist for model.usdz. When this file is referenced, the object set as the default prim will be used or if not set, an object will be chosen automatically.”
- In the asset window, the shape seems to show materials
- When importing into the scene, the materials are missing.
I found this related thread where they talk about setting prim to /root when exporting usdz in Blender. Is it possible that USDZExporter is not setting default prim to /root?
Materials are texture based or procedural? Most of the realtime engines don’t support procedural materials.
It’s suspicious that the asset window thumbnails seem to show the USDZ files correctly but the import does not. That probably points to a bug or limitation in Reality Composer. Do you know the format of the textures? If it’s a newer image format like WebP or KTX2 that might be an issue for Reality Composer. It’d be strange for the scene hierarchy and root-level objects to be affecting texture loading, I think that violet color just indicates it couldn’t find/load textures.
1 Like
The format of the texture is png and not procedural from what I can tell. I notice when I drag the usdz thumbnail into the actual scene in Reality Kit Composer, the materials do not show up in the scene hierarchy.
I did try to re-export the usdc/usdz from Blender and it works - in Reality Composer Pro it shows the hierarchy as having the materials under root, while the original export from ThreeJS shows the Materials at the same level as root.
ThreeJS USDZ
Blender USDC/USDZ