Author Topic: Question regarding difference between PBR Spec/Rough and Rough/Metal workflow  (Read 60277 times)

I am in the process of learning SP and have to say its a great tool. However I'm having a hard time understanding the gloss/metal PBR workflow. Maybe I'm getting something wrong with PBR but here is my problem.

Unless I'm mistaken this is how Spec/gloss maps work:

Albedo = colour (no lighting info)

Spec (Specular Reflectance) = Controls how much light is bouncing off the object.

Gloss = Controls how the light is bouncing off the object (Also known as Roughness) ie perfectly reflected (chrome ball), blurry reflection or diffused (chalk)

Normal = Normal

Metalness = values are either black or white to tell shader what is metal and what is not metal. The metal stuff picks up some of the albedo in the reflected light.

SP has a Gloss/Metal workflow

Albedo = Same as above

Gloss = Same as above

Spec = How are we controlling the amount of reflected light?? If we don't have control over this are we assuming a constant value for reflected light?

Metal = I am confused how something can be 75% metal (or anything in between 0 or 1), is this controlling the amount of reflected light also??

One other thing, I am having problems with my curvature maps out of Xnormal. Xnormal is putting some of the info into the alpha channel. Does SP recognize the data in the alpha channel?

Thanks for any help and keep up the excellent work!! ;D

Hi,

Here is how the map types work.

Metal Rough Worfkow

Base Color
Raw color with no lighting information. Small amount of ambient occlusion can be baked in if using it for micro-surface occlusion. The color range for dark values should stay within 30-50 RGB. Never have dark values below 30 RGB. The brightest color value should not go above 240 RGB.

Roughness
Describes the microsurface of the object. White 1.0 is rough and black 0.0 is smooth. The microsurface if rough can cause the light rays to scatter and make the highlight appear dimmer and more broad. The same amount of light energy is reflected going out as coming into the surface. This map has the most artistic freedom. There is no wrong answers here. This map gives the asset the most character as it truly describes the surface e.g. scratches, fingerprints, smudges, grime etc.

Normal
Normal map

Metallic
Tells the shader if something is metal or not. Raw Metal = 1.0 white and non metal = 0.0 black. There can be transitional gray values that indicate something covering the raw metal such as dirt.

* With metal/rough, the areas indicated as metal in the metallic map have a corresponding metal reflectance value in the base color map. The metal reflectance value in the base color needs to be a measured real-world value. Transitional areas in the metal map (not raw metal 1.0 white) need to have the metal reflectance value lowered to indicate that its reflectance value is not raw metal. 

Also, with metal/rough, you only have control over metal reflectance values. The dielectric values are set to 0.04 or 4% which is most dielectric materials. The dielectric is hard-coded by the shader and you don't need to set it in Substance. Some shaders add a specular control that allows you to change the fresnel reflectance value at 0 degrees.


Specular Glossiness Workflow

Diffuse
Raw color with no lighting information. Small amount of ambient occlusion can be baked in if using it for micro-surface occlusion. The color range for dark values should stay within 30-50 RGB. Never have dark values below 30 RGB. The brightest color value should not go above 240 RGB.

Glossiness
This map is the inverse of the roughness map. White 1.0 is smooth and 0.0 black is rough.  Describes the microsurface of the object. The microsurface if rough can cause the light rays to scatter and make the highlight appear dimmer and more broad. The same amount of light energy is reflected going out as coming into the surface. This map has the most artistic freedom. There is no wrong answers here. This map gives the asset the most character as it truly describes the surface e.g. scratches, fingerprints, smudges, grime etc.

Specular
This map contains the reflectance information for both metal and dielectrics (non metal) surfaces. This is a key difference in the metal/rough and spec/gloss workflows. The same rules apply. You need to use measured values for metals and most all dielectrics will fall with the 0.04 - 4% range. If there is dirt on the metal, the reflectance value needs to be lowered as well. However, you can add different values in the specular map for dielectric materials since you have control to author the map.

Normal
Normal map


Cheers,

Wes
Integrations Product Manager / Training
wes.mcdermott@allegorithmic.com
Twitter: The3DNinja

Thanks for the info that really clears things up!

The specular vs. metallic discussion made one thing obvious: there are pros and cons for both PBR-models.

Now I would like to set up my Substance Painter and Substance Designer projects in a way, that provides maps for both shading models.

I read through the very interesting article on marmoset website: http://www.marmoset.co/toolbag/learn/pbr-conversion

