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.
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.
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.