Jump to content
  • Advertisement
Sign in to follow this  
Farraj

So how many polys again?

This topic is 3653 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
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).

Share this post


Link to post
Share on other sites
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]

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!