Allegorithmic Substance Designer & Unity 5 PBR

I recently (2 days ago) moved to the Allegorithmic Substance Live suite after Quixel seems to have completely haulted.
One of the first things I noticed when playing around with the node editor is that it exports to the following:
Diffuse
Normal
Roughness
Height
AO

4 of these are not an issue, however the Unity 5 shader model (very similar to the Disney GGX BRDF model), which by default does not even have support for roughness, and neither does Unity at first glance.

I do not want to have to spend a lot of time modifying each an every one of my textures so they will work with Unity 5 the way they are meant to, but I don’t want to just not use all the maps I need either.

Why UT chose this PBR model I am not sure as it is not considered standard practice at all, but that is besides the point now.

I have access to Shader Forge (Node-Based shader authoring editor for Unity), and if anyone knows a way to allow me to use the following maps in Unity as they are meant to be used:
Diffuse
Normal
Roughness
Height
AO
Metallic

As Substance Designer (and painter) are standard texturing programs and have been for quite some time, I am hoping someone with some experience with these things will be able to help me.

P.S. The best solution would be for me to find a way to create a shader to do this, as it would be a more standardised solution.

I don’t quite understand your problem. You can use substances directly in unity with the integrated substance player plugin somehow. Also when you create a new graph in substance designer you can choose presets. The “physically based (metallic/roughness)” one has the standard outputs:
basecolor
normal
roughness
metallic

The Unity PBR standard shader can take:
main:
albedo
metallic (smoothness in alpha)
normal
height
occlusion
emission
detail mask

secondary:
detail albedo x2
normal map

Can’t you just pack the roughness map from substance designer into the alpha channel of the metallic map and feed that into the standard shader? You might need to invert it also (roughness != smoothness).

If you want to look at other shaders maybe check out the “Alloy” shader.

My issue is that I don’t want to have to manually invert and add my roughness to the alpha in Photoshop every single time I make a texture.
Unless there is a node-based way to do this directly in Designer, or a way to do this in a shader, I would rather not manually combine them every time.
The reason I am not using the dynamic substances in Unity is because back in Unity 4, I had bad experiences using other peoples substances, quite often the scene would become corrupt and unusable, this happened on several occasions, and with many other people and all we had in common in our scenes were dynamic materials, hence why I don’t like to use them any more.

But if there is a way to combine them in Designer itself, then that shouldn’t be a problem.

I haven’t used Substance Designer myself much but I’m sure there is a way to automate this.
This at least sounds promising:

You can always write your own shader that takes things in individually and does the inverting for you. Either code or Shader Forge.

You also might want to look into the Alloy Shader pack, like Martin recommended. I’ve never used it but it looks like a pretty robust PBR alternative.

@ATLAS-INTERACTIVE

You can extract everything you need from Substance designer & painter, to work directly with Unity 5 standard shader.

But I agree, I really don’t understand why Unity chosen blinn-phong instead GGX, and second why not using standard metal/roughness or gloss/specular setup.

You can easily invert Roughness in Substance Designer with invert note and than merge inverted roughness and metalic to one map, in Unity you must have metalic in RGB and Smoothness(inverted roughness) in Aplha chanell, you can do that in Desigenr with RGB - A Merge note and that input that note to metalic output and than Export your outputs and in the end you will get Metalic with Smoothnes in Aplha channel.

2 Likes