The Specular lighting possibilities in Unity 5b are off the hook! I am still discovering, but I thought I’d share some interesting research that is yielding some awesome results:
This is my understanding and research. Gaining this “perspective” has allowed me to create exactly the effect I’m looking for in the context of specular highlights.
My perspective is the map defines how each pixel responds to (reflects) specular light. The result is a combination of all the lights contributing to specular “limited” by the value in the map. Black reflects nothing, while white reflects 100%. So a 50% gray map will transmit (reflect) 50% of the specular light incident on the surface (from all contributing lights). Your view angle and the angle of the light incident of the surface obviously effects your final “view” of the surface.
In Photoshop, I found I can use the Levels Adjustment (for a given specular map) to discover and control basic specular properties:
Output Levels (high and low sliders):
set low to make darkest value in map lighter than black, yielding some specular for every pixel
set high to make the lightest value in the map darker than white, yielding less than pure specular for every pixel. This is a GREAT way to make the overall surface duller or limiting how “hot” the highlights are.
Input Levels (high and low sliders):
set low values greater than 0 to make surface duller
set high values less than 255 will make shinier
You can also adjust the mid-range to push all the values toward black or white while still observing the output levels you set.
Taking this approach allows me to add specular highlights very subtly, being able to dull down or gloss up a surface with a procedural approach. For instance, I can (too easily) get cement to look like it incorrectly has puddles of water everywhere (white areas in specular), or now I can set the input low to 16, giving some specular to every pixel and “clamp” the output high to 180 and the cement gets dull with no puddles. I am no longer afraid to “mess up” a specular map