Rendering large arrays of regularly spaced points

I am planning a project where I have to deal with big amount of points that are organized in regularly spaced (grided) arrays like a height map (typically 1k by 1k), where only the z Coordinate is saved and x and y are calculated from the indices. The points are completely static. I want to render up to 100 of arrays of that kind. The question what is the most effective way to do the rendering when speed and memory consumption is important. So I don´t want to make another copy of the data.
Will it be best to use vertex arrays or immediate mode?
Any experience with a problem like that? I would appreciate any hint.
Thanks in advance.

immediate mode is the slowest submission method available. There are a lot of good benchmarks out there, and it’s my understanding that as your polycount increases, the performance gain in using array structures increases as well.

Off the top of my head, I’d suggest trying display lists first. Display lists work great for static geometry, and opengl optimizes the structure for you.

If that dosen’t give you enough performance, you should research using vertex arrays, CVAs, and GPU specific extensions, like NV_vertex_array. I don’t have too much experience with those, but my basic understanding is that they can potentially increase your performance if you lay the vertices out correctly.

From what you wrote, though, it seems you’re rendering 2 million tris for each object ( 1k * 1k * 2 tris_per_quad ). That’s just a lot of data to be passing, so if you’re still not getting good performance, your best bet is to add some LOD/PM algorithms in your code.

Hope this helped,