Metalness vs. Specularity

I was today years old when I learned that the Metallic and Specular values on a Principled BSDF shader are mutually exclusive.

I picked it up from this video: Exercise 028 Principled BSDF Shader. The full quote is:

It’s worth mentioning that in Blender the Principled BSDF uses a metalness workflow where the Specular and Metallic inputs are mutually exclusive, so if you set the Metallic input to 1 it will assume that the material is 100% metal and will ignore the Specular and Specular Tint inputs.

Meaning if I set the Metallic value to 1, the Specular value is not used at all.

I’m going to assume that the pros out there knew this already, but this was news to me, and I’ve spent the last few years reading anything and everything I could find about PBR metals in Blender.

Obviously, I either missed this information, or it was over my head at the time I encountered it.

This news makes the IOR to Specular conversion node I’ve been using on my metal materials irrelevant. Ooof.

Workflows

I did some Googling which brought me back to this video I’d seen before but only partly grokked at the time: Specular vs Metalness Workflows for PBR Shading in Blender.

It describes the workflows for the two types of materials as:

  • Metal workflow
    Color + Microsurface + Metallic

  • Specular workflow
    Color + Microsurface + Specular

(I presume that Dielectric materials use the Specular workflow.)

So it makes sense that a Metallic value of 1 would override and “turn off” the Specular effect.

Metallic values less than 1.0?

The Exercise 028 video also served up another interesting morsel:

Some examples of materials based on the metal finishes and their approximate metallic values: mild steel 0.05; rebar steel 0.05; structural steel 0.05; 304 stainless steel zero and 316 stainless steel 0.8; 3003 aluminum 0.9; copper 0.9; gold 0.9; silver 0.9; platinum 0.9.

He later offers a suggested Specular value of 0.5 for Chrome, which seems to contradict his point that metals have no specular value, but maybe Chrome is a “finish” and not a metal? My brain is starting to hurt.

In any case, the rule I’d been trained to follow was that Metallic is either 0 or 1, unless you’re getting into NPR stuff.

But I’ve been working on a Cinnabar material, and it doesn’t look quite right unless I introduce a little bit of Metallic. And I’ve been feeling like I was cheating somehow.

But now… I think I have some exploring to do.

I mean, I note that he’s talking about “metal finishes”, so I’m going to have to do some more digging to understand if and how this differs from good old-fashioned “regular metals”, but you can bet your sweet bippy I’m going to put those numbers in the Metallic field and see what kind of Gold and Aluminium and etcetera I get.

Any feedback to confirm, deny, amend, expand or correct any of this is very welcom.

2 Likes

It’s best to keep metalness being either 0 or 1, since the surface will react very differently depending on that.

But say you want to do a metal material covered with dust, it can make sense to lower metalness where there is dust. Or probably to recreate material like this :


Having more or less metalness can help.

Yeah you shouldn’t be enslaved by the tools, the end goal is to have a good image no matter what.
It’s important to understand the theory, so you have a good basis, because sometime things can end up looking weird because you used parameters that are irrelevant to the material you’re doing.
In the other hand we are not scientist modeling light interactions.

To make an accurate material you need to gather a lot of data, and make sure they are translated correctly into blender. You also need to do a correct environment so they are lit correctly too.
That might even not look good because reality while being accurate tends to be boring too.
So a good balance is needed between accuracy and the final result. Unless you value accuracy over visual quality.

In general I start with a base that makes sense and I don’t hesitate to eyeball stuff later to add the finishing touches.
Just like these food photographer do : https://www.youtube.com/watch?v=9k7PJoNAXkk

Also when working on big projects like a movie or video game, sticking to PBR rules helps to have assets that reacts well under different lighting scenarios, you also have more chances that each assets made by different people ends up working together.

When you work alone, and say for one object under one lighting condition, then you have less to worry.
Lastly, these video series helped me a lot when I learned about PBR :

It’s a bit outdated since now we have the principled BSDF, but the overall theory is the same !

Have fun !

2 Likes

Specular value is still used with full metalness, although specular tint appears to be ignored. You can be sloppy and rely on specular to add white specular towards the edges, or you can do it properly and set specular to 0 and control edge tint via some angle based control affecting the base color. Either way, the effect is subtle and not what is going to make or break the result.

Chrome is not a finish, but a metal; chromium (Cr) with atomic number 24. While it is typically applied as a plating, that is the end result you see.

Specular workflow is the only way to achieve some very special dielectrics (with tinted reflections which normally don’t happen), but what is used is generally up to the engine. Metalness require less data stored in images as the metallic channel is grayscale, whereas specular require a separate RGB image to define the specular color.

