3
$\begingroup$

When using a tangent space normal texture, the orientation of UV islands affects the normals even when using the Generated or Object Texture Coordinate. How can a UV map influence a texture that is NOT using any UV map ? How can tangent space itself be affected by the UV map ?

Here's the basic setup :

  • a plane split in 2 faces, each one being rotated differently in the UV map
  • a noise texture with generated mapping.

And here's how it looks :

normals seam

Here's the file

See how turning one face by 180° in the UV map removes the seam, while the noise texture is using a generated mapping.

$\endgroup$
3
$\begingroup$

The normal map node takes the default UV map, if one exists, to generate the tangent vectors. So while your noise texture uses generated UVs, your normal map node still uses your UV map. Pick Object Space in the Normal Map node instead to fix it.

Tangent space is affected by the UV map because the tangent and binormal vectors basically just represent the up and right directions on the UV map. So when you rotate a poly on the UV map, the tangent vector rotates with it.

$\endgroup$
5
  • $\begingroup$ What I don't understand is that it seems the UV orientation is affecting the Z rotation of the normals. But the texture already has a blue channel, so there is no need to use additional data. $\endgroup$ – ChameleonScales Jul 27 '17 at 14:15
  • $\begingroup$ The blue channel is really just to normalize the vector (that is, keep it unit-length). $\endgroup$ – MadMinstrel Jul 27 '17 at 14:19
  • $\begingroup$ Ok. What I don't understand is WHY the tangent space NEEDS to use the UV orientation. Since without any UV map, everything works fine. $\endgroup$ – ChameleonScales Jul 27 '17 at 15:38
  • $\begingroup$ Tangent space normal maps just don't make any sense without a UV map. Like I said, the tangent vector is just 'up' on the UV map. No UV map - no up. No up - no tangent space. In the absence of a UV map, IIRC it 'works' by generating a rudimentary UV map, as though you took your mesh, selected everything, pressed U and selected 'Reset'. $\endgroup$ – MadMinstrel Jul 27 '17 at 16:25
  • $\begingroup$ Thanks. I think You're right about the Reset thing. And now I understand why the tangent space needs to get X and Y origins from the face's orientation in the UV map. This orientation data could be taken from something else but it happens that UVs are a perfect candidate for it. $\endgroup$ – ChameleonScales Jul 27 '17 at 19:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.