Sign in to follow this  

Polygon count

This topic is 4832 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

How many Tris are being rendered in a 3d game these days? I was surprised that my card was able to render 500,000 tris at 10 fps. and that's just a 9600 mob... I thought it would be around 50,000. But then I read something about Far cry to render 200,000 tris in a scene....

Share this post


Link to post
Share on other sites
What the actual fill-rate is isn't really that important. What is important is your game can render scenes at a playable fps on your target hardware. If fps changes significantly when you change the resolution then you're fill-rate limited meaning to get better performance you'll have to reduce fragment shader complexity, reduce overdraw, lower the amount of passes per frame etc.

Share this post


Link to post
Share on other sites
Well, ....ehh.... yes!

If your game is too slow you can either draw less or draw it more efficiently to make it faster. I' aware of that...

no, I thought of comparing my polygon count to the one in latest games, and see how bad my skills are.
I can render about 40.000 tris at excceptable frame rate on my 9600 mob. So.... is that good or bad?


Share this post


Link to post
Share on other sites
What frame rate and what kind of triangles? Are they unlit and untextured or do they have full per-pixel bump-mapping with gloss mapping? You've got a give a description of what kind of things you're rendering and the fps you're getting if you want to know if your game is really running as fast as it can.

Though IMO if it runs at a decent frame rate on your target hardware then it's fast enough, even if it could be faster it probably won't really make much of a difference,

Share this post


Link to post
Share on other sites
It seems to me that most studios, near the beginning of development, sit down and say to themselves, "Ok, it has to run on at least XXX with card with an XXXX CPU and XXX MB RAM and needs to maintain at least XX Fps at all times." Then, you develop, keeping in mind your base system.

Share this post


Link to post
Share on other sites
Quote:
Original Signature by Sunray
Perl - Made by Idiots, Java - Made for Idiots, C++ - Envied by Idiots



Ah well what can I say.I agree about C++ absolutely ;)

[Edited by - FireNet on September 14, 2004 2:18:46 AM]

Share this post


Link to post
Share on other sites
Quote:
Original post by Viper173
I can render about 40.000 tris at excceptable frame rate on my 9600 mob. So.... is that good or bad?


what they are trying to explain is: its absolutely and utterly meaningless. if you use a dozen highres textures and 3 passes for everything and have highly complex physics compared to one lowres texture without any ai or physics, then is engine a bad because engine b can push 200k polys in a scene?

though, if all you want to hear is "40k is a joke and you suck", im sure somebody here can be bribed to do so ,-)

and no, if your fillrate bound then you CANT just "render more efficiently". if you need to fill x billion pixels you need to fill x billion pixels and "dumbing down" the shader or reducing the resolution isnt exactly "more efficient", just a compromise. and especially without even knowing your fsaa, af settings, resolution and WHAT your app is really doing there is NO way to tell if its good or bad.

Share this post


Link to post
Share on other sites
Well, of course it depends on how you texture and lighten your triangles and how complex your shaders are and what else you do with your cpu...

I simply started this threat because I wanted to get an orientation . I think fps are a good measure to compare two engines.
For example: I was surprised how 'fast' Far Cry is actually running on my notebook and that the view distance is about one km.
On the other side there are games which obviously run slower although the scene complexity isn't even as great as the one in Far Cry.

How else do you wanna compare two engines? I don't believe that there wouldn't be a much better way to render things sometimes...

ok, ok then. Let's say I wanna render objects using one texture unit and do lighting with a vertex shader.
So I have to pass a vertex, uv coordinates for my texture, and the normal to my graphics card.
Using OpenGL, what do you think would be the 'best' solution to pass these information to the graphics card and still support compatibility for older cards such as GeForce 3 or 4???

And to satisfy you I don't even ask how many tris you could render at how many fps by doing this :)

Share this post


Link to post
Share on other sites
Comparing engines with FPS is also pointless because it doesn't take into account background processing. I can make a 3d demo that renders way more FPS than a video game with about the same scene quality. Why? Cuz I'm not handling AI, Game Mechanics, and Collision Detection etc. Some game have alot of power going on without you knowing, insane scripting engines, physics that even god couldn't touch, etc. Like everyone said, you probably should just pick a target platform, and decide if your engine meets your own expectations.

Share this post


Link to post
Share on other sites
grrr...!!!

that's why I said 'or whatelse you do with your cpu'...
I know. I was talking about a first person shooter.

