Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kompyuternaya_grafika.doc
Скачиваний:
90
Добавлен:
23.04.2019
Размер:
5.45 Mб
Скачать

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

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

1) алгоритмы, работающие в пространстве объектов;

2) алгоритмы, работающие в пространстве изображений.

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

Алгоритмы, работающие в пространстве объектов используют систему координат моделируемых объектов. Это позволяет добиваться высокого качества результатов. Однако они предъявляют повышенные требования к вычислительным ресурсам, поэтому подобные алгоритмы используются в промышленных САПР, а также в системах трехмерного моделирования, ориентированные на высокое качество изображений для кино- и видео-индустрии (AUTOCAD, ARCHICAD, MAYA и т.п.).

Алгоритмы, работающие в пространстве изображений работают с системой координат экрана, которая и определяет точность и качество полученного результата. К данному классу относят программы, работающие с плоскими изображениями 2D и 2.5D. Примером являются современные системы нелинейного видеомонтажа и простейшие системы моделирования.

Алгоритм Варнока

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

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

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

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

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

В оригинальном алгоритме исходное окно(256°256) разбивалось на четыре одинаковых подокна. В этом случае для достижения окончательного разбиения требуется не более восьми шагов (28 = 256). Для повышения эффективности работы алгоритма могут использоваться другие принципы разбиения, например:

1) разбиение по крайним точкам объекта;

2) разбиение вдоль границ объекта.

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

1) внешнее расположение;

2) внутреннее расположение;

3) пересекающее расположение;

4) охватывающее расположение.

Для выполнения этого теста используется следующее правило обработки окон:

1) если все многоугольника моделируемой сцены являются внешними, то окно пусто и отображается цветом фона;

2) если внутри окна находится только один многоугольник, то его можно считать достаточно простым для отображения и заполнять цветом фона, на который накладывается многоугольник;

3) если окно пересекает только один многоугольник, то его также можно рассматривать как когерентное окно, и, определив отсечения многоугольника, сводят данный случай к правилу 2;

4) если окно охвачено только одним многоугольником, то оно считается когерентным и заполняется цветом этого многоугольника;

5) если отсекающее окно охватывает несколько многоугольников, то среди них выбирается ближний, и данный случай сводится к правилу 4.

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

Для работы с многоугольниками сложных форм наиболее эффективным оказывается другой тест – тест с бесконечным лучом (рис.4.31). При выполнении данного теста из любой точки окна (чаще из угла ) проводится луч и осуществляется отсчёт числа данного пересечения луча с многоугольником. Если это число – чётное, то рассмотренный многоугольник является внешним, а если нечётное – охватывающим (рис.4.32). Отдельно учитываются точки пересечения с вершинами многоугольника. Если луч касается вершины, значение счётчика увеличивается на два. В том случае, если луч пронзает вершину, значение счётчика увеличивается на единицу (вместо счётчика можно использовать логический флаг).

Существуют более сложные наиболее точные тесты, базирующиеся, например, на подсчёте суммы углов многоугольника .

Конец 25 вопроса.

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