Triangles versus Quads

I am importing data from an obj model.

It is stored as quads.

Is there any performance hit to sending batches of GL_QUADS versus GL_TRIANGLES?

I want to avoid having to re-triangulate the faces.

BTW - I am using VBO, if that matters.

Thanks for any feedback…

You’re using VBOs, so presumably you care about vertex cache coherence and are using indexed primitives ordered appropriately (for example, using this).

For a regular grid, unstripped QUADs vs. unstripped TRIs, seems QUADS would actually be a tiny bit better. TRIANGLES = 3 indices/tri, QUADS = 2 indicies/tri. However, in practice I’ve never been index list bandwidth limited, and ordered the same, you should get the same vertex cache performance, so probably doesn’t matter much. One related plus for QUADs – you can fit more triangles in a single batch using unsigned short indices (fast path), which may mean fewer batches.

Try both and see. Easy test.

Thanks - That is exactly the information I was looking for…

…if you’re limited by the number of indices and not the length of your vertex arrays.