PDA

View Full Version : High-polycount VertexArray Performance???



10-08-2003, 11:26 PM
hi, I'm stuck with kind of a lame problem here...
I am trying to render a "high"-polycount scene using glDrawElements(GL_TRIANGLES,...) with about 350000-400000 polys. I disabled multitexturing and other fancy stuff...only singletexturing and lighting is enabled - but still my framerate is only about 8 FPS.
Note that I have a GeForce 2 TI, which should actually perform *MUCH* better.

Now, I used a profiler on my app, and found out, that 99.99% of the time is spent by glDrawElements...
*WHY* is that so? Isn't the GPU supposed to render independent of the CPU? Any suggestions?
Of course there's tri-stripping, and NVidia VAR arrays...but do these make *so much* of a difference?

thx in advance for your help!

Dr. Trax
10-09-2003, 12:34 AM
hmm...I rendered a scene of one milion of triangles with one light on my Radeon 9100, using glDrawElements it takes 17fps, but with DisplayList it takes 36fps
I think its limitation of your GF2Ti http://www.opengl.org/discussion_boards/ubb/frown.gif

10-09-2003, 12:49 AM
The prob with display lists is, that they guarantee 100% that the vertex/face data is stored in video memory.
Now, let's assume, that we have approx. twice as many vertices as faces, so we have:
2 million vertices -->
--> x,y,z,w,u,v,normal (x,y,z)
--> gives 9 floats per vertex (for single texturing)
1 million face indices --> 1 DWORD each
thats: 40 million bytes, or approx 38.5 MB of wasted graphics memory...

satan
10-09-2003, 04:34 AM
You should take a look at the ARB_vertex_buffer_object extension. Standard vertex arrays are slow.

DJSnow
10-09-2003, 06:39 AM
@OmegaSquad:

i think that you did simply an important thing very wrong - no idea what it could be - but i can show you a demo of my gfx-engine and it renders 50k polys @ 40~45FPS on my geforce 2 MX with 32MB (first version of gfx2mx) by using vertex arrays and draw elements.
surely, i don't know what it could be - but i'm sure that there is something massive wrong.
post some code ?

satan
10-09-2003, 05:30 PM
DJSnow: 50k tris * 42.5fps = 2.1 millions tris per sec

OmegaSquad: 375k tris * 8 fps = 3 million tris per sec

I just say VBO.

10-13-2003, 01:05 AM
Originally posted by Dr. Trax:
hmm...I rendered a scene of one milion of triangles with one light on my Radeon 9100, using glDrawElements it takes 17fps, but with DisplayList it takes 36fps
I think its limitation of your GF2Ti http://www.opengl.org/discussion_boards/ubb/frown.gif

One milion with 17 fps!!!???, my aplication slows down with much less (few thousend) (gf2mx, AthlonXP1700) http://www.opengl.org/discussion_boards/ubb/frown.gif(

(sorry for my broken english)