Different Materials are not showing in USD Composer

Hi everyone! I’m very new to omniverseI’m having issues with materials in Usd Composer. In our stage, we use metersPerUnit = 0.001, so the scene is in mm. Some materials are defined in the main USD file and some are assigned with a MaterialLibrary.usd through a material authoring Layer. For the concrete blocks material (Concrete_Rough) the Shader can be scaled to the right size (mm to meters, Scale: 0.001) and the material rendering in the viewport looks correct. For the rest of the materials and environment, I’m using a materialLibrary.usd with materials from the Omniverse Material Library. I can confirm that the materials are correcly assigned to the elements of the stage, not only by looking at the properties panel, but also in the stage’s viewport the tint of the material changes when I apply different materials to each element. I believe the main problem I have is the scale of the textures. As mentioned, we use metersPerUnit = 0.001 for our main stage, so one workaround I found is to change the shader texture scale to be 0.001; the result is visible in the screenshot. But the problem is that the rest of the materials applied to the environment (floor, columns, walls)are not showing the textures, and I don’t have a way to scale their shaders. I’ve tested multiple solutions, like, Scaling the material Layer, creating a referenced MaterialLibrary.usd file and scaling that, but nothing seems to work. Any thoughts on what might be happening? Thanks in advance for your help.

HI @martina.c ,

I wonder whether the floor, columns, and walls have UVs? It looks like the shader is applied, and Omniverse is trying to render it without texture maps.

Could you test a simple checkerboard material or use the debug mode to check the UV?

Try this. Debug View > Texture Coordinates 0

The viewport change to something like mine. Your wall, floor will be black if there is no UV. Otherwise it will show the colors of green and orange/red.

Also: Which materials do you tried. I know Concrete_Rough but from which material library? Like vMaterials, Base,… I need one that worked and one that doesn’t work for you.

Best regards
Maik

Hi Maik!
Thanks for the quick response!
I tried debugging as you said and everything looks black, even the material Concrete_Rough that was working ok.

The materials I’m using are
Concrete_Rough: omniverse-content-production.s3.us-west-2.amazonaws. com/Materials/2023_2_1/Base/Masonry/Concrete_Rough”

Floor: omniverse-content-production.s3.us-west-2.amazonaws.com/Materials/vMaterials_2/Concrete/Concrete_Polished.mdlomniverse-content-production.s3.us-west-2.amazonaws.com/Materials/vMaterials_2/Concrete/Concrete_Polished.mdl

Column: omniverse-content-production.s3.us-west-2.amazonaws. com/Materials/2023_2_1/Base/Wall_Board/Plaster.mdl

Wall: omniverse-content-production.s3.us-west-2.amazonaws. com/Materials/vMaterials_2/Plaster/Plaster_Wall.mdl

I’ve tried both, vMaterials and Base materials from the omniverse library, directly applied in the same stage or through a MaterialLibrary USD.

Thanks again for your help!

Martina

https://omniverse-content-production.s3.us-west-2.amazonaws.com/Materials/2023_2_1/Base/Masonry/Concrete_Rough.mdl

Hey @martina.c

That was very helpful.

The problem: You don’t have UVs on your geometry. UVs are necessary to apply textures to geometry.
In your case, the concrete blocks work without UVs because you are projecting the textures from multiple sides. This is a kind of workaround when there are no UVs. You can recognize this by the fact that the checker for “inputs:project_uvw” is activated. Not every material has this feature implemented.

It is also not advisable to project every material, as this consumes more performance.

I have a solution for quickly generated UVs.

Go to Window → Extensions

Type “scene optimizer” in the search field.

Look at SCENE OPTIMIZER and click INSTALL. It will take a short moment. Check that it is ENABLED now and check AUTOLOAD.

You can close now the extension window.

Go to Window again and have a look at Utilities → Scene Optimizer

It will open a new window that looks like this. Click “Add Scene Optimizer Process” and choose “Auto UV Unwrap”.

Now select all your geometry and click “+Add”. It will list your geometry separated by commas.
You have some options for tweaking this process, but leave it at the default. Perhaps the “Scale Factor” and/or “Scale Units“ is something you would like to change for the size you mentioned, but test this while you have materials applied.

Press “Execute - Auto UV Unwrap”.

The process will generate UVs for your selected geometry.

Materials and textures can now be displayed correctly.

Please let me know if this solves your problem.
If not, can you provide me with your scene data? Then I will take a closer look.

I’m happy to help.

Maik

You were right, the UVs were missing. I added them to the blocks, and it worked. Thanks so much for the help!

1 Like

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