There are many ways to represent a mesh. The differences exist in the mesh
connectivity.
The most basic representation is
triangle soup.
- Separate triangles, each with its own three vertices
- No need to explicitly model triangles – implied by every three vertices

Triangle soup simply stores triplets of
vertices in memory. Every three vertices
represent a triangle.
This approach is exceedingly simple, but has
some disadvantages:
- Many vertices are repeated.
Typically, there are an average of ~2 triangles per vertex, so on
average, each vertex is stored in memory twice.
- For a given triangle, it is not convenient to find neighbouring
triangles or vertices.
- Trying to search for matching vertices may be
tricky due to floating point inaccuracy