First, triangles require more vertices to be processed by the geometry pipeline, so depending on the number of vertices, triangle strips are about 3 times faster in geometry processing. (For example 102 vertices result in 34 independent triangles, but 100 triangles as a strip.)

The usual and simple way to render meshes is one strip for each row or column.

An advanced method would be to add some vertices for “null-triangles” (triangles which don’t produce fragments) at the end of each strip to take a u-turn, fix the winding order and process the whole mesh with one single strip.

Agreed, sounds complicated , so I recommend the row-by-row approach. The inner vertices have to be issues twice in all cases, so it’s just a question of calling overhead and code readability.

Reading the question once more, no, the order of vertices in a strip for one row of an N*M mesh is very straightforward. It’s always: 1st vertex from nth row, 2nd vertex from nth + 1 row, and so on for the whole row.

[This message has been edited by Relic (edited 07-24-2000).]