• Register
Post tutorial RSS Correct Normal maps from 3ds Max in Unity game engine.

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.

Posted by on - Intermediate Textures

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

Aris Proper normals from max to unity3d_01

2. Import the high resolution and low resolution .obj files into xNormal and change the tb calculator to use Unity tangent space.

Aris Proper normals from max to unity3d_02

3. Bake!

4. Import the bake normal into Unity and change the normal and tangents smoothing angle to 180

Aris Proper normals from max to unity3d_03

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.

Comments
ParsedGames
ParsedGames

or use handplane, its a big time saver
Handplane3d.com

Reply Good karma Bad karma+2 votes
koyima
koyima

With the main difference being that xNormal is FREE:
Xnormal.net

while Handplane costs: $150 per seat or $50 if you are a freelancer.

Free is a bit cheaper. Looks good though.

Reply Good karma Bad karma+2 votes
koyima
koyima

Yep, true. From what I understand the best solution is what 3dsmax uses to generate (or render) them, but they didn't even have the same tangent basis in their viewport.

A studio called 3point studios made a nice workaround and they also seem to have figured out how to use this tangent basis in other engines, but a unified solution adopted by everyone would be a lot better.

I guess autodesk will have to lead the way.

Reply Good karma Bad karma+1 vote
koyima
koyima

dude your second comment appeared as a double post, I deleted one and both disappeared. sorry. I even replied to it.

Reply Good karma Bad karma+1 vote
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.