Ok, then nobody agrees with me when I say there are efficient engines and not so efficient engines?

What about Quake 3 ? For me it's the best example for an engine that's running unbelievably fast. I mean I write simple demos that run slower that this entire game. (which also takes care of other things in the background by the way)

Are you people soooo fair not to be able to say that some people can program the same thing faster that others?? I dont bel. it

Share this post


Link to post
Share on other sites
Quote:
Original post by Viper173
Using OpenGL, what do you think would be the 'best' solution to pass these information to the graphics card and still support compatibility for older cards such as GeForce 3 or 4???


ah, such are the times.. gf3+4 arent really old enough to worry about compatibility unless you feel like using fragment programs. vbo is supported by both and is usually the method of choice (though even that depends on what youre doing.. using vbo for a simple gui using 5 quads would be a) overkill b) not make any difference and c) be useless extra work to code).

also, you might want to ask yourself what the best order might be (sorted by what and with which priority).

and its good youre not asking, or might feel compelled to mention the 90fps i get with 500k polys with my terrain on a rad9800 (3 textures, no lighting, fillrate eating fog). still wont buy me anything because looking at it will become boring pretty quick. that and the "sane" settings have 50k at 350fps (so quite obviously the polys/second arent even linear within the same program, making it more than pointless to compare different programs by that). as you can see, all that these numbers are good for are bragging ,-)

Share this post


Link to post
Share on other sites
Ok, again!
Then you all made me quit comparing 3d engines.

But what about simple demos as discribed above.

like 500k tris terrain 3 text. and fog. and maybe even lighting

what's a good way to get it on my screen ? (w openGL of course)

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Use VBOs, keep draw calls to a minimum (i.e. drawing 2000 tris in one batch rather than 2 tris in 1000 batches) and keep state changes to a minimum. That's the gist of it anyway, there's loads of different tricks/techniques etc out there. The 'OpenGL Performance Tuning' presentation on this page may be of interest. If you have a high speed net connection you may want to check out the video version linked to here.

Share this post


Link to post
Share on other sites
hmmm, VBOs sound good.
Downloaded a demo from nehe which is running at 300 fps although its rendering 30000 tris. But what's the min. requirement for this feature?

There's not much of a difference between vertex arrays and the vbo method, is there?
Since I'm new to the idea of vertex arrays...is there a way to render terrain depending on what you see only? Let's say you have a hugh 1024 by 1024 map but you only wanna draw the region you see.
or, can you draw only parts of your entire array?

I know, I should go out there and read some papers on that but I simply wanna know how flexible the idea of arrays is. certainly your desired object has to be static, but do you also have to draw the entire object?

Share this post


Link to post
Share on other sites
Quote:
Original post by Viper173
hmmm, VBOs sound good.
Downloaded a demo from nehe which is running at 300 fps although its rendering 30000 tris. But what's the min. requirement for this feature?

VBOs are supported on TNTs and Radeon7xxx and up iirc.
A detailed list

Quote:

There's not much of a difference between vertex arrays and the vbo method, is there?

Both methods use arrays ;)
VBOs "just" add the VBO specific stuff on top of that.

Quote:

Since I'm new to the idea of vertex arrays...is there a way to render terrain depending on what you see only? Let's say you have a hugh 1024 by 1024 map but you only wanna draw the region you see.
or, can you draw only parts of your entire array?

A common way to achieve this is to split your terrain into several smaller chunks and render only those that are in the current view-frustum (frustum culling).
For rendering only parts of your array you would have to read up on index arrays/buffers, which can specify which vertices of a vertex array are drawn.
Quote:

I know, I should go out there and read some papers on that but I simply wanna know how flexible the idea of arrays is. certainly your desired object has to be static, but do you also have to draw the entire object?

(Almost) everything in a 'serious' renderer will be drawn using VAs or VBOs(/VARs/VAOs), so using them will certainly be a good idea. Your models don't even have to be static ;) Animation can be done in a vertex shader and you can also update your arrays in between two frames, though you should try to minimize this for the sake of good performance.

Share this post


Link to post
Share on other sites
Thanx Iternal!

I can't wait until trying out those VBOs. The NeHe Tutorial isn't that hard either.

I think I will go for rendering smaller parts of my terrain rather than messing around with vertex indices.

What would be an intelligent resulotion for vbo objects though?
Entire terrain would be 500.000 tris but what about each vbo size?

thank you all for your support

Share this post


Link to post
Share on other sites

This topic is 4832 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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this