Z-буфер не является трехмерным массивом.Это 2D массив, который имеет значение в каждом пикселе.Это значение представляет глубину последнего пикселя, записанного в эту позицию.
Если ожидающий пиксель имеет глубину, которая находится позади текущего значения в Z-буфере, пиксель не виден и поэтому пропускается.Это то, что позволяет отображать объекты в любом порядке: пиксель позади не перезаписывает пиксель впереди;они будут отброшены.
Дело в том, что значение имеет разную точность.Вот где вступают биты. 16-битный Z-буфер занимает вдвое меньше памяти, чем 32-битный Z-буфер, но не может представлять тот же диапазон.
Память не совсем дешевая (ну, этоменяется, но все же), поэтому, если вам не нужна большая точность, используйте 16-битную и сохраняйте память.(Это было более важно в прошлом, когда памяти действительно было мало.)
Попытка сохранить слишком много значений в буфере, который не может их удержать, приведет к их объединению (16,5 и 15,5 оба становятся 16,например), и вы получите артефакты.