When I record a display list while using a vertex program, what happens ? Does the display list record the result of the vertex program or does it just record the coordinates I sent trough glvertex3f ?
If my vertex program cancel some vertex, what will happen to my display list ? Will it retains only the vertex which have passed the vertex program test ?
From all I know the display list will just record the data you send to the pipeline before it actually enters the pipeline (display list stores OpenGL commands). So if you have a vertex shader enabled or not won’t make any difference. Secondly, you cannot cancel vertices on the vertex program and there is no such thing in OpenGL as “vertex program test”.
A display list basically only records the openGL commands as they are called by the program(in a compressed form), not what happens after that.
To record the transformed vertices you need to use a geometry buffer, it can output the vertices to a VBO instead of the rasteriser.
Thanks; I thought it was possible to discard vertex, my mistake.
I could try a workaround by setting the vertex I want to discard beyond the clipping range, but I’m afraid it will still be costy as I have plenty of theses ( I retain only 1 triangle out of 30, as a ratio), from a processing point of view and from a memory point of view, because even beyond the clipping range theses unrenderable triangles will still be recorded into VBO.