So, I’m acquiring and downloading materials from such sources as Quixel Megascans, Poliigon, Textures.com, CC0Textures and others. On many of these sites, you can find information about the normal map format that is being used. Most of such libraries (like Poliigon and Textures.com) go for OpenGL format. But in practice, if you download three random mats from, say Textures.com, you’ll get this:
These are three renders of their mats that come directly from the site:
Here are their normal maps applied to three Unity cubes:
So, the first one appears to be in DirectX format and the other two in OpenGL.
So, here’s a question to those people who work with materials: do you often come across such cases and how do you determine which normal format is in front of you in each particular situation?
I’ve also faced another issue when I rotate such normal maps. I’ve tried special approaches like the one in this thread but for some normal maps (I have two examples from Poliigon and CC0Textures) they just don’t work correctly until I also flip the red channel. Which is extremely weird, because the red channel is supposed to be correct in each format, right?


