Читайте также:
|
|
Компьютер в машинной графике используется для описания изображений, их хранения, манипулирования ими, их вызова и визуализации, т.е. в основном: для пассивных операций. Компьютер выводит на экран предварительно подготовленное изображение, и наблюдатель не может непосредственно управлять изображением, прежде чем оно появится на экране. В каждом конкретном случае изображение может быть либо таким простым, как, например, графики простых функций, либо столь сложным, как визуализация результатов моделирования процесса автоматического полета и посадки самолета или космического корабля
В зависимости от степени участия пользователя в различных формах взаимодействия с ЭВМ при построении изображения, компьютерная графика подразделяется на два основных класса: “пассивную” или пакетную и “активную” или интерактивную компьютерную графику.
Компьютерная графика для пакетной обработки представляет собой систему, в которой ЭВМ под управлением прикладных программных пакетов (ППП) обеспечивает формирование и вывод графического изображения на экран графического дисплея, графопостроителя, на координатограф, для получения фотокопии изображения и другие устройства, позволяющие получать графические документы. Примером пакетной графики могут служить различные скоростные печатающие устройства, кинокамеры и видеомагнитофоны, создающие высококачественные, цветные изображения реальных или воображаемых объектов. И модификация (редактирование) этого изображения на выходном устройстве осуществляется под действием самого пакета прикладных программ в режиме конструирования и его повторного запуска.
Подсистема интерактивной компьютерной графики определяется совокупностью аппаратурно-программных средств, обеспечивающих реализацию алгоритма решения проектной задачи, при уточнении ее формулировки. Интерактивная компьютерная графика - это так же использование ЭВМ для подготовки и воспроизведения изображений, но при этом пользователь оперативно вносит изменения в изображение непосредственно в процессе его воспроизведения, т.е. предполагается возможность работы с графикой в режиме диалога в реальном масштабе времени. Интерактивная графика представляет собой важный раздел компьютерной графики, когда пользователь имеет возможность динамически управлять содержимым изображения, его формой, размером и цветом на поверхности дисплея с помощью интерактивных устройств управления.
В динамической интерактивной машинной графике компьютер используется для подготовки и визуализации графических данных. Однако интерактивная графика позволяет наблюдателю в реальном масштабе времени влиять на весь процесс представления изображения. Чтобы убедиться в серьезности ограничений, определяемых условиями работы в реальном времени, рассмотрим задачу вращения объемного изображения, состоящего из 1000 линий, со скоростью 15 град/с. Картинка из 1000 линий в большинстве случаев представляется матрицей 1000 х 4 однородных координат конечных точек линий. Вращение, как правило, представляется путем умножения этой матрицы на матрицу преобразования размером 4 х 4. Для проведения такого матричного Умножения требуется выполнить 16 тыс. операций умножения, 12 тыс. операций сложения и 1 тыс. операций деления вещественных чисел. Если умножение осуществляется программно, то для того чтобы выполнить все операции вращения, может потребоваться значительное время. Обычный универсальный компьютер с процессором вещественной арифметики, способным выполнять операции умножения с быстродействием 3.6 мкс, сложения —за 2.6 мкс и деления со скоростью 5.2 мкс, может выполнить такое матричное умножение за 0.1 с. Поскольку для того, чтобы картинка на экране начала двигаться, она должна перерисовываться не менее 30 раз в секунду, то становится очевидным, что в случае с данным примером картинка не сможет непрерывно перемещаться по экрану. Даже если предположить, что изображение обновляется только 15 раз в секунду, т. е. при повороте на каждый градус, то и в этом случае программная реализация не позволяет получить эффект непрерывного вращения и исключает возможность получения действительно реалистичных изображений. Существует множество способов достижения реального интерактивного режима визуализации изображения: использование более мощного дополнительного компьютера или более тщательное программирование, уменьшающее время выполнения матричного умножения. Однако в любом случае обязательно будет достигнут момент, когда всякое дальнейшее улучшение станет уже невозможным. Уменьшение сложности изображения также не даст нужного эффекта, так как при этом может оказаться неприемлемым качество картинки. Однако операция матричного умножения, необходимая для манипулирования изображением из нашего примера, для действительно очень сложных картинок может осуществляться на уровне микропрограмм или с помощью специализированных цифровых умножителей, применение которых всегда было наиболее эффективным и экономичным.
В интерактивной компьютерной графике как одной из разновидностей систем «человек–машина» учитываются психологические и физиологические возможности человека. В общем случае это сводится к выполнению требований: инженерной психологии к графическому дисплею как устройству отображения информации, воспринимаемой человеком, и терминалу как рабочему месту «человек-оператора»; к программному обеспечению ИКГ и языкам графического диалога, которые должны обеспечить преодоление ряда психологических барьеров, в частности исключить скуку и разочарование.
Средства ИГС обеспечивают пользователю определенный уровень комфорта в процессе освоения и эксплуатации системы. Одной из разновидностей таких средств является система подсказок, которая полезна для начинающих пользователей, но может оказать негативное воздействие на опытных пользователей. Поэтому ИГС имеют адаптивные сервисные средства, которые настраиваются на уровень подготовленности пользователя или предусматривают возможность обхода (отключения) соответствующих блоков сервисных средств самим пользователем.
Машинная графика — это сложная и многосторонняя дисциплина. Поэтому для изучения ее необходимо разделить на более простые обозримые части, учитывая при этом, что конечным результатом машинной графики является изображение, которое, разумеется, можно использовать для самых различных целей: технического чертежа, деталировки в справочном руководстве, изображения архитектурной конструкции, как одного из возможных вариантов, так и эскиза проекта, рекламной иллюстрации либо отдельного кадра из мультфильма. В машинной графике фундаментальным связующим звеном является изображение, следовательно, важно разобрать следующие вопросы:
· представление изображений в машинной графике;
· подготовка изображений для вывода;
· визуализация предварительно подготовленных изображений;
· взаимодействие с изображением.
В дальнейшем под термином «изображение» мы будем понимать множество линий, точек, текстов и т.п., выводимых на графическое устройство
1-2 ПРЕДСТАВЛЕНИЕ ИЗОБРАЖЕНИЙ
Многие алгоритмы интерпретируют изображения как набор многоугольников или ребер, причем каждый многоугольник или ребро в свою очередь может быть представлен с помощью точек (вершин). Таким образом, точки являются основными строительными блоками изображения. Не менее важны также и алгоритмы размещения таких точек. В качестве иллюстрации рассмотрим единичный квадрат в первом квадранте координатной плоскости. Этот квадрат может быть представлен своим четырьмя вершинами (см. рис.) P1(0,0), Р2(1,0), Р3(1,1), P4(0.1). Соответствующая алгоритмическая нотация может выглядеть следующим образом:
Последовательно соединить P1 P2 Рз Р4 Р1
Единичный квадрат можно также представить с помощью его четырех ребер Е1 = P1-Р2, Е2 = Р2Р3; Е3 = Р3Р4, E4 = P4P1- Здесь алгоритмической
нотацией служит 'Следующая запись:
Последовательно изобразить Е1 Е2 Е3 Е4
И наконец, для описания единичного квадрата в виде многоугольника можно использовать либо точки, либо ребра. Например, S1 — Р1Р2Р3Р4Р1, или S1 — Р1Р4Р3Р2Р1 или S1 = E1E2E2E1. В зависимости от размерности координатного пространства основные строительные блоки (точки) можно представить либо как пары, либо как тройки чисел. Таким образом, координаты (x1,y1) или {x1,y1,z1) определяли бы точку на плоскости или в пространстве. Две точки задавали бы отрезок или ребро, а совокупность из трех и более точек — многоугольник. Построение кривых осуществляется обычно путем их аппроксимации короткими отрезками. Символы представляются уже более сложным образом — они образуются из совокупности различных кривых или определяются матрицей точек. Однако в
основе представления символов по-прежнему лежат совокупности отрезков, точек и соответствующие им алгоритмы. Если не надо создавать специальные шрифты или проектировать графические устройства, то пользователю совсем необязательно знать все детали описания символов текста, так как большинство графических устройств имеют встроенные аппаратные или программные генераторы символов.
ПОДГОТОВКА ИЗОБРАЖЕНИЙ ДЛЯ ВЫВОДА
В конечном счете изображение определяется точками и алгоритмом их вывода. Прежде чем информация об изображении будет использована для формирования картинки, она хранится в файле, называемом базой данных. Для представления очень сложных изображений нужны сложные базы данных, для которых предполагается использование сложных алгоритмов организации доступа к ним. Данные или структуры данных в таких базах могут быть организованы в виде кольца, В-дерева, квадратичных структур и т. д. Сами базы данных могут содержать указатели, подструктуры и другую негеометрическую информацию. Однако многие конкретные реализации систем с машинной графикой предназначены для работы с простыми изображениями, для которых можно предложить простые структуры данных с простым способом доступа. Наиболее элементарной структурой данных, безусловно, является линейный список. Может показаться неожиданным, но оказалось, что с помощью этой структуры представляются достаточно качественные изображения.
Точки — основные строительные блоки графической базы данных, именно поэтому особый интерес представляют основные операции преобразования точек. Существуют три типа операций, в которых точки используются как графические примитивы:
во-первых, перемещение пера и курсора, след курсора (в дальнейшем просто курсор), невидимая точка;
во-вторых, изображение линии между двумя точками;
в третьих, вывод точки в заданном месте.
В общем случае местоположение точки можно описать двумя способами: с помощью абсолютных и относительных (инкрементальных) координат. В системе относительных координат позиция точки определяется путем задания ее положения относительно предыдущей точки. Все программное обеспечение машинной графики базируется на этих основных понятиях и операциях.
Местоположения точки могут быть описаны с помощью вещественных (с плавающей точкой) или целых чисел. В случае применения целых чисел возникает множество проблем, связанных с ограниченной длиной слова компьютера. Для представления целых координат, как правило, используется полное машинное слово. Наибольшее целое число, занимающее полное машинное слово и необходимое для представления величин со знаком из положительного и отрицательного диапазонов, равно 2n-1 - 1, где n — количество битов в слове. Для 16 битового слова это число равно 32 767. Для многих приложений этого бывает вполне достаточно, однако возникают серьезные проблемы, когда требуются большие числа, которые невозможно представить с помощью одного слова компьютера. Эту трудность можно преодолеть, например, воспользовавшись относительными координатами в случае, когда их величина не превышает 60000. При этом в абсолютной системе координат устанавливаются точки с координатами (30000,30000), а затем с помощью относительных координат (30000,30000) строится точка с координатами (60 000,60 000). Однако этот способ обладает значительным недостатком: попытка сохранить относительные координаты, превышающие максимально допустимую величину, вызывает переполнение. В большинстве компьютеров результатом целочисленного переполнения является генерация чисел с противоположным знаком и неверным абсолютным значением.
От этого недостатка можно избавиться с помощью однородных координат, что вызывает некоторые усложнения, уменьшение скорости выполнения и понижение качества разрешения изображения. Однако все эти недостатки оправдываются преимуществами, которые дают возможность представления больших чисел на компьютерах с ограниченной длиной слова.
В системе однородных координат n-мерное пространство представляется n + 1 измерением, т. е. трехмерные координаты, однозначно задаваемые тройкой (x, у, z), выражаются через четыре координаты (hx, hy1 hz, h), где h — произвольный множитель. Если все координатное пространство в 16-битовом компьютере представляется числами меньше 32 767, то h будет равно 1, а координаты будут представляться путем прямых преобразований. Однако если хотя бы одна из координат превышает число 32 767, например, х — 60 000, то преимущества, использования однородны]^ координат становятся очевидны. В данном случае мы установили h = 1/2 и координаты точки теперь можно представить в 16-битовом компьютере как (30000, у/2, z/2, 1/2). Однако в этом случае неизбежно снижение разрешающей способности, так как, например, значения х = 60000 и 60001 теперь представляются одинаковой однородной координатой. Фактически разрешение ухудшается для всех координат даже в том случае, если только одна из них превышает максимально допустимое для целых чисел значение.
ПРЕДСТАВЛЕНИЕ ПРЕДВАРИТЕЛЬНО ПОДГОТОВЛЕННОГО
ИЗОБРАЖЕНИЯ
Данные, используемые для подготовки рисунка, как правило, не совпадают с данными, необходимыми для его визуализации (дисплейным файлом). В этом файле содержится некоторая часть, вид или отдельная сцена целого изображения, представленного в общей базе данных. Выводимое изображение обычно формируется путем поворота, переноса, масштабирования и вычисления различных проекций. Эти преобразования обычно выполняются с помощью матричных операций (4 х 4) с данными, представленными в однородных координатах. В случае, когда требуется последовательность преобразований, матрица каждого отдельного преобразования последовательно применяется к точкам рисунка. Однако если таких точек очень много, данный метод становится неэффективным. Гораздо удобнее другой способ, состоящий в использовании одной результирующей матрицы комбинированных преобразований,, полученной путем умножения матриц каждого отдельного.преобразования- Такая матричная операция называется конкатенацией. После этого вектор координат всех точек изображения умножается на матрицу комбинированного преобразования размером 4x4 для получения результирующих точек. Данный подход позволяет значительно сократить время проведения сложных матричных операций над множеством точек.
Удаление невидимых линий или поверхностей, закраска, определение прозрачности, текстуры или световые эффекты — все эти операции могут быть выполнены еще до момента окончательной визуализации изображения. Если выводимое изображение определено не на всей базе данных, в ней необходимо выделить некоторую часть, соответствующую этому изображению.
Данный процесс называется отсечением. Отсечения бывают дву- и трехмерные. В ряде случаев окно и объем отсечения могут иметь отверстия или быть неправильной формы. Стандартное отсечение по границам дву- или трехмерных областей часто реализуется аппаратно
С процессом визуализации изображений обычно связано два ключевых понятия: окно и поле зрения. Процесс вывода с использованием окон предусматривает извлечение части графических данных из базы путем их отсечения по границам окна. Программная реализация операций отсечения и вывода окна, как правило, требует значительного времени, что исключает возможность ее применения в интерактивных графических системах. С другой стороны, в сложных графических системах для этого используется специализированная аппаратура или микропрограммные средства. Задача отсечения изображения включает выделение и отбрасывание отрезков или их частей, лежащих вне окна. Отсеченные отрезки или их части не передаются на графическое устройство вывода.
На плоскости окно задается левым, правым, верхним и нижним ребрами ограничивающего прямоугольника. Координаты вершин ребер определяются в системе координат пользователя или в мировой системе координат, т.е. именно в
. |
1.4 Трехмерная пирамида видимости.
той системе, в которой хранится вся информация из графической базы данных. Как правило, координаты геометрических примитивов запоминаются в виде вещественных чисел.
Процесс отсечения значительно упрощается в случае так называемых регулярных окон, ребра которых параллельны осям координат.. На рис, 1-3 показан процесс отсечения на плоскости. Линии удаляются, выводятся на экран полностью или частично в зависимости от их местоположения относительно границ окна. В трехмерном пространстве регулярное окно или отсекающий объем представляет собой прямоугольный параллелепипед (брус) или, для перспективных видов, усеченную пирамиду (пирамиду видимости). На рис. 1-4 показана типичная пирамида видимости; ближайшая к наблюдателю грань помечена символом N, наиболее удаленная — символом F, а стороны образованы гранями SL, SR, ST и SB.
Поле зрения — это область на экране дисплея, предназначенная для размещения попавшего в окно изображения. Регулярное поле зрения на плоскости задается левым, правым, верхним и нижним ребрами ограничивающего прямоугольника. Поле зрения может быть определено в реальных физических координатах устройства, часто задаваемых в виде целых чисел. Координаты поля зрения могут быть нормализованы по некоторому произвольному диапазону, например, 0 ≤ x ≤ 1 <!. 0< y ≤ 1 задаваться в виде вещественных чисел. Содержание одного окна может быть выведено в нескольких полях зрения одного и того же устройства (рис. 1-5), Сохранение пропорций окна и поля (полей) зрения позволяет избежать искажений. Отображение на поле зрения графических данных. попавших после отсечения в окно, предусматривает выполнение операций переноса и масштабирования (приложение А).
Кроме графической информации, большинство изображений могут содержать алфавитно-цифровые и символические данные. Существуют два основных способа генерации символов: программный и аппаратный. Если при программной ге-
База данных в мировой системе координат |
Рис, 1-5 Несколько полей зрения для одного окна.
нерации символов используются линии, то они отсекаются обычным образом. Это бывает необходимо в случае, когда символы подвергаются операции отсечения, а затем операции преобразования. Однако многие графические устройства имеют встроенные аппаратные генераторы символов, и в этом случае символы идентифицируются только своим кодом, а их изображение формируется непосредственно перед выводом на экран. Данная реализация намного эффективнее, но обладает меньшей гибкостью, чем программа ^генерация символов, так как не позволяет проводить Отсечение и выполнять общие преобразования, ограничивающиеся в этом случае поворотом и масштабированием.
При использовании аппаратного генератора управляющая программа графического устройства должна установить размер, ориентацию и«точку привязки символа или строки текста. После этого в дисплейный файл заносятся коды символов, имеющих установленные характеристики. Затем запускается генератор текстов, который интерпретирует строку текста, задавая аппаратуре всю информацию, необходимую для изображения каждого символа. После этого символы текста пересылаются на устройство вывода.
Основные направления компьютерной графики:
· иллюстративное - это направление можно понимать, расширенно, начиная с представления результатов эксперимента, растровых изображений, картин и кончая созданием рекламных роликов;
· развития - стремительно развивающаяся компьютерная графика должна обслуживать свои потребности, расширяя и совершенствуя их;
· исследования, в которых инструментарий компьютерной графики начинает играть роль во многом подобную той, которую в свое время сыграл микроскоп;
· вывод изображения на экран компьютера является неотъемлемым, но всего лишь первым шагом на пути становления машинной графики. Довольно стремительно пройдя иллюстративный отрезок пути своего развития, компьютерная графика сосредоточилась как бы на двух генеральных направлениях: придание изображению необходимой динамики и придание изображению необходимой реалистичности.
К основным достоинствам компьютерной графики относятся:
· наиболее естественные средства общения с ЭВМ;
· хорошо развитый двухмерный и трехмерный механизм распознавания образов позволяет очень быстро и эффективно воспринимать и обрабатывать различные виды данных. Как гласит старинная китайская пословица: "Одна картинка стоит 1000 слов";
· она позволяет значительно расширить полосу пропускания при общении человека с ЭВМ за счет использования разумного сочетания текста, статических и динамических изображений по сравнению со случаями, когда можно работать только с текстами. Это расширение существенно влияет на возможность понимать данные, выявлять тенденции и визуализировать существующие или воображаемые объекты при обработке;
· высокая точность, быстрота и аккуратность автоматизированного выполнения чертежно-конструкторских работ, возможность многократного воспроизведения изображений и их вариантов, получение динамически изменяющихся изображений машинной мультипликации.
И хотя компьютерная графика всего лишь инструмент, ее структура и методы основаны на комплексном использовании передовых достижений науки и техники. Широко используются достижения из области фундаментальных естественных наук (физики, химии, математики, биологии) и программирования. Это справедливо как для программных, так и аппаратных средств формирования и реализации изображения, поскольку компьютерная графика одно из бурно развивающихся направлений компьютерной индустрии.
Дата добавления: 2015-02-16; просмотров: 127 | Поможем написать вашу работу | Нарушение авторских прав |