Just thinking, in GL3 there will be no GL_POLYGON (and even no GL_QUAD) anymore (well, in 3.1-without-deprecated-stuff that everyone is waiting for).
Now i am currently changing an editor to use VBOs, instead of immediate mode. The thing is, now i render all my polygons as triangles, which in wireframe mode gives me all those unwanted edges (quite annoying in orthographic view). Right now i COULD use GL_POLYGON together with NV_primitive_restart, to render actual polygons from VBOs, by sacrificing ATI compatibility (which i don’t want). However, as i want to keep the porting for GL3 to a minimum, i thought about how i could do wireframe rendering without the extra edges in GL3.
The only solution i have come up so far is to generate 2 VBOs for each mesh, one which holds its actual triangles, for filled/textured view, and one that actually only holds GL_LINES, such that i would not render it as triangles, at all.
Obviously that has twice the memory consumption, plus some other overhead.
Some variation of that idea, is to store the vertices once, but have two different index-buffers, one that indexes the vertices to form triangles, the other to form lines.
I do know for each triangle, which edge is unwanted, when i create the VBO, so i could store some additional data per vertex. My hope was, that maybe i could remove the additional edge in a shader, but i honestly don’t know of any good way to do that. I don’t really care whether it takes geometry shaders to do it, as long as it is a relatively simple plug&play solution.
PS: Please spare me the “but you can do everything with GL3, that 2.1 can”-speech.