Apply Transform2d to texures when exporting to USDZ

kolodi
Tue, 11 May 2021 07:54:04 +0000
Questions

Hello,

I am using the KHR_texture_transform extension for glTF models so I can specify a custom tiling (repeat) for each of my texture. I can have AO map with scale of (1,1) and both normal and color maps with scale of, for example, (6, 6), all on the same single UV channel. All works well on web and WebXR on Android.

Then for iOS Quick Look I export the scene to USDZ. In order to transfer the scale property of each texture I’ve tried to change the USDZExporter.js adding the UsdTransform2d definitions and variables as described in official USD docs

I can clearly see that tiling works on the textures I want but AO map is broken for some reason, it seems to have the scale major than 1.

I have inspected the USDA of the exported file and can confirm that AO map has a scale of 1.

Then I checked the file by using USD checker and it passes all checks, then I’ve tried to check it with parameter --arkit, and it fails saying that Transform2D is not supported in ARKit.

So even if I saw the tiling somehow working by using Transform2D, it is not officially supported and the AO map is not working for me so far.

I still want to have AO map and other textures tiling together. For now I use the following workaround. I have 2 UV channels. The first UV I scale in the way so the maps are repeated more times on a surface. On the second UV there is just AO map with appropriate scale. It works well on web and WebXR, for the Quick Look I have to sacrifice AO map (UV2 is not working in USDZ) and just exclude it during the export. Of course it looks not that good without AO.

I was wondering if you guys had similar difficulties with this workflow and maybe save you some time by describing my tries.

Maybe you can suggest some alternative solution where I can have AO and correct tiling for Quick Look?

1 post - 1 participant