A Surface shader is applied to the surface of an object and is used to model the optical properties of a material. A Surface shader is responsible for calculating the amount and color of light reflected in a particular direction, based on the properties of that surface. It does this by summing the influence of incoming light contributions from the scene while taking into account the properties of the surface.
A Surface root brick can be added to a Material or Camera type shader. In a Material shader the values are applied in the context of the surface that the shader is appplied to, or it is said to be “local”. When used in a Camera shader, the values are applied in a “global” context, that is to say that it is applied to any surface that does not specify its own shader.