I am creating a house, however the normals are messed up (i.e walls should be seen from inside but are seen from outside). I tried debugging this by printing mesh.normals, and then reversing those normals. The result was that nothing changed - the same walls had the same problems. Then I tried assigning every wall a normal of (1, 0, 0) and nothing changed again. Does anyone have any insight to this problem? Thank you!
Try using 2 sided mesh walls (something like Shell modifier in 3ds max),
or shader that has culling disabled (so it draws both sides)
I wouldn’t trust Unity for editing my models. You’re better off modifying your normals in a proper 3D package.
Besides, it seems quite pointless to import a mesh, and then create an instance of it which has the normals flipped during runtime.
I might be incorrect here, but changing your normals on the X- or Y-axis doesn’t do anything, except perhaps cause issues. Your normals always point forward by default, so to invert them you’d have to multiply your normals by -1. But again, I highly recommend you manually invert them in your choice of 3D software.
What you need to do is not to change normals, but flip the mesh in your 3D Software. In 3D Studio max you do this by selecting the polygons/Elements, then click the flip button(In editable poly modifier) If you simply just change the surface normal, you will get incorrect shading on your model.
You can use two-sided shader, but thats not something you want to do, cause it will not treat lights correct, and you will end up with a bad result.
Mesh.normals is for lighting; that don’t have anything to do with which side of a mesh you see. That’s controlled by winding order.
–Eric