So how many polys again?

Started by
10 comments, last by BUnzaga 15 years, 10 months ago
This is getting frustrating. The ploy count limit for machines are increasing quickly I can’t catch up. Is there an equation out there that can tell me what would be the poly limit that can be displayed on a screen? If by displaying one 3D face (a triangle) would cause the game to reach a frame rate of (lets say) 300 fps, can you tell what the poly count limit for the machine not to not go under 60 fps? Would this be a good way to find the poly limit? And assuming that you have a game (adventure for example) how would you distribute the poly count on your game entities (PCs, NPCs, terrain, etc)? I re-read the post I can tell it’s not very clear. Sorry about that, it’s the best I can do. Thanks.
Advertisement
There is not a quick answer. a app that is badly programmed can run slowly with a few polygons. A program that uses effects like parallax mapping will run slower than one that does not, etc. best thing you can do is estimate the time frame the game is going to take to programme. Then try and determine the average computer spec for that time. Think steam has it currently around an NVIDIA 6600. Then you can run your app on that platform and determine the correct poly count for your application
It isn't so clear cut as that. There are numbers that are static upper bounds on the number of triangles you can push through, but in practice you will never reach these numbers. I could go into all the reasons why, but suffice to say that not all triangles [or pixels for that matter] are created equally, and it is also dependent on the cost associated with moving data to the video card, manipulating it, and changing the state of the hardware.

Really though, don't bother trying to 'keep up' with the hardware. Render what you want to render, and if it runs too slow, cut it down. Graphics cards are enormously fast. It is likely that you won't hit an upper bound on them as a result of triangle count unless you are just being silly with the assets you are trying to display, or you are trying to do some crazy stuff with shaders.
Graphic card specs state the number of polys they can process per second.
However, that's not the number of polys it can effectively put on the screen. There is also fillrate (translates more or less to pixels processed per second), and you have factors like blending, anti-aliasing, anisotropic filtering, textures, shaders... all stuff that affects framerate but is not (or indirectly) related to the number of polygons you are putting on the screen.

To reflect this on your example:
If you were to put one poly on the screen, the framerate would still be depending on how big the poly is, if it's blended or not, AA settings, AF settings, etc etc.

I bet there are rules of thumb out there that can tell you how many polys you can effectively render with a certain video card, but it's still depending on your implementation if you can reach those numbers.
STOP THE PLANET!! I WANT TO GET OFF!!
OK, so let’s say that I wanted to take a trial and error approach to find out the poly limit, and assuming that I’m testing the game on a standard PC that the average gamer has. Would be correct to test the poly limit by letting the game create as many meshes (1K each for example) on screen and stop when the frame rate reaches a certain frame rate? And you would also test it by using effects, shades, fillisters and such to see the limit for those too?

Sounds logical to me <3

Makin low polys that don’t even get near the limit is not the problem. My biggest fear is making a bunch meshes (and good ones too) just to discover later that the machine can’t handle them and you have to tell modeler to do it again.
The answer is obviously 42.

That said, I think if you're developing for PC/XBOX360/PS3, the poly count is really the least of your concerns.
Crysis has an average of 1 million polys on screen at any given time. The average car model in Crysis has ~60k polys which is insane.

If you optimize your batching, you will run into other issues long before you hit the hardware polycount limit.

That doesn't mean you should go too crazy with your poly count, it's just much more likely that expensive shaders or the sheer number of draw calls will kill your performance long before the rasterizer runs of juice.
Quote:Original post by Farraj
OK, so let’s say that I wanted to take a trial and error approach to find out the poly limit, and assuming that I’m testing the game on a standard PC that the average gamer has. Would be correct to test the poly limit by letting the game create as many meshes (1K each for example) on screen and stop when the frame rate reaches a certain frame rate? And you would also test it by using effects, shades, fillisters and such to see the limit for those too?

Sounds logical to me <3


Sort of. But you have to be aware that you can't just set a limit in each category. You can't even really just assign a "cost per mesh, per shader, etc." and add them up. The real world is rather complex.

Quote:Makin low polys that don’t even get near the limit is not the problem. My biggest fear is making a bunch meshes (and good ones too) just to discover later that the machine can’t handle them and you have to tell modeler to do it again.


Try using LOD (a good idea anyway); when the machine starts to choke, you can decrease the radius in which you show the highest-detail models. Of course that means the modeller is making both versions right off the bat ;) But at least you are not kidding yourself about knowing what is possible. In the real world, we design for change, because we know that we are almost always wrong the first time.
Quote:Original post by Zahlman
Quote:Original post by Farraj
OK, so let’s say that I wanted to take a trial and error approach to find out the poly limit, and assuming that I’m testing the game on a standard PC that the average gamer has. Would be correct to test the poly limit by letting the game create as many meshes (1K each for example) on screen and stop when the frame rate reaches a certain frame rate? And you would also test it by using effects, shades, fillisters and such to see the limit for those too?

Sounds logical to me <3


Sort of. But you have to be aware that you can't just set a limit in each category. You can't even really just assign a "cost per mesh, per shader, etc." and add them up. The real world is rather complex.

Quote:Makin low polys that don’t even get near the limit is not the problem. My biggest fear is making a bunch meshes (and good ones too) just to discover later that the machine can’t handle them and you have to tell modeler to do it again.


Try using LOD (a good idea anyway); when the machine starts to choke, you can decrease the radius in which you show the highest-detail models. Of course that means the modeller is making both versions right off the bat ;) But at least you are not kidding yourself about knowing what is possible. In the real world, we design for change, because we know that we are almost always wrong the first time.


There are procedural poly reduction algorithms (I asked a question about that some time ago), but they may not give you the results you are after. The algorithm may remove features from the mesh that you don't want removed. You have no control over that.

@Farraj, it would give you an "indication", no more than that. But be aware that extra visual effects you introduce later on will affect the framerate.
Also, don't forget to test your different rendering techniques. For example, you probably render terrain and static geometry different from models (with respect to static/dynamic lighting for example).
STOP THE PLANET!! I WANT TO GET OFF!!
EPIC told me that they make all their models with over 1,000,000 polys, and then cut them down when they're about to put them in the game.
That way if the engine gets more efficient, or they start targeting new hardware, or they want some promotional artwork, or a pre-rendered cut-scene, or whatever then their model still has enough detail...

Quote:Original post by Structural
There are procedural poly reduction algorithms, but they may not give you the results you are after. The algorithm may remove features from the mesh that you don't want removed. You have no control over that.
There are some very good tools for poly reduction, which do give you complete control over which bits of detail are preserved. They're probably out of the price range of a hobbyist though...

[Edited by - Hodgman on June 18, 2008 1:35:41 AM]
A Quick Cheap and Easy Way is Just to use the LOD functions within DirectX.

Milkshape3D has something like that built with a plugin, but you can't control much more than how many polys your model is using. Looks pretty decent though.
The wolf and his mate howl, taking solace in the silver moon. Pressing ever foreward to see what the future holds.

This topic is closed to new replies.

Advertisement