Most of SPRAY's geometrical objects are so-called 'Interface objects' which means that their surface may be covered with a user-defined interface. The interface determines what happens to rays that hit the surface. You can select from some simple pre-defined interfaces and from (in general more complicated, but also more useful) user-defined interfaces.
These interfaces are implemented at present:
•Perfect absorber (pre-defined)
•Perfect mirror (pre-defined)
•Ideal diffusor (user-defined)
•Arbitrary layer stack (user-defined)