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