Cannot select parent material when importing GLB files

I am importing a GLB file into Unreal and want to use an existing material as the parent material, but for some reason the Parent Material setting is greyed out.

My other co-workers can select the parent material. I seem to be the only one who can’t. We’ve gone through all the settings side-by-side and don’t see any difference.

I opened the DefaultGLTFAssetsPipeline and Parent Material is also greyed out there as well:

When I import FBX files, Parent Material is not greyed out:

It seems to only be me and only on GLB file imports.

Any suggestions how to make the Parent Material selectable would be appreciated.

Hi Patrick,

This is by design for the import of gltf and glb files.

For those two file formats, we are solely created material instances which parent materials have been designed against the different material extensions available in the glTF specifications. Each parameter of those extensions becomes an input in the material instance which parent supports the different extensions used by the glTF material.

As indicated in the import dialog (see below), each of those material parents can be overwritten with your own (see below).

glTF pipeline options in the import dialog:

glTF material assets used by the material instances:

That said, would you prefer to have a single material asset from which material instances would be created.

Regards,

Jean-Luc

Hi Patrick,

You are welcome.

Good to hear that you have been able to sort things out.

We do agree with you that the import dialog is confusing. This is something we are trying to address for the next release.

For gltf and glb extensions, as you have seen, we have implemented a set of materials, each addressing a combination of glTF material extensions defined in the specifications. The parameters of those materials are named according to those extensions which are then handled in the glTF pipeline. To do so, the inputs of the shader graph generated by the translator are also named accordingly. Therefore, allowing users to specify only one parent material would imply that that material asset would follow the same naming convention for the shader graph’s inputs to be properly connected. When designing the import of gltf and glb files, we expected users to overwrite all (or part of the) predefined material assets delivered to suit their needs. We did so to provide material assets as lean and efficient as possible and avoid an intensive use of switch parameters which are costly. Would you still prefer to be able to specify your own material asset as parent of all potential combination of glTF material extensions?

Note that, although users are allowed to select a parent material when importing FBX files, this option is skipped and we are always using our predefined material assets as parent of the generated material instances. This is also something we are planning to address in future releases.

Thanks for your patience.

Regards,

Jean-Luc

Hi Patrick,

I am definitely not an expert in shader’s efficiency. Intuitively, I would say that yours is more efficient.

But, I will share your data with a colleague who will know better than me.

That said, if your material asset is sufficient for the glTF models you import, I would suggest to create your own pipeline to modify the imported material instances in order for them to be parented to your material asset and set the parameters according to how Interchange set up the incoming material instances. Then, you will just have to add your pipeline at the bottom of the existing stack. Just after the glTF pipeline.

Regards,

Jean-Luc

Okay, I see the predefined GLTF materials now. Thank you. I was looking in the InterchangeGLTFPipeline asset.

I’ll just say that the import dialog is a bit misleading. The diaglog makes it sound like you should be looking in the “InterchangeGLTFPipeline” asset. The place you pointed out is actually located in “Settings > Engine > GLTF Settings”. Maybe the dialog text can be update?

Also, I still don’t understand why users don’t have the option to override the parent material on the import dialog, like they can with the FBX.

But anyways, I’m sorted now. Thanks for your help, Jean-Luc.

Hi Jean-Luc,

Here is the parent material I am pointing my GLB files at:

For textures, I’m using one albedo, one normal, and one ORM packed texture. I have a Switch Parameter node on the AO so I can disable AO if I’m using baked lighting.

I looked at the default opaque GLTF material and it looks quite complicated. I assumed my material would be more efficient but now you have me wondering. Here’s is the info from the default opaque GLTF material, but I’m not 100% which of these parameters are most “costly”.

Is my parent material more or less efficient than using the default GLTF material?

Thanks.

Great suggestion, thank you! Appreciate the help.