Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Дляттест1-Лекции

.pdf
Скачиваний:
14
Добавлен:
23.05.2015
Размер:
684.01 Кб
Скачать

ТЕМЫ КУРСА

1.Введение в КГ, виды КГ, области применения 2.Графическая система 3.Стандарты КГ, интерфейсы и протоколы 4.Технические средства КГ

5.Основные сведения о компьютерном изображении

6.Графический конвейер

7.Представление графических данных, форматы графических данных

8.Алгоритмы сжатия изображений

1.Понятие цвета

2.Цветовые модели

3.Системы координат

4.Этапы построения изображений

5.Геометрические преобразования (проективные и аффинные преобразования)

1.Моделирование

2.Виды геометрических моделей

3.Параметрическое описание поверхностей

4.Сплайны

5.Двумерное и трехмерное отсечение

6.Удаление невидимых линий и поверхностей

7.Освещение

8.Текстура

9.Закраска поверхностей

10.Тени

Область применения компьютерной графики

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

Различают направления компьютерной графики:

1 Изобразительная КГ. В ней источником графических данных являются образы

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

моделирования. В изобразительной графике решаются задачи:

- построение модели сцены по реальному прообразу;

1

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

- визуализация и вывод сцены на монитор или устройство печати.

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

- повышение качества изображения;

- оценка изображения, определение его формы, положения, размеров;

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

3. Анализ сцен и распознавание образов. Объектами анализа и обработки служат графические модели, размещенные в какой-то среде. Основные задачи при распознавании образов:

- локализация объекта;

- определение типа;

- расчет геометрических и структурных характеристик.

4.Когнитивная КГ - компьютерная графика для научных абстракций,

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

Когнитивная КГ - занимается синтезом и визуализацией абстрактных изображений,

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

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

Полиграфия

Растровая

Векторная

Фрактальная

САПР

3D-

Мульти-

Видеомонтаж

 

графика

графика

графика

 

графика

медиа

 

 

 

 

 

 

 

 

 

 

Adobe

Adobe

Corel Draw

Fractal

Design

AutoCad

3D-Studio

MS Power

Adobe

PageMaker

PhotoShop

 

Painter

 

 

Max

Point

Premier

 

 

 

 

 

 

 

 

 

QuarkXPress

MS Paint

Corel Xara

Fractal

Design

 

SoftImage-

Macromedia

 

 

 

 

 

 

 

 

 

 

2

 

 

 

Expression

 

3D

Director

 

 

 

 

 

 

 

 

 

 

Corel

Adobe

Art Dabbler

 

Maya

 

 

 

Photo Paint

Illustrator

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Paint Shop

Free Hand

 

 

 

 

 

 

Pro

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Photo

 

 

 

 

 

 

 

Draw 2000

 

 

 

 

 

 

 

 

 

 

 

 

 

 

На самостоятельную проработку: Краткая история

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

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

Первой официально признанной попыткой использования дисплея для вывода изображения из ЭВМ явилось создание в Массачусетском технологическом университете машины Whirlwind-I в 1950 г. Таким образом, возникновение компьютерной графики можно отнести к 1950-м годам. Сам же термин "компьютерная графика" придумал в 1960 г. сотрудник компании Boeing У. Феттер.

Первое реальное применение компьютерной графики связывают с именем Дж. Уитни. Он занимался кинопроизводством в 50-60-х годах и впервые использовал компьютер для создания титров к кинофильму.

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

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

В том же 1961 г. студент Стив Рассел создал первую компьютерную видеоигру Spacewar ("Звездная война"), а научный сотрудник Bell Labs Эдвард Зэджек создал анимацию "Simulation of a two-giro gravity control system".

3

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

Университет штата Юта становится центром исследований в области компьютерной графики благодаря Д.Эвансу и А.Сазерленду, которые в это время были самыми заметными фигурами в этой области. Позднее их круг стал быстро расширяться. Учеником Сазерленда стал Э.Кэтмул, будущий создатель алгоритма удаления невидимых поверхностей с использованием Z-буфера (1978). Здесь же работали Дж.Варнок, автор алгоритма удаления невидимых граней на основе разбиения области (1969) и основатель Adobe System (1982), Дж.Кларк, будущий основатель компании Silicon Graphics (1982). Все эти исследователи очень сильно продвинули алгоритмическую сторону компьютерной графики.

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

