This is a little odd, but all the sudden Unity (version 3.2.0f4) is not correctly importing normals for my .obj files. This appears to be specific to .obj files. If I re-save those files in .fbx format, everything looks fine. Those same files in .obj format, however, will import with whacked out normals. The files themselves seem to be fine. In fact, I have a .obj file importer script which can import a .obj file at runtime, and it works fine as well. It would seem that Unity, specifically, is not importing them correctly. If I change the import settings on the object to calculate normals instead of importing, it looks fine. This is the case for all .obj files in Unity.
Does anyone have any idea why Unity would suddenly not be able to correctly import vertex normals for a .obj file?
We upgraded FBX SDK (which is used for loading obj files) in Unity 3.2 and we already know that there are problems with loading of obj files. In a lot of cases problem can be worked around by adding UV coordinates. Otherwise I don’t have much to suggest. It would be good if you could submit your mesh in the bug report.
The file includes UV values. This problem started all the sudden, in a version of Unity that was working fine one moment, then began having this problem the next. One of the .obj files is attached, but I’ve noticed this problem with all .obj files since it started. I also tried loading up a new project, to see if the problem was somehow specific to the project itself, but the issue continued. I’ve also replaced the .obj files with copies from an earlier revision that I knew was working fine, and again the problem remained.
first check that the objects gets exported with normals in the first place , theres a lot of broken and incomlete obj exporters, for example cinema 4d exporters dont work correctly, which i find shocking because obj its one of the simplest 3d formats and still several apps dont get it right
Blender 2.49 and 2.5x up to 2.6x - broken Obj import, precalculated normals shows odd shading
Ultimate Unwrap - broken Obj import, precalculated normals shows odd shading
trueSpace via LUUV plugin - broken Obj import, precalculated normals shows odd shading
And i heard the same from Cine, 3DS Max and other 3D apps.
I have never had a working Obj import with precalculated normals. I always need to recalculate the normals. Problem resides at Unity`s end, unfixed since 2.6.
I got my models from 3DS Max, from different modelers with exported normals. Every single model has broken normals.
I am sure 3DS exporter works right.
@blackcorsair on my side, it works perfectly but i use cheetah3d, so i dont know about 3dsmax
@tiles it shows odd shading because you probably are recalculating normals at 60 degrees or higher, that will never work with right angles, try something like 25 or 30, that way any angle higher than 30 gets flat shading, so if you wish smoothness, just use more cross sections and keep angles below 30 degrees
if the problem persist , try to find a way to reset or flat out the normals and re assign the shading or normal break and bake or freeze current transforms of the object in the 3d modelling app, so it looses all the history , that depends on the software, i know maya has a feature for that, i dont know about the others, again i use cheetah
to check if the obj file has normals exported , open the file in a text editor and look up for " vn " entries