Home Technical Talk

Normal Map Swizzle Coordinates: changes in software standards?

So, I was experimenting with some PBR textures from GT, and of course ran across the Y+ normal map. Curious of what used it, I referenced an old article about the different applications that used the Y+ coordinates in normal maps, but noticed that both Blender and Unity now using the Y- normal map. Looking at Marmoset as well, it seems this is also true. So, that leaves Modo and Maya. Are they still Y+, and are we looking at a Y- standard coming soon? 

If for some reason I am misunderstanding it all, could someone explain where I went wrong? :blush: 

Replies

  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    As far as I know this is related to the API, and DirectX use Y-, and OpenGL use Y+. Maybe it also depends on the implementation of the shader since its very easy to flip a channel in it...
  • Bartalon
    Offline / Send Message
    Bartalon polycounter lvl 12
    Obscrua pretty much explains it.  As for Modo/Maya:

    I'm not sure about Modo, but Maya can interpret both Y+ and Y- without any special modifications to the normal map file.  The default interpretation is Y+ you can easily switch this to Y-.

    In your shape object's Attribute Editor, find the Tangent Space category block and expand it.  Switch your Coordinate System from Right Handed (Y+) to Left Handed (Y-).
  • vilesyn
    Wow, thank you very much you two! That does help quite a bit in understanding the idea behind the swizzle position. 

    I'm guessing that in the case of Blender, it has switched the positioning then, or has the option to switch the interpolation, as it is purely based on OpenGL. Unity has changed, as it does have the option to support DirectX, but I really do not know if that's by default. 

    Bartalon, I will certainly check that out. I had no idea that there was an option to switch the coordinates, and in any software for that matter. 
Sign In or Register to comment.