Grafische toepassingen, en dan voornamelijk spellen, worden steeds complexer en vragen ook steeds meer rauwe prestaties en bandbreedte van videokaarten. Om te voorkomen dat deze daardoor enorm duur worden past men tegenwoordig steeds meer slimme methoden toe om de krachten van de chip te besparen. Occlusion culling is één van die methodes, in feite een ontzettend simpel idee: wat je niet ziet, dat bereken je ook niet. De implementatie daarvan is echter een heel stuk lastiger en er zijn dan ook verschillende methoden. Een hele simpele is de Early Z Check. Voor een pixel de pipeline ingaat wordt gecontroleerd of er al een pixel in de color buffer zit die bovenop deze nieuwe pixel komt te zitten. Als dat het geval is wordt de nieuwe niet meer berekend. Belangrijk hierbij is natuurlijk de volgorde waarin de pixels worden berekend.
HyperZ van ATi is een hiërarchische methode, gebaseerd op het werk van Ned Greene. Voor ieder blok van 64 pixels wordt de diepste Z-waarde onthouden. Zo kan veel sneller dan met een Early Z Check bepaald worden of een bepaald stuk van de scene zichtbaar is, waardoor veel minder bandbreedte gebruikt wordt. Nadeel is dat als er ook maar 1 pixel zichtbaar is het hele object getekend wordt, maar dat weegt niet op tegen het geheugen-voordeel. PowerVR heeft weer een compleet andere methode die werkt met raycasting, waar ook GigaPixel (overgenomen door 3dfx, nu in bezit van nVidia) en ATi aan werken. Een interessant stuk tekst voor mensen die wat meer willen weten over de werking van een videokaart:
Certainly there are advantages and disadvantages to all of these implementations. At the same time though, with careful implementation it can be made certain that the disadvantages never outweigh the advantages. At the same time though, it is possible for a sloppy implementation to present more bad than good. They all have the ability to remove hidden surfaces, and this is exactly the point.
At the same time, there is nothing to say that multiple implementations cannot be used simultaneously. For example, one might use early Z checking to remove surfaces prior to binning on a deferred rendering architecture. This is just one possible way. There are a variety of things that hardware developers will, and certainly do investigate.