“Approximate metallic values” - just ignore these, they make no sense at all. Use metallic 1. Unless they have an oxide layer, in which case you’ll just have to judge by what you observe - don’t be a number slave. Cinnabar I have no idea about, but if you feel you need to introduce some metalness against all common sense, then do it. If I had to make some sort of silvery fabric I might just end up trying it myself - obviously the linked jacket isn’t made up of pure metal, it just looks like it.

As far as metals go, they will very often have an anisotropic look due to toolmarks from machining or abrasive polishing processes that tends to go in a specific direction.

3 Likes

chatoyancy

Blenderguru / poliigon had a video talking about how they scan real wood to make materials and apparently the only way to capture chatoyancy is with the metalness, so I think there is a real world reason to have metalness set to something between 0 and 1.

Well, it more the solution they found to solve that particular problem, but that doesn’t mean it’s the proper way.
But whatever works ! It’s just that by activating unrelated parameter you might end up with something looking a bit weird.

Principled BSDF is the port into blender of the Disney principled which is meant to be physically plausible and at the same time allows for artistic controls. So it allows to bend the rules for sure !

Great feedback!

Sozap, that plastic sword material is beautiful. And thanks CarlG for clarifying that Chrome finishing/plating is still 1.0 Metalness.

Honestly, I’ve made a nearly full-time vocation of studying Blender and related 3D topics for the last several years, but I’m constantly finding new information that sends me down rabbit holes that would require a master’s degree to fully grok.

I thought I’d exhausted YT for PBRs, but the CynicalCat videos were new to me. I watched a couple of them through the Metal workflow, and picked up a bunch of tips.

Like factoring the roughness into the fresnel. Makes sense.

IDK if Blender has rectified the Fresnel issues in the seven years since the video above was first posted, but I followed CC’s lead and made a Fresnel Correction group which I added to my Energy Conservation group.

I also grabbed their sample materials from Gumroad, and they still work in version 3.4 and look great.

Corrected fresnel

For reference, here’s the basic Fresnel node at work:

And here’s CynicalCat’s corrected setup:

Of course, the visible difference may not be tremendous on rendered materials, but still…

The node groups

So here’s CC’s basic Fresnel Correction group:

Here it is inside the Energy Conservation group I’ve been working on for a while:

For the specular highlight color I’m using white at HSL 0/0/0.99 for Metals, and for Dielectrics, I lower the HSV Value of the Base Color to 0.01.

And here’s the group plugged into a Principled BSDF to make a bright blue metal shader:

I’ve heard tell there’s a new version of the Principled BSDF on its way, which will likely make my Energy Conservation group irrelevant. But even so, what I’ve learned working on it has made it a worthwhile effort.

In the meantime, I’m going to keep playing with my Cinnabar material, and hope I eventually get it to look almost as good as Sozap’s plastic sword.

1 Like

Ah, sorry didn’t read your post above in full. You are already aware of Principled V2.

I’ve been interested your Quick Metal Materials for some time, and have regularly downloaded the updates. Several times in a current project I’ve swapped out a particular metal material for the updated version. I didn’t know anything about energy conservation, and when you began including the energy conservation setups, I just assumed they were more technically correct and would yield better results.
Recently I came across the video below, and figured I could use some more insight about this energy conservation stuff. What it states, to the best of my understanding, is that these compensations are only really applicable to dialectric materials and metals with clearcoat. And that with fully metallic materials w/o clearcoat, Principled BSDF already handles the energy conservation correctly. Not positive than I understood correctly, I messaged the video creator, and he confirmed that this was indeed the case.
So now I’m somewhat confused as to why the QMMs have energy conserving nodes. I may be misunderstanding how they work though, and was hoping you could provide some more insight.

1 Like

Nice – thanks for this information!

I appreciate hearing that you use Quick Metal Materials. Despite all the downloads, I’ve only heard back from a dozen or so users. And like anyone who makes things, I’m always interested in seeing examples of how they are being used in the real world and in heading feedback and suggestions for how to improve the materials.

So forgive my enthusiasm – it’s just after sundown and I’ve got a fresh cup of coffee beside me – but here’s a novella-length response.

Preamble

Now then… this Christopher3D video is what prompted me to add the Energy Conservation node. I thought I was making an improvement to the metals in my set, but maybe I wasn’t. :thinking:

I don’t have contact info for Christopher3D – unless they’re here on Blender Artists, or have publicly posted contact info, I’ve been trained not to bother folks – so if he has provided you with any more insights, or offered an opinion that the EC group should definitely be removed from metals, I’d be interested to know.

I should clarify that I am not a degreed PBR materials master, but just some dudebro who’s been reading and studying any and all related material I’ve come across over the last few years.

And when I encounter new information or techniques that seem like they could improve the QMM set, I give them a try. If they look good I incorporate them.

It’s often a compromise between new and established info:

  • Standard IOR is 1.45 or 1.52 ?
  • IOR of Gold is 0.47 or 1.35 ?
  • Has the new version of Blender made this or that technique obsolete?

