Apologies if this is a dumb question as i’m very new to Omniverse. I have imported an .STEP file containing an assembly and want to apply different materials to the various parts/models. This works fine for many of the models, however for some models I receive the following error:
Failed to bind material to the following prims as they are instances of proxies.
I also noticed that the models appear great in the part tree which i assume is related?
@a.phan have you tried opening up the actual USD reference/payload that’s being used (Wheel_Concept_Machined_Single_Piece_126) in order to apply the material? once you applied the material in that USD, you should be able to see that change propagate through any other scene that uses that specific USD.
regarding instance proxy, i suppose is the way USD uses to load the object into memory once for the same instance instead of loading it multiple times for performance consideration. if you look at the detail property panel, you could set a prim to be instanceable or not near above the transforms. once instanceable is activated, you could see a cyan ‘i’ (capitalized) over the icon with orange arrow. orange is an indication that it’s a type of composition arc called rerference which you can read more about through the provided links in this thread -
Yes just to clarify, if you have 10 bolts on a model and you choose to use “instancing” when exporting, it will make ONE master bolt, and 9 referenced copies. So it may make “bolt.usd” and include it in the model 10 times, 1 as the “master” bolt, and then 9 copies. You have to apply materials to only the “master” bolt. If something is grey, it is locked and you cannot do it.
To apply a material to that reference or payload, you would have to either open up the master reference file and apply the material there, or you can “flatten” the file, and the reference, so its all one usd file. Then you can do what you want.
Thanks for the response. When importing the assembly (.step file). I can see that it has automatically created a “prototypes” scope which is used to house the underlying “master reference” which each instance/reference is using. When updating the material on the prototype it does not seem to propagate to each instance. Do you know if i’m maybe missing a step here?
Unfortunately, due to confidentiality I can’t share the .step file. Perhaps I need to try creating an example step file to share but that may take some time.
Well the other thing is where are you creating this step file ? What software ? Do they not export to usd yet ? Have you checked our extensive library of connectors for omniverse in the Launcher ?
Another solution is simply do not “instance” anything when exporting. Just keep everything “flat”.