Алгоритмы, использующие список приоритетов
При реализации всех обсуждавшихся алгоритмов удаления невидимых линий и поверхностей устанавливались приоритеты, т. е. глубины объектов сцены или их расстояния от точки наблюдения. Алгоритмы, использующие список приоритетов, пытаются получить преимущество посредством предварительной сортировки по глубине или приоритету. Цель такой сортировки состоит в том, чтобы получить окончательный список элементов сцены, упорядоченных по приоритету глубины, основанному на расстоянии от точки наблюдения. Если такой список окончателен, то никакие два элемента не будут взаимно перекрывать друг друга. Тогда можно записать все элементы в буфер кадра поочередно, начиная с элемента, наиболее удаленного от точки наблюдения. Более близкие к наблюдателю элементы будут затирать информацию о более далеких элементах в буфере кадра. Поэтому задача об удалении невидимых поверхностей решается тривиально. Эффекты прозрачности можно включить в состав алгоритма путем не полной, а частичной корректировки содержимого буфера кадра с учетом атрибутов прозрачных элементов.
Для простых элементов сцены, например для многоугольников, этот метод иногда называют алгоритмом художника, поскольку он аналогичен тому способу, которым художник создает картину. Сначала художник рисует фон, затем предметы, лежащие на среднем расстоянии, и, наконец, передний план. Тем самым художник решает задачу об удалении невидимых поверхностей, или задачу видимости, путем построения картины в порядке обратного приоритета.
Для простой сцены, вроде той, что показана на Рис. 8 .93, а, окончательный список приоритетов можно получить непосредственно. Например, эти многоугольники можно упорядочить по их максимальному или минимальному значению координаты z. Однако уже для сцены, показанной на Рис. 8 .93 b, окончательный список приоритетов по глубине невозможно получить простой сортировкой по z. Если P и Q с рис. Рис. 8 .93, b упорядочены по минимальному значению координаты z (zmin), окажется, что Р в списке приоритетов по глубине будет стоять перед Q. Если их записать в буфер кадра в таком порядке, то получится, что Q частично экранирует P. Однако фактически P частично экранирует Q. Правильный порядок в списке приоритетов будет тогда, когда P и Q поменяются местами.
Рис. 8.93. Установление приоритетов для многоугольников
Другие трудности показаны на Рис. 8 .94. Здесь многоугольники циклически перекрывают друг друга. На Рис. 8 .94, а P находится впереди Q, который лежит впереди R, который, в свою очередь, находится впереди P. На Рис. 8 .94, b P экранирует Q, a Q экранирует P. Аналогичное циклическое экранирование возникает при протыкании многоугольников; например, на рис. 5.12 показано, как треугольник протыкает прямоугольник. Там прямоугольник экранируется треугольником, и наоборот. В обоих примерах окончательный список приоритетов невозможно установить сразу. Выход из положения заключается в циклическом разрезании многоугольников по линиям, образованным пересечениями их плоскостей, до тех пор, пока не будет получен окончательный список приоритетов. Такие линии показаны пунктиром на Рис. 8 .94.
Рис. 8.94. Циклически перекрывающие многоугольники
Ньюэл М., Ньюэл Р. и Санча предложили специальный метод сортировки для разрешения конфликтов, возникающих при создании списка приоритетов по глубине. Этот метод включен в состав алгоритма Ньюэла - Ньюэла - Санча, который излагается ниже. В алгоритме динамически вычисляется новый список приоритетов перед обработкой каждого кадра сцены. Не накладывается никаких ограничений на сложность сцены и на тип многоугольников, используемых для описания элементов сцены. Первоначальный алгоритм Ньюэла - Ньюэла - Санча был предназначен для обработки трехмерных тел. Это расширение не ограничено рамками многогранников. Оно может, кроме того, обрабатывать тела смешанных типов в рамках одной сцены.
- «Национальный исследовательский томский политехнический университет»
- Введение
- Способы представления изображений в эвм
- Растровое представление изображений
- Параметры растровых изображений
- Векторное представление изображений
- Представление изображений с помощью фракталов
- Геометрические фракталы
- Алгебраические фракталы
- Системы итерируемых функций
- Представление цвета в компьютере
- Свет и цвет
- Цветовые модели и пространства
- Цветовая модель rgb
- Субтрактивные цветовые модели
- Модели hsv и hsl
- Системы управления цветом
- Графические файловые форматы
- Растровые алгоритмы
- Алгоритмы растеризации
- Растровое представление отрезка. Алгоритм Брезенхейма
- Растровая развёртка окружности
- Кривые Безье
- Закраска области, заданной цветом границы
- Заполнение многоугольника
- Методы устранения ступенчатости
- Метод увеличения частоты выборки
- Метод, основанный на использовании полутонов
- Методы обработки изображений
- Яркость и контраст
- Масштабирование изображения
- Преобразование поворота
- Цифровые фильтры изображений
- Линейные фильтры
- Сглаживающие фильтры
- Контрастоповышающие фильтры
- Разностные фильтры
- Нелинейные фильтры
- Преобразования растровых изображений
- Векторизация с помощью волнового алгоритма
- Построение скелета изображения
- Оптимизация скелета изображения
- Сегментация изображений
- Методы, основанные на кластеризации
- Алгоритм разрастания регионов
- Компьютерная геометрия
- Двумерные преобразования
- Однородные координаты
- Двумерное вращение вокруг произвольной оси
- Трехмерные преобразования
- 2. Трехмерное изменение масштаба
- 3. Трехмерный сдвиг
- 4. Трехмерное вращение
- Проекции
- Математическое описание плоских геометрических проекций
- Изображение трехмерных объектов
- Видимый объем
- Преобразование видимого объема
- Представление пространственных форм
- Полигональные сетки
- Явное задание многоугольников
- Задание многоугольников с помощью указателей в список вершин
- Явное задание ребер
- Удаление невидимых линий и поверхностей
- Классификация методов удаления невидимых линий и поверхностей
- Алгоритм плавающего горизонта
- Алгоритм Робертса
- Определение нелицевых граней
- Удаление невидимых ребер
- Алгоритм, использующий z–буфер
- Методы трассировки лучей
- Алгоритмы, использующие список приоритетов
- Алгоритм Ньюэла-Ньюэла-Санча для случая многоугольников
- Алгоритм Варнока (Warnock)
- Алгоритм Вейлера-Азертона (Weiler-Atherton)
- Методы закраски
- Диффузное отражение и рассеянный свет
- Зеркальное отражение
- Однотонная закраска полигональной сетки
- Метод Гуро
- Метод Фонга
- Поверхности, пропускающие свет
- Детализация поверхностей
- Детализация цветом
- Детализация фактурой
- Библиотека OpenGl
- Особенности использования OpenGl в Windows
- Основные типы данных
- Рисование геометрических объектов
- Работа с буферами и задание цвета объектов
- Задание графических примитивов
- Рисование точек, линий и многоугольников
- Преобразование объектов в пространстве
- Преобразования в пространстве
- Получение проекций
- Задание моделей закрашивания
- Освещение
- Полупрозрачность. Использование α-канала
- Наложение текстуры
- Аппаратные средства машинной графики
- Устройства ввода
- Сканеры
- Основные характеристики
- Фирмы-производители
- Дигитайзеры
- Принцип действия
- Основные характеристики
- Фирмы-производители
- Цифровые фотокамеры
- Принцип действия
- Фирмы-производители
- Литература
- Оглавление
- Отпечатано в Издательстве тпу в полном соответствии с качеством предоставленного оригинал-макета