Much Ado About Polycounts

Much Ado About Polycounts

Share and discuss visual creations and creation practices like texturing, modelling and musing on the meaning of life.

Moderators: MR.D, Moderators

User avatar
Wolf-In-Exile
Posts: 497
Joined: 21 Nov 2005, 13:40

Much Ado About Polycounts

Post by Wolf-In-Exile »

After repeatedly seeing community members alluding to the unfortunate misconception that Spring is a magical engine that defys the laws of 3D engines, I have decided to make this discussion thread in the hopes of raising the modding community's awareness to the realities of modern 3D modelling for games.

Before we get down to the discussion, a few ground rules I hope everyone follow so that we can have an intelligent discussion.
Of course, no one is forced to follow them, but you won't get any points for being immature or trolling either. :wink:

1. Don't make baseless claims unless you really know what you are talking about.
For the purposes of this thread, this means you must have at least a little knowledge on modern graphics processing terminology, processes, issues, limitations and so forth to be able to discuss anything intelligently.

Also, this is more of a discussion for experienced modellers and I won't hesitate to go into the discussion of technical details.

2. Back up what you say. If you want to debate a point, take the trouble to do some research and post it here. This is easy as we live in the age of the Internet and Google, so there is no excuse for not giving proof.

3. "Lol I agree" is not an acceptable response; so discuss intelligently and people will respect you.


*******

Firstly, I will begin by saying that in general, model polycount is not the sole nor biggest factor that contributes to (or detracts from) the Almighty FPS.

Yes, I said it. Other factors do make a bigger impact on a game's performance.

To name a few (or alot...), dynamic per-pixel lighting and shadows, texture resolution, AI, pathing, maximum draw distances, physics systems, level of detail systems, graphic engine code optimisation/efficiency etcetera take a bigger hit on performance. Depending on the game and netcode, multiplayer games may also suffer due to graphics settings.

Other graphical bells and whistles such as High Dynamic Range (HDR) rendering, Light Bloom effects, Full Screen Anti-Aliasing (FSAA), soft shadows, depth-of-field effects, distortion/shimmer effects, dynamic reflections, particle effects, volumetric effects; these take the biggest toll on performance, and are usually optional toggles in games.


*However*, the caveat to all this is that most of the things I listed above are, in one way or another tied into the model's polycount. Upping the polycount will produce a noticeably higher load on performance with any of them enabled.

To prove I know what the hell I am talking about, proceed here and read through the discussion.


Standardised benchmarking on 3D cards/systems on credible review sources here, here, and here.

You may have noticed that all the games used in the benchmarking are FPS games; the reason being FPS games tend to put a greater load on the GPU and CPU, because many tricks used in RTS games to imply detail are simply not usable for FPS games, and pushes the hardware to their limits.

Here is another very good article on the subject of polycounts, for modding Alien VS Predator 2, an older but still a "AAA" title in its time.

Even though it deals primarily with level design, the fundamental concepts stated here are equally valid to this discussion.

I've quoted the most relevant parts for those too lazy to read the complete article (which has alot of irrelevant, AvP modding-specific details).

Source

Factors That Cause Levels to Bog Down

Levels can become bogged down for a number of reasons. The first of these is high polygon counts in a scene. Even a simple empty room that has only walls, floor and ceiling can be made up of several hundred polygons. [...] As a general guideline, the game designers for AVP2 kept multiplayer levels to around 700 polygons/scene in general on multiplayer levels and 800 or so for single-player levels where frame rate was not as vital. It├óÔé¼Ôäós important to perform some tests of your own on your target platform to develop your own standards.

[...]

The second cause of high counts is complexity. It├óÔé¼Ôäós very hard to resist the urge to put every detail into your geometry instead of using textures to create detail. However, it is much more expensive to add detail using geometry than it is to imply detail through tricks of the eye, lighting and texturing. Avoid nonfunctional detail that can be added through textures like molding/trim, curlicues, grooves and bumpy surfaces. A level designer's art is figuring out how to imply detail. Ask your texture artists to build a grooved surface or the face of a curlicued building ledge, and then apply that texture to a simple flat surface. Use as few sides as you can get away with on your columns and carefully consider how to build each shape with the fewest polygons.
Now, coming back to the issue of Spring.

