Archived

This topic is now archived and is closed to further replies.

ankan666

Rendering speed

Recommended Posts

I''m loading a model with about 2500 triangles and render them with OpenGL. With hardware acceleration, on a celeron 550 Mhz and a Matrox G400 card I get around 5 fps... How is this possible? Why is it so slow? In your experience, how many polys (on a system like mine) can OpenGL handle before things start to get slow (below 20 fps)? // Ankan

Share this post


Link to post
Share on other sites
Are you sure you are using the opengl driver for your g400 and not the ms software opengl driver ??

my voodoo2(k2-350) renders about 50k - 120k decal textured triangels pr sec, bilinear filtered.

try printing out the vendor string
                    

char string[2048], *readout, temp[256];
con_add( "OpenGl Driver:" );

sprintf( string, " - %s", glGetString( GL_VENDOR ) );
con_add( string );

sprintf( string, " %s", glGetString( GL_RENDERER ) );
con_add( string );

sprintf( string, " v%s", glGetString( GL_VERSION ) );
con_add( string );

readout = (char*)glGetString( GL_EXTENSIONS );

while( INFINITE )
{
int result = sscanf( readout, "%s ", string );
if( (result == EOF) // (result == 0)) break;

readout += strlen( string )+1;

sprintf( temp, " EXT( %s )", string );
con_add( temp );
}



seems like the "code parser" dont like logic ORs. Thats a logic OR in the if line.

Edited by - Claus Hansen Ries on June 20, 2000 3:11:54 PM

Edited by - Claus Hansen Ries on June 20, 2000 3:13:21 PM

Share this post


Link to post
Share on other sites
correct me if i''m wrong, but i''ve heard that NVIDIA''s geforce could display about 15 million triangles per sec. so let''s say that my Matrox G400 can display 1 million/sec, that would give at least
1000000/2500 = 400 fps. (my program does nothing besides drawing untextured polys) Isn''t that true? Why do I only get 5-10 fps? I know that ´my program isn''t falling back to software mode, So that''s obviously NOT the problem.

Share this post


Link to post
Share on other sites
I think those 15m tri's are a teoretical or ideal situation value.

Fillrate also plays in.

if you render those 1.000.000 tri/s at 800*600, and each tri covers half the screen, and no pixel is rejected by the z-buffer, your card would need to process:

((800*600)/2)*1.000.000 = 240 giga pixels pr sec.

i dont think a g400 is able to do that =), or is it ??

i think either the opengl driver sucks, or you code is very slow.

my voodoo2 / k2-350 gives about 100 fps with 2 textured objects, each 500 faces.

and under 1 fps with the software driver =)


Edited by - Claus Hansen Ries on June 20, 2000 5:00:37 PM

Share this post


Link to post
Share on other sites
You''re correct, but there''s really no difference if I render the polys in wireframe, so the fillrate isn''t the bottleneck here.,

Share this post


Link to post
Share on other sites
Try drawing the model twice per frame, and see what happens to the frame-rate. It may be that something in your main-loop is causing the slowdown, or it could be the drawing.
PS. Just do the drawing twice, not the setup calculations.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Are the triangles textured?? Remember; what manufacturers say is the triangle/sec is the biggest possible number they can put there... which means no textures...
Also; the G400 doesn''t have good OpenGL drivers, shouldn''t make it this slow however.
Is the code loading in the model each frame??
Also if you are using textures, how big are they?

Protozone

Share this post


Link to post
Share on other sites
I''m using no textures, no light, i''m not loading the model each frame. I''m loading it at initilization, render it to a display-list, then each frame I use glCallList.
I''ve tried without using a display-list, there''s no difference.

Share this post


Link to post
Share on other sites
You said you are sure that you''re not using software mode ? Check it again, and if you are still sure.. well.. i can only think of an unsupported pixel mode when you''re trying to initialize OpenGL. Are you sure the color depth / z buffer depth / stencil bits / etc.. you are requesting are supported in hardware ?

Y.

Share this post


Link to post
Share on other sites