How to handle material assignment on GeomSubsets

Hello,

I have a mesh prim that contains multiple GeomSubset prims. Each GeomSubset prim has a different optical material assigned to it, resulting in the coloration you can see in the screenshot below.

Now, I want to apply physics to the mesh prim by defining it as an SDF collider and applying a physics material to it.

Everything seems fine until I start the simulation, at which point I encounter the following error message:

[omni.physx.plugin] Triangle mesh SDF collision does not support multiple materials, default material will be used - prim: /World/Arbeitstisch/NistBoard/Gear_assembly/main_body/main_body_body!

One way to resolve this error would be to delete all the GeomSubsets, but then the body would only have one color.

Is there a way to retain the GeomSubsets (each with its own optical material) and only use the physics material of the mesh prim for the physics calculations?

Please note that the materials on the GeomSubsets are already set to “weaker than descendants,” while the physics material on the mesh prim is set to “stronger than descendants.”

Kind regards

Axel

Hi,
Hmm I think I know what the problem is, I will have to play with this and try to resolve this. Its certainly a bug and we need to fix it.
However as a workaround the only way I see is to create an xform and put two same meshes below it.
One for rendering with the subgeometries and one without them. Then the one without them set its purpose to guide and collide against this one (guide will make sure its not rendered).
So this way you can have different graphics and collision representation while if the rigid body is on the xform all move together.

Sorry about the trouble, will try to fix the issue for next release.

Regards,
Ales

Hi Ales,

Thank you for looking into it and for your suggestion.

I am looking forward to the next release.

Kind regards,

Axel

Trying to repro this issue, just to be clear this issue is there only if the materials applied to the UsdGeomSubset does have physics APIs right? So those materials do have physics properties. If I create a subset with just rendering material, it seems to work right.

For my case, the materials on the USDGeomSubsets don’t seem to have a physics API.
The materials were automatically created when I converted a STEP file from a CAD program to USD.

Those are the properties of the material:

And those are the properties of the shader:

I converted three of those materials to MDL:
Example_material_2.mdl (1.6 KB)
Example_material_3.mdl (1.7 KB)
Example_material.mdl (1.7 KB)

I encountered the error mentioned above with those materials applied to the USDGeomSubsets. There was no error after deleting the GeomSubsets.

Thanks, I was able to repro now, will try to fix it for next release.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.