Author Topic: OGL/DX normal green channel flipped?  (Read 6708 times)

I usually use directx normal in substance designer because it preview as the way I wanted it.  However when I export the maps to a 3rd party renderer(maya mental ray, vray, arnold, marmoset) the DX normal is flipped. I applied a DX normal and export as DX normal in SD/SP.   I 'd expect to have the same result in the 3rd party renderers.  I either have to manually flip the green channel or export as OGL normal.

I have this wonder for a long time that is substance treated normal invertly? Directx green channel pointed negative Y, OGL green channel pointed positive Y?

Hey HapZungLam,

Substance Designer does not convert any normal map data unless you tell it to do so.
Maybe you create the normal map in designer wrong or in your graph is something happens what flips it.


Best regards
Environment Artist - Twitter

Hey guys I have exactly same issue.
My normal map looks correct in 2D and 3D views in Substance Designer
However when I publish my substance and look at it in Unity 5 then Green channel is definitely flipped.

What would be the areas where I can look to find what is flipping Green Channel?

Thank you

Hey
it could be flipped in Unity depending of the platform you have chosen: if you are in openGl (Mac Ipad Iphone) the green channel will automatically be flipped .


Which engine are you using with Sd ?
direct3D or sse ?

How do I check

Tools/switch engine.

Currently is set to Direct3D 10

Hey
it could be flipped in Unity depending of the platform you have chosen: if you are in openGl (Mac Ipad Iphone) the green channel will automatically be flipped .

yes I am in OpenGL (iOS platform)
probably that's why channel is being flipped without a warning

I've made a little switch to quickly invert normal map in substance in Unity, so all is good now
Thank you for clarification

You are welcome :if you only work with IOS platform,  you can also switch to see mode for consistency

So in my case, Do I have to flip the green channel manually?

(Forget my previous message, it was confusing)

In theory, you don't have to flip anything : just make sure that your normal output is flagged as normal, and Unity (and the unity Substance engine) should handle the conversion depending on the target platform.

I think user deadheads is having issue in Unity.  I have not tried Unity myself but both Marmoset and Vray/Mental Ray seems taking green channel as positive Y for their normal map input.  If I export directly from what I get from Substance designer/substance painter.  The normal will render flipped.

As my screen shot has shown.  I did not modify the maps after a straight export from substance designer and port it into Vray and marmoset.  They both appears to be flipped vs substance render preview
Last Edit: January 08, 2016, 09:59:56 am

Some more info in another post (look for Eric batut explanations):
https://forum.allegorithmic.com/index.php?topic=6953.msg37425#msg37425

Basically right now, any substance generated normals will be inverted into Unity.

In order to visualize in Substance what you will obtain in Unity, just go to the 3d viewport menu: Materials/nameOfMat/Edit/Material:Normal (switch to false)