19
$\begingroup$

Most modern renderers use physically-based materials and their models are often parameterized over roughness. Since this wasn't always the case with renderers, conventional assets often don't have a notion of roughness. Instead, we see "shininess" or "specular power" as a common material parameter.

I understand that there is no exact conversion between the two, but is there a rule-of-thumb / approximate way to get roughness for a material whose specular power or shininess is known?

$\endgroup$
1
  • 1
    $\begingroup$ How about rendering a series of comparison swatches and try to fit a conversion curve? $\endgroup$ Commented Sep 18, 2015 at 6:36

2 Answers 2

15
$\begingroup$

As you already note, there is no clear cut interpretation/conversion for these values. I think it is even much worse: Depending on your BRDF and internal limitations (like having defined exponents ranging from 2-2048) the interpretation is completely different. Like suggested in the comments, it might be the best to render a series with different values and fit a conversion curve until the value looks intuitive.

A few examples I was able to find some blog posts that mention something about that topic:

  • At Dontnod entertainment they use a "perceptual linear distribution". Sébastien Lagarde acknowledges the problem in this blog post and writes a few notes on that.
  • Brian Karis uses a squared roughness values in this Microfacet BRDF overview. This illustrates also nicely how differently roughness is used in different Normal Distribution Functions. Blinn-Phong power is here defined as 2/roughness^4 - 2.
  • Frostbite uses a squared remapping. ie. Roughness = (1 − Smoothness)^2 Details about it and their entire material system is explained in section 3.2 of Sebastien Lagarde's writeup.
  • This blog post suggests to define the roughness for a Beckmann distribution from the shininess alpha as:

enter image description here

$\endgroup$
1
  • 2
    $\begingroup$ I wonder if it will be helpful to plot the various methods on a single plot. For example - I plotted two of your links here: i.imgur.com/YJjIMOQ.png $\endgroup$ Commented Sep 18, 2015 at 17:22
1
$\begingroup$

Quite an old post, put based on the comments here and the posted plot, I fitted a curve leading to the following equation:

smoothness = 0.25 * shininess ^ 0.2

$\endgroup$

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.