Download

Specular color

Hello,

How can I change the specular color? As always, specular highlights look white. But I want the specular color on all surfaces to match the directional light color.
Example:

Thanks.

Once the surface color is over exposed it’s white, that’s how cameras in real life and UE4 works. You can see the yellow tint on the specular, where it blends from white to the diffuse. You can tweak the eye adaption in order to get less over exposed areas.

Specular color is defined by base color for metals. For non-metals it is always white. That is how it works in reality, in most cases.

Is the a way to add color to the specular highlights for a non metal material? like overriding it.

It would be possible by modifying the shading model. Probably by faking it via emissive, or as post-process effect is also possible, but it would be quite dirty solution.

What is forcing you to have colored specs on non-metals though?

I wanted to keep the directional light color white, but because I have a yellow-ish bloom that makes the sun look yellow-ish I wanted the same color for my specular.

For non metals specular color is just color of light. To add specular color for your non metals you would need to add that info to gbuffer. For that you would need to make changes to engine code. If you just always have single light source you could just hack global specular tint color to shaders.

If you still need this, I just put together a shader that supports colored specular together for an iridescent material I needed. I could try and get the changes on github for you.

maybe this can give some additional info as well…its about the Arnold render engine…but this piece of documentation gives some indepth info about speculars within a PBR workflow…

https://support.solidangle.com/display/AFMUG/Specular

Oh I never said it was the correct thing to do, I even called the shader “Break PBR” so anyone using it does so knowingly they’re not following the rules of PBR. Sometimes though you need to bend the rules a little bit for a certain effect or look when the engine’s lighting or shaders can’t get what you want (iridescent materials being a prime example). It’s never the “correct” thing to do, but it doesn’t hurt to have options.