Specular vs. Emission in Surface Shader?

Reading through the examples for custom lighting in Surface Shaders, there is an o.Emission property that is used in the same manner of Specular. The usual definition for emission is that it ‘emits’. When should emission be used opposed to specular?

(Is there some better docs for what the built-in values for Surface Shaders are? )

As you said “Emission” emits light (i.e. object shines - it doesn’t get darker if it’s not lit by light). Specular just defines how much “specular part of light” should be used.

(these descriptions sound funny even to myself:))

“Specular” influences the intensity of viewer-dependent highlights caused by lightsources in your scene. The “spread”/sharpness of these highlights is influenced by “Shininess”.

“Emission”, on the other hand, is the “self-illumination” of the material, and therefore not influenced by any lightsources whatsoever. If you set Emission to Color.red, your object will be fully-red, anywhere, even in shadows/shades.

They are therefore quite different.

When to use:

Emission is used for glowing objects, illuminated buttons, etc.

We usually set “Emission” to white, if we have a textured plane in camera space which we use for (3D-)GUI elements. In fact, in this case we use a “VertexLit” shader, set “diffuse/main color” to black, and “specular” to black, and “emissive” color to Color.grey (=50% grey; 100% white will overshoot), which has the same effect, but the VertexLit-Shader is rudimentary OpenGL, and should be faster than an arbitrary complex Surface shader, not sure.

Setting the other colors to black and the emission color to “full” 50% will recreate the full texture colors/brightness, no matter where (or if) lightsources are in the scene.