I couldn’t find a good tutorial on the web explaining how to get normal maps to work perfectly when generated from 3dsmax and imported into the Unity game engine
You see, every 3D application uses its own tangent space meaning that normal maps that might seem correct in your 3D application don’t appear correctly in other 3D engines.
So after many tries and web searching I came to find what I believe is the best workflow to properly export correct normal maps from 3dsmax to Unity.
Proper normal map export from 3dsmax to Unity:
1. Export the high resolution and low resolution meshes from 3dsmax to *.obj format
2. Import the high resolution and low resolution .obj files into xNormal and change the tb calculator to use Unity tangent space.
4. Import the bake normal into Unity and change the normal and tangents smoothing angle to 180
There you have it, perfectly looking normal maps in Unity. Don’t forget to make sure the texture type is Normal Map - a small pop-up called Fix it, might appear under the map if you haven’t - and that you are using the correct texture size (default is 1024 for Unity).
NOTE: since we used an external app to get our normal maps, this method applies to other 3d applications, just follow the same steps.