UE 5.5 Interchange throws away imported mesh normals - Really bad default!

Hi,

as many of you know, from UE 5.4 onward, Interchange has replaced the legacy FBX plugin by default, so when you try to import FBX - the most common 3D mesh import format, you will be met with the new Interchange importer.

If you are importing Static Mesh asset, it will default to the “Asset” template.

BEWARE that the out of the box Asset template defaults to “Recompute Normals”:


This literally means that the importer will completely throw away normal smoothing setup done in the DCC and will use trivial angle based heuristic to completely recreate the normal shading. So you will most likely have wrong normals on any meshes you’ve imported since you started using interchange, unless you noticed this wrong default and turned it off.

Worse, when I try to choose “re-import base mesh and show the re-import dialogue” the “build” section for meshes is straight up missing???

Importing is way too important to be this half-baked!

Maybe not ideal for your usage but It can be changed in the project settings:

You can edit the DefaultAssetsPipeline, or even better duplicate the asset and set it up the way you want and then use that CustomDefaultAssetsPipeline in all your different projects.

In the asset you can specify which properties you want to be visible on import/reimport.

Beware that when you import a file, UE will remember the settings you put while importing. So when you reimport a static mesh that has been imported with the originial DefaultAssetPipeline, it will not show the reimport settings. You will have to change the reimport pipeline or import from scractch.

2 Likes

Yes, I figured it out already and made my own customized pipeline asset. I can understand the reasoning, that on larger projects, you may want to have different asset import pipeline per user and per project, depending on where the imported data comes from.

The issue here is that for beginners, or even experienced users working on small projects, the out of the box experience should not require immediate creation and customization of import pipeline. There should be a default one that just works.

I am quite confident that in majority of cases, users want to preserve the normals of the meshes they import, not recalculate them. It’s just a bad default. What doesn’t help is that overcomplicated interchange UI doesn’t help. It’s so complex it makes it all the more difficult to spot incorrect settings in so much visual noise. Essentials toggle fails to address that as well, as there’s almost never case where the settings it contains are sufficient, and one has to turn it off almost all the time.

The UI to manage UI is never a good idea (filter buttons, in case of interchange two separate rows of them). It’s never a win, and usually just covers up underlying UX flaws. But since we’re now unfortunately stuck with the UI to manage UI…


…the next best thing that could be done is probably to make the Essential filter simply mirror the legacy FBX dialog 1:1, both content-wise and default value-wise out of the box.

1 Like

The UI to manage UI is never a good idea (filter buttons, in case of interchange two separate rows of them). It’s never a win, and usually just covers up underlying UX flaws.

100% – this feels very much like a half-baked “Programmer UI”

It looks like “Force Front XAxis” is missing from the DefaultAssetPipeline asset config? I’m assuming the “Fbx Translator” settings is separate from Interchange Settings, which is why it’s in a weird hidden modal dialogue behind a hamburger menu – but this just reinforces the third-party user-hostile nature of this new import scheme.

@UE_FlavienP

Hi, will this ever be addressed? As of 5.5.4 the behavior is still the same. The new, default interchange FBX importer throws away imported mesh normals by default, unless explicitly configured otherwise. That’s really scary.

I’ve never seen any other modern, non-amateur piece of software which would default to ignoring normal data and recalculating then from scratch, given how crucial normal data is, especially in game development world.

Also, the Interchange UI seems quite buggy:

  1. There seems to be desynchronization between the default state of the pipeline as a whole vs default state of individual values:
    https://youtu.be/89DD09kj1Oc

  2. The category filters do not work. Modifying certain values with the filter active will swap back to “All” filter:
    https://www.youtube.com/watch?v=P3TlSqTJXJM

  3. Given how annyoing #2 is, it’s reasonable to want to disable the categories, but their disable state does not save:
    https://www.youtube.com/watch?v=HP0kdtgDB-0

Thank you for the feedback.

Regarding default value: it comes from the fact than in Legacy FBX import we have recompute normal at false for Static meshes and True for Skeletal meshes. In Interchange, ATM, we cannot change the settings depending if it is a static or skeletal mesh import. The default value of skeletal mesh import was selected over the one from static mesh.

  1. Thank you for the feedback, We will discuss it internally. The behaviour is that the reset pipelines will reset to the default values of the pipeline asset, while the reset property will reset to the default value of the “parent / master” pipeline, the current pipeline asset inherited from. But I agree that from a user pov that is not explained and confusing.

  2. This is reported and tracked Unreal Engine Issues and Bug Tracker (UE-220206)

  3. I created a ticket for that one.

1 Like

@UE_FlavienP

I’ve come across another issue:
By default, FBX exporter has option to choose importing materials exposed:


But GLTF does not:

So importing GLTF will always result in large amount junk materials being imported into a folder usually dedicated for meshes (as that’s where most people import it):

The general problem here is that there are just too many cases where user has to reach into engine content directory, make copy of the interchange pipeline asset, and modify it. It should not be necessary to do that for so many basic use cases. The amount of work needing to be done before first successful import of 3D assets should not be so large.

That being said, even if user does it all correctly, GLTF importer just ignores the Import Materials flag and imports them anyway:

Thank you for reporting.
It is tracked internally and fixed for 5.6

1 Like

Thanks for checking on this. One more last question:
Is there also a logged bug report for the issue where GLTF exporter creates and uses default material even when material with matching name exists in project and search method is set to “Under Root”?
Setup in Blender:


Interchange setup on import:

Existing material in project:

Import outcome:

Yes it seems to work with FBX but not with glTF files, I am creating a ticket.

1 Like

@UE_FlavienP

Hi,

I found another one unfortunately. When importing FBX, the Bake Pivot Meshes mode does not respect Force Front XAxis. Meaning that I can either:

  1. Have correct pivot but wrong forward axis
  2. Have correct forward axis but wrong pivot