How many triangles do most computer games render per frame?
I''m currently working on contract on a 3d version of a card game. Up to 15 characters per frame must be drawn (right now each character consists of around 1300 triangles) with a background consisting of 3800 triangles. Right now the game is running at less than 10 frames per second on my 800 Mgz Intel with GeForces 2.
Oviously something needs to be done. Is this any exceptable amount of triangles to render in a standard 3d computer game? How many triangles per frame do most games render?
The answer is: As few as they can get away with!
Sending 20,000+ triangles down your pipeline every frame will bring just about any video card to it''s knees in a hurry. The bandwidth alone will starve the framerate. I know that the higher-end cards now claim they can render 31 million triangles per second, so why cant you render 1.2 million per second? Well... That 31 million triangles is assuming all white triangles with no color no texture no normals and no lighting and that they are perfectly optimized triangle strips, setup to take full advantage of the video cards cache, display lists, etc. And that those triangles are so small that you could barely see them (or perhaps cant see them).
First I would say that you probably want to try and convert everything to triangle strips if possible. This will save you alot of bandwidth if your models are well suited for striping.
You also might want to think about creating some kind of LOD scheme where the number of triangles in your models is reduced as they get further away from the camera. You don''t need 1300 triangles if the guy is going to be 1 inch tall on your screen.
There is a demo for this that I cant find the link to right now but I will try to post it later. You can reduce the number of triangles on a 1500poly model by about 80% and not lose very much detail if the model is not close to the camera and is not wildly jagged.
If you keep your number of rendered triangles under 10,000 per frame you should be ok on most newer video cards. This would still be pushing it on older video cards though.
Also the resolution of your textures makes a difference. You should not be trying to render 10,000 triangles per frame using lots of 512x512 textures either. Make sure your textures are an appropriate size for their purpose, and that you are using mipmapping.
Seeya
Krippy
Sending 20,000+ triangles down your pipeline every frame will bring just about any video card to it''s knees in a hurry. The bandwidth alone will starve the framerate. I know that the higher-end cards now claim they can render 31 million triangles per second, so why cant you render 1.2 million per second? Well... That 31 million triangles is assuming all white triangles with no color no texture no normals and no lighting and that they are perfectly optimized triangle strips, setup to take full advantage of the video cards cache, display lists, etc. And that those triangles are so small that you could barely see them (or perhaps cant see them).
First I would say that you probably want to try and convert everything to triangle strips if possible. This will save you alot of bandwidth if your models are well suited for striping.
You also might want to think about creating some kind of LOD scheme where the number of triangles in your models is reduced as they get further away from the camera. You don''t need 1300 triangles if the guy is going to be 1 inch tall on your screen.
There is a demo for this that I cant find the link to right now but I will try to post it later. You can reduce the number of triangles on a 1500poly model by about 80% and not lose very much detail if the model is not close to the camera and is not wildly jagged.
If you keep your number of rendered triangles under 10,000 per frame you should be ok on most newer video cards. This would still be pushing it on older video cards though.
Also the resolution of your textures makes a difference. You should not be trying to render 10,000 triangles per frame using lots of 512x512 textures either. Make sure your textures are an appropriate size for their purpose, and that you are using mipmapping.
Seeya
Krippy
So how many faces per frame would you suggest for most videocards? About the LOD method. Wouldn''t reducing the number of polys mess up the texture coordinantes. Thanks a lot for the post by the way.
Im a newbie to 3D programming but I think you may want to cull some of those triangles. If they are in the back you dont need to display them so a model with 1300 triangle may only be showing 800 or so of them saving you a lot of extra processing. Also try optimizing your code in general like changing something like:
var = var + 1;
to
var++;
It may seem miniscule but if your program is looping that statement over and over it will be a much bigger difference.
"Ogun''s Laughter Is No Joke!!!" - Ogun Kills On The Right, A Nigerian Poem.
var = var + 1;
to
var++;
It may seem miniscule but if your program is looping that statement over and over it will be a much bigger difference.
"Ogun''s Laughter Is No Joke!!!" - Ogun Kills On The Right, A Nigerian Poem.
"Ogun's Laughter Is No Joke!!!" - Ogun Kills On The Right, A Nigerian Poem.
Heh.. actually.. if you look at the compiled code, all four of the methods to increment a variable in C/C++ (+, +=, ++ prefix and ++ postfix) achieve exactly the same thing. Well.. except for the order of operations between prefix and postfix, but I mean the addition is the same thing.
Grasshopper: You probably should check out the LOD thing.. What I'm wondering though, is why would a card game require so many triangles? You might need to think about and optimize your design a little more...
Good luck.
Edited by - Qoy on July 29, 2001 3:12:50 AM
Grasshopper: You probably should check out the LOD thing.. What I'm wondering though, is why would a card game require so many triangles? You might need to think about and optimize your design a little more...
Good luck.
Edited by - Qoy on July 29, 2001 3:12:50 AM
quote:
Original post by Krippy2k
The answer is: As few as they can get away with!
Sending 20,000+ triangles down your pipeline every frame will bring just about any video card to it''s knees in a hurry. The bandwidth alone will starve the framerate. I know that the higher-end cards now claim they can render 31 million triangles per second, so why cant you render 1.2 million per second? Well... That 31 million triangles is assuming all white triangles with no color no texture no normals and no lighting and that they are perfectly optimized triangle strips, setup to take full advantage of the video cards cache, display lists, etc. And that those triangles are so small that you could barely see them (or perhaps cant see them).
This is an slight exaggeration. I can render a triangle list with 65K tris at 60fps. That is roughly 4 million triangles a second, textured and (vertex) lit with specular highlights. I have a Thunderbird 700 with a Radeon 32DDR.
BTW those 4M tris are rendered at a resolution of 1600x1200 32bit with an overdraw of about 1.5
My points is, today''s (TnL) videocards are more powerful than you think.
My points is, today''s (TnL) videocards are more powerful than you think.
But do you want to have a card game that needs the latest 3d card to play? That is the question. (Well, not really... but it is a question which needs answering
)
Trying is the first step towards failure.

Trying is the first step towards failure.
Trying is the first step towards failure.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement
Recommended Tutorials
Advertisement