Objects get shaded differently depending on the program they were created in. How can I avoid this?

If I make a cube in Blender, and import the .blend in Unity3D disabling materials and animations, it is shaded differently than a cube created in Unity, even if they share shader and material.

I took a screenshot of the problem: http://i.imgur.com/UKeSa.png

The cubes in top are Unity primitives. When placed one besides the other, the appear as a single seamless object. If I do the same with imported cubes from blender, it is quite obvious there is something going on because of the disruption in the shading.

What am I doing wrong, and how can I correct this?


Your normals are not imported properly from Blender. You can enable normal calculation in Unity, that fixes simple situations like this.

But I can’t remember what’s the proper way to fix the normal import. I’m quite sure you can find an answer here or on forums - this question has been discussed many times.

I am using the latest version of both programs, Blender 2.62 and Unity 3.5.sth at the moment.

This was solved by either exporting as .obj or recalculating normals in Unity3D in the object inspector.

I’m sorry I asked such a common question. As I didn’t know what the problem was, I didn’t know what to look for. Thanks everyone for such a quick answer, it was very helpful.

Here is the documentation:


You probably have done properly already but just in case, you should do it again following word by word what they say.

I would guess also you are not in this case:

“versions 2.50-2.57 do not work, because FBX export was changed/broken in Blender”