Some faces of my mesh become weirdly lit after I apply a normal map. I have checked face normals, averaged normals, cleared custom split normals, tried deleting and recreating the affected faces, checked UVs, changed shading model, also tried normal maps from different materials - nothing works. The problem is consistent and shows up in LookDev view, rendered view in Blender and after export to UE4. In the example below I have just normal map applied in the shader and have deliberately cranked up normal strength to 2 in order to make the issue more visible. Blend file is attached (with embedded normal texture). Probably, has to do something with tangents, but for the life of me I can't figure out what. Will be most grateful for any help!



  • $\begingroup$ Please upload the textures also (File_External Data_Pack all into .blend). $\endgroup$ – josh sanfelici Oct 10 '19 at 10:59
  • $\begingroup$ @joshsanfelici Done. Had to get rid of all the textures with exception to the normal map. $\endgroup$ – seethesky Oct 10 '19 at 11:37

Some of your UV islands / individual faces are flipped in U.

  1. With an eye on the mirror axis, in the Mirror modifier for each object, check 'Flip U' so the texture matches on each side: both 'wrong', or both 'right'.

  2. With the pivot set to something that suits, maybe 'Individul Origins' if you're doing a few at once, Select Islands/Faces that are 'wrong' and in the UV editor, Header: UV menu > Mirror > X axis.

    It's probably worth right-clicking and setting a Quick Menu item for that. SX-1 would also do it.

Following commentary, there are one or two things I've noticed in samples of your model..

You would want regions meeting across a mirror plane to be exactly planar, and at exactly right-angles to the mirror. Occasionally, they are not, quite... and there are still the odd stray vertices around, extra hidden faces. One approach to solving that would be ShiftG select similar > coplanar, with a high tolerance, and scale the region to 0 about its median, along X, or its normal if it's at an angle.

It's hard to tell without running tests, but at first sight, it seems the normal map might have a slight tilt: an overall rotation in U. That means, (irrespective of pattern) it would be tileable in translation, but not in reflection.

Maybe you have to apply the Mirror modifier before tweaking to perfection.

  • $\begingroup$ Thank you. It helps with some meshes, but some are still driving me insane. For example, the window mesh. I removed a half of if it, deleted all UVs, unwrapped it again - some faces have this lighting issue again and this is within one piece of uniform geometry without any mirroring. I don't understand on what basis rotation/flipping of UV islands within a single piece of geometry affects lighting. I have another mesh modelled in similar manner, it does not have this issue at all. $\endgroup$ – seethesky Oct 11 '19 at 5:53
  • $\begingroup$ @seethesky just so we're on the same page.. what method are you using to unwrap? $\endgroup$ – Robin Betts Oct 11 '19 at 6:48
  • 1
    $\begingroup$ marking seams and simple unwrap. I can provide some gifs to illustrate my example with the window, if this is helpful. BTW the problem is visible even without normal map or any texture. The minute I create UVs it shows up in lookdev and rendered view. Thanks again for following up on my question. Much appreciated $\endgroup$ – seethesky Oct 11 '19 at 7:23
  • $\begingroup$ @seethesky no need just yet, I'll take a look when I can.. just another pair of eyes.. $\endgroup$ – Robin Betts Oct 11 '19 at 7:48
  • 1
    $\begingroup$ I begin to think that something is fundamentally wrong with the blend file itself. It was 2.79 file originally, maybe it got messed up after I transferred it to 2.8. I exported one of the corrupted meshes into an OBJ without any UVs or smoothing groups. Imported the OBJ into a new blender file, unwrapped the mesh from scratch, tested lighting with a normal map - everything seems to work correctly without bizarre stuff. It is a pain, but it looks like I'm going to have to reconstruct the project manually in this manner. $\endgroup$ – seethesky Oct 11 '19 at 12:02

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.