In USD you can have several material definition for a material and UE allows you to switch between them. In USD stage you can see them in Options > Render context > Universal/Unreal/MaterialX/MDL. In USD import you have it in the USD Import Options dialog > USD Options > Render Context to Import.
- Universal: is reading the default material definition in the USD
- Unreal: is the default option, and is reading either an Unreal Material if it is specified or else will default to the same than universal.
- MaterialX: if your material is using a MaterialX definition (as external file and not embedded in USD)
- MDL: if your material is using an MDL definition.
Unreal material is basically reference to a path to an unreal asset in your project. When you export USD from UE you will always get the Unreal Material definition exported.
This is what you see in your case: you exported from UE so the Unreal material definition is present in the USD + UE default render context is “Unreal” so UE reads the USD and then tries to load the unreal material path that is empty because you did not copy your unreal material in the new project.
If your materials look empty when switching to MaterialX, that means there is an issue in UE reading MaterialX info from your USD. Either how the materialX is defined or how it is referenced inside the USD file.
Is your MaterialX referenced in your USD as an external MaterialX file or is it all embedded inside the USD file?
Do you get any warnings / errors?
Did you try to load the MaterialX file directly in UE and see if it comes properly?