Normal Map Noise Problem

I add Tangent Basis on Modo. I import mesh and normal map to Unity. When I do not use normal map there is no noise. it is not compression noise. the file is png and I use it as noncompress. I import both normals and tangent from the fbx file. when I set tangents to none there is no noise. how can remove this noise?

It is compression noise of a kind. By default an uncompressed texture in Unity will be either an RGB24 or RGBA32, but that 8 bits per channel can often not be enough precision for normal maps. If your normal map is saved as a PNG or TIFF with 16 bpc precision you can fix this by modifying your texture’s import settings.

Change the “Texture Type” to Default.
Uncheck “sRGB (Color Texture)”.
Further down is the compression settings for “Default”. Select your platform(s) tabs to the left and check “Override for …” for each platform.
Change the “Format” to RGBA Half.

Once this is done your material may complain “This texture is not marked as a normal map” with a “Fix Now” button. Ignore this and do not press that button. Using a full RGBA Half for the normal is a bit wasteful for memory, really a RG Half would be enough, but that’s not an option that Unity presents the users in the UI. It is an option if you manually import the texture from script. The resulting texture will also be very large memory usage wise compared to the original “uncompressed” option of RGB24 as it is now using 64 bits per pixel instead of 24 bits per pixel (or 8 bits per pixel when using Unity’s default normal map compression).

1 Like