Which is where expert opinions and user feedback become so important, and why they are always welcome.

So, why the EC on metals?

To my thinking, the main appeal of using the EC group on metals was that by using a Fresnel on the Base Color, I would be able to fake a way to include both Diffuse and Specular colors on the metals.

I’ve seen diffuse/specular colors mentioned in many sources on PBR metals. They’re used in Substance Painter, and listed on sites like Physically Based and Refractive Index, but they aren’t paired up when using Blender’s Principled BSDF shader.

I’ve found examples of pre-2.79, pre-Principled BSDF material setups that use both colors, but the math and IOR k and n and so on is a bit more than I wanted to deal with – meaning I still haven’t found a conversion formula that I can grok enough to convert into math nodes – so using Fresnel to mix between the colors, and then using that as the Base Color of a Principled BSDF seemed like a simple, reasonable compromise.

TL;DR: I’m faking a mix between diffuse and specular colors.

I like the effect. If you feel like it looks bad or wrong, please let me know.

Going forward

I’m currently working on a v.4 or v.5 of the Energy Conservation group that will use the Rim Color setup that CynicalcatPro demonstrated on their YT channel. This will give the metals a Base Color (Diffuse), a white straight-IOR Fresnel edge, and I’ll use the Specular color as the Rim Color to give it an extra tint.

Another advantage of the CynicalcatPro setup is that it incorporates Roughness, and as the Christopher 3D video suggests to only use Energy Conservation “when Roughness is 0.3 or less”, this new setup takes that into account.

So far, what I’ve come up with looks WAY better in Eevee than in Cycles, but the work continues.

I’d been expecting that Blender would be including Principled BSDF v.2 in the 3.4 or 3.5 release, and I’d sunset the EC node, but the branch build of the preview is no longer available, so I’ll need to dig into the dev channel to see if there are any status updates.

So it looks like the EC group will be around a while longer.

Man, a response this long and specific to QMM should probably be on the QMM thread instead of here, but I’ll just post a link to this on there.

1 Like

These are “established info”? Where? Why would gold 1.35 be close to water (1.33) than the dielectric fallback value of 1.45? And 0.47? Without going into complex IORs, think about what IOR<1 actually implies. 0.47 is a reciprocal, 1 / 2.1277, almost like looking from inside diamond to air, snell’s window and all that.

“Energy conservation node” doesn’t really make sense for a manually setup roughness controlled fresnel, as that will survive the white furnace test. Principled in its current state will not, although I’m not sure how important it is if using reasonable albedo values.

Ah yes, you’re beginning to feel my pain here. I rely on experienced hands like yourself to correct the bad information I get on the internet, so please continue to do so.

Coming to all of this without benefit of a tenured professor to rely on for “the definitive answer” to questions like this, I’ve had to drill through whatever I can find on Google and YouTube and StackOverflow and Chaos.com and Joey Lenz and so forth.

And some of this info gets confusing, even where there is consensus.

For example, when I was first learning how to make a Gold material – and wanting to put the correct values in all the fields of this new and mysterious Principled BSDF shader thingamabob – I Googled “IOR value of Gold”.

Refraction Index of Various Substances for 3D modelers, A complete IOR list, Pixel and Poly’s IOR LIST, the IOR_reference add-on and a few other sources all report it as 0.47, so that’s what I used for a long time. Seemed fine.

But when I started using a Fresnel as a color mix, an IOR of 0.47 produces a big, fat, hard-edged dot in the middle of the material, rather than the smooth edge blend we all expect.

So I went looking for better options. Refraction Index of Various Substances for 3D modelers suggested 0.166 and Filmetrics said 0.18104, which are both WAY in the wrong direction.

So I examined the Gold shaders that older and surer hands have made, and read more and watched more. Despite all these varied IOR values, the big story seems to be that, since metals don’t allow light to penetrate, IOR is irrelevant. Just use the default.

Okay, and the Blender default is 1.45, so I’ll go with that, fine.

But then I come across Christopher3D’s really cool videos about Energy Conservation, and he recommends that the default IOR value should actually be 1.52. :sweat_smile::man_shrugging::sob:

I see numbers all over the place, man. The IOR of Silver is 0.18 on this list, and 1.35 on another. And BTW, the IOR of Silicon is 4.24. But isn’t Silicon a Germanium/Tin type metal, and shouldn’t metals use the default, which is 1.45? Or is it 1.52?

And in the end, despite all these varied IOR numbers, in most cases the difference in the rendered results are hard to distinguish.

So what can I do but accept consensus where I can find it, be open to new information when I find it, and just try to make sure that while my materials may or may not be scientifically accurate, then they look good?

Or at least interesting.

And again, expert advice is always welcome, so keep it coming. :+1:

1 Like