Virtual worlds feature increasing geometric and shading complexities, resulting in a constant need for effective solutions to avoid rendering objects invisible for the viewer. This observation is particularly true in the context of real-time rendering of highly occluded environments such as urban areas, landscapes or indoor scenes. This problem has been intensively researched in the past decades, resulting in numerous optimizations building upon the well-known Z-buffer technique. Among them, extensions of graphics hardware such as early Z-culling [Morein 2000] efficiently avoid shading most of invisible fragments. However, this technique is not applicable when the fragment shader discards fragments or modifies their depth value, or if alpha testing is enabled [nVidia 2008]. We introduce Triple Depth culling for fast and controllable perpixel visibility at the fragment shading stage using multiple depth buffers. Based on alternate rendering of object batches, our method effectively avoids the shading of hidden fragments in a single pass, hence reducing the overall rendering costs. Our approach provides an effective control on how culling is performed prior to shading, regardless of potential discard or alpha testing operations. Triple Depth culling is also complementary with the existing culling stages of graphics hardware, making our method easily integrable as an additional stage of the graphics pipeline