Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тема № 4. Графические стандарты

При изучении данной темы рассматриваются следующие вопросы:

  • графические языки;
  • современные стандарты компьютерной графики;
  • стандарты в области разработки графических систем;
  • метафайлы;
  • форматы хранения графической информации;
  • принципы построения «открытых» графических систем.

 

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

Отправной точкой в работах по стандартизации графических средств следует считать 1976 год. Именно тогда во французском городе Сейлак собралось первое совещание по обсуждению графических стандартов. С этого момента графическими стандартами занимаются в различных национальных и международных организациях по стандартизации, связанных с использованием компьютеров: ISO, ANSI, NBS, DIN, ANFOR, ЕСМА и др. Кроме того, большое влияние на стандартизацию оказывают крупнейшие фирмы производители аппаратуры и программного обеспечения. С 1987 года деятельность по графическим стандартам возглавляет и координирует 24-й подкомитет первого объединенного технического комитета - ISO/IEC JTC1/SC24.

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

Соге - Core Graphics System

GKS - Graphical Kernel System

MGKS - Minimal GKS

GKS-N - New Graphical Kernel System

CKS-3D - 3D Graphical Kernel System

PHIGS P - rogrammer's Hierarchical Interactive Graphics System

VDI - Virtual Device Interface

CGI - Computer Graphics Interface

PS - Adobe Systems PostScript Language

DPS - Adobe Systems Display Postscript System

NeWS - SUN Microsystems Network Extensible Window System

Х Window - MIT Х Window System

Windows - Microsoft Windows System

XGKS - Х+ GKS

РЕХ - PHIGS+ Х

OpenGL - SGI Graphical Language

Классификация

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

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

Наиболее известными проектами по стандартизации базисных систем являются Core System, GKS, GKS-3D, PHIGS, PHIGS+. Основное направление развития этих проектов заключалось в усилении изобразительных возможностей для визуализации геометрических объектов (2D, 3D, удаление скрытых линий и граней, полутоновая закраска, текстурирование и пр.). Стандарт на базисную графическую систему включает в себя функциональное описание и спецификации графических функций для различных языков программирования.

Сл 6: Концепция виртуального устройства начала разрабатываться с момента появления аппаратно-независимых графических систем. Интерфейс виртуального устройства разделяет аппаратно-зависимую и аппаратно-независимую части графической системы. Он обеспечивает заменяемость графических устройств (терминальную независимость), а также возможность работы с несколькими устройствами одновременно. Интерфейс виртуального устройства может существовать в форме программного интерфейса и/или протокола взаимодействия двух частей графической системы. Наиболее четко концепция виртуального устройства представлена в проекте CGI.

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

Сл 7: Дальнейшее развитие растровых функций связано с появлением многооконных графических систем Х Window и MS Windows (а также NeWS и Display Postscript), обеспечивших удобные средства для манипулирования растровыми изображениями. Эти средства явились основой для развития систем обработки изображений и для организации эффективного многооконного пользовательского интерфейса с использованием меню, диалоговых панелей, полос просмотра и пр. Отметим, что традиционные средства вывода геометрических примитивов (линий, дуг, многоугольников) и текстов также имеются в этих системах.

Сегодня, наиболее развитые проекты РЕХ и OpenGL неплохо совмещают основные достижения как геометрического, так и растрового направления.

Сл 8:Графические системы класса 2D

GKS - стандарт ISO на базисную графическую систему. Впервые опубликован в 1982 году. Принят в качестве международного стандарта в 1985 году. Разработаны спецификации GKS для языков С, Fortran, Pascal, Ada. В соответствии или с учетом стандарта GKS разработано большое количество графических систем, например GKS-3D и PHIGS.

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

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

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

- Растровые функции отсутствуют. Используемая цветовая модель - индексированная таблица RGB (Red-Green-Blue).

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

Сл 9: MGKS или MiniGKS - сокращенные варианты GKS без сегментации и с минимальным количеством функций опроса. Эти проекты прошли мимо внимания разработчиков стандартов, но были поддержаны многими разработчиками конкретных графических систем.

GKS-N или New GKS, проект обсуждавшийся в ISO (1989 год) направлен на улучшение функциональных характеристик GKS. Заметно явное влияние проекта CGI. Последующих публикаций не было.

Сл 10: PostScript (Adobe Systems, 1985) - язык описания страниц для растровых печатающих устройств. Отличительная особенность - широкие изобразительные возможности при минимальном наборе графических функций. Множество графических систем и настольных издательских систем поддерживают PostScript. Некоторые производители лазерных принтеров обеспечивают его аппаратную поддержку. PostScript использован для выполнения графических функций в многооконных системах NeWS и Display PostScript. Привлекательные свойства этого языка способствовали появлению его трехмерных расширений.

