
ALL
.pdfРЕЗЮМЕ
•Алгоритмы отсечения обычно реализуются в нормированных координатах, так что все геометрические преобразования и операции наблюдения, независимые от координат устройства, можно объединить в одну матрицу преобразования. Когда поле просмотра задается в координатах устройства, двухмерную сцену можно обрезать с помощью симметричного квадрата, нормированные координаты которого меняются от -1 до 1, а затем передать содержимое нормированного симметричного квадрата в поле просмотра.
•Поскольку расчет точек пересечения является ресурсоемким процессом, разработка улучшенных алгоритмов отсечения является важной областью в сфере компьютерной графики. Кохен и Сазерленд разработали алгоритм отсечения линий, который использует код области для определения положения конечной точки линии относительно границ отсекающего окна. Коды областей конечных точек позволяют быстро определить те линии, которые полностью лежат внутри отсекающего окна, и некоторые линии, которые полностью находятся снаружи. Для оставшихся линий нужно вычислить точки пересечения с границами окна. Лианг и Барский разработали более быстрый алгоритм отсечения линий, в котором отрезки представлены параметрическими уравнениями, подобными алгоритму КирусаБека. Данный подход позволяет выполнить больше проверок перед обработкой с целью расчета точек пересечения. Наконец, алгоритм НиколлаЛиНиколла еще больше сокращает расчеты точек пересечения за счет использованиия более интенсивной проверки областей на плоскости xy. Параметрические методы отсечения линий легко расширяются на вогнутые отсекающие окна и трехмерные сцены.
•В то же время, алгоритм Николла ЛиНиколла применим только к двухмерным отрезкам.
РЕЗЮМЕ
•Существуют также алгоритмы отсечения прямых отрезков с помощью вогнутых многоугольных окон. Один подход к этой задаче заключается в расщеплении вогнутого многоугольного отсекающего окна на набор выпуклых многоугольников и применении методов параметрического отсечения линий. Другой подход добавить стороны к вогнутому окну и преобразовать его в выпуклую форму. Затем можно выполнить ряд внутренних и внешних операций отсечения, в ходе которых находится извлекаемый отрезок.
•Хотя отсекающие окна с криволинейными границами используются редко, можно разработать соответствующие методы отсечения линий, однако теперь вычисление точек пересечения будет включать решение нелинейных уравнений.
•Закрашенная многоугольная область определяется списком вершин, а процедуры отсечения многоугольников должны содержать информацию о том, как извлеченные стороны соединяются при передаче многоугольника по различным этапам обработки. В алгоритме СазерлендаХодгмана пары вершин закрашенной области последовательно обрабатываются всеми процедурами отрезания по границе обработки, и информация по данной стороне немедленно передается следующей процедуре отсечения, что позволяет параллельно выполнять четыре процедуры обработки (отсечение слева, справа, снизу и сверху). Данный алгоритм является эффективным методом отсечения закрашенных областей в виде вогнутых многоугольников.
РЕЗЮМЕ
•Однако, если обрезаемый вогнутый многоугольник содержит несвязанные области, алгоритм СазерлендаХодгмана дает посторонние соединяющие отрезки. Расширения процедур параметрического отсечения, таких как метод ЛиангаБарски, также могут использоваться для отсечения выпуклых закрашенных областей. Алгоритм Уэйлера Азертона, в котором применяется обход границы, позволяет корректно обрабатывать как выпуклые, так и вогнутые закрашенные области.
•Закрашенные области можно обрабатывать отсекающими выпуклыми окнами, используя расширение схемы параметрического представления прямых. Кроме того, метод УэйлераАзертона позволяет обрабатывать любую многоугольную закрашенную область, используя любое отсекающее окно в форме многоугольника. Закрашенные области можно вырезать и окнами с нелинейными границами, используя аппроксимацию многоугольниками или обрабатывая закрашенные области отсекающими окнами с криволинейными границами.
•Самым быстрым методом отсечения текста является стратегия все или ничего, которая полностью отсекает строку текста, если любая часть строки находится вне границы отсекающего окна. Строку текста можно также обработать, удалив только те символы строки, которые не находятся полностью в отсекающем окне. Наконец, самым точным методом отсечения текста является применение схемы отсечения точек, линий, многоугольников или кривых к отдельным символам строки в зависимости от того, определены символы как точечные изображения или эскизные шрифты.

