Архитектура графических систем

 

Назначение графической системы состоит в преобразовании двух или трехмерной модели объекта, формируемой прикладной программой, в графические команды и данные, либо передаваемые на устройства, либо запоминаемые в той или иной графической структуре данных.

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

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

· обеспечением адаптируемости прикладных программ, т.е. легкости приспособления к новым функциональным требованиям;

· обеспечением мобильности прикладных программ, т.е. легкости их переноса в иное окружение.

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

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

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

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

На втором – среднем уровне находится аппаратно-независимый графпакет общего назначения.

На третьем – верхнем уровне находятся проблемно-ориентированные графпакеты.

 

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

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

 

Основные преимущества подхода с использованием графпакетов состоят в следующем:

1. Легкая обучаемость, так как пользователь пакета не выходит за рамки удобного либо

привычного ему языка.

2. Легкая расширяемость за счет написания самим пользователем подпрограмм, необходимых для его приложения. Задача системных программистов состоит в том, чтобы дать базисный пакет, пригодный для многих пользователей и многих приложений.

3. Легкая переносимость прикладной программы на другие ЭВМ.

4. Легкая адаптируемость к новым требованиям либо аппаратным возможностям.

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

Очевидными недостатками такого подхода являются:

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

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

Несмотря на отмеченные недостатки, можно уверенно утверждать, что создание пакетов

графических подпрограмм является основным средством разработки графического программного обеспечения.

 

 


IGES (Initial Graphics Exchange Specification), Прикладные графические протоколы это объектно-ориентированные протоколы передачи данных между прикладными системами. Они наиболее компактны (вследствие высокой семантической насыщенности), допускают свободу в выборе различных способов графического представления, но требуют большей мощности локальной ЭВМ для интерпретации. Прикладные протоколы наиболее стандартизованы для САПР машиностроения и электроники.

 

CGM (Computer Graphics Metafile) - аппаратно-независимый формат обмена графической информацией. Используется для передачи и запоминания информации, описывающей изображения.

 

WMF (Windows Metafile Format) В системе Windows фирмы Microsoft для сохранения и последующего использования цветных изображений используется свой формат метафайла. В WMF используется двоичный способ кодирования, он, наиболее компактен и обеспечивает наибольшие скорости упаковки и воспроизведения, но неудобен для просмотра и анализа человеком. Метафайл содержит заголовок и собственно описание изображения в виде записей GDI (Graphical Device Interface) функций. Всего предусмотрено три варианта метафайла – стандартный (все изображение), размещаемый (placeable, изображение вставляемое в документ) и буферный (clipboard, для временного хранения и вставки). Отличия вариантов состоят только в разных структурах заголовков. В составе Windows предусмотрены функции для создания и проигрывания метафайлов и манипулирования ими.

 

GKS (Graphical Kernel System) В 1979 г. GKS была принята в качестве отправной точки международного стандарта. Основной из отличительных черт является введение понятия рабочей станции, представляющей собой абстракцию совокупности виртуальных устройств ввода/вывода, более полно соответствующей современной тенденции использования интеллектуальных терминалов. По максимуму рабочая станция обладает следующими свойствами: имеет одну адресуемую поверхность вывода с фиксированным разрешением; допускается только прямоугольное поле отображения, которое не может состоять из нескольких отдельных частей; позволяет задание и использование поля отображения, которое меньше максимально возможного, с гарантией того, что изображение не генерируется вне заданного поля отображения; поддерживает несколько типов линий, шрифтов текста, размеров символов и т.д. для вывода примитивов с различными атрибутами; имеет одно или больше устройств ввода для каждого класса устройств, которые независимо друг от друга могут работать в одном из трех режимов - синхронный ввод, опрос, асинхронный ввод; запоминает сегменты и обеспечивает средства для изменений сегментов и манипуляций с ними. Ясно, что выделение рабочей станции излишне громоздко, когда приходится иметь дело с одним устройством вывода и ввода. Основная ценность введения понятия рабочей станции состоит в удобной и естественной возможности разделения аппаратно-независимой и аппаратно-зависимой частей. Набор примитивов GKS приспособлен для целей растровой графики (ломаная; полимаркер; текст; многоугольник, который может быть залит одним цветом, заштрихован, покрыт узором, либо может быть не закрашен за исключением границ).

 

GDI (Graphical Device Interface) Стандарт для Windows, возможна работа с перекрывающимися прямоугольными окнами за счет использования контекста рисования (набора текущих параметров рисования) для каждого окна. Более широкий набор примитивов.

 

CGI (Computer Graphics Interface) Это стандарт на интерфейс между аппаратно-независимой частью графического программного обеспечения (базисной графической системой) и аппаратно-зависимой (драйверами). Для эффективного использования аппаратных возможностей современных графических устройств набор функций CGI перекрывает аппаратно-реализуемые возможности и включает в себя следующие функции:

· управление устройством,

· вывод графических примитивов,

· изменение графических атрибутов,

· сегментация изображений,

· графический ввод,

· растровые операции.

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

 

VESA (Video Electronics Standards Association) позволяет работать с отдельными пикселами изображения.