"High" polycount models seem to have no effect in Spring, because reasonably modern cards have gone far beyond the industry-standard 1-2k poly models for RTSes just a year or two ago; current "AAA" titles such as Joint Task Force, Company of Heroes, Dawn of War and other AAA-class RTS titles easily have 2-5k polies (or higher) for individual models, and a ballpark estimate of 50-150k total polies onscreen at once.

Also note that these are also the last RTS titles to be released prior to the much-hyped Next-Generation breed of games.

Even an early model P4 with the equivalent 3D card can handle 1-2k models without too much trouble.

You may argue that many Spring players probably have decent systems already; as nowadays SLI and dual-core rigs are becoming commonplace.

But the point of learning to make the most of your polies, as opposed to throwing them around indiscriminately, is simply quality.

Modelling is an art, texturing even more so and it takes skill and finesse to do both well, and this in turn is achieved with practice and making every poly count (pardon the pun).

Poor, unoptimised models result in a messy lump that is difficult to UV map and a nightmare to texture.

That being said I can't honestly claim I am the best in the world at both, but as I have worked on the lowest of the low in terms of polycount, and relatively high polycount models throughout my time as a modeller for both RTS and FPS mods, besides reading up on the ins-and-outs of game modelling, I believe I can consider my essay thus far is reasonably authoritative on the matter.

And if you're still alive and awake after reading the entirely of this essay, then congratulations, thank you for bearing with me and I hope you have learned something from it. :lol:
User avatar
Caydr
Omnidouche
Posts: 7179
Joined: 16 Oct 2004, 19:40

Post by Caydr »

I already did this like 6 months ago :x

~~~

Aha, here it is: http://taspring.clan-sy.com/phpbb/viewtopic.php?t=3662
User avatar
FLOZi
MC: Legacy & Spring 1944 Developer
Posts: 6242
Joined: 29 Apr 2005, 01:14

Post by FLOZi »

Caydr wrote:I already did this like 6 months ago :x

~~~

Aha, here it is: http://taspring.clan-sy.com/phpbb/viewtopic.php?t=3662
The problem is you are misguided.

edit: or rather your tests have misguided others into the 'omg lol polycounts don't matter n00b!' mindset.
User avatar
Caydr
Omnidouche
Posts: 7179
Joined: 16 Oct 2004, 19:40

Post by Caydr »

Same FPS with 200 1400 triangle thuds as with 200 50 triangle thuds.

omg lol polycounts don't matter n00b!
User avatar
Wolf-In-Exile
Posts: 497
Joined: 21 Nov 2005, 13:40

Post by Wolf-In-Exile »

Caydr, good effort, but there are various test areas that would provide a better test of game performance are not there.

Did you read my post in it's entirety though?

I have addressed the reason why you seem to have no noticeable difference in FPS. I have also explained the factors that affect FPS.
Most importantly, I have explained why counting your polies is important.

Some of the untested areas:

1. Tests appear to have not hit the maximum load of your system, and solid conclusions cannot be drawn from the test results you posted. You also did not post your system specifications, without this information a solid conclusion cannot be made either.

2. It has also not been put through multiplayer tests. Although I haven't played enough online matches to make a fair conclusion about Spring's netcode, it is a potentially good area to test.

3. It is also devoid of animations, FX or any representative of actual gameplay conditions, as the units were all static.
All the benchmarks I posted were tests of games that were being played.


All that being said, I am willing to put my money where my mouth is, and I will test the limits for Spring and my system as well. When i've finished with my current WiP work, i will make some extensive tests on Spring.
Last edited by Wolf-In-Exile on 17 Oct 2006, 20:53, edited 3 times in total.
User avatar
Guessmyname
Posts: 3301
Joined: 28 Apr 2005, 21:07

