When I apply any normal map using Unity’s “Bump Diffuse” shader to Unity’s sphere primitive. The Normals are rotated 90 degrees. Here are two images to illustrate:
Without a bump map:
With a bump map:
Notice that the illuminated portion of the sphere has changed. It looks like the light is coming from the left when the normal map is applied. I have tried different normal maps with similar results. In the case illustrated the normal map is very simple. A 50% grey uniform image imported with “create from greyscale”. I would have thought that this should create a neutral normal map which should not have altered the normals on the sphere.
What am I missing in my understanding of normal maps in Unity?
It actually does look like a normal map, but one that, surprise, surprise, rotates the normals by 90 degrees to the left. Try changing the color in your normal map to neutral blue (128,128,255) and then import it WITHOUT creating a normal map from grayscale. Why unity turns neutral grey into that red, though, is completely beyond me.
Thanks for the help everyone. It seems to be a bug in the importer for normal maps. All the normal maps in the entire project are that pinkish color instead of the normal indigo and they all appear to rotate the light by 90 degrees. I found this answer:
After unsuccessful experimentation with the import settings I resorted to the same thing he did which is to copy everything over to a fresh project. All the normal maps are fine now.
In the new project the neutral grey normal map comes out indigo and works as expected.