Specular Color

Hi all,
Specular on the material editor only accept a constant value, not constant 3 value to set a color.
Is this specular value is to affect the visibility of the specular ?
I don’t really understand it well.

You don’t need specular most of the time. You set the “specularity” of your materials with roughness value, and if you want to have colored reflections, give it a bit of metallic value.

Yea roughness give the result of specularPower+specularIntensity but I wonder what is the real effect of specular.

It multiplies the roughness value and used only with non-metallic materials. It can help with translucent reflections as well but as i said, you dont need to worry about it if you want to get realistic looks.

Ok, so the specular color is always the same as light color, metallic blend light color with base color for specular color.

HLSL code is like that so to understand better :
SpecularColor = lerp(Specular * LightColor, BaseColor.rgb, Metallic);

Spec is basically the index of refraction of a material. The old values are not needed since the new system is energy conserving which means: roughness controlls the shape of the spec reflection and the lights intensity defines the spec power. Most realworld materials have a IOR close to 0.5 that is also the default value for spec if nothing is specified :wink:

I would suggest learning the theory behind pbr to fully understand how it works.
As soon as you got that, things actually get way more easy and fun than it was before :wink:

This is exactly what I’m working to understand more how that works :

The scene has 100 lights using clustered shader rendering.
You can see that I don’t fully understand the PBR equation.
I use the material editor to compare result.
I do that as learning exercice.

EDIT : I didn’t saw this link

As I said…specular in pbr is the index of refraction. To quote wikipedia: The refractive index determines how much light is bent, or refracted, when entering a material.

For example…this is directly tied to the schlick fresnel equation. So if you have a higher ior, things start to have more “spec” or better to say reflection at grazing angles…also it has an affect on the angle itself.

But honestly…you dont need to understand that. You just need to know that “most” materials are around 0.5 and that this is the standart setting…so you are fine. If you would like to go extra fancy with a material…sure, go ahead and use spec 0.35 for chalk. But seriously, I doubt you would see the difference directly popping into your eye when looking at the material. Its so slight, that you “almost” dont notice it.

Of course it can have an effect on extreme materials where the ior is really different than 0.5…but as mentioned, most people wouldnt see the difference anyway :wink:

Edit: If you really want to understand all the concepts…watch this:https://www.youtube.com/watch?v=LNwMJeWFr0U

Its one of the best and easiest explanations I found to date^^

I understand from the paper of unreal that it’s the combination of 3 factor D, F and G.

That give the screenshot I gave, but the result is not correct.
Another question is, PI is really needed in lighting equation ? and why ?

I want to understand because physical material is the new way of doing, phong is out.

I’ve tried the Schlick equation using as specular color :

but on this screen :

The white part is not visible, I don’t understand why.

OK, looks ok about roughness I understand now, the Schlick equation is not easy but give very good result.
The only thing now I don’t understand is the calcule of specular on the lighting and metallic to give this special color.

I searched on the shader code of UnrealEngine to try to understand and I think I found the answer.
You can see in BasePassForForwardShadingPixelShader :

Looks like the answer of specular and metallic values.
All that help to understand all the PBR (physical material).
Since Specular is 0.5 as default :
DielectricSpecular = 0.08*0.5 = 0.04.
for Metallic = 0 the calcule end to :
SpecularColor = 0.04.

I’m interested, how to actually set a specular color in UE4, despite it being physically unplausible?

How to use that ‘engine switch’? Do I have to recompile the engine, or can I just activate it somewhere?

Why would you want to go backwards? Anyhow, metalness vs specular, you can achieve same results:


Are you sure? How would I achieve complementary colors for diffuse and specular reflectance using this?

With a non-metal material, the specular reflection is white. With a metal material, it is colored using the Base Color. Anyhow, I can’t get the specular reflection to be colored in any color I want without changing the Base Color. Am I missing something?

My question is why would you in PBR? Anyhow, Unity5 and CryEngine 3.6 will use Specular RGB/Glossines model if that helps.

Well, there might be situations (as in Fortnite, described above) where an artist might decide to throw physical correctness overboard and go with colored specular on non-metal materials. I don’t need it immediately or something, but I’m just interested in whether this PBR system actually is more restrictive.

With metallic between 0.1 - 0.9, maybe you can fake the effect…

Spec on caucasian subsurface profile skin looks slightly metallic, because it’s slightly peach tinted. It’s extremely frustrating. I would very much like to be able to add a tiny touch of cyan/blue to the spec to counter-act this. I can’t, because coders have decided to hard-wire things to be more “realistic”. The problem is, it’s not as realistic as they think, because they didn’t manage to code all the interactions of light and materials. I’m not insulting them for not being artists, I’m sure they’re great coders and I can’t code. I’m annoyed with them for not leaving me a work-around that has been available to me for the last 20 years or so, in almost every other rendering engine ever, through which I could have made my skin shader that much better.

Or maybe someone here can show me a work-around? to make the specular highlights on skin slightly more bluish?
Maybe use 2 lights, one for diffuse and one bluish for spec? But I can’t find any controls to do that either.

Having no wider option is a bad idea , indeed … no more artistic expression of an alternative way to look at the world. Now it’s all
realistic and nothing else? As far as I know specular color is a very necessary component. Imagine creating material like these.

I completely agree, as an artist trying to making things in unreal 4 I have found many artistic ROAD BLOCKS due to not having spec color. It not only limits my ability to make interesting materials it also limits imagination. And Frankly there are many instances in real life were this is needed for instance a silk cloth that is green in diffuse (albeto) and has a gold spec. Try making that in the current unreal…

1 Like

It would be nice to have some sort of specular color override node, or something like that.