Shading is the process of altering the color of a surface, different shading models capture the process of light reflection on a surface, these models use the following variables in the computation

• $$\mathbf{ray}$$ (ray) - a ray emitted from a pixel, defined with an origin ($$\mathbf{ray_{origin}}$$) and a direction $$\mathbf{ray_{direction}}$$
• $$\mathbf{p}$$ (intersection point) - the intersection point of the surface and $$\mathbf{ray}$$
• $$\mathbf{l}$$ (light direction) - a unit vector pointing from the surface towards a light source, computed by normalizing the vector between the intersection point $$\mathbf{p}$$ and the light source position $$\mathbf{l_s}$$

$\mathbf{l} = \frac{\mathbf{l_s - p}}{\norm{\mathbf{l_s - p}}}$

• $$\mathbf{v}$$ (view direction) - a unit vector pointing from the surface towards the place the ray is emitted from, it's computed by normalizing the vector between the intersection point $$\mathbf{p}$$ and the ray origin $$\mathbf{ray_{origin}}$$

$\mathbf{v} = \frac{\mathbf{ray_{origin} - p}}{\norm{\mathbf{ray_{origin} - p}}}$

• $$\mathbf{n}$$ (surface normal) - a unit vector perpendicular to the surface at the point where the reflection is taking place
• other characteristics of the light source and the surface depending on the shading model

References