Applications of Explicit Early-Z Culling
Jason L. Mitchell, Pedro V. Sander · 2004
Introduction In past years, in the SIGGRAPH Real-Time Shading course, we have covered the details of real-time hardware shading on the R300 generation of products from ATI. Perhaps just as important as shading performance, however, is knowing when not to shade. The R300-based architectures from ATI have a variety of mechanisms for visibility-related culling, including asynchronous visibility queries, hierarchical-z culling and early-z culling. In these notes, we will outline a number of different applications which take specific advantage of early-z culling to achieve significant performance increases. Early-Z Prior to execution of the pixel shader, R300-based chips from ATI perform a check of the interpolated z value against the z value in the z buffer. This occurs for any pixels which passed the hierarchical z test and which are actually going to use the primitive's interpolated z (rather than compute z in the pixel shader itself). This additional check provides not only an added e