Post by Guessmyname »

What settings? (Reflections etc)
hawkki
Posts: 222
Joined: 01 Jan 2006, 19:47

Post by hawkki »

The reason people "run around screaming polycount does not matter" is not that they think so litterally. at least i do it because i get frustrated when someone makes a remodel or similar and with the same effort it had been much better if he had let it stay at 500 polies instead of cutting it down to 200 beacuse he thought that would make any difference performance wise.

Ofcourse polycount does matter, we are not defying any laws of 3d rendering. It just does not have anything to do with spring performance if your units have an average of 100 or 500 polies a piece. If you compare 100 to 5000, you probably start to see a difference, atleast with some system setups and game situations.
Last edited by hawkki on 17 Oct 2006, 23:40, edited 1 time in total.
User avatar
Wolf-In-Exile
Posts: 497
Joined: 21 Nov 2005, 13:40

Post by Wolf-In-Exile »

You make a sound point, but you also haven't quite hit what we're getting at here.

If a unit looks just as good as it is at 200 polies as it does when it is 500 polies, it means the difference of 300 is considered wasted because it does nothing to make a unit look better.

I have a friend who has an older ATI system, and he cannot run Spring with all the graphical bells and whistles enabled.

My GeForce 4 7900GT system, which isn't "old" at all, experienced some framerate dips with all the graphics settings at maximum on certain maps, like water-heavy ones.

Think of it this way.

You have a $500 allowance a month. Do you spend all $500 of it on food just because you can; where $200 is more than enough to keep you well fed, or do you save $300 so you have more money to spend on other things?

Also another thing to note that many new modellers do not understand (I didn't either, until I started modding seriously) is that high polycount model != good model.

A model can have a hundred polies, but it could be just a cube, and won't look any different from a 12 poly cube.
User avatar
Guessmyname
Posts: 3301
Joined: 28 Apr 2005, 21:07

Post by Guessmyname »

I personally try to optimise as best I can in these cases. Have a look at the Epic Legions models. I tried to keep the look and feel without going overboard.
User avatar
aGorm
Posts: 2928
Joined: 12 Jan 2005, 10:25

Post by aGorm »

I seem to remember Caydr not have that ammazing a system (just a half decent one) but I may be wrong.

I can't remeber anyone ever actully saying "lol polycounts don't matter n00b" In the context of "OMG make your units 20,000 polie it look so good it wont slow down".

When I see that coment (or when i make a similare one in better english :P ) Its because someones moddeled something thats either:

1) about 20 polies and is basily a box and a few sticks.

2) a few 100 pollies on somthing thats ment to be big, impresive, and is so expensive you'll only even get a few (in which case I say it in the Man you should just go to town on this one look at all the things you COuld add)

And in both cases say that statment is fine.

Testing in multiplayer will not affect the results at all from a graphical performance perspective, as multiplayer games eat up more CPU resorces and that causes slow down.

And remebr the No.1 cause of slow down in spring is Pathfind Lag. The pathing engin stresses out even the fastest CPU's on large maps.

Thats why things slow down with alot of units.... because pathing calculations get bigger and harder. Not the fact that there are more polies on screen. If this was the case then we'd all have to stick to 20 polie moddels cause XTA slows right down when you got a few 1000 units in game.

The truth att he end of the day however is that whilest it dont cause the major slow down, it will still cause slow down having high polie units. However they can be a darn sight higher than 20. As long as you keep some sort of balance (ie say 500 polie max for basic units, 1000 for big nastys, ect....) and dont go around using polies for the sake of it (so dont go LOOK I SPLIT MY FACE INTO 1000 polies to get to a higher polie count!1!!11!1!!) then it should be fine.

Am I making sense? Anyone who knows what there on about when using the "use more polies statment" probable* isnt trying to say "thers no poliecount!1!!!" rather just "maybe with 20 more polies on the chest it will look even better and it wont effect performance".

