Readablewiki

Triangle strip

Content sourced from Wikipedia, licensed under CC BY-SA 3.0.

Triangle strip is a memory-efficient way to store a connected set of triangles for a mesh. Instead of listing every triangle’s three vertices separately, you give a single, continuous sequence of vertices. If you have N triangles in the strip, you only need N + 2 vertices.

How it works in simple terms:
- The first triangle uses the first three vertices: v0, v1, v2.
- Each additional triangle adds one new vertex and uses the two previous ones, forming triangles like v2, v1, v3; then v2, v3, v4; and so on.
- The order of the vertices matters because it sets the triangle orientations (which direction the surface is facing). This matters for lighting and for back-face culling.

Example: a strip with vertices A, B, C, D, E, F represents triangles ABC, BCD, CDE, and DEF.

Why it’s useful:
- It dramatically reduces memory: 3N vertex indices become N + 2 indices for N triangles.
- It can speed up loading and streaming of mesh data.

How it’s used in graphics APIs:
- OpenGL has built-in support for triangle strips. In older, fixed-function OpenGL you’d use commands like glBegin(GL_TRIANGLE_STRIP) and glVertex*, but that style is deprecated. Modern APIs use glDrawElements or glDrawArrays to render strips more efficiently.
- The order of vertices is important for consistent surface normals. Front-facing orientation is usually determined by the winding order (clockwise vs. counterclockwise) and may affect back-face culling.

Sub-strips and breaks:
- Any subsequence of a strip is still a strip, but starting at a different vertex can change the orientation of the generated triangles.
- Chopping a strip into separate pieces is common because turning a long strip into one perfect strip for a complex mesh is hard (it’s not easy to optimize, and in fact it’s computationally complex).

Degenerate and multiple strips:
- To represent a full complex mesh, you often use several strips or insert degenerate triangles (zero-area triangles) to “jump” to a new part of the mesh without changing the geometry.
- Modern graphics APIs also support primitive restart, which lets you start a new strip without extra degenerate triangles.

In short, triangle strips are a compact, efficient way to draw connected triangles, widely supported in graphics hardware and software, with careful attention to vertex order and the use of multiple strips when needed.


This page was last edited on 2 February 2026, at 05:45 (CET).