USDZ Exporter flips mesh normals

Hi there, I have a problem with USDZ Exporter. When I load my gltf in threejs everythings looks good, but when I use usdz exporter to create an usdz model, mesh normals are flipped, It doesn’t happen with all the models I use, but it happens often. Anyone knows why? Is there an option that fix this problem?

Attached one of that models.
GLTF:
image

USDZ:

BadModel.zip (1.3 MB)

I’ve drag’n’dropped you glTF asset into the three.js editor and then used the USDZ export option. The result ist the following file: model.usdz.zip (1.8 MB)

It seems the result looks as expected. Can you please check?

Oh…maybe it’s not a problem from USDZ exporter.
The flow that I used is:
import model in a Threejs scene, convert all the scene in GLTF, convert GLTF in usdz using USDZ exporter. I will try to isolate the code and post it.
Meanwhile, thanks.

1 Like

I think Apple’s USDZ viewers may not support double-sided materials. Try traversing the materials in your scene and see if setting material.side == THREE.FrontSide produces the same problem?

If so you may need to flip specific mesh winding orders, or double the geometry.

I think so too, I wanted to avoid duplicating the mesh, I tried to set all the materials in doublesided in THREE before exporting it but the problem still remains. I am checking the USDZEXPORTER code to try to force the DS, I am looking for it in OpenUSD and it seems that the DS should be set at a geometry level, but I’m not understanding where and how I should insert it. Apparently the Double Sided is supported by iOS15 upwards.

The model I have exported above looked good on macOS 13.5.1 using Apple’s Quick Look.