[SOLVED] UVs from imported mesh slightly distorted causing texture misalignment

I’m working on this model, built in 3ds max and textured in Substance Painter. It contains UV shells which are at some points sliced across details generated by a high-res mesh.
This is usually not a problem since Substance bakes all these details perfectly across the UV seams. And importing the textures in 3ds max or Blender shows them aligning perfectly.

However, inside UE4 the textures are misaligned across seams:

](filedata/fetch?id=1819423&d=1602059278)
I’ve tracked down the issue, but not really how to fix it.

It appears that UV coordinates are slightly distorted after importing the FBX from 3ds max (or from Blender) into UE4.

I exported the mesh from UE4 back into 3ds max to check the UVs, and they are different enough to cause this misalignment.
For example, if I copy the positions of the UV vertices on the original (correct) mesh to the corresponding UV vertices on the mesh imported from UE4, the texture aligns as it should.

Here is a GIF showing the difference between the original (correct) mesh and the (distorted) mesh from UE4:
3dsmax_2020-10-07_10-29-30.gif

What can cause this distortion of the UV? It seems some UV shells are affected more than others.
To me it feels like the issue lies with UE4 rather than 3ds max and Blender causing the exact same issue.
No other software distorts the UVs like this when importing the same FBX. It also happens exporting as OBJ from 3ds max into UE4.

At first I thought that this might be an issue with overlapping or mirrored UVs, although the UV layout for this model contains mirrored and overlapping UVs there is no correlation between the issue and particular mirrored or overlapping UV shells. (I’m using a separate UV set for lightmaps, so this isn’t really an issue.)

In any case, I’m using 3ds max 2019 (latest) along with the latest version of Substance.
If anyone can make sense of this issue I’d be really happy.

Thank you.

UPDATE and SOLVED:
Enabling “Use full precision UV” for the LOD (or when importing) solved this issue.
Turns out it was not a bug!

10 Likes

Many thanks for this really helpful thread/post as this issue was freaking me out (I thought I’d done something wrong during unwrapping even though I triple checked everything and it was right in every other package such as Max, RizomUV, Adobe Dimension etc)! Kudos :slight_smile:

Thanks for sharing, was going mad, pre-triangulated meshes and all

I was going absolutely bonkers, thanks very much mate

Thank you very much for solving this problem. This decision helped me a lot.

I imported my model, which had a UDIM unwrap of 10 tiles, in two rows of 5 pieces, and the extreme two tiles - 1005 and 1015 shifted significantly to the side, which looked disgusting on the model, thanks to you I solved this problem.

I want to note that it is very strange that the engine does not initially use the most accurate UV for the main model, which I did for it in 3Ds Max, it turns out that other models may have problems with the scan, but they are less noticeable. To be honest, I first encountered this when working with a UDIM unwrapping with a large number of tiles.

A real live saver, thanks for sharing!

where did you find the setting to adjust? I cant find it in my import settings. My UV’s got destroyed on import:

Here to say thanks for the tip. I was driving myself crazy because the UVs looked fine in Blender, but random bevels were stretching in Unreal. To change this setting, open the mesh in the mesh editor and just search “UV” in the settings, it’s a checkbox. You have to apply the change for it to work, and the only way I can seem to make that happen is to close the mesh editor and then get a prompt to apply the change.

1 Like

Thank you for clarifying the “apply” part! I kept reading posts saying to enable “Use Full Precision UVs” but nobody mentioned applying the changes by closing out of the static mesh editor.