i have written a small program rendering a large piece of terrain. it uses an interleaved array of 500 000 vertices, normals and texVertices, and renders them with a main- and a detail-texture in a single pass using ARB.
there is no quadtree or LOD, no ROAM, no frustrum culling, nothing like that. the whole array is rendered at every frame.
the result i get from that is around 12fps on an athon1000 with a gf4 ti440.
do you think i did a good implementation, or are the results i get slow? fast? what do you think? i am pretty unsure about how many fps i should get from this method …
any comments welcome!!
Hi. There is not much I can tell you but I’d rather say that your program is a bit slow. 500 000 vertices isn’t really a small thing to draw. You should try some culling algorithms to increase your programs performance. At least you can speed it up by using face culling from OGL. Try glEnable(GL_CULL_FACE) and glCullFace(GL_BACK) if you haven’t. It tells OGL not to draw back sides of the polygons.
You could try also different methods of submitting your geometry : immediate mode, display lists, and vertex arrays (what you seem to be doing for now). You could gain a lot from using the GL_NV_vertex_array_range extension. It will allow you to store your geometry in AGP mem or in Video mem. Thus, each frame the whole data (~ 16 MB for your 500 000 vertices if I’m not mistaken), won’t have to be fetched from system memory to be sent to the card. Note that this extension is only available on NVIDIA cards (ATI has another extension to speed things up, and a common (ARB-approved) extension should be launched shortly).
Of course, using visibility and lod algorithms to reduce geometry complexity in your scene is much more important than simply trying to increase performance with some API tricks. You can have great looking terrains with a fraction of the amount of vertices you’re using now.
>You can have great looking terrains with a
>fraction of the amount of vertices you’re
i know, but i was wondering if the steps i have done so far were ok, or if i have already messed things up …
Meaby you should show it to us so we can see how does it look like?