Page 1 of 1

Faces Guideline

Posted: Tue Apr 05, 2005 10:07 pm
by tonyhnz
In our game we wish to allow for a large number of moving models present in a scene at the same time. For arguments sake lets say we want to have a max of 200 character models in close proximity.
Does anyone have any guidelines or suggestions as to how many faces we should use for these models.

Posted: Thu Apr 07, 2005 4:49 am
by walaber
i think that depends heavily on your proposed system requirements for the game you're making. but the easiest thing to do is just run some simple tests, and make your decision from there. but remember that your final game will be much more complex than any test, so leave a little room for that (in other words choose a slightly smaller polycount than the tests recommend)..

Posted: Thu Apr 07, 2005 7:28 am
by RyanN
mucking around with the ogre robot demo any more than 100 robots on screen at once while animating would chug the FPS.

Posted: Tue Apr 12, 2005 2:40 pm
by tonyhnz
I think I will start with a target of 5000 polygons and see if that gives enough detail and does not bring the video card to its knees (when there are many characters in the scene).
On a related question - does Ogre use some sort of algorithm on (non static) meshes so that further away meshes have less detail ?

Posted: Tue Apr 12, 2005 2:48 pm
by psyclonist
Two hundred animated characters with 5000 polys each? I doubt you'll experience acceptable performance. There are documents around the web which talk about commercial products and the detail of objects in RTSs, for example, when lots of characters are in view. They talk about a few hundred polys per character (most of the time at the lower end...) for acceptable results. Anyway, looking forward to your results!

-psy

Posted: Tue Apr 12, 2005 3:54 pm
by zander76
Hmm, see if I remember this correctly. Perhaps someone can correct me on memory consumption.

You have 6000 poly mesh and its indexed (say each point is has 3 triangles attached) give you 2000 vertecies not including the index.

So each vertex is:
float x, y, z, w
float u, v

Each float is 4bytes giving you a total per vertex of 24bytes.

2000 * 24 = 48000bytes or 46k without the texturing or anything. With 200 characters 8meg of video memory. If you are using 512x512 textures for characters ( textures for characters are usually bigger then other textures in your game ) then thats an additional meg for each character that does not look like the others.

To make things worse is that if you are doing the animation in the cpu then the 8meg for characters will have to be tranferred accross the bus to the video card before being displayed causing fill rate problems.

Hopefully I got that right.. Just woke up. :) If not someone please correct me so that they will have a good idea of what they will need.

Ben

Posted: Tue Apr 12, 2005 4:18 pm
by :wumpus:
tonyhnz wrote: On a related question - does Ogre use some sort of algorithm on (non static) meshes so that further away meshes have less detail ?
Yes, it has an LOD (progressive mesh) algorithm which is automatically used.
2000 * 24 = 48000bytes or 46k without the texturing or anything. With 200 characters 8meg of video memory. If you are using 512x512 textures for characters ( textures for characters are usually bigger then other textures in your game ) then thats an additional meg for each character that does not look like the others.
Uhm, the vertex data of one character can be shared by the others. If you display 200 instances of the same mesh you still only use 1x the vertex and texture memory.
To make things worse is that if you are doing the animation in the cpu then the 8meg for characters will have to be tranferred accross the bus to the video card before being displayed causing fill rate problems.
Luckily, with hardware skinning (which is mandatory for so many animated entities) only the positions/orientations of the bones have to be transferred. This is a few bytes per entity per frame.

Posted: Tue Apr 12, 2005 5:40 pm
by zander76
Thanks wumpus,

Yeah, I guess I wasn't that clear about if they are different characters or not. If you are doing some kind of RTS then chances are the characters will all be the same. I was thinking something more like World of Warcraft when I answered, playing to much I guess. :)

Can you do hardware skinning with a physics library. I guess you would just keep a copy in both video memory and system and do calculations on system then tranfer the results.

Thanks for the additional detail, made things clearer.
Ben

Posted: Wed Apr 13, 2005 8:04 pm
by tonyhnz
The characters will be sharing the same pool of potential textures. We want to have armor parts that can be swapped out so Im not sure what effect that has on those calculations.
I am beginning to think that 5000 may be on the high side. I need to look at some lower poly models to see if they look detailed enough.

Posted: Thu Apr 14, 2005 11:55 pm
by Imperil
No offence but if you want 200 models on the screen you are nowhere even close to 5000 poly.

I would look at around 200-300 tris. unless you want the game to be < 5fps.

I saw somebody mention World of Warcraft.. for reference the models in that game range from a few hundred up to about 1500-1600 tris.