Normal map on second uv problem

Look here is the model on which Uvs are on first channel

Now this is other model which on which the first uv which normals used is moved to second.
So to apply normal map now i have to use TexCoords node and tell it to use second uv channel, right?

as you can see the other one on the left is identical in shading (one group) to the perfect one, the only real difference (apart of that its not exploded)
is that the first channel is moved and instead first channel is different

this is how the network looks

it should be all perfect… but no. this is what i get

and ive looked into all possible reasons this happens and no, it SHOULD work perfectly but it doesn’t i assume thats a bug.
Yes it is a bug, as soon as i import it with UV2 copied into UV1 problem is gone.
But it doesnt solve the issue i need it to work on second uv channel.

From what I understand, there’s something about orientation with UV’s that can change the direction the normals are going or something like that.

Try some tests inverting green, inverting red, switching red and green, etc. and see if maybe something like that will fix it.

It has to do with UV seams causing normal splits. I believe UE4 by defaults puts hard edges on every UV edge, and it only uses the first UV set for that. It’s not really a bug, it’s just part of how models, uvs, and normal maps work together, it’s just an issue with UE4 adding splits. So if you are using a baked normal maps, you should always use the first UV channel, if you are using tiling normal maps, it’s doesn’t matter as much. You need to design your model/texturing workflow around those limitations.

1 Like

Thank you, it is still a limitation sadly, but whatever will have to swap all uvs now. duh

I was very confused about my tileable normal map not working properly on my meshes until I stumbled upon this info here. So in 4.10.4 this is still an issue if you put your normals on anything but uvchannel 0 - which is a bit annoying as it prevents us from blending two normal maps mapped with different uv sets. Anyone got any solutions to this? (PS: this is not a situation of flipped green channel)

I also need to blend normal maps from 2 different UV sets.

From what I understand, normal map can only be on UV0.

This is not an issue, but rather a performance consideration
Starting from 4.11 i think there is a material function to derive tangent basis for UV sets other than 0.

Would like to know more about this, and also what performance losses there would be.

This article explains the basic concepts of tangent space and why having only 1 tangent space defined is practical. As to DeriveTangentBasis material function, coupled with transforming normal into new basis, I never used it and cannot give a precise performance impact estimation, but I reckon it is roughly about 60 pixel shader instructions. Plus you are likely to see some slight faceting in normal map used with this method.

As a word of advice, there are more elegant solutions instead of using tangent space normal map on UV channel other than first one. For example, in most cases it would be possible to use world space/local space normal map on UV channels other than UV0. That gets rid of any headaches with tangent space. The only limitation where I would not be able to use local space normal map I can think of is deforming meshes.

Lastly, there is a neat thread regarding topic being discussed.