18
$\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$
    – joojaa
    Sep 18, 2015 at 6:36

2 Answers 2

14
$\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$
    – ap_
    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$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.