ОБЗОР КОНЦЕПЦИЙ ТРЕХМЕРНОГО НАБЛЮДЕНИЯ
•При моделировании трехмерной сцены каждый объект обычно определяется набором поверхностей, формирующих замкнутый контур вокруг внутренней части объекта. Кроме того, в некоторых приложениях может потребоваться задать информацию о внутренней структуре объекта. Помимо процедур, генерирующих проекции поверхностных деталей объекта, в графических пакетах иногда есть процедуры вывода на экран внутренних компонентов или поперечных сечений объемного объекта.
•Функции наблюдения обрабатывают описания объекта с помощью набора процедур, которые в конечном счете проецируют объекты на заданную поверхность дисплея. Множество таких процессов в трехмерном наблюдении, как процедуры отсечения, подобны аналогам в двухмерном конвейере наблюдения. Однако трехмерное наблюдение включает несколько задач, которые отсутствуют в двухмерном. Например, дополнительно требуются процедуры проектирования, переводящие сцены в проекцию на плоской поверхности; нужно определять видимые части сцены; кроме того, чтобы изображение было реалистичным, нужно учитывать эффекты освещения и характеристики поверхностей.
Рис. 7.1. Система координат, в которой формируется выбранная проекция трехмерной сцены

НАБЛЮДЕНИЕ ТРЕХМЕРНОЙ СЦЕНЫ
•Другой метод получения проекции трехмерной сцены это спроектировать точки на плоскость наблюдения по сходящимся траекториям. При данном процессе, именуемом перспективной проекцией, объекты, расположенные дальше от точки наблюдения, получаются меньшими, чем объекты такого же размера, но расположенные ближе. Сцена, генерируемая с использованием перспективной проекции, выглядит более реалистично, поскольку именно так формируют изображение наши глаза и линзы камер. На перспективной проекции, показанной на рис. 7.4, параллельные линии, идущие вдоль направления наблюдения, кажутся сходящимися в отдаленную точку фона, а самолеты на заднем плане кажутся меньше взлетающего самолета, расположенного на переднем плане.
•УПОРЯДОЧЕНИЕ ПО ГЛУБИНЕ
•Исключая некоторые ситуации, информация о глубине на трехмерной сцене важна, поэтому для конкретного направления наблюдения можно легко определить, что является передней, а что задней частью любого изображенного объекта. На рис. 7.5 иллюстрируется неоднозначность, которая может возникнуть, если объект изображен без учета информации о глубине. Существует несколько способов, с помощью которых информация о глубине включается в двухмерное представление объемных тел.
•Предоставить информацию о глубине на каркасных изображениях просто нужно проварьировать яркость отрезков согласно их расстоянию от точки наблюдения. На рис. 7.6 показан каркасный объект с упорядочением по глубине (depth cueing). Линии, ближайшие к точке наблюдения, отображаются более ярко, а линии, удаленные от точки наблюдения, более тускло. В данной схеме упорядочения по глубине выбираются максимальная и минимальная интенсивности и диапазон расстояний, в котором меняется интенсивность.

