Википедия
Z-буферизация — в компьютерной трёхмерной графике способ учёта удалённости элемента изображения . Представляет собой один из вариантов решения «проблемы видимости». Очень эффективен и практически не имеет недостатков, если реализуется аппаратно . Программно же существуют другие методы, способные конкурировать с ним: Z-сортировка и двоичное разбиение пространства (BSP), но они также имеют свои достоинства и недостатки. Основной недостаток Z-буферизации состоит в потреблении большого объёма памяти : в работе используется так называемый буфер глубины или Z-буфер.
Z-буфер представляет собой двумерный массив , каждый элемент которого соответствует пикселю на экране. Когда видеокарта рисует пиксель, его удалённость просчитывается и записывается в ячейку Z-буфера. Если пиксели двух рисуемых объектов перекрываются, то их значения глубины сравниваются, и рисуется тот, который ближе, а его значение удалённости сохраняется в буфер. Получаемое при этом графическое изображение носит название z-depth карта , представляющая собой полутоновое графическое изображение , каждый пиксель которого может принимать до 256 значений серого. По ним определяется удалённость от зрителя того или иного объекта трехмерной сцены. Карта широко применяется в постобработке для придания объёмности и реалистичности и создаёт такие эффекты, как глубина резкости , атмосферная дымка и т. д. Также карта используется в 3д-пакетах для текстурирования , делая поверхность рельефной.
- Примеры карт
Ниже представлен результат использования двух карт вместе. Здесь вторая карта снята из сцены, в которой первая выступила в качестве текстуры, выдавливающей поверхность.
Карта 1
Карта 2
Результат
Разрядность буфера глубины оказывает сильное влияние на качество визуализации: использование 16- битного буфера может привести к геометрическим искажениям, например, эффекту «борьбы», если два объекта находятся близко друг к другу. 24, 32-разрядные буферы хорошо справляются со своей задачей. 8-битные почти никогда не используются из-за низкой точности.
Обычно изобретателем z-буфера считают Эдвина Катмулла , хотя эту идею описал ещё Вольфганг Штрассер в своей диссертации (1974).