Triangle
strips form a strip of connected triangles.
To
maintain a consistent winding, the vertices are
not
traversed in the order specified; rather the pattern is
- v0, v1, v2
- v2, v1, v3
- v2, v3, v4
- (and so on)

The
advantage of GL_TRIANGLE_STRIP
compared
to GL_TRIANGLES:
- After the first triangle, specifying the
next triangle only requires one additional vertex. This results in less data to store and
process.
- If there are N
triangles, GL_TRIANGLES
requires 3N
vertices, whereas a triangle strip of N
triangles requires only N+2 vertices.
On
the GPU, a set of vertices are stored in a buffer. When
one calls
glDrawArrays with
GL_TRIANGLE_STRIP, three vertices are rendered as a triangle.
glDrawArrays(GL_TRIANGLE_STRIP,
0, 4);