I found that there is still lacking of documentation of "USDZ Converter", so I might start some kind of thread talking about this. So far I found developer 'Ash' out there has been really helpful and we are still discovering USDZ feature, gotchas and limitations along the way. There is this USD Interest group at Google Groups that is more specifically talk about USD.
A bit of information about me:
I am an independent developer, mostly using Blender 3D and XCode only. I have not touched Unity or Unreal. I have old Maya and Houdini, but installing USD plugins seems like not trivial. I did manage to have some USD tools on my Mac, but it is not optimal since I do not have NVidia graphic cards. However, USDZ Converter and the intermediate USDA file generated is pretty helpful.
A couple of interesting things:
- Make sure your 3D mesh has UV layout, without UV the PBR will simply display black on iOS devices, although it might shows okey on MacOS when using 3D or AR Quick Look.
- USDZ makes PBR materials and shaders linking quite easy
- When mesh is too complex or USDZ is too big, or animation has too many objects, USDZ will not display on iOS device. Might work ok on the MacOS. There is no warning about RAM exceeding iOS.
- Watch out for Mapping, do not use 8K image texture for now.
- Animation seems to be supported via Alembic export, works for Transform only. No vertex, no bones, no blendshapes yet.
- USDZ can be easily imported into XCode for 3D SceneKit. I tested it using basic AR app.
- There is this ModelIO inside XCode that can be used to unpack USDZ, it seems, but I have not gone that far.
- Procedural animation can be embeded into USDZ, check USD example of Spinning Top animation. It's pretty cool for turntable.
I am currently investigating:
- Materials that is not PBR, but able to display color, is this possible? Because often time I just need Material with simple Color
- Can we have Lights inside USDZ?