Standard Shader (Specular) gives incorrect overall shimmer to object

Hey guys,

I’m using unity 5 beta (standard spec shader) and have a rock model with a diffuse and spec map. The spec map is mostly black (100% black) with some thin lines of shine on the rock edges.

The problem is that no matter how I treat the shader the rock always has a subtle white shimmer/halo around it in the areas that aren’t meant to be specular. The only way that removes it is to make the ambient source a color and not a skybox, but then it removes the specular altogether.

Is there a way to make sure its ONLY specular where its defined on the map?

Any help would be appreciated.

I had similar problems, and for me roughing up the non-specular areas helped quite a bit.

Rocks are pretty porous, and scatter light quite dramatically, I have a feeling your smoothness might be too high in your non-shiny areas.

I just dont understand it though, whats the point of the map if the spec is applied in other spots where it shouldnt be (completely black on the map)?

Seems like you don’t understand PBR very much.

You don’t just have a spec map. You have a spec map AND a so-called “roughness” map. The specular map controls the specular for surfaces facing straight into the camera. However, specular always approaches 100% on the edges (fresnel effect). This happens in real life, too! In fact, this bears repeating - everything has fresnel.
However, most of your specular detail does NOT go into the specular map. Actually, in your case the specular map should hardly deviate from 4% greyscale fill. Most of your detail instead goes into the roughness map. Essentially it defines how rough the surface is - the more rough the surface, the more the specular/reflection component becomes diffused and blurry. The less rough the surface, the more the specular/reflection component becomes sharp. Basically this is your “shininess” value. Rocks should be very rough.

Thanks Phobic,
If I have a spec map (mostly black) I can only insert it into the ‘Specular’ of the standard Spec shader OR I can insert it into the ‘Metallic’ of the Standard shader (this removes the Smoothness slider). Either way it gives me the automatic fresnel I’m trying to avoid.

Where am I meant to plug it in?

It even appears that the legacy shaders do not have a diffuse and specular slot. Should I make a rough fractal noise image in the non-specular areas and pure white in the shiny parts and slot it into the Standard Shader?

I’m looking for a barebones diffuse and spec material.

The smoothness/roughness map goes in the alpha channel of the specular texture :slight_smile:

“Barebones” diffuse and spec is pretty much a thing of the past (unless you go with Legacy Deferred Shading I think). PBR is the future. All hail the new PBR overlords.