Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_ekzamen (2).doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
661.5 Кб
Скачать
  1. Проблема удаления невидимых линий и поверхностей. Обзор основных подходов и алгоритмов.

Цель: устранение неоднозначности восприятия объектов и улучшение их зрительного восприятия.

Все алгоритмы удаления невидимых линий включают в себя сортировку, которая ведется по геометрическому расстоянию от наблюдателя до тела. Чем дальше расположена часть объекта от наблюдателя, тем больше вероятность того, что она будет частично/полностью заслонена другими частями этого объекта.

Эффективность любого алгоритма удаления невидимых линий (УНЛ) будет зависеть от эффективности алгоритма сортировки. Все методы УНЛ можно классифицировать по 3м признакам:

  1. По выбору удаляемых частей: удаление невидимых линий, ребер, поверхностей, объектов;

  2. По порядку обработки элементов сцены:

    1. удаление в произвольном порядке

    2. удаление в порядке, определенном процессом визуализации

  3. По системе координат:

    1. алгоритмы, работающие в пространстве объектов (каждая из n граней объекта сравнивается с остальными (n-1) гранями). Сложность – N^2

    2. алгоритмы, работающие в пространстве изображения (для каждого пикселя изображения определяется, какая из n граней объекта в нем просматривается). Сложность – (M^2*N)

  1. Удаление невидимых линий методом плавающего горизонта.

Чаще всего используется для удаления невидимых линий 3хмерного представления функций, описывающих какую-либо поверхность f(x,y,z)=0.

Алгоритм работает в пространстве изображения. Главная его идея заключается в сведении 3хмерных задач к нескольким двухмерным путем пересечения исходной поверхности последовательностью параллельных секущих плоскостей, имеющих постоянно значение координаты z. Получается набор кривых y=f(x,Zi), Zi=const в пределах одной секущей плоскости, i=1..n.

  1. После определения n произвольно упорядоченных плоскостей Zi по возрастанию расстояния от наблюдателя.

  2. Для каждой плоскости, начиная с ближайшей к точке наблюдения, строится кривая, лежащая на ней, т.е. для каждого значения координаты X в пространстве изображения определяется соответствующее значение Y.

Сам процесс УНЛ заключается в следующем: если на текущей плоскости при некотором заданном X соответствующее значение Y больше, чем значение Y на всех предыдущих кривых, то данная кривая в этой точке видима.

Данный алгоритм работает хорошо до тех пор, пока какая-то очередная кривая не окажется ниже самой первой из кривых. Алгоритм посчитает данный фрагмент кривой невидимым, тогда как на самом деле это не так. Чтобы исключить это, вводится понятие верхнего и нижнего горизонтов.

На программном уровне исходный вариант реализован 1 массивом. Верхний и нижний горизонты реализованы 2мя массивами.

Недостаток алгоритма: не всегда поверхность можно описать функцией.

  1. Алгоритм удаления невидимых поверхностей с использованием z-буфера.

Основная идея: для каждого пикселя экрана в памяти хранится еще и координата Z или глубина

Данный алгоритм работает в пространстве изображений:

  1. Заполнить буфер кадра фоновыми значениями интенсивности или цвета;

  2. Заполнить Z-буфер максимальными значениями Z;

  3. Преобразовать каждую грань сцены в растровую форму в произвольном порядке;

  4. Для каждого значения (X, Y) пикселя в каждом многоугольнике вычислить его глубину Z и

  5. в цикле сравниваем эту глубину с текущим значением Z, хранящимся в Z-буфере для этой позиции. Если , записать атрибут этого пикселя в буфер кадра и заменить на

Достоинства: простота; время работы алгоритма мало зависит от сложности сцены; многоугольники, составляющие сцену, могут обрабатываться в любом порядке.

Недостатки: дополнительные затраты памяти на Z-буфер; т.к. пиксели будут заноситься в произвольном порядке, возникают трудности с реализацией эффекта прозрачности/просвечивания

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]