Inverted Normals when importing to Unity from 3DS Max

Hi all,

I have an issue where, when I export and object from 3DS Max using the FBX format and then import the object into Unity, the object normals appear flipped. When I check the normals in Max though, they appear correct. I know it’s a simple fix of throwing a normal modifier on the object and then exporting it, but we have thousands of objects that we’re importing into Unity and it’s kind of hit or miss whether an object is going to appear correct or not. Does anyone know if this is a common issue and if there is a script that corrects the normals before exporting to FBX?

That sounds more like you are having a negative scaling factor on one or more axis. Remember to reset xForm on objects (and when you do that, you will immediately see the flipped normals in max as well, which you then need to flip in the editable poly) before exporting to fbx.

1 Like

Thanks Kragh. One more question though. Is there a way to fix this without messing up my point cache or morph targets?

Normally reset XForm is very destructive. And from your question it seems you have already tried to just apply it, and seen the destructive result?
Because morph targets and point caches are probably using the index of vertices, and I would have thought reset Xform didn’t change that. I mean, why would it. But this is max, and you never know.

As for whether or not there’s another way, which won’t fuck things up, I really have no idea. There’s an alternative to the reset xForm, which is to create a new primitive, convert it to poly, delete all its polys, align it to the object you need reset, and use the attach command to attach the crappy object to this new clean poly. Then you will immediately see the polys flip, and then you need to flip them again. But this would result in a new logical object, and would probably not help you.

You could also just flip the normals, without resetting, and then just have the negative scale in unity? I mean, the morph targets and such is not compatible with Unity anyways, so as long as you just get whatever collapsed data into Unity, you could recreate the meshes in there pretty easily. If you need info about how to recreate the mesh with no negative scale inside Unity, I could elaborate on that.

How are you using the meshes in Unity, if it’s based on morph targets and the like?

Sorry for the delayed reply. I appreciate the response. I’m creating the art for an interactive application in which surgical students will be able to manipulate the lung in order to get to the anatomy underneath. Morph targets and point caches will work in Unity using the Megafiers plugin. The problem is that Megafiers is very finicky. I solved the problem by cloning the original mesh, xforming it and then applying a skin wrap over the original mesh. I recorded the point cache data off the skin wrap. Seems to have worked ok.

Again, I appreciate the help.

Its been a whole day trying to figure this out, I followed this n it helped me, ur A life saver! thnk u bro!! :smile:

Hi Kragh, I have the same issue when importing FBX into unity. When I did reset Xform in 3dsmax. I don’t see any changes. But when I import into unity again the issue persists. When I view the exported FBX in any 3D viewer, the model looks complete. But when I import it into Unity that’s when I see the flipped normals again.