18
$\begingroup$

I'm trying to understand how the new Principled Shader in 2.79 works, so I can make a video tutorial on it.

I get most of it, but a few things have me confused, and there currently isn't much documentation for it.

  1. Since most dielectric materials have an IOR of 1.45, is the default 0.5 value for Specular the correct value?

  2. What does "Sheen" actually do? I've read that it provides an "additional grazing" component useful for fabric. But what does it actually do? Is it adding an additional white fresnel component for the color channel?

  3. Why is Sheen Tint 0.5 by default? Just looks odd since most values are 0, yet this is 0.5. Just curious since it doesn't do anything until Sheen is turned on anyway.

  4. Why does it use Roughness for the specularity, but Gloss for the Clearcoat? Their only difference is that they are opposites of each other, so it requires extra mental effort to think before changing it. Is there a reason for this that I'm missing?

  5. What are some practical situations where you would want a different clearcoat normal? I can only think of situations where you'd want a smooth clearcoat, like metallic paint or carbon fiber. Is there any other reason for wanting bump on a clearcoat?

$\endgroup$
  • 6
    $\begingroup$ This may be useful if you haven't seen it. $\endgroup$ – Timaroberts Jun 19 '17 at 8:16
  • 4
    $\begingroup$ There already is a good tutorial: youtube.com/watch?v=jcLwBy3eBh0 $\endgroup$ – brockmann Jun 19 '17 at 8:44
  • 7
    $\begingroup$ Does the person who answers get credit in your video tutorial? :) $\endgroup$ – X-27 the fluffy unicorn Jun 19 '17 at 15:29
  • 3
    $\begingroup$ haha sure thing X-27 :) $\endgroup$ – Andrew Price Jun 19 '17 at 23:56
18
$\begingroup$

Most of these answers can be dug out of the paper linked by timaroberts

  1. The default specular of 0.5 corresponds to an IOR of 1.5. See section 5.4 of the paper:

In place of an explicit index-of-refraction, or ior, our specular parameter determines the incident specular amount. The normalized range of this parameter is remapped linearly to the incident specular range [0.0, 0.08]. This corresponds to ior values in the range [1.0, 1.8], encompassing most common materials. Notably, the middle of the parameter range corresponds to an ior of 1.5, a very typical value, and is also our default. The specular parameter may be pushed beyond one to reach higher ior values but should be done with caution. This mapping of the parameter has helped greatly in getting artists to make plausible materials given that real-world incident reflectance values are so unintuitively low.

  1. (cont) Note that this is different from PBR spec/gloss shaders, which directly map the incident specular (the 0.0 - 0.08) values mentioned in the above paragraph. "Specular" outputs from software such as Substance should NOT be connected to this input, they contain different data entirely. Cycles' fresnel node uses a default IOR of 1.45 instead of 1.5, so it will have a slightly different look by default. Both 1.45 and 1.5 were chosen for being nice round numbers in the rough ballpark of most dielectrics, so neither is necessarily right or wrong as the default. Worth noting the viewport shader in Substance does not allow editing of this setting and just locks it off at 0.5, so if you want to match Substance, you should not modify this value.

  2. See section 4.5 of the Disney paper. It pushes up the specular component at grazing angles to approximate light interacting with cloth fibers. It adds some extra off-angle sheen similar to Cycles' velvet shader

  3. Since the light diffusing through cloth will pick up the color of the cloth, there's an option, sheen tint, to tint the extra spec with the base color. Since this is useful in many cases, it defaults to 0.5 so it is auto-enabled when sheen is enabled.

  4. To be honest, I have no idea why this was done. Some other PBR shaders, such as Arnold's aiStandardSurface, still use roughness for clearcoat. Likely it made sense to someone at Disney working on the shader and they just ran with it. They didn't bother to record their reasoning in the original paper that I can find.

  5. The paper mentions they used clearcoat normals to get some floor sparkle effects in Wreck It Ralph. Also, since the clearcoat normal is independent (to allow things like carbon fiber as you mentioned), you still need some ability to set it when you DO want your base normals to also apply to the clearcoat. In this case you aren't really applying a different normal, you'd just connect the same bump/normal node to both inputs, but you need the separate input so you have the option to NOT apply the bump/normal map to the clearcoat.

$\endgroup$
  • $\begingroup$ Thanks! That's extremely helpful. "this is different from PBR spec/gloss shaders, which directly map the incident specular (the 0.0 - 0.08) values mentioned in the above paragraph." By this, do you mean a typical specular workflow, where a spec map is used to show which parts of the material are reflective/non-reflective? On a related note, where should a reflection map be used in the Principled Shader? Or is it just not applicable to the Metalness workflow? $\endgroup$ – Andrew Price Jun 19 '17 at 23:50
  • 1
    $\begingroup$ The PBR "specular" map is different from classic diffuse/specular. Classic spec map just defines reflection intensity. A PBR-style spec map defines IOR itself for each color channel. Reflection maps are not used with the metallic workflow, although sometimes it might be useful to stick them on the clearcoat or specular channel if you need some extra, non-physical control. $\endgroup$ – JtheNinja Jun 20 '17 at 1:44
  • $\begingroup$ To complement J's comment above somewhat, have a look at Mike Pan's car paint brdf blog.mikepan.com/post/137759885931/…. Even more specifically, in the real world, look at the area under your car door handle and see what your nails do to the clearcoat. $\endgroup$ – iKlsR Jun 20 '17 at 2:35
4
$\begingroup$

1 to 3 seem to be covered everyone else's answers but after reading through them, I maybe be able to provide an answer based on logic reasoning for questions 4 and 5

So background I have a degree in product design and development and finishings is something that I did a bit of works on. Seeing as we are talking about a physically based shader then it's only fair we look at it from real world point of view instead of just cgi (Which btw I'm still getting used to the terms and what they do so bear with me)

  1. Roughness for specularity makes sense because what ever is under the clearcoat will have varying dialectic properties where as clear coat is almost like metal it's 100% gloss in the real world clearcoat would be something like lacquer or varnish only time it wouldn't be 100% gloss is if it's got surface inperfections or it wasnt applied properly in the first place again surface in perfections.

    Think of it as a varnished table the clear coat would be noticeable as it will give the table better glossy look then an unvarnished table which will have the diffuse as well as a bit of its own gloss.

  2. A different clearcoat normal would work great with your surface imperfections such as a scratch in the clearcoat layer e.g. scratched lacquer on a car or scuffed varnish on a table it would have a noticeable bump but not nessacerly one that effects the material under it ...in real world terms hopefully it will work in cgi

I'm going to go away and try a few experiments with this and will send them to you via Twitter or Facebook

$\endgroup$
  • 10
    $\begingroup$ Try to update your answer here please if possible as well, that way your research can help others in the future. $\endgroup$ – iKlsR Jun 19 '17 at 22:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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