I have a normal-mapped quad using Unity’s standard Transparent/Bumped Specular shader. This worked well on Android when I had an albedo texture and a normal map derived from a greyscale heightmap. However, the normal map had obvious artefacts when zoomed in so I created a custom normal map. This looks gorgeous on PC but now on Android (Tegra 2 and Mali 400) the specular highlights are completely overblown and don’t change with different shader ‘shininess’ values. The quad is still clearly bumped but the intensity isn’t gradual.
Attached are the original albedo and height map (design 1) that worked, and the new albedo and normal map (ship 1) that don’t.
I’ve investigated the normal map generated by the heightmap and it has a green component, so I recreated another test (sphere). This also looks perfect in Unity, but not playing on a tablet where there are no specular highlights.
So what is the difference between PC and other device normal maps, and how does one go about making them?