Предмет и область применения компьютерной графики
·
Сферы
применения компьютерной графики
·
Основные
направления в компьютерной графике
·
Технические средства поддержки
компьютерной графики
·
Этапы построения реалистических
изображений в компьютерной графике
80% информации человек получает посредством зрения. Поэтому
необходимо активное развитие способов человеко-машинного взаимодействия.
Основная функция компьютера – обработка информации (в том числе и графической).
Компьютерная графика -
это область информатики, которая охватывает все стороны формирования
изображений с помощью компьютера.
Появившись в 1950-х годах, она
поначалу давала возможность выводить лишь несколько десятков отрезков на
экране. В наши дни средства компьютерной графики позволяют создавать реалистические изображения, не уступающие фотографическим снимкам
Трехмерные изображения используются в медицине (компьютерная
томография), картографии, полиграфии, геофизике, ядерной физике и других
областях. Телевидение и другие отрасли индустрии развлечений используют
анимационные средства компьютерной графики (компьютерные игры, фильмы).
Общепринятой практикой считается также использование компьютерного
моделирования при обучении пилотов и представителей других профессий
(тренажеры). Знание основ компьютерной графики сейчас необходимо и инженеру, и
ученому.
Конечным результатом применения средств
компьютерной графики является изображение, которое может использоваться для
различных целей
Сферы применения компьютерной графики включает четыре основных
области.
Проблема представления накопленной информации (например, данных о
климатических изменениях за продолжительный период, о динамике популяций
животного мира, об экологическом состоянии различных регионов и т.п.) лучше
всего может быть решена посредством графического отображения.
Ни одна из областей современной науки не обходится без
графического представления информации. Помимо визуализации результатов
экспериментов и анализа данных натурных наблюдений существует обширная область
математического моделирования процессов и явлений, которая просто немыслима без
графического вывода. Например, описать процессы, протекающие в атмосфере или
океане, без соответствующих наглядных картин течений или полей температуры
практически невозможно. В геологии в результате обработки трехмерных натурных
данных можно получить геометрию пластов, залегающих на большой глубине.
В медицине в настоящее время широко используются методы
диагностики, использующие компьютерную визуализацию внутренних органов
человека. Томография (в частности, ультразвуковое исследование) позволяет
получить трехмерную информацию, которая затем подвергается математической
обработке и выводится на экран. Помимо этого применяется и двумерная графика: энцефалограммы, миограммы, выводимые на экран компьютера или графопостроитель.
В строительстве и технике чертежи давно представляют собой основу
проектирования новых сооружений или изделий. Процесс проектирования с
необходимостью является итеративным, т.е. конструктор перебирает множество
вариантов с целью выбора оптимального по каким-либо параметрам. Не последнюю
роль в этом играют требования заказчика, который не всегда четко представляет
себе конечную цель и технические возможности. Построение предварительных
макетов - достаточно долгое и дорогое дело. Сегодня существуют развитые
программные средства автоматизации проектно-конструкторских работ (САПР, CAD, CAM), позволяющие быстро создавать чертежи объектов, выполнять
прочностные расчеты и т.п. Они дают возможность не только изобразить проекции
изделия, но и рассмотреть его в объемном виде с различных сторон.
3. Моделирование
Под моделированием в данном случае понимается имитация различного
рода ситуаций, возникающих, например, при полете самолета или космического
аппарата, движении автомобиля и т.п. В английском языке это лучше всего
передается термином simulation. Но моделирование
используется не только при создании различного рода тренажеров. В телевизионной
рекламе, в научно-популярных и других фильмах теперь синтезируются движущиеся
объекты, визуально мало уступающие тем, которые могут быть получены с помощью
кинокамеры. Кроме того, компьютерная графика предоставила киноиндустрии
возможности создания спецэффектов, которые в прежние годы были попросту
невозможны. В последние годы широко распространилась еще одна сфера применения
компьютерной графики - создание виртуальной реальности.
4. Графический пользовательский интерфейс
На раннем этапе использования дисплеев как одного из устройств
компьютерного вывода информации диалог "человек-компьютер" в основном
осуществлялся в алфавитно-цифровом виде. Теперь же практически все системы
программирования применяют графический интерфейс. Особенно впечатляюще выглядят
разработки в области сети Internet. Существует
множество различных программ-браузеров, реализующих в том или ином виде
средства общения в сети, без которых доступ к ней трудно себе представить. Эти
программы работают в различных операционных средах, но реализуют, по существу,
одни и те же функции, включающие окна, баннеры, анимацию и т.д.
В современной компьютерной графике можно выделить следующие
основные направления:
изобразительная компьютерная графика, обработка и анализ
изображений, анализ сцен (перцептивная компьютерная графика), компьютерная
графика для научных абстракций (когнитивная компьютерная графика, т.е. графика,
способствующая познанию).
Изобразительная компьютерная графика своим предметом имеет синтезированные
изображения. Основные виды задач, которые она решает, сводятся к следующим:
·
построение модели
объекта и формирование изображения;
·
преобразование модели и
изображения;
·
идентификация объекта и
получение требуемой информации.
Обработка и анализ изображений касаются в основном дискретного (цифрового) представления
фотографий и других изображений. Средства компьютерной графики здесь
используются для:
·
повышения качества
изображения;
·
оценки изображения -
определения формы, местоположения, размеров и других параметров требуемых
объектов;
·
распознавания образов -
выделения и классификации свойств объектов (при обработке аэрокосмических
снимков, вводе чертежей, в системах навигации, обнаружения и наведения).
Анализ сцен связан
с исследованием абстрактных моделей графических объектов и взаимосвязей между
ними. Объекты могут быть как синтезированными, так и выделенными на
фотоснимках. К таким задачам относятся, например, моделирование "машинного
зрения" (роботы), анализ рентгеновских снимков с выделением и
отслеживанием интересующего объекта (внутреннего органа), разработка систем
видеонаблюдения.
Когнитивная компьютерная графика - только формирующееся новое направление, пока еще
недостаточно четко очерченное. Это - компьютерная графика для научных
абстракций, способствующая рождению нового научного знания. Технической основой
для нее являются мощные ЭВМ и высокопроизводительные средства визуализации.
Одним из наиболее ранних примеров использования когнитивной компьютерной
графики является работа Ч. Страуса "Неожиданное применение ЭВМ в чистой
математике" (ТИИЭР, т. 62, № 4, 1974, с.96-99). В ней показано, как для
анализа сложных алгебраических кривых используется "n-мерная" доска
на основе графического терминала. Пользуясь устройствами ввода, математик может
легко получать геометрические изображения результатов направленного изменения
параметров исследуемой зависимости. Он может также легко управлять текущими
значениями параметров, "углубляя тем самым свое понимание роли вариаций
этих параметров". В результате получено "несколько новых теорем и
определены направления дальнейших исследований".
Время больших компьютеров
(эра до персональных компьютеров).
Особенности: пользователь не
имел доступа к монитору, графика развивалась на математическом уровне и
выводилась на принтере в виде текста, напоминающего на большом расстоянии
изображение. Графопостроители появились в конце 60-х годов.
Первой официально признанной
попыткой использования дисплея для вывода изображения из ЭВМ явилось создание в
Массачусетском технологическом университете машины Whirlwind-I (Вихрь-1)в 1950
г. Для создания имитатора полетов для решения задач стабилизации поведения
самолетов и отработки точности бомбометания. Таким образом, возникновение
компьютерной графики можно отнести к 1950-м годам. Сам же термин
"компьютерная графика" придумал в 1960 г. сотрудник компании Boeing У. Феттер.
Первые компьютеры с
мощностью, достаточной для выполнения задач цифровой обработки изображений
появились в начале 60-х. Айвэн Сазерленд в 1961 г., еще
будучи студентом, создал программу рисования, названную им Sketchpad
(альбом для рисования). Программа использовала световое перо для рисования
простейших фигур на экране. Полученные картинки можно было сохранять и
восстанавливать. В этой программе был расширен круг основных графических
примитивов, в частности, помимо линий и точек был введен прямоугольник, который
задавался своими размерами и расположением.
Первоначально компьютерная графика была
векторной, т.е. изображение формировалось из тонких линий. Эта особенность была
связана с технической реализацией компьютерных дисплеев. В дальнейшем более
широкое применение получила растровая графика, основанная на представлении
изображения на экране в виде матрицы однородных элементов (пикселей).
В том же 1961 г. студент Стив Рассел
создал первую компьютерную видеоигру Spacewar
("Звездная война"), а научный сотрудник BellLabs
Эдвард Зэджек создал анимацию "Simulationof a two-girogravitycontrolsystem".
В МГУ группой под руководством Н.Н.
Константинова была создана компьютерная математическая модель движения кошки.
Машина БЭСМ-4, выполняя написанную программу решения дифференциальных
уравнений, рисовала мультфильм «Кошечка», который для своего времени являлся
прорывом. Для визуализации использовался алфавитно-цифровой принтер.
В связи с успехами в области компьютерной
графики крупные корпорации начали проявлять к ней интерес, что в свою очередь
стимулировало прогресс в области ее технической поддержки.
Университет штата Юта становится центром
исследований в области компьютерной графики благодаря Д.Эвансу
и А.Сазерленду, которые в это время были самыми
заметными фигурами в этой области. Позднее их круг стал быстро расширяться.
Учеником Сазерленда стал Э.Кэтмул, будущий создатель
алгоритма удаления невидимых поверхностей с использованием Z-буфера (1978).
Здесь же работали Дж.Варнок,
автор алгоритма удаления невидимых граней на основе разбиения области (1969) и
основатель AdobeSystem (1982), Дж.Кларк,
будущий основатель компании SiliconGraphics (1982).
Все эти исследователи очень сильно продвинули алгоритмическую сторону компьютерной
графики.
В том же 1971 г. Гольдштейн и Нагель
впервые реализовали метод трассировки лучей с использованием логических
операций для формирования трехмерных изображений.
1971-1985 гг. Появились персональные компьютеры, т.е.
появился доступ пользователя к дисплеям. Роль графики резко возросла, но
наблюдалось очень низкое быстродействие компьютера. Программы писались на
ассемблере. Появилось цветное изображение.
Особенности: этот период характеризовался зарождением реальной
графики.
Конец 80-х Программное обеспечение
имелось для всех сфер применения: от комплексов управления до настольных
издательств. Возникло новое направление рынка на развитие аппаратных и
программных систем сканирования, автоматической оцифровки.
1986-1990
гг.
Появление технологии Мультимедиа. К
графике добавились обработка звука и видеоизображения, общение пользователя
с компьютером расширилось.
Особенности: появление диалога
пользователя с персональным компьютером; появление
анимации и возможности выводить цветное
изображение.
1991-2010…….
гг.
Появление графики нашего дня Virtual Reality.
Появились датчики перемещения, благодаря
которым компьютер меняет изображения при помощи сигналов посылаемых на него.
Появление стереоочков
(монитор на каждый глаз), благодаря
высокому быстродействию которых, производится имитация реального мира.
Замедление развития этой технологии
из-за опасения медиков, т.к. благодаря Virtual Reality можно очень сильно
нарушить психику человека, благодаря мощному воздействию цвета на неё.
Развитие компьютерной графики во многом обусловлено развитием
технических средств ее поддержки. Прежде всего это
устройства вывода, каковыми являются дисплеи. В настоящее время существует
несколько типов дисплеев, использующих электронно-лучевую трубку, а также
дисплеи на жидкокристаллических индикаторах и другие их виды. Устройства
отображения информации представлены в следующем документе.
Теперь сделаем небольшой обзор устройств ввода
информации, позволяющих решать различные задачи компьютерной графики, не
вдаваясь в детали физических принципов их работы. Эти устройства позволяют
организовать диалог "человек-компьютер", а особенности конструкции
каждого устройства позволяют ему специализироваться на выполнении определенного
круга задач.
Первую группу устройств, с помощью которых пользователь может
указать позицию на экране, назовем устройствами указания ( pointing device ): мышь, трекбол (trackball), световое перо (lightpen),
джойстик (joystick), спейсбол
(spaceball).
В последнее время появились новые разработки в этом направлении, в
частности - перчатки с системой датчиков, которые способны улавливать движения
отдельных частей руки человека
Перчатка
для ввода данных
При построении различных графических
изображений на экране монитора компьютера используются последовательность
множеств методов и алгоритмов используемых в
компьютерной графике.
Алгоритмы компьютерной графики принято
разделять на группы, в каждой из которых решаются близкие по смыслу задачи.
Можно выделить пять таких групп:
1. генерация простых фигур – алгоритмы,
связанные с разложением в растр отрезков прямых, разомкнутых и замкнутых кривых
(парабол,
гипербол, окружностей, эллипсов и т.п.);
2. заполнение многоугольников (или заполнение контуров) – группа алгоритмов, осуществляющих генерацию (закраску) сплошных областей;
3. отсечение, в том числе двумерное и трехмерное – решаются
задачи визуализации той части соответственно плоской и объемной сцены, которая
находится внутри (внутреннее отсечение) или вне (внешнее отсечение) отсекающей фигуры;
4. удаление невидимых линий и поверхностей – алгоритмы определяют и удаляют из трехмерной сцены ребра, поверхности,
объемы или их фрагменты, которые заслонены
другими объектами и невидимы наблюдателю, находящемуся в заданной точке
пространства;
5.
построение реалистических
изображений – группа наиболее сложных алгоритмов, реализующих
закраску участвующих в сцене
объектов с учетом их взаимного расположения и физических, в том числе оптических свойств, а
также расположения и характеристик источников света.
Под геометрическими примитивами понимают тот базовый набор
геометрических фигур, который лежит в основе всех графических построений,
причем эти фигуры должны образовывать "базис" в том смысле, что ни
один из этих объектов нельзя построить через другие. Однако вопрос о том, что
включать в набор геометрических примитивов, нельзя считать окончательно
решенным в компьютерной графике. Например, количество примитивов можно свести к
некоему минимуму, без которого нельзя обойтись, и этот минимум сводится к
аппаратно реализованным графическим объектам. В этом случае базисный набор
ограничивается отрезком, многоугольником и набором литер (символов).
Другая точка зрения состоит в том, что в набор примитивов
необходимо включить гладкие кривые различного рода (окружности, эллипсы, кривые
Безье), некоторые классы поверхностей и даже сплошные геометрические тела. В
качестве трехмерных геометрических примитивов в таком случае предлагаются
пространственные кривые, параллелепипеды, пирамиды, эллипсоиды. Но если такой
расширенный набор примитивов связан с аппаратной реализацией, то возникает
проблема перенесения программных приложений с одного компьютера на другой, поскольку
такая аппаратная поддержка существует далеко не на всех графических станциях.
Кроме того, при создании трехмерных геометрических примитивов программисты
сталкиваются с проблемой их математического описания, а также разработки
методов манипулирования такими объектами, поскольку те типы объектов, которые
не попали в список базовых, надо уметь приближать с помощью этих примитивов.
Во многих случаях для аппроксимации сложных поверхностей
используются многогранники, но форма граней может быть различной.
Пространственный многоугольник с числом вершин больше трех не всегда бывает
плоским, а в этом случае алгоритмы изображения многогранников могут привести к
некорректному результату. Поэтому программист должен сам позаботиться о том,
чтобы многогранник был описан правильно. В этом случае оптимальным выходом из
положения является использование треугольников, поскольку треугольник всегда
является плоским. В современной графике это, пожалуй, самый распространенный
подход.
Но существует и альтернативное направление, которое
называется конструктивной геометрией тел. В системах, использующих
этот подход, объекты строятся из объемных примитивов с использованием теоретико- множественных операций (объединение,
пересечение).
Любая графическая библиотека определяет свой набор примитивов.
Так, например, широко распространенная интерактивная система трехмерной графики
OpenGL включает в список своих примитивов точки
(вершины), отрезки, ломаные, многоугольники (среди которых особо выделяются
треугольники и четырехугольники), полосы (группы треугольников или
четырехугольников с общими вершинами) и шрифты. Кроме того, в нее входят и
некоторые геометрические тела: сфера, цилиндр, конус и др.
Полигональные модели
Для этих пространственных моделей используются в качестве
примитивов вершины (точки в пространстве), отрезки прямых (векторы), из которых
строятся полилинии, полигоны и полигональные
поверхности. Главным элементом описания является вершина, все остальные являются
производными. В трехмерной декартовой системе координаты вершины определяются
своими координатами (x,y,z), линия задается двумя
вершинами, полилиния представляет собой незамкнутую
ломаную линию, полигон - замкнутую ломаную линию. Полигон моделирует плоский
объект и может описывать плоскую грань объемного объекта. Несколько граней
составляют этот объект в виде полигональной поверхности - многогранник или
незамкнутую поверхность ("полигональная сетка").
Полигональные модели
В современной компьютерной графике векторно-полигональная модель
является наиболее распространенной. Она применяется в системах
автоматизированного проектирования, компьютерных играх, тренажерах, ГИС, САПР и
т. д. Достоинства этой модели заключаются в следующем:
·
Удобство масштабирования
объектов.
·
Небольшой объем данных
для описания простых поверхностей.
·
Аппаратная поддержка
многих операций.
К числу недостатков полигональных моделей можно отнести то, что
алгоритмы визуализации выполнения топологических операций (например, построение
сечений) довольно сложны. Кроме того, аппроксимация плоскими гранями приводит к
значительной погрешности, особенно при моделировании поверхностей сложной
формы.
Воксельные модели
Воксельная модель - это представление объектов в виде трехмерного массива
объемных (кубических) элементов. Само название "воксель" составлено из двух слов: volume
element. Так же как и пиксель, воксель
имеет свои атрибуты (цвет, прозрачность и т. п.). Полная прозрачность вокселя означает пустоту в соответствующей точке объема.
Чем больше вокселей в определенном объеме и меньше их
размер, тем точнее моделируются трехмерные объекты.
Воксельная модель
Положительными чертами воксельной модели
являются:
·
Возможность представлять
внутренность объекта, а не только внешний слой; простая процедура отображения
объемных сцен.
·
Простое выполнение
топологических операций; например, чтобы показать сечение пространственного
тела, достаточно воксели сделать прозрачными.
К ее недостаткам относятся:
·
Большое количество
информации, необходимое для представления объемных данных.
·
Значительные затраты
памяти, ограничивающие разрешающую способность, точность моделирования.
·
Проблемы при увеличении
или уменьшении изображения; например, с увеличением ухудшается разрешающая
способность изображения.
Поверхности свободных форм (функциональные
модели)
Характерной особенностью предлагаемого способа задания
поверхностей является то, что основным примитивом здесь является поверхность
второго порядка - квадрик.
Он определяется с помощью вещественной непрерывной функции трех
переменных в виде неравенства
Таким образом, квадрик есть замкнутое
подмножество евклидова пространства, все точки которого удовлетворяют
указанному неравенству. Уравнение
описывает границу этого множества.
Множество точек, удовлетворяющих неравенству
образует внешнюю область квадрика.
Свободная форма - это произвольная поверхность, обладающая свойствами
гладкости, непрерывности и неразрывности. На базе квадриков
строятся свободные формы, которые описывают функциональные модели. Свободная
форма, построенная на этих принципах, имеет ряд достоинств, к которым, в первую
очередь, надо отнести следующие:
·
Легкая процедура расчета
координат каждой точки.
·
Небольшой объем
информации для описания достаточно сложных форм.
·
Возможность строить
поверхности на основе скалярных данных без предварительной триангуляции.