В 1970-е годы произошел резкий скачок в развитии вычислительной техники благодаря изобретению микропроцессора, в результате чего началась миниатюризация компьютеров и быстрый рост их производительности. И в это же время начинает интенсивно развиваться индустрия компьютерных игр. Одновременно компьютерная графика начинает широко использоваться на телевидении и в киноиндустрии. Дж.Лукас создает отделение компьютерной графики на Lucasfilm.

В 1977 г. появляется новый журнал "Computer Graphics World".

В середине 1970-х годов графика продолжает развиваться в сторону все большей реалистичности изображений. Э.Кэтмул в 1974 г. создает первые алгоритмы текстурирования криволинейных поверхностей. В 1975 г. появляется упомянутый ранее метод закрашивания Фонга. В 1977 г. Дж.Блин предлагает алгоритмы реалистического изображения шероховатых поверхностей (микрорельефов); Ф.Кроу разрабатывает методы устранения ступенчатого эффекта при изображении контуров (антиэлайзинг). Дж.Брезенхем создает эффективные алгоритмы построения растровых образов отрезков, окружностей и эллипсов. Уровень развития вычислительной техники к этому времени уже позволил использовать "жадные" алгоритмы, требующие больших объемов памяти, и в 1978 г. Кэтмул предлагает метод Z-буфера, в котором используется область памяти для хранения информации о "глубине" каждого пикселя экранного изображения. В этом же году Сайрус и Бэк развивают алгоритмы клиппирования (отсечения) линий. А в 1979 г. Кэй и Гринберг впервые реализуют изображение полупрозрачной поверхности.

В 1980 г. Т.Уиттед разрабатывает общие принципы трассировки лучей, включающие отражение, преломление, затенение и методы антиэлайзинга. В 1984 г. группой исследователей (Горэл, Торрэнс, Гринберг и др.) была предложена модель излучательности, одновременно развиваются методы прямоугольного клиппирования областей.

В 1980-е годы появляется целый ряд компаний, занимающихся прикладными разработками в области компьютерной графики. В 1982 г. Дж.Кларк создает Silicon Graphics, тогда же возникает Ray Tracing Corporation, Adobe System, в 1986 г.

компания Pixar отпочковывается от Lucasfilm.

4

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

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

1968, ВЦ АН СССР, машина БЭСМ-6, вероятно, первый отечественный растровый дисплей с видеопамятью на магнитном барабане;

1972, Институт автоматики и электрометрии (ИАиЭ), векторный дисплей "Символ";

1973, ИАиЭ, векторный дисплей "Дельта";

1977, ИАиЭ, векторный дисплей ЭПГ-400;

1982, Киев, НИИ периферийного оборудования, векторный дисплей СМ-7316, 4096 символов, разрешение 2048?2048;

1979-1984, Институт прикладной физики, серия растровых цветных полутоновых дисплеев "Гамма". Последние дисплеи данной серии имели таблицу цветности, поддерживали окна, плавное масштабирование.

Таким образом, в процессе развития компьютерной графики можно выделить несколько этапов.

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

В 1980-е графика развивается более как прикладная дисциплина. Разрабатываются методы ее применения в самых различных областях человеческой деятельности.

В 1990-е годы методы компьютерной графики становятся основным средством организации диалога "человек-компьютер" и остаются таковыми по настоящее время.

5

Графическая система, графическое ядро,

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

Функции графических систем:

-ввод данных;

-вывод графических изображений;

-обработка запросов пользователей;

-поиск и хранение данных;

-выполнение преобразований графической информации.

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

Графическая система ПК состоит из аппаратной и программной частей. Аппаратная часть включает видеоадаптер, монитор и интерфейсы, которые обслуживают графическую систему: один между адаптером и северным мостом, второй – между видеоадаптером и устройством отображения. Программная часть обеспечивает поддержку интерфейсов видеоадаптера, монитора и приложений на уровне BIOS, ОС, драйверов и специализированных прикладных языков программирования (API). Графическая система используется всеми прикладными программами. Приложение использует функции видеоадаптера при посредничестве драйвера, который интерпретирует команды для графического процессора. В соответствии с полученными командами видеоадаптер выводит на монитор изображение.

