Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Метод z-буфера

Методы удаления невидимых линий

Это один из простейших алгоритмов удаления невидимых поверхностей. Идея z-буфера является простым обобщением идеи о буфере кадра. Буфер кадра используется для запоминания атрибутов (интенсивности) каждого пиксела в пространстве изображения, z-буфер — это отдельный буфер глубины, используемый для запоминания координаты z или глубины каждого видимого пиксела в пространстве изображения. В процессе работы глубина или значение z каждого нового пиксела, который нужно занести в буфер кадра, сравнивается с глубиной того пиксела, который уже занесен в z-буфер. Если это сравнение показывает, что новый пиксел расположен впереди пиксела, находящегося в буфере кадра, то новый пиксел заносится в этот буфер и, кроме того, производится корректировка z-буфера новым значением z. Если же сравнение дает противоположный результат, то никаких действий не производится. По сути, алгоритм является поиском по х и у наибольшего значения функции z(x, у).

Главное преимущество алгоритма — его простота. Кроме того, этот алгоритм решает задачу об удалении невидимых поверхностей и делает тривиальной визуализацию пересечений сложных поверхностей. Сцены могут быть любой сложности.

Основной недостаток алгоритма — большой объем требуемой памяти.

Дадим словесное описание алгоритма z-буфера.

  1. Заполнить буфер кадра фоном, а z-буфер памяти — числом zmin.
  2. Преобразовать многогранник в растровую форму:
    • ax + by + cz + d = 0 — плоскость.
      (x1, y1, z1)
      (x2, y2, z2)
      ...
      (xn, yn, zn)
      a = S(yi - yi+1) * (zi + zi+1)
      b = S(zi - zi+1) * (xi + xi+1)
      c = S(xi - xi+1) * (yi + yi+1)
    • z = -(ax + by + d)/c. Выражаем изменение плоскости вдоль одной из осей.

z - z' = -(ax1 + d)/c + (ax + d)/c = a(x - x1)/c
z1 = z - (a/c)x, но x = 1, поэтому
z1 = z - (a/c), где z1 — новая координата, а z — старая координата.

  1. Вычислить для каждой точки (x, y) многоугольника значение z(x, y) — глубины нахождения в прямоугольнике.
  2. Сравнить полученное z с соответствующим zбуфера, полученным по координатам в буфере.
  3. Если вычисленное z меньше zбуфера, то изображение помещаем в буфер кадра, а zбуфера

-----------------------------------------------------------------------------

<== предыдущая лекция | следующая лекция ==>
Линия Бауэра | Алгоритм, использующий z-буфер
Поделиться с друзьями:


Дата добавления: 2014-01-03; Просмотров: 712; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.