Copy link to clipboard
Copied
Hello
Why is it that in substance painter, when i set my project to use OpenGL normal map format and also use OpenGL normal maps i created in Substance Designer, still every type of layer or material defaults to this in the color spaces setting:
auto (Direct3D Normal)
I also noticed similar behaviour for some nodes in substance designer where some nodes defaults to DirectX type normals despite i use OpenGL for the default normal map format setting, altough there at least most of the nodes follow what i set in my project and are only a few outliers like the bevel node normal output.
In painter every single element that uses or interfaces with normal maps defaults to the Direct3D Normal color space and i have to manually set it every time to OpenGL normal for every layer which for me defeats the purpose of a project wide setting.
If i remember correctly this started when the color management updates came to substance painter, before that it respected my choosen normal map format.
Is there a hidden setting i am missing that would force this? Can someone also confirm that this is the behaviour for them as well?
Thank you
Hi @StriderTibe,
Thanks for the message.
Setting the project to OpenGL doesn't change the Layers color spaces. The Layer Stack is always in DirectX, this is the result of the stack that is converted to OpenGL.
Substance 3D Painter can't guess by itself rather a map is DirectX or OpenGL, except if the map is tagged. Therefore, it automatically sets the map to DirectX, because that's the common choice, and more importantly, that's how the outputs from Substance graphs are natively set.
In
...Copy link to clipboard
Copied
Hi @StriderTibe,
Thanks for the message.
Setting the project to OpenGL doesn't change the Layers color spaces. The Layer Stack is always in DirectX, this is the result of the stack that is converted to OpenGL.
Substance 3D Painter can't guess by itself rather a map is DirectX or OpenGL, except if the map is tagged. Therefore, it automatically sets the map to DirectX, because that's the common choice, and more importantly, that's how the outputs from Substance graphs are natively set.
In conclusion, if you're adding custom OpenGL maps to the stack, you'll unfortunately have to switch format yourself.
Best regards,
Copy link to clipboard
Copied
Hello!
Thanks for replying.
With the information you provided i don't really get the function of the normal format selector when starting a new project in painter. What does it do then?
Substance Designer has the same option and there it forces almost every node to produce the normal format you work with. Altough the few that ignore that option can cause headaches if one is not careful enough.
I understand what you are saying is that i must enforce the color space for every layer that interfaces with some kind of normal map, but there are materials that has dozens of layers and it is quite dumb to always go through each of them manually to set a simple switch, especially so if i created those materials myself in substance designer making sure they are in opengl format. I also bake my meshes normal in opengl format, so a global switch to respect my choice would be nice since i know what formats i am using for most cases.
It is not the directx format i am against but the choice to use my workflow in my preferred format. It is almost like there is none since by choosing directx format for my whole workflow i avoid these issues altogether and in general would never have to tweak the normal map color spaces setting while using the graphs i created.
Altough in my whole workflow painter is the only software that does not allow me to choose the default format to begin with, which considering how amazing a piece of software it is, it really bugs me.
Anyway you did answer my question, so i mark it as the correct answer.
Thank you for your time.
Copy link to clipboard
Copied
Reviving the topic in 2025. I also don't understand why there is an option to define the project's Normals format, when the entire system only works with DirectX. After creating more than 50 projects and exporting all the textures, I realized that the normals were all in DirectX, even though all the projects are marked in OpenGL. I had to create a normal maps channel in the settings to export OpenGL and DirectX and after that I had all the work of exporting everything again and reconfiguring it in the game engine.
Copy link to clipboard
Copied
I also don't see any problem with the system working only in Directx, but at least the export format should be changed automatically if the project is marked with OpenGL without the need to edit the default settings manually, this doesn't make any sense.
Find more inspiration, events, and resources on the new Adobe Community
Explore Now