I've downloaded the bfe105_3.+nm.dds file and I see the problem - it is in DXT5 format, but it should not be.
Let me explain step by step how you should do it with Compressonator 1.50:
- Start with "blue-magenta" image in 24 bit BMP, not compressed in any way.
- Open it with the compressonator
- First, click "Generate Mips" in the toolbar (the label to the left of this button says "Box-Filter", it can be changed, but I think the default one is ok for normal maps)
-
After that, click "Compress" (the label to the left of compress should say "ATI 3Dc Compression" - this is what we need)
- In the new window choose "ATI2N" (second option) and click "Compress"
- The tool will show 3 smaller windows: Original texture on the left, Difference in the middle and Compressed on the right.
- You should visually check that Original and Compressed look almost the same and Difference is black.
- In the menu click File -> Save Compressed and save your new texture as "+nm.dds"
That's it.
You don't have to flip the bitmap in any way, swap any color channels or do anything else.
ATI2N is a special compression format, developed specifically for normal maps. It wasn't standard in DX9, but became standard in DX10 (albeit with a different name) and thus all GPUs made in last 10+ years support it.
The above is enough, but here is some extra info if you are interested. I don't want to confuse anyone with too much information
The problem with DXT5 compression and normal maps is that DXT5 introduces crosstalk between color channels. While this is usually not noticeable for ordinary textures, it causes artifacts for normals.
The trick to avoid the crosstalk is to move one of two required color channels into the alpha channel. It was first used in Doom 3 I think. It is supported by my shaders and as I understand it is used by FSX as well:
https://www.fsdeveloper.com/wiki/index.php?title=Normal_map_creation
However for ATI2 you do NOT need to do it, and ATI2 provides better quality than using this DX5 trick while file size is the same.
Finally, you can just save the DDS texture without any compression. Something like 24-bit RGB or whatever it is called. This is also supported by my shaders, but the DDS file will obviously be larger than a compressed one.
So, in summary:
My shaders support 3 types of "+nm" textures.
- 3Dc ATI2 - good quality, created with compressonator, or NVidia tools for Photoshop, or whatever other tool can do this.
- DXT5 with Alpha "trick" - ok quality, almost any tool can save DXT5, but you have to move red color channel into alpha somehow.
- Uncompressed DDS - best quality, but large file. The file must contain 3 color channels for normal map.
One more thing.
If you are creating an "extra" specular map specifically for my shaders (+sr.dds) you can save it in ATI
1N format (also available in compressonator). This is special format for grayscale images and provides better quality than DXT1. However it is NOT supported for standard "_s" textures for CFS3.
Hope it helps