Широкие изобразительные возможности языка PostScript обеспечены понятием траектории (path), которая может быть составлена из линий, дуг, сегментов кривой Безье и текстовых символов. В процессе вывода траектории могут подвергаться произвольным линейным преобразованиям. Замкнутые траектории могут быть закрашены, заполнены растровым образцом (pixmap) или заштрихованы другими траекториями. Заполнение может производится по различным правилам (even-осЫ, nonzero-winding-number). Линии могут быть различного типа, переменной толщины и иметь скругления в точках соединения. Работа с текстами происходит на основе богатой библиотеки шрифтов. Поддерживается несколько цветовых моделей - RGB, CMY (CyanMagenta- Yellow) и HSV (Hue-Saturation-Value).

Сл 11: CGI - проект стандарта (ISO, 1986) на интерфейс виртуального устройства. На стадии обсуждения этот проект фигурировал в публикациях под названием VDI. CGI ориентирован не на прикладных, а на системных программистов, занимающихся разработкой графических систем. Функциональные возможности CGI сформированы с учетом разработанных ранее проектов GKS и CGM (Computer Graphics Metafile). Заметно влияние проектов PostScript и Х Window System.

- Функции вывода поддерживают работу с линиями, многоугольниками, прямоугольниками, маркерами, текстами, дугами, секторами и сегментами круга и эллипса, а также замкнутыми фигурами, составленными из этих примитивов. Замкнутые объекты могут закрашиваться, заштриховываться или заполняться растровым образцом. Набор атрибутов CGI аналогичен набору атрибутов GKS. Конвейер преобразования ограничен преобразованием рабочей станции.

- Функции сегментации аналогичны имеющимся в GKS.

- Растровые функции поддерживают работу с отображаемыми и виртуальными битовыми картами. Первые являются частью видеопамяти устройства. Вторые могут быть полноцветными или двухцветными матрицами пикселов в неотображаемой памяти. Двухцветные виртуальные битовые карты могут служить в качестве маски для операции заполнения областей, а также для задания символов, маркеров, курсоров и пр. Атрибутами карт являются прозрачность, основной и фоновый цвет. Введены различные режимы наложения цветов при выводе пикселов (and, or, xor,...).

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

Сл 12: Х Window System - многооконная графическая система, разработанная в Массачусетском Технологическом институте. Первые публикации появились в 1986 году. Одна из основных целей разработки - обеспечение сетевой прозрачности и возможности использования широкого спектра цветных и монохромных графических станций.

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

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

- Структуризация или сегментация данных не поддерживается.

- Растровые функции обеспечивают широкие возможности для манипулирования с битовыми и пиксельными матрицами (Bitmap, Pixmap). Кроме того, пиксельные матрицы могут использоваться в качестве образца заполнения, а битовые - в качестве маски отсечения. Используемая цветовая модель - RGB.

- Функции ввода на базисном уровне обеспечивают развитый механизм обработки событий, от мыши и клавиатуры. Функции более высокого уровня (Х Toolkit и библиотека виджетов) обеспечивают работу с меню, диалоговыми панелями, полосами просмотра и пр.

Сл 13: Microsoft Windows - многооконная надстройка над операционной системой MS DOS на IBM РС. Версия Windows NT трансформировалась в полноценную операционную систему. Обеспечивает многозадачный режим. Графические функции системы аналогичны имеющимся в Х Window, однако в параметрах функций нет идентификатора дисплея. Поддерживается метафайл.

NeWs (Sun Microsystems, 1987) и Display Postscript (Adobe Systems,1990) - многооконные графические системы, в основе которых лежит PostScript. Обладают эффективными графическими возможностями, унаследованными от языка PostScript. В системе NeWS появились 3D траектории.

Сл 14: Графические системы класса 3D

Core System - первый проект (ANSI) по стандартизации базисной графической сиетемы. Функциональное описание было опубликовано в 1977 году. На этот проект были замкнуты усилия многих разработчиков графических средств в течение последующих 5 лет. Построен на концепции рисующего элемента (2D и 3D) и обеспечивает работу только с линиями, маркерами и текстами. Для управлениями параметрами проектирования используется аналогия с камерой. Поддерживается сегментация. После появления стандартов GKS-3D и PHIGS проект Core System потерял свою актуальность.

Сл 15: GKS-3D - расширенный вариант GKS (ISO, 1987), позволяющий работать с трехмерными графическими объектами. В этот проект включены следующие дополнительные (по отношению к GKS) возможности:

