How to converting GLB (VRM with MToonShader) to USD?

Hi. I am trying to convert VRM (GLB) files to OpenUSD. I am making progress, but had a few questions:

  • For USD I need to work out if opaque, mask, or blend mode. What properties can I use to work out one of these three modes? I was looking BlendingMode and Additive blending.
  • My textures are upside down (or rotated by 180 - not sure which). Is there a common reason for this? The PNG files are the same orientation, so it must be something in the USD file. USD talks about st rather than uv.
  • Are there any good resources on how to create USD materials from Three.js materials? I am making progress, but it is slow. I basically took a GLB file that I imported into Omniverse as a starting point, but I really need to work out the individual settings (currently 90% hard coded), and there are so many settings in three.js materials that it has been slow going to work out the right ones to use.

Thanks for any suggestions or pointers!

With some manual correction:

In case anyone comes across this post, I did eventually work out answers:

  • If material.transparent then its “blend” mode (mode 2); if material.alphaText > 0 then its “mask” mode (1), elase its opaque mode (0).
  • There is a Y-flip setting. PNG has Y at the top, 3D space as Y at the bottom, the Y-flip was needed.
  • I am generating NVIDIA omniverse files and found they had a GLB material I could just use, so I copied some settings for that. So I did not have to learn how to do deep conversion of materials.