What is the depth complexity in todays games? [overdraw]

TEXAN

Regular
I'm talking about todays farcy/doom3/HL2 and the upcoming Unreal3Eng/PS3/XB2 generation of games.

It use to be 1.2-1.5, then as games went more complex it moved to 2-3 then to around 4-5

What is it at now? especially for the above games?

7-8?

If so, then PowerVR, your time is now, hurry up!
 
How about a convenient utility to measure overdraw?

Im sure I've seen pics where every polyon is rendered transparent and you can see all the layers piling up.

How about a little app that sets your GPU to just incriment a pixels value by 1 each time it would be written too instead of writing the colour value. Then you can take a screenshot, sum all the pixel values and divide it by the number of pixels to get the overdraw.

You could do that to a clip of gameplay and produce a distribution graph of depth complexity giving you its variance etc..

Thats definately worth some PowerVR engineers time...
 
Just a question on definition:
overdraw = depth complexity, or overdraw = depth complexity - 1?
 
Dave B(TotalVR) said:
How about a convenient utility to measure overdraw?

Im sure I've seen pics where every polyon is rendered transparent and you can see all the layers piling up.

How about a little app that sets your GPU to just incriment a pixels value by 1 each time it would be written too instead of writing the colour value. Then you can take a screenshot, sum all the pixel values and divide it by the number of pixels to get the overdraw.

Dave, what you're asking for implies (to me) that the driver would do various substitutions of the drawing commands. Now while this is feasible isn't it rather open to abuse? In a multiplayer game you'd be able to see through the walls, which strikes me as cheating.
 
Xmas said:
Just a question on definition:
overdraw = depth complexity, or overdraw = depth complexity - 1?
I suppose it depends on whether you are also counting a (potential) clear of the framebuffer.
 
Simon F said:
Xmas said:
Just a question on definition:
overdraw = depth complexity, or overdraw = depth complexity - 1?
I suppose it depends on whether you are also counting a (potential) clear of the framebuffer.
Should be counted. A frame or some sub-buffers might get cleared repeatedly, and sometimes that even makes sense.
 
Lets take Doom 3...

You can ask Doom 3 to do a show triangle. From this you can see that the expensive shaded surfaces in Doom 3 are culled out very effiently by the engine. However if you look at the stencil shadow passes they result in massive overdraw.

To sum things up I'd say Doom has 1.2-1.5x overdraw on the expensive pixels and probably in excess of 50x overdraw on some scenes with the cheap stencil pixels.

That said don't forget that Doom 3 copies the scene to a texture for many it's special effects when considering PowerVR geometery sorting.
 
D3 has the r_showoverdraw command. I think it's slightly broken though. IIRC the game is missing the "overdraw.tga". It does sort of work on some special effects I did on a map of mine but it doesn't (seem to) work on most surfaces with complex programs.
 
Chalnoth said:
Hyp-X said:
Should we count pixels that fail the Z test when calculating overdraw?
Given the way in which current GPU's operate, I would say no.
That would imply the only logical rate would simply be to calculate theorical and practical overdraw. It's not like pixels failing the Z test are entirely free either, although they obviously aren't too expensive.

Uttar
 
I seem to remember a thread from a while back discussing overdraw on the PS2. There were some posts by someone who profiled games using a Sony tool. I think the game with the highest overdraw, around 40 I think, was a Lord of the Rings game from EA. It likely that this level of overdraw was due to particles or fog in a certain part of the game.
 
Enbar said:
To sum things up I'd say Doom has 1.2-1.5x overdraw on the expensive pixels and probably in excess of 50x overdraw on some scenes with the cheap stencil pixels.
Due to the initial z pass, there is zero overdraw for the lighting passes. Due to the way the game levels are designed, I doubt stencil overdraw ever exceeds around 10x when averaged over the frame (on average it's probably closer to 3-5x). Doom 3's low performance is more due to the large number of passes the shadowing and lighting require.

That said don't forget that Doom 3 copies the scene to a texture for many it's special effects when considering PowerVR geometery sorting.
What kind of difference is that supposed to make?
 
Unless my memory betrays me I think that D.Vogel said somewhere that overdraw in the UE2 based UT200x games is around 4-5, but can reach also levels around 7.0.

I'd have a different question though: what would the estimated average level of opaque overdraw be in today's games? Somewhere around 3.0 maybe?
 
The definition of 'overdraw' I have always used is 'hits per pixel', not 'unnecessary hits per pixel', and I don't count clears - i.e. overdraw == depth complexity. This is because it's a true measure of cost to the engine (and it's an easier figure to calculate :D ), but of course, I could be the one that's doing it wrong.

I would also count pixels that are Z rejected - again, it's easier to calculate (although as the time spent pixel shading increases the relative cost of these will tend to 0).

But calculating exact cost to the engine is becoming increasingly complex, there are many different possible rejection points, and there are granularity issues to consider.

Simon F said:
I'm sure that games such as quake had higher overdraw rates.
I remember Quake being under 2 and Quake2 being around 2, but that's a long time ago now so I could be wrong.

I'd say Q3 would typically be between 3 and 4, the increase mostly due to additional passes and more blend effects. As for Doom3 I'd guestimate 20-40 overall, about 90% of this being Z/stencil traffic only.
 
Ailuros said:
Unless my memory betrays me I think that D.Vogel said somewhere that overdraw in the UE2 based UT200x games is around 4-5, but can reach also levels around 7.0.

I'd have a different question though: what would the estimated average level of opaque overdraw be in today's games? Somewhere around 3.0 maybe?
Well, if the UE2 engine does any sort of depth sorting at all (even coarse), I'd rather doubt an actual rendered overdraw of 4-5 would be standard (on modern video cards with early-z and stuff, that is).

Edit: In fact, since I believe the game still uses a portal-based rendering system, I think some coarse depth sorting is implicit.
 
Dio said:
I'd say Q3 would typically be between 3 and 4, the increase mostly due to additional passes and more blend effects. As for Doom3 I'd guestimate 20-40 overall, about 90% of this being Z/stencil traffic only.
Addional passes don't strike me as being overdraw contributors. I've always thought of overdraw as being purely geometry-based.
 
Back
Top