Correcting Blenders Roughness Value

For a long time I have witnessed some inconsistencies with Blenders Glossy shader, namely its roughness value. It always seemed weird to me, that there is such a high increase in roughness from value 0.0 to 0.1, as is seen here.

Glossy shader Blender Raw

So most of the time I only used values in that range. But with the recent push in PBR shading I wanted to use the according textures within Blender to get easy realistic results. But the Glossy shader prevented an easy use. The look was always off. Here is a comparison to glossy values in a PBR shader:

In a PBR Shader the Glossy values are distributed linear, which is in line with its linear workflow. So it is obvious, that Blenders Roughness-Value distribution is not linear. It looks more like this:

value-roughnessThis is also how images are gamma corrected to be displayed on monitors. This read is very helpful to understand what is going on and why: .

So, one would think, that Blender wants to have a linear range of grey values to determine the roughness, but it actually wants values, when corrected according to the above curve will result in a linear Value-Roughness correlation. So what can we do to get a more intuitive control over the roughness value? And how can we use glossy textures resulting from a PBR workflow, e.g. from DDO (

Since a Glossy Texture is just an inverted Roughness texture, both with linear greyscale values, we can easily use a glossy texture for the roughness input. But to account for Blenders glossy roughness calculation, we have to recalculate each value in the texture. This is easily done with a math node. Here is the simple PBR shader I created for myself, with corrected roughness (top left):


This is what we are doing:

Value CorrectionDoes this work and give us better results? Here is a comparison I did with different roughness values. At first I used a color ramp to correct the values. Note, that even the color ramp node in Blender, even though it says it is linear, in fact is not. The results with a corrected color ramp is the same with the power node:

Comparison Roughness values

As we can see, we get a better and linear distribution in roughness values.

In Review: Blender doesn’t use linear values for its roughness setting in the glossy shader. We have to correct for that in recalculating the input values. The result is a linear distribution in roughness values.




Comments are closed.

%d bloggers like this: