You can simply use GL_POLYGON with a list of all the vertices with the first and last vertices under the view.
if you want to use a triangular grid, you will need to create a point directly below each height point (outside the field of view), then the template (for clockwise) will look like this:
for (number of height points-1) //vertices vertice below height; height vertice; next_height vertice; next height vertice; vertice below next height; vertice below height;
then the calculation of the indices depends on how you store the vertices, but there will be a similar pattern in the array.
source share