# What is the technical difference between an Ngon and a bunch of Triangles?

I read somewhere that Ngons were nothing more than triangles masked as an Ngon.
Some testing reveals this is not true, at least to some extent.

Here are two sub-surfed cylinders, one with an Ngon, the other with a Triangle Fan.

The things that look like 6 sided Ngons in the Triangle Fan example are really quads, and the cap on top is really a lot of tris:

As you can see, they are definitely different, but what is the difference technically?

• in the first example there are still 6 sided ngons, the ones directly adjacent to the cap at the top. Jul 6 '13 at 21:25
• @zeffii those are quads, I checked in edit mode.. I guess that is some error with object mode wire frame view?
– gandalf3
Jul 7 '13 at 2:04

This question is very generic - but you give a very specific example (Subsurf) which happens to treat ngons differently to many triangles (to be clear - differently to a triangulated ngon).

The answer is something like ... it depends: each modifier, tool, export-format and rendering engine can choose to use ngons / quads / triangles - differently. There are no fixed rules here, some tools triangulate internally to perform their calculations, others are able to handle ngon data.

Here are some general rules that mostly apply.

• Rendering typically converts everything into triangles.
• For OpenGL display, quads/ngons are also triangulated.
• Some formats (OBJ, FBX for example) support ngons.
• For Blender's tools - ngon support varies, but most tools support them.

Note that even in cases where ngons are triangulated, the normals from the ngons/quads are often used. So you may get a better looking model when smoothing is applied on the non-triangulated mesh data.

• subsurf actually doesn't treat tri/quad/ngon differently. See my answer. Jul 7 '13 at 12:38
• So it seems the answer to my question is, Ngons themselves are really ngons, but some tools/formats/etc. don't support them and they will be triangulated..
– gandalf3
Jul 7 '13 at 19:11
• @Alistair Buxton, Think you misunderstood, added some clarification. Jul 7 '13 at 23:03

Subsurf does not treat tri, quad and ngon differently:

In each case the result follows exactly the same pattern:

1. Every edge is subdivided into exactly two edges.
2. Every face is subdivided into n faces where n = original number of vertices. Every new face is a quad.
3. A new vertex is created at the centre of the face. Every new face shares this vertex.

The difference in topology of the two results you showed can be more easily seen if we use simple subsurf (which does not smooth) and then apply the modifiers and look at the wireframes:

The result from subdividing the triangle fan has the extra edges (selected.) These extra edges are the result of subdividing the radial edges which connect the central vertex to the outside edges.

This does not demonstrate any fundamental difference between tris and ngons, because we can produce the same result using only triangles:

On the left is a triangle fan composed of three triangles. On the right our equivalent "ngon" is simply a normal triangle. The result of subdivision is different and follows the same pattern we saw before with the cylinders. The same results would be seen with a triangle fan composed of four triangles and a quad.

In general it's much better to think of tris and quads as special cases of the ngon than to consider an ngon a "bunch of triangles" like a triangle fan or triangle strip.

• So if i understand correctly, sub-surf seems to support Ngons, as it's different from when you sub-surf a triangle fan.. (it's not converting to tris before subdividing)
– gandalf3
Jul 7 '13 at 19:07
• Yes, but even if it did convert the ngon to triangles first it would produce a third different result different to either of the results we have already seen. This is because triangulating an ngon will not produce the triangle fan that the cylinder tool does. Triangulating an ngon will not change the number of vertices, but the triangle fan has one more vertex (at the centre) than the equivalent ngon. Jul 7 '13 at 20:48

When you use N-gons you are essentially saying "I don't care how this geometry is arranged -- for now", and you relinquish control of the underlying geometry to Blender's tessellator. If you do an N-gon fill of a profile (edge-loop) you won't be able to control how faces are tessellated under the hood for display or rendering. If you need the N-gon to behave a certain way then you have to edit it manually, e.g., do a face-inset or convert it to triangles/quads manually to control the geometry.

See the example below:
left side N-gon, right side underlying geometry that you don't have to worry about
(until it becomes necessary).

.. or you may never be concerned about the underlying tessellation.
.. or the final output may not be tessellated (in rare cases).