Author Topic: Normals on "mirrored" model look wrong  (Read 355 times)

I'm trying to figure out how to address what is hopefully a simple issue.

I have a model, created in Blender, which has several "Mirror" modifiers on it. When exporting the FBX, I tell it to apply the modifier, but the object is UV unwrapped in Blender prior to applying the modifier. I never manually apply the modifier; that's just part of the export to FBX process.

The problem is, the mirrored portion of the model has really weird normals in Substance Painter. Light reflects off those parts almost as though the normals were inverted.

I've attached a couple of images. One just shows the Model in blender. You can see it's just 1/4 of a cylinder. The other image shows what this looks like in Substance Painter. You can see the sharp seem down the middle where the environment reflections look completely different.

Anyway, I've tried flipping the UVs on the mirror modifier, but that's doesn't do anything. The only way I can get the seam not to show up is if I manually apply the mirror modifier, and UV Unwrapp the fully-modified model. But I obviously don't want to do that, as it's destructive.

Is this a common issue? Is there some step I'm missing in my process to get the normals to look correct on the mirrored part of the model?

Duplicate your mesh, apply the modifiers and check the normal direction and UV map to make sure it's good. Also check for sharp edges being marked, and double vertices where your mirror happens.
Last Edit: October 09, 2019, 07:48:33 am

No sharp edges, no doubled verts, and the Mirror modifier is set to "Merge".

Just to keep this simple, I've set up a trivial test case, where I just have a cylinder that's mirrored on X and Y. I've attached the .blend and the .FBX if anyone wants to see what I'm seeing. I've also included another screenshot of what Substance Painter does with this. (I don't think it's SP's fault, as it also looks just as bad within Unity. So clearly this is a problem with my own workflow.)

Again, if I apply the Mirror modifier, then fully UV Unwrap the whole model, the normals look fine in SP. But the point of the mirror modifier is to prevent having to make destructive changes to the model. So I don't know how to properly export the model to FBX from blender without running into this issue with the inverted normals. I figure this should be a very common thing...

No sharp edges, no doubled verts, and the Mirror modifier is set to "Merge".

Just to keep this simple, I've set up a trivial test case, where I just have a cylinder that's mirrored on X and Y. I've attached the .blend and the .FBX if anyone wants to see what I'm seeing. I've also included another screenshot of what Substance Painter does with this. (I don't think it's SP's fault, as it also looks just as bad within Unity. So clearly this is a problem with my own workflow.)

Again, if I apply the Mirror modifier, then fully UV Unwrap the whole model, the normals look fine in SP. But the point of the mirror modifier is to prevent having to make destructive changes to the model. So I don't know how to properly export the model to FBX from blender without running into this issue with the inverted normals. I figure this should be a very common thing...

Is there a reason you're working with N-Gons and not TRIS for meshes going into Painter? Your UVs are not good, they have overlapping as well. There is a certain workflow you need to follow when using overlapping UVs.

Your current Mesh:







If you fix your UVs you'll get a cleaner result:

Last Edit: October 09, 2019, 06:39:02 pm

I've been playing with this a bit more, and it seems the main issue is that when I import an FBX into Substance Painter, I should be choosing "OpenGL" normals instead of Direct3D normals (which is the defualt). As long as I choose OpenGL, everything seems to look fine.

CAGameDEV, could you tell me what you did to "fix" the UV map? I was just using Blender's "Smart UV Unwrap", which seemed to create a UV map with no overlap. But maybe there's something about mirroring that I don't understand with respect to UV Mapping? The UV map in my file doesn't have any overlap when I look at it, though maybe it has overlap when it's mirrored? Anyway, just curious what your "fix" to the UV map involved. And thanks for your responses so far.