Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СКТ - 5,6сем.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
8.67 Mб
Скачать

Метод дихотомии

Метод аналогичен методу Коэна-Сазерленда, но разбиение строящееся на каждом шаге выполняется на две равные части, т.е. в средней точке. Вычисление кодов и середины отрезка осуществляется побитовыми сдвигами. Если отрезок не является полностью видимым или полностью невидимым, он делится пополам. Затем проверки осуществляются для каждой половины до тех пор пока не будет обнаружено пересечение со стороной отсекающего окна или длина разбиваемого отрезка не станет пренебрежимо малой, т.е. пока он не выродится в точку. После вырождения определяется видимость полученной точки. В результате процесс обнаружения пересечения сводится к двоичному поиску.

Более сложная модификация алгоритмов отсечения (выполняется аналогично):

  1. для трехмерного случая – отсекателем является прямоугольный брусок (аксиометрическое проецирование) или усеченная пирамида (перспективное проецирование).

  2. отсечение полигонов, а не отрезков (алгоритм Сазерленда-Ходжмана)

Задача удаления невидимых линий и поверхностей

Задача удаления невидимых линий и поверхностей является одной из наиболее интересных и сложных в компьютерной графике. Алгоритмы удаления заключаются в определении линий ребер, поверхностей или объемов, которые видимы или невидимы для наблюдателя, находящегося в заданной точке пространства.

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

Методы решения задачи удаления невидимых линий и поверхностей различаются по следующим основным параметрам:

  • способу представления объектов;

  • способу визуализации сцены;

  • пространству, в котором проводится анализ видимости;

  • виду получаемого результата (его точности).

В качестве возможных способов представления объектов могут выступать аналитические (явные и неявные), параметрические и полигональные.

Существуют два различных способа изображения трехмерных объектов – каркасное (рисуются только ребра) и сплошное (рисуются закрашенные грани). Таким образом возникают два типа задач – удаление невидимых линий (ребер для каркасных изображений) и удаление невидимых поверхностей (граней для сплошных изображений).

Анализ видимости объектов можно производить как в исходном трехмерном пространстве, так и на картинной плоскости. Это приводит к разделению методов на два класса:

  • методы, работающие непосредственно в пространстве самих объектов;

  • методы, работающие в пространстве картинной плоскости, т.е. работающие с проекциями объектов.

Получаемый результат представляет собой либо набор видимых областей или отрезков, заданных с машинной точностью (имеет непрерывный вид), либо информацию о ближайшем объекте для каждого пикселя экрана (имеет дискретный вид).

Методы первого класса дают точное решение задачи удаления невидимых линий и поверхностей, никак не привязанное к растровым свойствам картинной плоскости. Так как эти методы работают с непрерывными исходными данными и получающиеся результаты не зависят от растровых свойств, то их называют непрерывными. Простейший вариант непрерывного подхода заключается в сравнении каждого объекта со всеми остальными, что дает временные затраты, пропорциональные n2, где n – количество объектов в сцене. Но непрерывные методы достаточно сложны.

Методы второго класса дают приближенное решение задачи видимости, определяя видимость только в некотором наборе точек картинной плоскости – в точках растровой решетки. Они сильно привязаны к растровым свойствам картинной плоскости и фактически заключаются в определении для каждого пикселя той грани, которая является ближайшей к нему вдоль направления проектирования. Изменения разрешения приводят к необходимости полного пересчета всего изображения. Простейший вариант дискретного метода имеет временные затраты порядка Cn, где C – общее количество пикселей экрана, а n – количество объектов. Дискретные методы отличаются простотой, но им свойственны ошибки дискретизации.

Важная роль в повышении методов удаления невидимых линий и граней отводится использованию когерентности. Выделяют не сколько типов когерентности:

  • когерентность в картинной плоскости – если данный пиксель соответствует точке грани Р, то скорее всего соседние пиксели также соответствуют точкам той же грани;

  • когерентность в пространстве объектов – если данный объект (грань) видим (невидим), то расположенный рядом объект (грань) скорее всего также является видимым (невидимым);

  • в случае построения анимации возникает третий тип когерентности – временная: грани, видимые (невидимые) в данном кадре, скорее всего будут видимы (невидимы) и в следующем.

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