Hope that means somthing....

aGorm

::EDIT:: Im not 100% sure but i think (arg may know better perhaps) but units with many parts and big scripts also cause slow down. So a 30 part unit with 100 polies will prob cause more slow down than a 8 ligaments 500 polie unit. Possabley.
User avatar
Caydr
Omnidouche
Posts: 7179
Joined: 16 Oct 2004, 19:40

Post by Caydr »

The system that was my testbed for that topic:

Windows XP Pro
1 gig ram
Radeon 9800 Pro
3 ghz p4 CPU underclocked to 2.8 because I hadn't given up hope and just taken the sides off my case yet.

Anyway. What it breaks down to, in my opinion, is that graphics stuff doesn't slow down the game nearly as much as pathfinding and LoS calculations.

I can spawn 1000 peewees and still run a good framerate, but let me tell you... give them a move order, and it's a different case!

Therefore, in my opinion, if there is an artificial limit placed on how many units we can have, why not make sure that the units we can have look pretty?

The upper limit for any current CPU, be it core 2 conroe or amd64 or, more than likely, the quad core ones coming out this spring, is between 100 and 400 units. Regardless of whether they're onscreen, they still have to pathfind and constantly calculate LoS. The LoS calculation in particular is just killer, and the current mods require LoS of around 300-400 for a plain "average" unit. This above anything else is what slows the game down.

So once again, if you can only have 100-400 units before the CPU is fully utilized, there is no reason not to utilize the graphics card to its full extent as well.

In how many cases do you have 400 full LoD models onscreen though? Well, either you're playing nanoblobs, which isn't ridiculously high detailed like the stuff I make, or you're playing speedmetal. If you're playing speedmetal, screw off, nobody cares. Odds are, even the largest battles will consist of less than 50 units per side, meaning that your GPU is still not even getting a workout, regardless of how high-detail those units are (within reason).

In my opinion, we should look at what the majority is using for their computer. From what I can tell based on my experience in the lobby, the slowest CPU used to play spring is about 1.2 ghz, and the fastest is about 4 ghz. Some crazyass had a 6 ghz rig, I wanted to punch him. The average is roughly 1.6-2.4 ghz. These computers, in my experience, cannot handle more than about 100-300 units in existence before the game is unplayable, not because of graphics, but because of pathfinding and LoS.

I do not know what the average GPU is though. From my experience, there's a lot of poor souls with things like FX 5200s. These ones can't handle shadows and reflectivity on high detail models, but that's just too bad about them. They'll be forced to upgrade before too long because that hardware is insufficient for most any commercially released game from 2002 and on. There's a few who have 9700/geforce 4 series stuff, but their numbers are very few. Geforce 6xxx cards are very common, and geforce 7xxx users are growing in number. There are also many with similar-quality ATI Radeon hardware.

Ehh... I seem to have lost my train of though ;) Point is, 75% or more can handle high detail models without difficulty, though they might have to turn off shadows, reflectivity, high quality water, FSAA, anisotropic filtering, etc (many do this anyway to improve performance), and of the remaining 25%, 20% are likely to be upgrading in the near future. The last 5% are holdouts from the Doom era or something and can't bear to let go of their Voodoo 2s.
Last edited by Caydr on 17 Oct 2006, 23:48, edited 2 times in total.
hawkki
Posts: 222
Joined: 01 Jan 2006, 19:47

Post by hawkki »

Wolf-In-Exile wrote:You make a sound point, but you also haven't quite hit what we're getting at here.

If a unit looks just as good as it is at 200 polies as it does when it is 500 polies, it means the difference of 300 is considered wasted because it does nothing to make a unit look better...
I tried to tell you that what buggs me off is when someone has a nice unit at 500 polys at first, and then he goes and decides to cut down polies to 200 and it hurts the appearance of the unit.

Sorry for my lacking skills in english, but if you re-read my previous post, you might see that it was what i tried to write :)

