SOLVED: USD import to GPU with materials / Tangents and Normals

When I import a USD With the direct to GPU option ON then it seems to disregard material lighting and shading

When I import the USD with the direct to GPU option OFF material assignments + lighting seem to work just fine (because I can calculate the normals and the tangents)

USD import is great overall, I have been testing it in VFX and real time production so happy it is supported in TouchDesigner, just need to work out a few kinks.

I’ll add a little more information about what I think is going on here. I think with SOPs and rendering and shading they need normals and tangents to be properly shaded with the PBR shader… when using the “direct to GPU option” on USD and ALSO on Alembic files it sometimes will NOT get the proper shading.

This prevents us from using the direct to GPU option in most cases because we have to toss down a sop node to calculate the Tangents and sometimes the Normals too.

But maybe this is because the normals and tangents should be calculated in the origin application such as blender, maya, Houdini etc… but often times when we export/import the models from other applications the normals and tangents just don’t work and they have to be recalculated inside Touch… its kind of a bummer but I wish there was an option to calculate normals and tangents AND load on the GPU, maybe this is not possible.

so technically maybe this is not a bug… but its just an unfortunate set of circumstances where most of the time when you import a model you are going to need to recalculate normals and tangents which obviously then prevents you from using the “direct to GPU” options

Hey,

Apologies about the delay.

This is logged for a developer to look into it and get back to you.

Best,
Michel

I’m sorry I meant to fix my original post I don’t think this is a bug actually as much as it has to do with geometry import preparation.

The issue is probably that the imported USD must be prepped with a tangent attribute in order to use the direct to GPU function. Most other softwares though like Maya, Houdini, Blender etc. do not create tangent attributes by default.

I would file this under the interoperability between applications more so than a “bug” per say. The import works, the model just doesn’t have tangents and most other 3D software does not prep models on export with tangents.