A vertex shader is a graphics processing function used to add special effects
to objects in a 3D environment by performing mathematical operations on the
object's vertex data. Vertex data refers to data of the points along the surface, at
some specified precision (and not just at the vertices of the defining polygons!)
Each vertex data is defined by many variables. For instance, a vertex is always
defined by its location in a 3D environment using the x-, y-, and z- coordinates.
Vertices may also be defined by their normal vector, color, texture, and lighting
characteristics. Vertex Shaders don't actually change the type of data; they
simply change the values of the data, so that a vertex emerges with a different
color, different textures, or a different position in space, and is rendered as such
on the screen.