Jason Gregoryβs Gaming Machine Architecture has the answer to your question. Here is what he says:
The easiest way to define a grid is to copy the vectices into groups of three [...] This data structure is known as the Triangular list. [...] You probably noticed that many vertices were duplicated, often several times [...] For this reason, most engines use a more efficient data structure, known as an indexed list of triangles
The idea of ββindexed triangle lists is to store vertices in a separate vertex buffer and indexes in a separate index buffer.
In the same chapter, it is also recommended to use triangular stripes ( GL_TRIANGLE_STRIP ) and fans ( GL_TRIANGLE_FAN )
A tutorial on indexing vertex buffer objects can be found here.
user500944
source share