The Documentation says that the roughness input is “microfacet roughness of the surface for diffuse and specular reflection.” and that the specular input is the “Amount of dielectric specular reflection.”
What I don’t really understand is which one to adjust to get a better reflection and when. How do they interact with each other?
If you google “PBR Guide” you’ll find the handy two-part guide to PBR material put together by Allegorithmic. Specular is normally left at default unless it’s for a dielectric material whose specular level falls outside the normal range. Stuff like gemstones and the like.
It’s effect is fairly subtle in most cases.
EDIT: Tweaking Roughness will give you control over reflections. Turn it down for sharper, clearer reflections. Don’t forget to turn metallic up to 1.0 if it’s a shiny metal object. Adding a suitable texture as the input to Roughness can help a lot too - it get’s rid of the perfectly even reflection.
So if I had a texture that represented the amount of paint and grime on a surface, would that be overlaid on the roughness texture or the specular texture?
Roughness. I had a rummage around to see if I could find an example. In this one its a metal object and I’m using an image to control roughness. Specular will have no effect at all if metallic is set to 1.0 anyway.
This shows the differences between Roughness and Specular (and Metallic chucked in for good measure). The Specular row has Roughness at default (0.5) and the Roughness row has Specular at default (0.5).
If you turn up matallic all the way you can see what roughness does: it’s the difference between a mirror and something like lead or pewter. Non-matalic materials with very low roughness include smooth plastic or polished wood which you can see a bit of a reflection in.
Yes, roughness is a good thing to put a smudge map on if your dealing with a very smooth surface.
What i keep finding weird with the workflow. Is that in other engines specular and roughness work together. I’m used to set a reflection map for how glossy it shoukdnve and than a different roughness map to have rough or glossy those parts in the specular/reflection part are.
This over approach, feels so very different. My old engine work different in terms for the roughness. There reflection was from 0-1, where black is zero reflection and 1 is 100 reflection. The roughness workthe other way around. From 1-0. Where black is zero roughness and white is 100 roughness
I have this doubt for a lot of time and I found best way to describe the roughness and specular somewhere in reddit so that everyone can understand. roughness blurs the reflection meanwhile specular controls the reflection strength.
I disagree. Specular is not used for gemstones, we should use the base IOR for that. Specular is for “artistic use”, but does have uses:
Accounting for overall cavity and porosity; if you don’t actually use a designated cavity map to lower/null specular locally, you can lower the value. Pores and cavity are microscopic features that “traps light” and prevent it from bouncing back out. It might be visible in the albedo as a darker color. E.g. the dark pores in the endgrain of wood, but not due to the color variation of the wood itself.
Damaged areas, such as deep cuts in wooden cracks. It doesn’t matter how you light it, it won’t reflect back specularly.
Faking shadow gaps, by accounting for them on simpler geometry using textures. Be it as a design element or something as simple as gaps in floor boards (on a simple plane). How much you reduce specularity by depends on the “depth” of the gap.
Accounting for reflective or anti reflective coating. If you want to account for an associated tint change as well, it gets a bit more complicated.
If I get an AO map and it makes sense, I may use it (after remapping) as a specular map. Specular and (“ambient”) lighting is where it made sense for game engines; the cavities (indicated by AO) would indicate where light would “get trapped” and specular contribution lose energy.
I think roughness is overused. Specular or the IOR may change as well if the material is made out of a few layers like for example if object is covered by dust or dirt or rust, the dust and dirt will be a completely different materials and may have less reflectivity in general, it might be completely diffuse or just different kind of glossy so it makes sense to have different reflectivity altogether, but for some reason often people like to control only roughness as a rule. Adjusting “specular” or the amount of glossy component should be a completely normal thing to do with textures. Sometimes people make too many rules for themselves in my opinion…
To compute this value for a realistic material with a known index of refraction, you may use this special case of the Fresnel formula: specular=((ior−1)/(ior+1))2/0.08
For example:
water: ior = 1.33, specular = 0.25
glass: ior = 1.5, specular = 0.5
diamond: ior = 2.417, specular = 2.15
Since materials with reflectivity above 8% do exist, the field allows values above 1.
Why is it important for you to make such distinction?
Reflectance curves for non-conducting materials look something like this:
I think the formulas are not that important, one just needs to keep in mind we want to control that curve somehow for glossy reflection. The curve itself would be “specular”, roughness controls how scattered the light is, how blurry the reflection gets so with IOR and IOR level we basically control the curve in some arbitrary artistic way, however it works. In PrincipledBSDF there is no real intuitive way to control the curve, because you might want to just lift the start of it and leave the end as is making the whole material more or less reflective at 0 facing angle but when you start changing IOR or IOR level the whole curve moves in non intuitive ways… It doesn’t matter. One can construct something more convenient like this:
But why bother… Just play with it and see what looks better and closer to reference… It’s not like it can be accurate. The point is that you probably want to control roughness AND specular(whatever specular means these days…since historically it would probably just mean the amount of mirror reflection as opposed to diffuse, but now it probably means the whole curve somehow…), not just roughness, like so many people do.
This distinction IOR/Roughness is important: the curve you are showing and using applies to an object in air with zero roughness (IOR = 1).
The Fresnel response (IOR) depends on the microfacets; when roughness is zero, the microfacets are parallel to the object’s surface. As roughness increases, they deviate randomly.
The IOR value also depends on the environment; if the object is in water, the corresponding curve is no longer IOR = 1.5, but IOR = 1.123.
A smooth layer of water (IOR = 1.33) on a rough surface with an IOR of 1.5 is a semi-transparent layer of 1.33 on a rough layer of 1.123.
And if instead of water there is an epoxy layer with a refractive index (IOR= 1.5), you will no longer see any reflection from the rough layer.
I have nothing against the artistic method, especially if you need to work within the limitations of Cycle/EEVEE, but you also need to be aware of those limitations.
No. The IOR is the IOR now. We use specular to modulate the IOR. So we can set whatever actual IOR is there, then use specular to go below or above, say to mimic cavity/porosity, cracks, shadow gaps, or coatings. And in a texture friendly 0-1 range. Mapping IOR is as unfriendly as it gets.
Before Principled got the IOR value, indeed specular was the only control we had, as an offset to a fixed IOR of 1.5.
Now with an actual IOR value we can do IOR matching for substrate when a coat is applied. I use New Base IOR = max(Base IOR, Coat IOR) / min(Base IOR, Coat IOR). If both are equal, the base reflections go away (think silicone balls in a glass of water go invisible).
It’s fine. It’s the most visible characteristic on an ideal surface. And we tend to simplify with ideal surfaces like all the time.
Agreed. Much of the opposition comes from the original disney label “artistic control”, indicating a diversion from reality. Which isn’t the case. Can’t remember who, but one game engine even considered renaming it to cavity and inverting the effect; more cavity → less specular.
Not really. Roughness is the normal thing to do, as most surfaces are close to ideal. Layering aside, which we don’t have yet; we can mix shaders but we can’t do it “properly” (rough fresnel and exit IOR).
It’s crazy, but I have yet to see a good tutorial on what Principled is, what it can do (easily), some of the bad choices (to me), and in depth explanations on what ever control does try to account for.
Nested dielectrics is about volumes. In this context it’s about a simplified single boundary, and yes, we can mimic that if we want. Try the formula above, and verify that it works.
Example: This wooden floor pbr texture. Obviously there are shadow gaps between the boards, and simply doing those with roughness won’t be enough. That’s a problem with these kinds of automated image → PBR set tools. So here I might use AO/Displacement to control specular. Probably a combo, using AO as a mask for displacement, reducing the specular also in the knots (which have more cracks).
Not from my experience at all. If you always work from reference, you start to see… I don’t like Principled BSDF, but to be honest, maybe it’s possible to work with it and coat layer, but then if you look closely, there are effects where you might want multiple glossy layers…
That’s what I am saying - it shouldn’t be. That’s a weird rule to have. That’s assuming you are making the same material with different properties, while in reality people are making layered materials all the time like dirt or dust on something. 2 completely different materials in one - it makes sense all material properties might be different so it makes sense to use “specular” maps as well. But you are right:
What is specular even supposed to be in Principled? You might say that it’s IOR level, but not really, you can only control the curve by adjusting both: IOR and IOR level in PrincipledBSDF. Because what if I want to raise reflectivity of 0 facing angle:
Or maybe in those cases have coat maybe… Anyway, even without that it makes sense to want to adjust level of mirror reflections per layer of the material. And this rule of controlling only roughness is getting in the way big time here. It’s not a smart rule…
I think I didn’t draw the line right. You might want to adjust just the angles closer to 0, leave the rest as is(visually make the material more reflective in general, but not too reflective at sharper angles)
More like this I suppose:
And this happens quite a lot. At least that’s what my eyes see in reference. Not that I read some table of IOR values. There are no tables you can use for pretty regular materials… This scientific approach… That gets in the way as well…
Actually, it is called IOR level now, I checked. It used to be Specular, as that was the Disney term, might still be.
I definitely agree. However, knowing the science, at least the basics of it, is key to understanding when to deviate from “lookup numbers”. Matching what you see it a fundamental principle, and many chose not to use “artistic control” to get there.