For now, I can tell you that there's something wrong with your .exr. When I resaved the file in Krita, Godot picked it up correctly.

You can experiment with the file that I resaved.

    Tomcat That worked! Guess I'll use Krita to convert my exr back to exr from now on... What a weird issue.

    I checker my normal view again using my PNG and the colors shifts as I rotate (which I thought was normal at the time), which is not the case for your EXR:
    MY PNG:

    YOUR EXR:

    Tomcat I tried doing it in Krita but still the same thing happens... Tried again in gimp, still doesn't work. The EXR does get imported, so that's fixed, but the normal view still shows the behavior I mentioned in my previous reply. Did you have any specific export settings to make it work? The file you provided works great but I can't recreate this success with my other normal maps.

      Seeing Tomcat thumbnails looks like there's a problem with Color Space

      Normal Maps need to be saved from Blender as "non-color", not sure about Godot import settings, but it needs to consider the Normal as a Non-Color, not sRGB

        papalagi Not using Blender right now, only trying to fix the normal map texture. When I import the normal map that @Tomcat fixed, everything works fine, but I cannot recreate that result. I import both their file and mine with the same import settings, apply it to two different meshes, but only theirs works correctly. Perhaps I have the wrong export settings or otherwise doing something wrong when I export from Krita.

        Blender is much more forgiving and the render view shows light acting normally no matter which normal map I use.

        If it's any hint, I downloaded all the textures and normal maps from Poly Haven.

          Lightsheik

          I think the problem is with an sRGB color space interpretation somewhere along the way, you need to get rid of that.

          Lightsheik Did you have any specific export settings to make it work?

          Nope. All the default settings.

          How did you export to .png? With what settings?

          I have some bad news.

          Here are the screenshots with your .png (1) and mine (2).

          1

          2

          As you can see, the reflection is normal when the image is resaved.

          Here are the image files in Krita. From left to right:

          1. Original .exr
          2. The .png resaved on my computer.
          3. Your .png

          So, yeah, it looks like your computer is corrupting image files. I have no idea how that can happen.

          Lightsheik I'm starting to think the issue might me my PC somehow. Perhaps something with the graphic drivers?

          Oddly enough, that seems to be the correct assumption

            Haven't seen anyone mention it yet so might as well interject with it: Blender and godot are different handedness. If it shows up correct in blender then depending on how you are importing into godot it should look wrong in godot. Also, for godot the texture should be well normalized to within the 0 to 1 range, while blender will indeed be more forgiving here and on that last note as someone noted sRGB color management can mess with this too.

              Tomcat
              As from my understanding the sRGB color transform is applied iteratively and the Normal is more and more washed out and incorrect

              i forgot to mention a very important thing: depending on the graphics API the green channel of the Normal may need to be flipped, OpenGL (Blender) vs DirectX need flipped green channel

                papalagi

                As per ChatGPT:

                Vulkan follows the DirectX convention for normal maps, not the OpenGL convention. In Vulkan, the green channel typically represents the X component of the normal vector, the red channel represents the Y component, and the blue channel represents the Z component, just like in DirectX.

                So, when working with normal maps in Vulkan, you should interpret the channels in the same way as you would in DirectX, rather than following the OpenGL convention. This ensures consistency in how normal maps are used across different graphics APIs.

                so the G channel needs to be flipped if you work in OpenGL (Blender)

                  Megalomaniak Blender and godot are different handedness.

                  papalagi As from my understanding the sRGB color transform is applied iteratively and the Normal is more and more washed out and incorrect

                  These comments are certainly valid in general. And they should of course be taken into account in the workflow.

                  But in this case, it is clearly visible that the normals file is obviously corrupted.

                  papalagi As per ChatGPT:

                  An extremely questionable source. His claims should always be double-checked. It is more reliable to use official documentation.

                  a year later

                  I know this was a year ago, but yesterday I was having the same problem. For me, it wasn't the normal map at all. I ended up solving it by taking off auto smooth on my blender models. After that, my normals looked perfect. Hope this helps.