Z-buffering, also known as depth buffering, is a technique in computer graphics programming that is used to determine whether an object (or part of an object) is visible in a scene. It can be implemented either in hardware or software, and is used to increase rendering efficiency.
When a scene is rendered, each pixel has an X and Y coordinate (horizontal and vertical orientation to the camera), as well as a Z coordinate (depth, or distance from the camera). The Z buffer is a two-dimensional array (X and Y) which stores the Z-value of each screen pixel. If another object must be rendered at the same pixel location, the algorithm overrides the previous value if the new pixel is closer to the camera. This algorithm increases rendering speed for opaque objects, but transparent objects do not benefit since the distant objects are partially visible, and must be fully rendered.