• Advertisement
Sign in to follow this  

How Do They Do It?

This topic is 4829 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 do the professional game engines manage to render 1000000 triandgles into a scene. My first engine struggled at about 50k to 75k. What main prinicipals can the programmer look to apply in his own code? BTW im running a very fast system so its not that. ace

Share this post


Link to post
Share on other sites
Advertisement
Go to ATI and Nvidia's developer sections and download performance optimization documents. They have an enormous amount of information. You'll possibly have to restructure a lot of your code.

Share this post


Link to post
Share on other sites
Well i dont think optimisation is what im looking for. I don't think i'm rendering enough yet for optimisation to affect it much.

I'm basically after shout-outs for the basic techniques on what DirectX like to handle when it comes to batching, index lists etc

Anyone?

ace

Share this post


Link to post
Share on other sites
My first suggestion would be to figure out if you're fill-rate limited or transform limited. My guess is that you're fill-rate limited, so although you're drawing fewer triangles than other games or graphics demos, you're drawing just as many triangles. They might actually be getting a higher triangle count simply because their models have a higher triangle count, and thus each triangle on average is smaller. Fill-rate remains about the same, and they simply push vertex processing a bit harder.

Or it's possible that you're doing a lot more alpha-blending, or maybe you need some better culling algorithms, if overdraw is maxing out your fill-rate. Granted, I'm nowhere near an expert, but maybe these few suggestions might point you in the correct direction.

Share this post


Link to post
Share on other sites
Quote:
Original post by ace_lovegrove
Well i dont think optimisation is what im looking for. I don't think i'm rendering enough yet for optimisation to affect it much.

I'm basically after shout-outs for the basic techniques on what DirectX like to handle when it comes to batching, index lists etc

That's exactly the kind of info you'll find in optimization papers [smile]
Optimal batch sizes, things to do, things not to do, ...etc

Share this post


Link to post
Share on other sites
So the fact could be that my fill rate is the same as the 'pros' but they just use more triangles.

The kinda things i found affected my fps where a back to front sorting routine and especially my font engine which used textured quads. Although iwas told in another post that i was doing it correctly.

Anything to say about theese two points?

ace

Share this post


Link to post
Share on other sites
Quote:
So the fact could be that my fill rate is the same as the 'pros' but they just use more triangles.
The modern graphics pipeline is a hugely complex beast, there are many things that can have a substantial influence on the final performance. This is why you read through nvidia/ati papers to determine what works best for their chipsets..

If you've got the time/money, look up this book: Realtime Rendering (Second Edition), Moeller & Haines Apart from being a classic text on this sort of thing, it's got a great chapter on optimizations and how to profile a graphics engine. Read that and you'd have your answer to this post.

Things like balancing geometry throughput and fill-rate throughput, and ways to determine/improve parallelism opportunities. These sorts of optimizations can be practiced from square 1 even if you've only got a simple engine.

hth
Jack

Share this post


Link to post
Share on other sites
Ok, so i had a quick read of a pdf about ATI/DX ooptimization. It says, for example, use about a 4mb vb for starters. How can i work out roughly how many verts this would be?

ace

Share this post


Link to post
Share on other sites
Quote:
Original post by ace_lovegrove
Ok, so i had a quick read of a pdf about ATI/DX ooptimization. It says, for example, use about a 4mb vb for starters. How can i work out roughly how many verts this would be?
By asking yourself how big your vertices are.

"Initiative." Look it up, it'll change your life.

Share this post


Link to post
Share on other sites
maths.
You know the size of the vb.
You know what data you require for each vertex.
Thus, work out how big each vertex is in bytes and see how many fit into 4mb.
easy.

edit: hehe, or what Oluseyi said [lol]

Share this post


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

  • Advertisement