The second thing you have to be aware of is the problem that many pixels get rendered in vain. If the triangle setup unit gets a triangle that is somewhere in the background of the scene, where it is partly or completely covered by triangles in front of it, it will still do what it always does and convert this triangle into pixels. After that, those pixels get sent to the rendering unit. Here in this unit the Z-buffer gets accessed and the z-coordinate of the pixel at the spot where the new pixel is supposed to be drawn is read. If the value in the z-buffer is zero, which means that nothing has been drawn at this location yet, or if it shows that the new pixel is in front of the value that was found in the z-buffer, the pixel will get rendered and then the z-coordinate of the new pixel will get stored in the z-buffer. The problem is however, that the rendering pipeline has already wasted one clock cycle, even if the new pixel should have a z-coordinate behind the pixel that has been drawn at the same spot already, which means that it will be discarded. Even if the new pixel should have been rendered and stored, it is possible that a later triangle will happen to cover this pixel and so the 'old' pixel will be overwritten. Once again the pixel was drawn in vain.
I hope that this flow chart I created will make the understanding a bit easier:
I hope I explained in a somewhat understandable way that we've got two of the most important problems of 3D-rendering here. First of all, the engine is wasting valuable rendering power for the drawing or at least fetching of pixels that will never be seen on the screen. Each of those 'uselessly rendered pixels' is taking away fill rate. The second problem is the z-buffer. It gets accessed twice for each pixel in each triangle of the scene, which represents several times the screen resolution. These z-buffer accesses cost an immense amount of memory bandwidth. In fact the z-buffer is the most accessed part of the local video memory .
Besides the tile architecture we know from Videologic and Microsoft's Talisman idea ATi is the first mainstream 3D chip maker that has developed a technology that addresses both problems, the wasted fill rate as well as the wasted memory bandwidth.
- ATi's Business Strategy
- Hardware T&L
- Hardware T&L, Continued
- Vertex Skinning
- Excurse - The Next Step Of The 3D Pipeline After T&L, The Triangle Setup
- Fill Rate, Rendering Pipelines And Triangle Size
- Wasted Energy - The Rendering Of Hidden Surfaces
- B - Radeon's HyperZ
- Fill Rate And Memory Bandwidth - They Belong Together!
- Fill Rate And Memory Bandwidth - They Belong Together! Continued
- C - The Pixel Tapestry Architecture
- The Pixel Tapestry Architecture, Continued
- 3D - Textures
- Range Based Fog
- Card Details
- Driver Interface
- Driver Interface, Continued
- Test Setup
- Benchmark Expectations
- Benchmark Results - Quake 3 Arena Demo001
- Benchmark Results - Quake 3 Arena Demo001 FSAA
- Benchmark Results - Expendable Demo
- Benchmark Results - Expendable Demo FSAA
- Benchmark Results - Dagoth Moor Zoological Gardens
- Benchmark Results - Evolva Rolling Demo
- Benchmark Results - Evolva Rolling Demo Bump Mapped
- Benchmark Results - MDK2 Demo