Skip to content

33. Алгоритм, использующий Z буфер.

Pandas edited this page May 30, 2017 · 2 revisions

Алгоритм работает в пространстве изображения.

Буфер кадра (регенерации) используется для заполнения атрибутов (интенсивности) каждого пикселя в пространстве изображения.

Для него требуется буфер регенерации, в котором запоминаются значения яркости, а также Z-буфер (буфер глубины), куда можно помещать информацию о координате z для каждого пикселя. Вначале в Z-буфер заносятся максимально возможные значения z, а буфер регенерации заполняется значениями пикселя, описывающими фон. Затем каждый многоугольник преобразуется в растровую форму и записывается в буфер регенерации, при этом, однако, не производится начального упорядочения.

Достоинства

  1. Простота. Сцены могут быть любой сложности
  2. Элементы сцены не нужно сортировать

Недостатки

  1. Большой объём памяти
  2. Трудоёмкость устранения лестничного эффекта
  3. Трудоёмкость реализации эффектов прозрачности

Imgur

Алгоритм

  1. Заполнение буфера кадра фоновый значением интенсивности (цвета).
  2. Заполнение Z - буфера минимальным значением Z .
  3. Преобразование каждого многоугольника в растровую форму в произвольном порядке.
  4. Вычисление для каждого пикселя с координатами (x, y), принадлежащего многоугольнику, его глубины Z(x, y).
  5. Сравнение глубины Z(x, y) со значением Zбуф(x, y), хранящимся в Z-буфере для пикселя теми же координатами(x, y). Если Z(x, y)>Zбуф(x, y), то записать атрибут очередного многоугольника в буфер кадра и Zбуф(x, y) заменить на значение Z(x, y).

Замечание
Алгоритм, использующий Z -буфер, можно применять для построения разрезов поверхностей. В этом случае изменяется только операция сравнения глубины пикселя со значением, занесенным в буфер: [Z(x, y) > Zбуф (x, y)] и (Z(x, y <= Zразр), где Zразр - глубина искомого разреза.

Clone this wiki locally