Jump to content
  • Advertisement
Sign in to follow this  
dave

Is 36000 vertices too much per frame?

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

For some reason when i do 1 DrawPrimitive() call per frame to render 36000 verts as a triangle list i get an fps of about 50 which is not a smooth motion when the objects are rotated about teh y axis. I have prefilled the vb in question during app setup so all thats being done per frame is the rendering. Strangely, if i render the vertices in groups of 36, each using a separate DP call, the FPS is still around 50. I cant think why this would be the case. Dont the pros have upwards of 50000 verts in their scenes? any tips would be appreciated. ace

Share this post


Link to post
Share on other sites
Advertisement
Don't worry about what the pros do.

For optimal throughput on newer cards you should be rendering several hundred thousand triangles per frame.

As for the fps issue...

What video card do you have?
What happens when you render more vertices?
What resolution is your program at?
Is FSAA enabled?
Is vertical sync enabled?
Are you using the retail or debug runtime?
Are you being swamped with debug output?

Share this post


Link to post
Share on other sites
Radeon 9700pro
Slows Down More
1024x768
NO
NO
Debug
Not to my knowledge, where do i find out?

ace

Share this post


Link to post
Share on other sites
Quote:
Original post by ace_lovegrove
For some reason when i do 1 DrawPrimitive() call per frame to
render 36000 verts as a triangle list i get an fps of about 50 which is not a smooth motion when the objects are rotated about teh y axis.

I have prefilled the vb in question during app setup so all thats being done per frame is the rendering.

Strangely, if i render the vertices in groups of 36, each using a separate DP call, the FPS is still around 50.

I cant think why this would be the case.

Dont the pros have upwards of 50000 verts in their scenes?

any tips would be appreciated.

ace


A highend card can do around 100 million polygons a second, which is 50 million vertices = about 1 million per frame, assuming just a transform.

You are most likely batch limited.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
The size and amount of overdraw our very important here, I find on my geforce 3 I can do 15000 triangles zoomed in kind of close at 30fps and much more than that zoomed out. As I start to implement a scene graph, and turn on various optimizations the results improve but they are no longer so predictable it's hard to tell how many triangles are actualy beeing rendered.

Share this post


Link to post
Share on other sites
i'll go with that, cos i got it rotating around the y axis and now u mention distance, when theyare far away its smoother and when theya re closer itjerks,

so how can i improve the performance, is 36000 verts 2 big for a batch?


ace

Share this post


Link to post
Share on other sites
I found that the optimum batch size are 1000 primitives. I have rad9700 pro too, and with this size i get 70 million per sec output.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Some things to improve performance

1.) render from front to back and be sure zbuffer test is enabled.

2.) view frustrem culling

3.) depending on the source of the polygons you may be able to reject triangles early based on your scenegraph, just be sure not to let your render loop get too cpu dependent.

4.) If this is a mesh or HOS then simplification/ trianglation could be tweaked to reduce the number off triangles.

Number one is the simplist and provides the most advantage though number 2 starts to really pay off the more off screen triangles you have. It sounds like your dealing with the very common problem of overdraw and if you search for that term you will find dozens of possable fixes.

Share this post


Link to post
Share on other sites
If you can increase the number of DP calls with no loss of speed, then I would guess you are GPU bound. If you can drop the resolution and still lose no speed then you are probably vertex bound (which is unlikely unless maybe your vertices are in system memory).
These aren't all fullscreen overlapping triangles drawn back to front, are they?

Quote:

I found that the optimum batch size are 1000 primitives

I'm not aware of any optimum batch sizes. The important thing is to reduce the number of batches - that tends to be a bigger hit than the number of polygons.

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.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!