Графическая система решает задачи:

- 2D графики. Это задачи интерфейса GUI (Graphic User Interface). Графическим ядром Windows являются библиотеки GDI и новая версия GDI+.

-3D графики. 3D графика представляет собой геометрические модели объектов. Эти модели, как правило, создаются и обрабатываются специальными программами, которые выполняются на ЦП и хранятся в ОП ПК. Графическая система используется

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

-задачи вывода и обработки видеографики.

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

6

также преобразование данных в графическую форму. Например, пакет OpenGL для Windows. Графическая подсистема состоит из ядра и обширной библиотеки графических функций graphics.lib (ее нужно подключать при компоновке программного модуля).

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

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

Стандартизация в машинной графике

Базовая графическая система - международный стандарт на интерфейс прикладных программ с системами графического ввода/вывода.

Документ стандарта определяет GKS (БГС) как набор функций для

выполнения графических действий, описанных в языково-независимой форме;

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

Развитие сетей ЭВМ, оснащенных терминальными устройствами различных типов, потребовало обеспечить независимость программного обеспечения от аппаратуры.

NGP (Network graphics рrotocol)

Первые результаты по стандартизации были получены применительно к сети ARPA в рамках работ по разработке протоколов для аппаратно и машиннонезависимого представления графических данных в сети.

Графический протокол – это правила и порядок обмена графической информацией.

Интерфейс – это совокупность правил взаимодействия устройств и программ между собой или пользователем и средств, которые реализуют это взаимодействие.

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

Интерфейс пользователя с программой – это кнопки, меню, элементы управления и сам терминал.

7

Стандартизация в машинной графике направлена на обеспечение мобильности и

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

устройствами и обеспечение возможности обмена графической информацией между

различными подсистемами.

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

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

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

Наиболее известными проектами по стандартизации базисных систем являются

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

Визуализация (рендеринг) – процедура подготовки информации для изображения на графическом устройстве.

Растрирование (растеризация) – преобразование изображения векторной графики в растровое изображение заданного размера и формата.

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

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

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

Верхний уровень стандартизации - IGES предназначен для обеспечения мобильности компонент САПР. (прикладной виртуальный ресурс)

Средний уровень стандартизации - уровень базового графического пакета (GKS) определяется выбором базовых функций системы. Этот интерфейс делает базовую графическую систему независимой от области применения.

8

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

систему аппаратно-независимой.

Данные

IGES

Прикладная программа

GKS, PMIG и т.д.

Базовая графическая система

CGI

Драйвер устройства

 

 

Драйвер устройства

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Устройство

 

 

 

Устройство

 

Рис. 3 Архитектура переносимой графической системы

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

Классификация стандартов

Из рис. 3 видно, что для обеспечения мобильности программного обеспечения требуется стандартизовать:

базовую графическую систему, т.е. стандартизовать графический интерфейс (набор базовых графических функций) - Core System (ядро системы), GKS, GKS-3D, PMIG,

PHIGS, PHIGS+ и т.д.

графический протокол (порядок и правила обмена информацией) - IGES, CGM и др.

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

9

Виртуальное устройство – это воображаемое, реально не существующее устройство, или устройство, которое воспринимается иначе, чем оно на самом деле реализовано.

Графические протоколы

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

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

аппаратно-независимые графические протоколы или метафайлы,

прикладные графические протоколы,

растровые графические файлы.

Аппаратно-зависимые графические протоколы

Аппаратно-зависимые графические протоколы разрабатываются фирмами, производящими графическое оборудование. Они представляют собой

последовательность команд для построения изображений на устройствах

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

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

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

Аппаратно-независимые графические протоколы

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

В настоящее время в мировой практике наиболее активно поддерживаются стандартизованные аппаратно-независимые протоколы GKSM, CGM и WMF - стандарт де-факто фирмы Microsoft на метафайл.

Проблемно-ориентированные протоколы

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

10