About Polygons from OpenGL...

There are utility programes in OpenGL or rather GLU that allows to break a polygon into convex objects: tessellation. However the procedures are expensives. They will be fine for digitisation or import but not for dispaly.  The objects generated are:
GL_TRIANGLE_FAN       fan of triangles (1-2,2-3,3-4,4-5,5-6,6-1)
GL_TRIANGLE_STRIP   strip of triangles  (1-3,3-5,5-6,6-4,4-2,2-1)
GL_TRIANGLES                individual triangles (1-2,2-3,3-1) (4-5,5-6,6-4)
GL_LINE_LOOP                closed line (no interior) but similar as a FAN

We choose basically what type of objects we want as end result...

Now to draw a succesion of joint triangles (mainly GL_TRIANGLES) you can specify which edge is visible and which one is not by using a glEdgeFlag(GL_TRUE) before passing the node (v0) glVertex3fv(v0). This is not necessary for fan and strip as OpenGL knows what is inside or outside....

There are also NURBS surfaces (Non-Uniform Rational B-Spline) in GLU.