- Функции вывода дополнены семью 3D-примитивами - те же, что в GKS с приставкой 3D и набор заполняемых областей 3D. Для последнего примитива введены атрибуты контура, аналогичные атрибутам линий. Введен атрибут для управления алгоритмами удаления скрытых линий и граней. Введены 3D-преобразования 3D-нормализация, видовое преобразование, 3D-преобразование рабочей станции. Видовое преобразование позволяет производить параллельное и центральное проецирование.

- Функции сегментации расширены возможностью работы с 3D-сегментами. Введено преобразование 3D-сегментов.

- Функции ввода дополнены двумя логическими устройствами для ввода координат 3D и линий 3D.

XGKS, GEX - проекты объединения систем Х Window и GKS/GKS-3D. Обсуждались в литературе по стандартизации, но не получили дальнейшего развития.

Сл 16: PHIGS - альтернативный по отношению к GKS-3D стандарт (ANSI-1986, ISO-1989), обеспечивающий возможность интерактивных манипуляций с иерархически структурированными графическими объектами. Получил дальнейшее развитие в проектах PHIGS+ и РЕХ. Сравнительные с GKS-3D характеристики следующие:

- Набор примитивов и атрибутов аналогичен имеющимся в GKS-3D. Поддерживается несколько цветовых моделей - RGB, CIE (Commission Internationale de l'Eclairage), HSV (Hue-Saturation-Value), HLS (Hue-Lightness-Saturation). Вместо 3D преобразования нормализации введено модельное преобразование.

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

Сл 17: PHIGS+(или PHIGS-PLUS) - проект расширения PHIGS (ISO/ANSI Draft 1990), направленный на обеспечение основных требований прикладных программ в области - освещения, полутоновой закраски и эффективного описания сложных поверхностей. Для этих целей в PHIGS+ включен следующий набор примитивов:

- набор полилиний с данными,

- кривая нерационального В-сплайна,

- кривая нерационального В-сплайна с данными,

- полигональная область с данными, набор полигональных областей с данными,

- набор треугольников с данными,

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

- поверхность нерационального В-сплайна,

- поверхность нерационального В-сплайна с данными.

Примитивы, имеющие суффикс "с данными" позволяют включить дополнительную информацию, являющуюся частью определения примитива. Например, в случае набора треугольников для каждой грани и/или вершины можно задать комбинации цвета, нормаль и прикладные данные. Далее, существует механизм управления, позволяющий определить, какие данные следует использовать, а какие пропустить во время отображения. PHIGS+ различает переднюю и заднюю поверхности грани на основе геометрической нормали. Различные значения цвета и другие атрибуты могут быть определены для передней и задней граней. Для вычисления освещенности кроме геометрических характеристик задаются отражательные свойства поверхности, а также расположение источников цвета и их характеристики.

Сл18: РЕХ (MIT Х Consortium) - проект расширения системы Х Window для поддержки PHIGS+. Первоначальная версия XPHIGS 1.0 - 1987 год, последняя версия PEX 6.0 - 1992 год. Одна из двух систем (другая - OpenGL), обеспечивающих наиболее развитые на сегодняшний день инструментальные средства для построения реалистичных изображений. Суть проекта РЕХ состоит в описании механизма расширения Х-протокола и Х-сервера для обеспечения функций PHIGS+, что, в первую очередь, предназначено для системных программистов. С точки зрения прикладного программиста функциональные возможности РЕХ в части изображения пространственных объектов соответствуют системе PHIGS+. Однако, начиная с версии 5.2 в РЕХ появились новые возможности, обеспечивающие устранение ступенчатости (antialiasing) и текстурирование поверхностей. Средства работы с растровыми изображениями поддерживаются с помощью Х Window и дополнительных расширений.

Сл 19: OpenGL - стандарт, предложенный компанией Silicon Graphics в 1993 году, регламентирующий интерфейс прикладного программиста. Предшественником этого проекта является IRIS GL (SGI 1988 г.). Изначально ориентирован на работу в системе Х Window. О поддержке OpenGL сообщали почти все ведущие фирмы-производители, в частности ОС Windows NT имеет этот стандарт в своем комплекте. По функциональным возможностям OpenGL примерно соответствует системе РЕХ последних версий, но несколько отличается по стилю программирования. Кроме того, в отличие от РЕХ, имеет собственные развитые средства для работы с растровыми изображениями.

<== предыдущая лекция | следующая лекция ==>
Языки диалога | Сл 20: Стандарты обмена данными
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 3138; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.037 сек.