Author Topic: Are my unity 5 metalness maps inverted?  (Read 10606 times)

We're using the preset Unity 5 Standard Metallic for export.

When we bring our textures into unity 5, it seems like our alpha channel *roughness from substance* is flipped. Our R channel *metallic from substance* dosen't seem correct either?

can anyone explain if they've got similar issues, have fixed this...this is driving me nuts. i want what i see in substance to be the same as in unity. going crazy over here trying to get this to work.

really appreciate any help on this.

cheers!

Hey Metrons,

This Thread could help you getting that correct.
In the Unity section of this Forum you also can get more help.

If that still doesn't help, come back here and I am sure your issue is manageable.


Best regards
Environment Artist - Twitter

i dont think that thread applies to my question.

i think the problem is...the metallic needs to go into the Alpha, the roughness needs to go into R channel for unity?

From the Painter standard Unity 5 Export for Metallic they have the RGB Metallic grey scale with the Glossiness as grey scale in the alpha. I believe the Gloss alpha is the converted roughness map.

i dont think that thread applies to my question.

i think the problem is...the metallic needs to go into the Alpha, the roughness needs to go into R channel for unity?

Hi,

As johnny9ball posted, the Unity 5 export for metal should be producing the correct results. It places the metal map in the RGB channels and the glossiness (Converted Map from Roughness) in the A. The glossiness map is the invert to the roughness. This should work correctly using the Standard shader in Unity.

However, you will still have issues with the model looking a bit too glossy. This is due to Unity's implementation of their PBR shader. They are not using a GGX BRDF. Unity also has a bug with the reflection probe resolution which is changing the effect of the glossiness map. If you use a reflection probe, you should set the resolution to 256 or 512. This tends to produce a look closer to Painter.

One other thing to mention is that Painter is using importance sampling for the environment and Unity is using mipped cube maps, so this will cause a difference as well. However, the biggest issue is the reflection probe bug and the BRDF in unity is not GGX.

Cheers,

Wes
Head of Substance Demo Art Team
the3dninja@adobe.com
Twitter: The3DNinja

I also want to add the default Global illumination with the default skybox can cause the textures to look very dull. Using a better skybox or even HDR map can greatly improve the fidelity of the textures when using PBR and the standard shaders. You can acheave something that looks a lot more like painter when using an HDR skybox for lighting in unity.

Here is a couple good resources to learn from.

https://www.youtube.com/watch?v=vJ6IS2iIiQg

https://forum.allegorithmic.com/index.php?topic=5489.0

I don't know if this relates, but for my graphs I always include the normal "Metal" and "Roughness" exports (I usually export finished textures in Unity to use in the Standard Shader, making variations of the look I want), but I also include a "Metallic Roughness" export, where the Metal goes into the R and the Roughness into the A.  Plugging that texture into the "Metallic" input for the standard shader works. However, the Roughness needs to be inverted before plugging it into the alpha.

Similar (without inversion) is for Albedo Opacity.  Albedo is RGB, Opacity is the Alpha.  (Note, white = full visibility)

very, very helpful. thanks everyone.

i basically learned, you DO need to flip the roughness channel. we also need a better reflection probe, hdri environment (besides the default one in unity).

very, very helpful. thanks everyone.

i basically learned, you DO need to flip the roughness channel. we also need a better reflection probe, hdri environment (besides the default one in unity).

Hi,

Just for clarification, the map Unity uses for the micro-surface is called Smoothness. It can be very confusing as this is actually a glossiness map. However, Unity uses Smoothness (glossiness) for the metal shader which contradicts the typical workflow of using Roughness. Smoothness (Glossiness) is the invert of a roughness map.

For the environment, you can import the hdr maps from Painter or Designer.

1. Import the map into Unity from the following location...
C:\Program Files\Allegorithmic\Substance Designer\5\resources\view3d\maps

2. In Unity, change the map type in the inspector to Cubemap and use the settings shown in image 01.

3. Create a new material and change the shader to Skybox>Cubemap. Take the cubemap generated and step one and place it in the cubemap input slot. 

4. In the lighting tab, replace the skybox with skybox generated in step 2.

*When using Reflection Probes, you need to set the resolution to 256 or 512. Changing the resolution will have an effect on the smoothness of the material. This is a bug in Unity.

Cheers,

Wes

Head of Substance Demo Art Team
the3dninja@adobe.com
Twitter: The3DNinja

Thanks that works so much better than the way I was doing it from a tutorial video.