Need Help Getting Maya USD into Houdini 19 (UVs)

   4258   11   2
User Avatar
Member
159 posts
Joined: 7月 2010
Offline
I have a textured model in Maya 2022, and it renders the textures as expected.
I exported the scene to USD with USD Preview Surface.
This appears to import into Houdini 19 Solaris via a stage/loadlayer LOP.
The imported material appears to be some kind of generic shader.
When I try to replace the material on the screen-left tank, with a MaterialX surface, or usdpreview surface, it looks like it's applying the texture per face, instead of using the UV info.
The UV metadata is clearly there, as you can see the textures on the neighboring tanks.
What am I missing?
Thanks
Edited by syntheticperson - 2021年11月22日 14:33:24

Attachments:
FreightCapsuleMayaArnoldRender.v01.png (907.7 KB)
Screen Shot 2021-11-22 at 11.08.33 AM.png (111.4 KB)
Screen Shot 2021-11-22 at 11.16.47 AM.png (5.6 MB)
Screen Shot 2021-11-22 at 11.20.32 AM.png (947.0 KB)
Screen Shot 2021-11-22 at 11.28.12 AM.png (7.9 MB)

User Avatar
Member
7796 posts
Joined: 9月 2011
Online
The usduvtexture is missing a usdprimvarreader connected to the st input for reading the texture coordinates.
User Avatar
Member
159 posts
Joined: 7月 2010
Offline
Ah, I’ll give that a try. Thanks!
User Avatar
Member
159 posts
Joined: 7月 2010
Offline
jsmack
The usduvtexture is missing a usdprimvarreader connected to the st input for reading the texture coordinates.
I added a usdprimvarreader node, set the Signature to Float2, VarName to st, and connected the result to st on the usduvtexture node.
Unfortunately, the texture is still not showing up.
Is there anything I need to do at the materiallibrary LOP node level to ensure the st primvar is visible to the usdprimvarreader node?
Thanks

Attachments:
Screen Shot 2021-11-22 at 5.25.15 PM.png (7.5 MB)

User Avatar
Member
159 posts
Joined: 7月 2010
Offline
As a diagnostic, I switched to /obj, created a geo node, dived in, and created a usdimport LOP to load the same model from maya, appended an unpackusd node, with Output Polyons selected.
In the geometry spreadsheet, I couldn't find any st or uv parameters. However, I noticed a point attribute called map1, which was a floating-point 2-dimensional array.
So I tried changing the usdprimvarreader to map1, and it worked!
For some reason, Maya 2022 appears to export a variable called "map1" instead of st or uv, in this example, when writing to USD.

Attachments:
Screen Shot 2021-11-22 at 6.04.16 PM.png (7.9 MB)

User Avatar
Member
651 posts
Joined: 8月 2013
Offline
Hi. Maya's own USD plugin is a bit wonkey. To export from Maya I tend to use this with no issues: https://j-cube.jp/solutions/multiverse/ [j-cube.jp]

You could also try updating the Autodesks latest build of the USD exporter: https://github.com/Autodesk/maya-usd/releases/ [github.com]

Best
User Avatar
Member
159 posts
Joined: 7月 2010
Offline
Mark Wallman
Hi. Maya's own USD plugin is a bit wonkey. To export from Maya I tend to use this with no issues: https://j-cube.jp/solutions/multiverse/ [j-cube.jp]

You could also try updating the Autodesks latest build of the USD exporter: https://github.com/Autodesk/maya-usd/releases/ [github.com]

Best

Good to know. I'll give those a try.
Thanks
User Avatar
Member
159 posts
Joined: 7月 2010
Offline
Unfortunately, the multiverse plugin is failing on my MacBookPro 2014 running macOS Big Sur.
See attached error logs.

I tried installing the newest version of the Autodesk USD exporter Version 0.14.0.
When I re-export the model to USD, the texture attribute is now called "uv" instead of "map1", but the uv attribute is a 3d float array instead of a Vector2.
Since the usduvtexture node is expecting a Vector2 for st, I feed the usdprimvarreader (with a signature of Float3 for "uv", into a vectofloat (3D Vector), output values 1 and 2 are then fed into a Float to Vector2, which is then fed into the "st" input of the usduvtexture.
Unfortunately, I'm no longer seeing the texture map for the screen-left spherical tank.
What am I missing this time?
Thanks

Attachments:
Maya2022_MultiverseError.txt (13.0 KB)
Screen Shot 2021-11-23 at 9.34.12 PM.png (172.2 KB)
Screen Shot 2021-11-23 at 9.37.56 PM.png (4.3 MB)

User Avatar
Member
651 posts
Joined: 8月 2013
Offline
Hi.

I did flag some of these issues over in the Maya beta forum about 6 months ago but for what ever reason the Maya Dev team are not always that responsive. I actually ended up making a tool in Houdini to convert ABC files for use in Houdini, unreal, multiverse and Blender.

The USD Multiverse guys do have a slack forum where you could ask about the issues with Mac OS.

Best

Mark
User Avatar
Member
7796 posts
Joined: 9月 2011
Online
syntheticperson
Since the usduvtexture node is expecting a Vector2 for st, I feed the usdprimvarreader (with a signature of Float3 for "uv", into a vectofloat (3D Vector), output values 1 and 2 are then fed into a Float to Vector2, which is then fed into the "st" input of the usduvtexture.
Unfortunately, I'm no longer seeing the texture map for the screen-left spherical tank.
What am I missing this time?

Float to vec2 and vec3 to float aren't valid nodes for usd. These are only valid in the vex context such as for mantra shaders/attribute vops.

Just plug the primvar reader right into the texture reader. It actually doesn't matter if the geo has float2 st or float3 uv. using 'uv' with float2 or float3 on the primvar reader will work either way.
User Avatar
Member
159 posts
Joined: 7月 2010
Offline
Mark Wallman
Hi.

I did flag some of these issues over in the Maya beta forum about 6 months ago but for what ever reason the Maya Dev team are not always that responsive. I actually ended up making a tool in Houdini to convert ABC files for use in Houdini, unreal, multiverse and Blender.

The USD Multiverse guys do have a slack forum where you could ask about the issues with Mac OS.

Best

Mark
Hi Mark, doesn't ABC/Alembic only support geometry and cached animation? I need the materials/textures to come across.
I joined the Multiverse slack channel.
Thanks
User Avatar
Member
159 posts
Joined: 7月 2010
Offline
jsmack
syntheticperson
Since the usduvtexture node is expecting a Vector2 for st, I feed the usdprimvarreader (with a signature of Float3 for "uv", into a vectofloat (3D Vector), output values 1 and 2 are then fed into a Float to Vector2, which is then fed into the "st" input of the usduvtexture.
Unfortunately, I'm no longer seeing the texture map for the screen-left spherical tank.
What am I missing this time?

Float to vec2 and vec3 to float aren't valid nodes for usd. These are only valid in the vex context such as for mantra shaders/attribute vops.

Just plug the primvar reader right into the texture reader. It actually doesn't matter if the geo has float2 st or float3 uv. using 'uv' with float2 or float3 on the primvar reader will work either way.

Hi jsmack, that worked!
Many thanks.
Edited by syntheticperson - 2021年11月24日 12:39:45

Attachments:
Screen Shot 2021-11-24 at 9.34.03 AM.png (6.7 MB)

  • Quick Links