Ofcourse wasting polies is dumb and the count should be kept down as low as you can. My point is: try making those mechs look as good as they do now while cutting away › of the polies, not gonna happen.
User avatar
Snipawolf
Posts: 4357
Joined: 12 Dec 2005, 01:49

Post by Snipawolf »

Quite a speech. I know that conservation of polies and the proper usage of polies to keep texturing to a minimum is best. Honestly, some people can do whatever they want because they have computers that are worth a lot.. I turned everything special off.. Most of my sliders are full except particles, which is at half..

I would love it if people optimised and stuff, but that probably isn't going to happen.. Maybe by the time I release my mod (Most likely a killer, I said I was competing with COH/SupCom, but I think I may tone it down a bit..) I will have a much better computer.

So, the answer is. Never waste too many polygons, upgrade your GPU and CPU regularly, and remember to do things your skill level. (A nub like me would never try something more than 1k polys..)
User avatar
rattle
Damned Developer
Posts: 8278
Joined: 01 Jun 2006, 13:15

Post by rattle »

SnipaWolf wrote:I said I was competing with COH/SupCom
HAW HAW HAW! :P

What ever, I don't mind the polycount , just the sheer overuse of polygons to... add to the polycount or sloppy modeling. Personally I set myself a limit of 1500-2000 and I barely breach the 1500 mark without too much overuse (at least I try to). But people who simply ignore wasted polygons because current PCs can handle it no matter what are just stupid in my opinion.
User avatar
Snipawolf
Posts: 4357
Joined: 12 Dec 2005, 01:49

Post by Snipawolf »

Damnit, now you made me laugh.. :-)

The larger the unit is the more polies required to satiate it of course.. But things that are extremely small, shouldn't use very much at all.. Of course, I was still surprised to see I could lower my model from 1200 to like... 899? Or something..
User avatar
Caydr
Omnidouche
Posts: 7179
Joined: 16 Oct 2004, 19:40

Post by Caydr »

I don't like compromising on some things, like for instance rounded surfaces. I want em to look round, dammit! I don't care if it's half my overall polycount, I'll have a round cockpit and I'll be happy :twisted:
User avatar
Snipawolf
Posts: 4357
Joined: 12 Dec 2005, 01:49

Post by Snipawolf »

Meh, thanks for the love of a crappy computer caydr :x

You only need 20 polies to make it look round anyways..
User avatar
rattle
Damned Developer
Posts: 8278
Joined: 01 Jun 2006, 13:15

Post by rattle »

Caydr wrote:I don't like compromising on some things, like for instance rounded surfaces. I want em to look round, dammit! I don't care if it's half my overall polycount, I'll have a round cockpit and I'll be happy :twisted:
Alright, make 16, 12, 8 and 6 sided cylinder. Skin them with a basic texture, put them ingame and compare them from a distance, not all zoomed in. I'm pretty sure the 16, 12 and 8 get all very close, and from a certain distance the 6 side one will look the same, if it's something which is intended to be a barrel of course. There's no need for a 200 sided barrel (It is just an example so don't get hot over it). :P

For comparision: 16 sided = 60 faces, 12 sided = 44 faces, 8 sided = 28 faces, 6 sided = 20 faces. A model with lots of barrels could save 40 faces each barrel if it uses six sided ones instead of 16 sided ones without neglecting detail (much). Unless you want it to be perfectly round even when you're all zoomed in.
User avatar
Guessmyname
Posts: 3301
Joined: 28 Apr 2005, 21:07

Post by Guessmyname »

less than that if you appreciate that people will not, for the most part, zoom in close enough for it to matter. A cylinder with 8-12 faces will do for rounded things
User avatar
rattle
Damned Developer
Posts: 8278
Joined: 01 Jun 2006, 13:15

Post by rattle »

Personally I got used to use cylinders with a quad or triangle base for small barrels and am using 6 sided for larger ones, even on things with a higher polycount and it makes no noticable difference at all except it's alot polygons less.
Post Reply

Return to “Art & Modelling”