We have just noticed that Apple has officially retired their python usdzconvert tools (at least they are gone from Apple developer).
what is the best way going forward to convert OBJ/mtl plus textures to a usdz format that is compatible with arkit preferably via command line tools so we can automate this accordingly.
I know Blender has full USD support but unfortunately it is lacking some shader options for Occlusion so we lose that in a Blender pipeline on usdz export.
Going from USDZ to gltF Adobe has done great work with their open repo and we have been using that successfully but since we post process our meshes we also need a way to export intermediate models back to usdz.
Looking forward to hearing anyones advice on this.
With the adobe plugins, you could use the usdzip command line tool on the output USD file. That’s essentially what the gltf conversion scripts and Reality Converter do under the hood to generate the output usdz
Currently we export intermediate OBJs and textures to a temp directory and then execute the usdzconvert script on the OBJ with the flags -diffuseColor, -normal, -roughness and -occlusion to assign the correct textures from the material.
ok have tried this but all textures are missing from the intermediate usdc file. how can I embed and keep my textures as part of this conversion.
I then tried guc and the conversion worked but the model doesn’t display any textures on iOS using ARKit. It does however display correctly with macOS Preview.
The file was converted from a glb file that was output after a USDZ conversion done with the Adobe USD tools.
thanks @ThomasKumlehn good catch. Yeah also not sure but can definitely report this to guc since it was done through their conversion script. maybe @dhruvgovil can chime in if this is also something we should file via feedback assistant or this is expected behavior
I furthermore found the face normals get modified to flat shading during that conversion:
It would be good to submit feedback to both Adobe and Apple.
It seems like RealityKit doesn’t fallback to the preview binding in this case, but I also think the Adobe plugin should be authoring the standard binding instead of preview, because it is somewhat presumptuous about the use case.
actually in this case it was guc that was used for the conversion since Adobe USD tools itself doesn’t do the conversion just yet. they said they will provide some tools and examples going forward on how to do this with their repo and tools but it’s currently not a supported flow.
I am aware that on macOS I can do that. But this is not for a one off conversion but rather to update our automated pipeline where we use object capture and then do some mesh manipulations on a server that then exports the modified obj/gltf to convert back to usdz for final display.