НАБЛЮДЕНИЕ ТРЕХМЕРНОЙ СЦЕНЫ
•Упорядочение по глубине используется также в моделировании влияния атмосферы на наблюдаемую интенсивность объектов. Более удаленные объекты кажутся тусклыми по сравнению с ближними из-за рассеяния света частичками пыли, туманом и дымом. Некоторые атмосферные эффекты могут даже изменить наблюдаемый цвет объекта, и все эти эффекты можно смоделировать с помощью упорядочения по глубине.
•ОПРЕДЕЛЕНИЕ ВИДИМЫХ ЛИНИЙ И ПОВЕРХНОСТЕЙ
•Уточнить связи по глубине на каркасном изображении можно и с помощью других методов. Один способ просто подсветить видимые линии или изобразить их другим цветом. Другой метод, широко используемый в инженерных чертежах, заключается в изображении невидимых линий пунктиром. Кроме того, невидимые линии можно просто удалить с изображения, как показано на рис. 7.5, б и в. Однако при удалении скрытых линий также исчезает информация о форме задних поверхностей объекта, поэтому для того, чтобы показать общий вид объекта (задние и передние грани), обычно используются каркасные представления.
•Если требуется получить реалистичное изображение сцены, задние части объектов полностью удаляются, и отображаются только видимые поверхности. В этом случае применяются процедуры визуализации поверхностей, и в результате пиксели экрана определяются только цветом передних поверхностей.
•а) б) в)
•Рис. 7.5. Каркасное представление пирамиды (а) не содержит информации о глубине, с помощью которой
можно было бы понять, как наблюдается объект: сверху от вершины (б) или снизу от основания (в) Рис. 7.6. Каркасный объект изображен с упорядочением по глубине, где яркость линий уменьшается при
переходе от передних граней объекта к задним
ВИЗУАЛИЗАЦИЯ ПОВЕРХНОСТЕЙ
•Чтобы повысить реалистичность изображений, поверхности объектов визуализируются с использованием условий освещения сцены и заданных характеристик поверхности. Условия освещенности задаются через цвет и положение источников света, также можно задать эффекты фонового освещения. Поверхностные свойства объектов включают степень прозрачности объекта и то, гладкая она или шероховатая.
•Задавая параметры, можно моделировать такие поверхности, как стекло, пластик, волокно древесины и шероховатая поверхность апельсина. На рис. 7.7 для получения реалистичной сцены использованы методы визуализации поверхности, перспективное проектирование и определение видимых поверхностей.
•РАЗОБРАННЫЙ ВИД И ВИД В РАЗРЕЗЕ
•Многие графические объекты позволяют определять объекты как иерархические структуры и хранить информацию о внутренних деталях объектов. Изображение таких объектов в разрезе или разобранном состоянии можно использовать для демонстрации внутренней структуры и связей между частями объектов. На рис. 7.8 показано несколько типов изображений в разобранном виде. Альтернативой разборке объекта на компоненты является вид в разрезе (рис. 7.9), когда часть видимых поверхностей удаляется, чтобы показать внутреннюю структуру предмета.
•ТРЕХМЕРНОЕ И СТЕРЕОСКОПИЧЕСКОЕ НАБЛЮДЕНИЕ
•Другие методы повышения реалистичности компьютерной сцены включают использование трехмерных изображений и стереоскопических проекций. Как отмечалось в главе 2, трехмерные проекции можно получить, отражая растровое изображение от вибрирующего гибкого зеркала. Вибрации зеркала синхронизированы с изображением сцены на ЭЛТ. При вибрации фокусное расстояние меняется так, что каждая точкасцены отражается в пространственное положение, соответствующее ее глубине.
•Стереоскопические устройства предоставляют две проекции сцены: одну для левого глаза, а другую для правого. Точки наблюдения соответствуют положению глаз наблюдателя. Эти две проекции обычно поочередно отображаются на растровом мониторе. Если смотреть на монитор через специальные очки, которые по очереди затеняют обе линзы синхронно с циклами обновления монитора, можно наблюдать сцену, отображенную с трехмерным эффектом.
ТРЕХМЕРНЫЙ КОНВЕЙЕР НАБЛЮДЕНИЯ
•Процедуры генерации компьютерных проекций трехмерной сцены чем-то похожи на действия фотографа. Прежде всего нужно выбрать точку наблюдения, соответствующую месту, где мы расположим камеру. Точка наблюдения выбирается согласно тому, какая проекция сцены требуется: фронтальная, задняя, верхняя или нижняя. Место наблюдения можно также выбрать внутри группы объектов или даже внутри такого объекта, как здание или молекула. Затем нужно определиться с ориентацией камеры (рис. 7.10) как нам хочется, чтобы камера смотрела с точки съемки, и как повернуть ее вокруг линии наблюдения, чтобы задать верхнее положение изображения?
•Наконец, когда мы нажимаем на кнопку, сцена обрезается до размера выбранного отсекающего окна, которое соответствует апертуре или типу линз камеры, и свет от видимых поверхностей проецируется на пленку.
•Однако следует помнить, что аналогия с камерой справедлива только до определенного момента, поскольку при генерации проекций сцены посредством программы компьютерной графики нам доступна большая гибкость и выбор из гораздо большего числа альтернатив, чем при использовании реальной камеры.
•Можно выбирать параллельную или перспективную проекцию, выборочно удалять часть сцены вдоль линии наблюдения, плоскость проекции можно удалить от положения камеры, можно даже получить изображение объектов, находящихся за нашей камерой. Некоторые операции наблюдения трехмерной сцены аналогичны или подобны используемым в двухмерном конвейере наблюдения.

ТРЕХМЕРНЫЙ КОНВЕЙЕР НАБЛЮДЕНИЯ
•Для размещения проекции трехмерной сцены на устройстве вывода используется двухмерное поле просмотра, а с помощью двухмерного отсекающего окна выбирается фрагмент, который будет отображен в поле просмотра. Окно на экране дисплея задается в экранных координатах так же, как в двухмерных приложениях. Отсекающие окна, поля просмотра и окна на дисплее обычно задаются как прямоугольники, стороны которых параллельны координатным осям.
При трехмерном наблюдении, однако, отсекающее окно размещается на выбранной плоскости наблюдения, и сцены отсекаются замыкающим объемом пространства, который определяется набором плоскостей отсечения.
•Точка наблюдения, плоскость наблюдения, отсекающее окно и плоскости отсечения задаются в системе наблюдения.
•Рис. 7.11. Конвейер общего трехмерного преобразования из модельных координат во внешние, затем в координаты наблюдения, координаты проекции, нормированные координаты и наконец в координаты устройства