drawing the lines using polygons is not an option since the objects I'm
drawing are concave and so are the outlines I need.
so my question is, is there any way to achieve the functional
equivalent of backface culling with GL_LINES? or is there any other way
to achieve the effect I described using stencils or whatnot?
Well, a "line" does not have a normal vector, thus not front/back.
However, you know the triangles at these edges, thus you you know a
"normal vector" to your line. Then you can draw only the lines that
are visible.
Usually you do this:
Draw the solid object.
Do some polygon offset (optional, but looks better)
Draw the object as GL_LINES (keep depth testing enabled)
The solid triangles at first "hide" your back-facing lines then.
So why exactly can't you draw the lines as line-mode polygons? If they are
concave, use the tesselator. The above technique won't necessarily hide
backfacing polygon edges.
For the record, lines can have normal values (OpenGL normals are a property
of vertices, and don't have to have anything to do with geometry).
Backface/frontface has nothing to do with *vertex* normals, though, only the
winding order of the vertices of a polygons.
-jbw