2
$\begingroup$

I found someone with similar problem, but their answer doesn't work for me. Other than that, the net is full of advice how to flip normals programmatically to create interiors on the fly, but other than "Your normals are wrong", no help.

enter image description here

All my normals point outwards. I exported the object to .obj, imported it into Unity, and got:

enter image description here

Did I apply the texture to the reverse side of the faces, or something like that? How do I fix it?

$\endgroup$
  • 1
    $\begingroup$ d'oh. I reversed all normals in Blender - so that the object obviously looks all wrong, only insides, no outsides - and after importing the .obj to Unity it works. I wish I knew how to avoid doing silly workarounds like that. $\endgroup$ – SF. Sep 24 '16 at 18:30
  • $\begingroup$ If you found a solution, please remove your question or answer it yourself. $\endgroup$ – Billy S Sep 24 '16 at 18:43
  • $\begingroup$ @BillyS: The problem is it's a silly workaround, not a solution. $\endgroup$ – SF. Sep 24 '16 at 19:36
  • 2
    $\begingroup$ @BillyS: I didn't make a mistake. I made an object with all normals pointing outwards in Blender, completely correctly. After export, they began pointing inwards in Unity. I went back to Blender, purposefully did the wrong thing: flipped all the normals to point inwards, exported the (silly and wrong) result, and Unity did the same thing as before - flipped the normals again - which resulted in a correct model! It's a "two wrongs making a right" situation. $\endgroup$ – SF. Sep 24 '16 at 22:00
  • 1
    $\begingroup$ ...actually, I made a mistake - but in a completely different place. My "fix" was really a case of two wrongs (not) making a right, and Mr Zak's info about the negative scale allowed me to fix my original mistake, instead of adding a second layer of wrongness on top of the first one. $\endgroup$ – SF. Sep 24 '16 at 22:45
8
$\begingroup$

My guess would be that your object has negative scale in Object mode. As .obj does not store object transforms, the scale is applied on export and so causes the normals have negative direction as well.

To fix this, in Object mode hit Ctrl + A > Scale, then do the operation described in answer you already found (in Edit mode hit Ctrl + N) and then re-export.

$\endgroup$
  • $\begingroup$ You are right - the scales were all negative That must have happened very early in the making. I just changed the sign on the numbers... normals are still pointing outside, textures are mirrored but that's easy to fix, Let's see if it corrects the issue. $\endgroup$ – SF. Sep 24 '16 at 22:06
  • $\begingroup$ It worked! After changing the scale to positive, normals kept pointing outwards. I just flipped the textures where it mattered (Alt+M, X having the right UV map field selected) and after exporting, Unity loaded the object alright. $\endgroup$ – SF. Sep 24 '16 at 22:41

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.