Home Technical Talk

Blender flipping normals when mirroring objects

joaokalva
polycounter lvl 3
Offline / Send Message
joaokalva polycounter lvl 3

In Blender you can mirror an object by two ways:

  • Using a mirror modifier
  • Ctrl M
In the first method, every normal is perfect in every single software 
Using the second, some display flipped UVs, some don't.

The Experiment

1st row: Ctrl M on instances
2nd: Ctrl M on single users
3rd: Using mirror modifier
4th: Mirroring the object using mirror modifier (without applying)
5th: Applied mirror and deleted unwanted parts

Blender (blue color represents normals that are pointing outwards)

Marmoset Toolbag 3 - Flipped

Unity - OK

 Unreal - Flipped

Substance Painter - Flipped

What I have tried already

  • Triangulization
  • Apply transforms
  • A lot of different export settings 

Do you have any idea how to get it consistent through out of Blender?

I'd like to keep using Ctrl M (the top two rows) instead of the modifier (third row) because of when I work with complex machines that have to share a lot of UV space to save up resolution for the textures.

Any ideas?



Replies

  • fdfxd2
    Offline / Send Message
    fdfxd2 interpolator
    Yeah that's expected behaviour from that operation. All it really does is set the scale to -1 and inverts the coords.

    It's very annoying, but that is just how that operator works. Just make sure to hit Shift + N after you use the operation and apply the scale.
  • joaokalva
    Offline / Send Message
    joaokalva polycounter lvl 3
    fdfxd2 said:
    Yeah that's expected behaviour from that operation. All it really does is set the scale to -1 and inverts the coords.

    It's very annoying, but that is just how that operator works. Just make sure to hit Shift + N after you use the operation and apply the scale.
    Applying the transforms don't work, the tests were made with all the objects after being applied the transform and scale in every way possible.
    Also, the Ctrl M that I am talking about is in object mode, which doesn't screw up with the normals, not needing another Shift N

    Maybe that's where the problem lies, I just noticed when you mirror in Edit mode you get your normals inverted, where as in object mode you don't.

    What did work for me though was to scale -1 in the axis I want instead of mirroring, but I still would like to confirm if this is a bug in Blender 
  • joaokalva
    Offline / Send Message
    joaokalva polycounter lvl 3
    Yeah, so the problem is definately with mirroring in object mode, edit mode works like a charm. Im opening an issue to the devs
  • gnoop
    Offline / Send Message
    gnoop sublime tool
    It's a long standing  and very annoying  feature .  Especially  when you want to mirror  a whole hierarchy of objects.   Have always been that way and you have to  flip normals  every time you mirror object which doesn't work with instances obviously.       Should be  kind of a "mirror"  tag  and  a checkbox in fbx export  IMO  fixing all the geometry vectors automatically
Sign In or Register to comment.