Enabling "Recompute Tangent" creates hard edges on UV border seams

I’m testing out Recompute Tangent on a mesh, and it works great so far.

However I can see visible hard edges where the UV borders are within the mesh.

  1. Open a new project in 4.16 (completely blank if you like)
  2. In the project settings, enable Support Compute Skincache
  3. Import your skeletal mesh into the engine. Use default import settings.
  4. In the LOD0 > Sections rollout of the mesh in Persona, turn Recompute Tangent to ON.
  5. Observe the mesh’s UV seams appear and disappear as you turn the Recompute Tangent box ON and OFF.

Expected behavior: there should be no seams when Recompute Tangent is ON.

I can second this problem. Only happens when Skincache is enabled.

i also have this problem, its serioue enough to prevent me from using this feature.

It’s an annoying issue. It also appears alembic imported as skeletal asset with unwrap uv.

Anyone at Epic know what might be up here? This seems to make the feature not as useful as intended.

Yepp the same issue we still have in 4.18 :((((
So, we cant use recompute tangent option… Guys please fix that… :slight_smile:

is this still a thing? I seem to be getting the UV turns into a hard edge issue as well
I can see the issue go away when I set the display toggle in the alembic asset to show>advanced>CPU skinning
but I dont know how to enable that in-game on the specific mesh

They changed something in 4.19 which made it a bit better but it’s still noticable. Enabling show CPU skinning doesn’t fix it, it just overrides the feature

Same problem in 4.20. This bug makes Skincache unusable for me. But Skincache is really needed feature. Epic please fix it.

I believe to have found a solution: In your material turn off “Tangent space normal”, then use the “Derive Tangent Basis” function with your normal map and plug the “World Space Normal” output into your materials “Normal” input.

291555-recomputetangentsnormalmap.gif

2 Likes

Hi witch-dev,
After looking for a solution to this bug for ages, I had really high hopes but alas it’s not working for me.
See image below

In my case I used a default Maya sphere and used a blank normal map in the Texture Sample.
Toggling the Recompute Tangent on the Skel mesh on and off doesn’t make a difference to me.
Would you have a hints to give me please?
I’m pretty desperate here.
Thanks

I just tested importing an alembic skeletal mesh (exported from blender in my case) and it looks like the actual normals are wrong, the alembic mesh has a hard edge at the UV seam. So this has nothing to do with the normal map or tangent space (You can turn tangent space normals off in the material and plug nothing into the normal input and you’ll still end up with a hard edge). The only workaround possible here would be to treat all your UV seams as hard edges in your DCC app and bake your normal maps with those hard edges (probably brakes when animated though and it should be fixed on engine side anyway).

Well that’s disappointing…
The other workaround would be to weld all border UVs on UVset0 and copy the real UV layout to UVset1, then make the textures point to UVset1 with a TexCoord node… but what a mess.
I wish someone from Epic could give us a hand here, or at least tell us they’re working on a fix.

Unfortunately the workaround suggested above doesn’t work.
See further details here:
https://forums.unrealengine.com/development-discussion/rendering/1469363-alembic-skeletal-mesh-uv-seam-problem?p=1703970#post1703970