Chapter 3. Vertex Shaders
Vertex shaders are responsible for transforming the incoming geometry into something suitable to be rasterized, according to the rendering pipeline laws. In order to make this work, a vertex shader's inputs and outputs must be very well defined.
In this chapter we will see how the inputs must be prepared and how we can compute the outputs. Also, we will talk extensively about the operations we are allowed to perform.
A vertex shader executes once and only once for each vertex sent to the GPU. Inside a vertex shader, you have access to all information about that vertex, but you can't access the other sibling vertices of the primitive that is being processed.
It doesn't matter for the vertex shader which type of primitive and how you had arranged it before sending it to the GPU (indexed, non-indexed, interleaved, non-interleaved, VBO, VAO, and so on).
So, in the end, a vertex shader is a "give me one vertex that I'll transform for you" machine, and nothing else. Things...