So I know how to convert the shading models. But I wonder, if there is an established workflow in Substance tools to have both shading models outputs?

So how do you go about setting up a Painter project in the most efficient way to get both PBR outputs? and same for Designer?

Any input on how to streamline this task is appreciated!

The specular vs. metallic discussion made one thing obvious: there are pros and cons for both PBR-models.

Now I would like to set up my Substance Painter and Substance Designer projects in a way, that provides maps for both shading models.

I read through the very interesting article on marmoset website: http://www.marmoset.co/toolbag/learn/pbr-conversion

So I know how to convert the shading models. But I wonder, if there is an established workflow in Substance tools to have both shading models outputs?

So how do you go about setting up a Painter project in the most efficient way to get both PBR outputs? and same for Designer?

Any input on how to streamline this task is appreciated!

Hi, we have utilities in SD for converting from metal/rough -> specular/gloss. Under Material Filters > PBR Utilities you will see the conversion node.

Are you wanting to have a substance that will output both PBR versions? You can create separate outputs for the two workflows in a single graph.  Using Material Blends and Material color Blend to add effects, you can set the channels to output both types (metal/rough data and spec/gloss data). The material nodes will then auto connect to the appropriate outputs. The key is that you will need to make sure that you pass into the material nodes the correct set of data for both PBR workflows.

Cheers,

Wes
Integrations Product Manager / Training
wes.mcdermott@allegorithmic.com
Twitter: The3DNinja

The reason why I am thinking about integrating PBR conversion in my graphs is, I want to make sure, that my substances and Painter projects fit both PBR models.

I know that I can convert M/R to S/G, but I am not sure what is going on inside that conversion node, and I want to have control over this conversion. So I´d like to do it manually.
I am playing around and starting to get a feeling where to split up M/R and S/G. What I changed in my workflow is, that I start with S/G. Then I make sure the values are inside the PBR range (using DONTNOD chart). Then I convert to M/R.
I guess it´s better to start the conversion from the S/G, as the S/G workflow kind of forces me to use the proper data.


Be aware that you can't always convert from Specular/Gloss to Metal/Roughness as there are pair of values of (diffuse,specular) that cannot be converted to (basecolor,metallic). The conversion in the other direction is simpler and more precise in the general case as all (basecolor,metallic) pair correspond to a well defined (diffuse,specular).
Quote
I am not sure what is going on inside that conversion node
You can open it and check what it is doing. If you think there is a bug in there, let us know.
Last Edit: November 25, 2014, 06:39:53 pm

The reason why I am thinking about integrating PBR conversion in my graphs is, I want to make sure, that my substances and Painter projects fit both PBR models.

I know that I can convert M/R to S/G, but I am not sure what is going on inside that conversion node, and I want to have control over this conversion. So I´d like to do it manually.
I am playing around and starting to get a feeling where to split up M/R and S/G. What I changed in my workflow is, that I start with S/G. Then I make sure the values are inside the PBR range (using DONTNOD chart). Then I convert to M/R.
I guess it´s better to start the conversion from the S/G, as the S/G workflow kind of forces me to use the proper data.

Hi Michael,

I would suggest not relying on conversion. If you want your substances to work with both workflows, I would build them as a different outputs; one for spec/gloss and one for metal/rough. The principles for both workflows are the exact same. In order for the maps to be correct, you have to adhere to the same guidelines for both workflows. The same data must be used. The difference is that its just presented differently in the maps, but its still the same data.

Using material color blend nodes to blend effects, you can work with both workflows at the same time. When you blend weathering effects, you can go through the appropriate channels on the material color blend nodes to propagate that effect to the channel such as roughness, glossiness and specular, metal. For you outputs, you would then have outputs that support both workflows and the color blend nodes will pipe the information to these outputs.

I attached an image that shows a material color blend to add a metal edge wear effect. In the second image, you can see how I can set gloss or rough in the same node. Now, just switching the shader yields the same result.  The material color blend is set to use the channels from both PBR workflows and is fed data from both workflows. I then go through the specific channels on the material color blend to set how the metal edge wear will appropriately effect each channel for the given workflow.  Finally, this info is auto-connected to the outputs.

It's very easy to work like this in SD and create a substance that can output both types of PBR maps. 

Cheers,

Wes


Integrations Product Manager / Training
wes.mcdermott@allegorithmic.com
Twitter: The3DNinja