quads or triangles

Is there any performance difference between rendering triangles or quads? I heard that triangle are more efficient.


Yes it’s true. The fastest is TRIANGLE_STRIP.
Graphics cards are optimized to render triangles faster.


Some graphics cards automatically turn each quad into two triangles. Plus, there are three problems with quads in general and neigher apply to triangles.

  1. Three points determine a plane so a triangle always has its own plane. You will run into trouble if you try to make a quad where all four points are not on the same plane.

  2. A triangle cannot cross over itself. A quad and any other polygon can. This can lead to problems.
    [\ /]
    [@\ /@]
    [@/ @]
    [/ ]

  3. A triangle is never concave. Although it is legal, it is not recommended to use concave polygons since there are a lot of priveleges this denies you such as texturing.

Some time ago I made a very simple program to check out that.

It turned out that when there are few vertices, quads are a bit faster (GeForce2, never tested on new cards) but, by increasing the number of vertices, the picture changes.
At higher vertex count, triangles became much faster, up to 673% the quads, even if the extra needed vertices.

Keep in mind however, that it was a “synthetic benchmark”, take the results with care.

Think about tri strips, when you are rendering one quad with tristrip you need !4 vertices, 2 quads, !6, 3 quads !8, so lim is going to 2v per quad on higher vertex count Even Frustum culling can be less efficient than switching to tri strip