Компьютерная графика и графические системы
Компьютерная графика (машинная графика, CG, Computer Graphics) – создание, обработка, отображение и манипулирование графическими изображениями с использованием ЭВМ. В отличие от изображения, представленного на бумаге или ином носителе, компьютерное изображение, можно быстро стереть или подправить, сжать или растянуть, приблизить, отдалить, изменить ракурс, цвет, добавить движения и т. д. Применяется при конструировании и моделировании, создании телерекламы, мультфильмов, заставок телепередач, визуальных эффектов в кино, при оформлении книг и пр.
Наиболее распространенными операциями компьютерной графики являются: ввод графических изображений при помощи сканера, цифровая фотосъемка, рисование или черчение с использованием координатных устройств ввода, внесение в них изменений, а также вывод изображений на какое-либо устройство вывода. монитор или принтер. Графические приложения связаны с созданием и изменением изображений в двумерном или трехмерном пространстве и компьютерной анимацией. Компьютерная графика используется в САПР (в машиностроении, приборостроении), в медицине, метеорологии, других областях науки и техники, прикладных видах изобразительного искусства, а также индустрии развлечений и отдыха.
Компьютерная графика является также одной из областей научной деятельности. В ней защищаются диссертации, проводятся различные конференции по всему миру.
По способам задания изображений компьютерную графику делят на векторную, растровую и фрактальную, также можно выделить трехмерную – как их сложную комбинацию.
Векторная графика
Векторная графика представляет изображение как набор простейших геометрических контуров (примитивов), каждый из которых можно описать математическим выражением. Как правило, в качестве примитивов служат точки, прямые, окружности, прямоугольники, полигоны и кривые Безье. Каждому примитиву присваиваются некоторые атрибуты, например, толщина и цвет линий, цвет заполнения. Рисунок хранится как набор координат, параметров математических выражений и других чисел, характеризующих объекты.
Особое место занимают кривые Безье. Инженер и математик Пьер Безье в 1933-1975 гг. работал на французскую автомобилестроительную компанию Renault. В рамках разработки системы поверхностного моделирования, предназначенной в первую очередь для проектирования кузовов автомобилей, он предложил новую форму уравнения кривой, которая строится по вершинам многоугольника, заключающего ее в себе. Независимо от Безье такая же кривая была изобретена в 1959 г. Полем де Кастельжо из компании Citroen, но в историю она вошла под именем кривой Безье. Впоследствии это открытие стало одним из важнейших инструментов систем автоматизированного проектирования и программ компьютерной графики.
Кривую Безье можно построить, если известны координаты четырех точек, называемых контрольными. Из четырех контрольных точек кривая проходит только через две, называемые опорными. Две другие контрольные точки не лежат на кривой, но их расположение определяет кривизну кривой, поэтому они называются управляющими. Кривая Безье является гладкой кривой, то есть она не имеет разрывов и непрерывно заполняет отрезок между начальной и конечной точками. Кривые Безье сохраняют свою форму при масштабировании. На этом свойстве зиждется вся свобода векторной графики.
Таким образом, каждый векторный контур представляет собой независимый объект, который можно перемещать, масштабировать, изменять без потери качества. Важной особенностью векторного изображения является то, что оно может быть неограниченно масштабировано, повернуто, деформировано и т.д. Это вытекает из его природы: при любом преобразовании старое изображение (или его фрагмент) стирается, и вместо него строится новое. Математическое описание векторного рисунка остаётся прежним, изменяются только значения некоторых коэффициентов. По этому описанию можно нарисовать объект со сколь угодно высокой точностью.
Векторная графика применяется для схем, масштабируемых шрифтов, деловой графики, широко используется для создания мультфильмов и анимационных роликов (технологии Flash, HTML5).
У векторной графики имеются существенные недостатки:
– не каждый объект может быть легко изображен в векторном виде. А если может, то количество памяти и времени на отображение всего рисунка зависит от числа объектов в нем и их сложности;
– перевод векторной графики в растровую достаточно прост. Но при попытке обратного перевода – из растровой в векторную – высокое качество исходного векторного рисунка теряется. Эта операция называется трассировкой или растеризацией. Для ряда растровых изображений она вообще невозможна с приемлемой степенью адекватности.
Растровая графика
Растровое (точечное) изображение – это файл данных или структура, представляющая собой сетку точек (пикселов) на мониторе, бумаге или других отображающих устройствах и материалах. Принцип реализации графической информации в точечной (растровой, битовой) графике был изобретен и использовался за много веков до появления компьютеров. Это, например, мозаика, витраж, вышивка: в любой из этих техник изображение строится из дискретных элементов. Каждый пиксел характеризуется положением в так называемой битовой карте (таблице, матрице) и цветовыми характеристиками – яркостью, цветом, прозрачностью – или их комбинацией. Пикселы в общем случае друг от друга не зависят.
Важными характеристиками всего изображения являются:
– количество пикселей. Может указываться отдельно количество пикселей по ширине и высоте (1600*1200, 640*480, …) или общее количество пикселей (обычно измеряется в мегапикселях);
– количество используемых цветов или глубина цвета (эти характеристики имеют следующую зависимость: N = 2x, где N – количество цветов, а x – глубина цвета);
– цветовое пространство (цветовая модель) – RGB, CMYK, XYZ, YCbCr и др.
В отличие от векторных изображений, изменение растровых практически всегда приводит к их искажению. При этом уменьшение изображения приводит к необратимой потере информации, а при увеличении появляются артефакты, так называемая «пикселизация», связанная с тем, что построение увеличенной копии осуществляется за счет копирования уже существующих пикселей. В итоге из одного пиксела получаются целые фрагменты изображения, не несущие какой-либо новой информации. При помощи различных математических процедур обработки изображения пикселизацию можно так или иначе сгладить, замаскировать, но избавиться от артефактов невозможно.
Достоинства растровой графики:
– растровая графика позволяет создать (воспроизвести) практически любой рисунок, вне зависимости от сложности;
– распространённость;
– высокая скорость обработки сложных изображений;
– растровое представление изображения естественно для большинства устройств ввода-вывода графической информации, таких как мониторы (исключая векторные), матричные и струйные принтеры, цифровые фотоаппараты, сканеры и т.д.;
– фотореалистичность (в этом смысле растровую графику, в противоположность векторной, можно назвать естественной).
Недостатки:
– большой размер файлов с простыми изображениями. Полный объем файла для хранения точечного изображения определяется произведением его площади на разрешение и на глубину цвета, что в итоге приводит к довольно массивным объемам обрабатываемой информации;
– потери при изменениях;
– трудности с печатью на плоттере (это связано с векторным принципом работы устройства).
Фрактальная графика
Фрактал – объект, отдельные элементы которого наследуют свойства родительских структур. Иными словами, это геометрическая фигура, обладающая свойством самоподобия, то есть составленная из частей, каждая из которых похожа на всю фигуру целиком. Каждый фрагмент фрактала при уменьшении масштаба повторяется, таким образом масштабирование изображения можно производить практически бесконечно.
Характерно, что детальное описание элементов меньшего масштаба происходит по простому алгоритму, поэтому описать такой объект можно всего лишь несколькими математическими уравнениями.
Фракталы позволяют описывать целые классы изображений на основе небольшого количества данных. Широкое применение они нашли в компьютерной графике для построения изображений самоподобных природных объектов, таких, как деревья, кусты, горные ландшафты, поверхности морей и так далее. Существуют алгоритмы сжатия произвольных изображений, основанные на идее о том, что вместо самого изображения можно хранить систему уравнений и коэффициентов, описывающих образ, максимально похожий на изображение. Однако этот подход весьма сложен и до настоящего времени малораспространен.
Первые примеры самоподобных множеств с необычными свойствами появились в XIX веке. Сам термин «фрактал» был введён математиком Бенуа Мандельбротом в 1975 году и получил широкую популярность в 1977 году с выходом его книги «Фрактальная геометрия природы».
Фракталы широко применяются:
– в экономике при анализе состояния биржевых рынков;
– в естественных науках при моделировании нелинейных процессов, таких, как турбулентное течение жидкости, сложные процессы диффузии–адсорбции, пламя, облака и т. п.;
– при моделировании пористых материалов, например, в нефтехимии;
– в биологии для моделирования популяций и для описания систем внутренних органов (система кровеносных сосудов);
– в литературе;
– в радиотехнике при проектировании некоторых антенн и т.д.
Трёхмерная графика (3D)
Трёхмерная графика оперирует с объектами в модельном трёхмерном пространстве. Обычно результаты представляют собой плоскую картинку, т.е. проекцию трехмерного изображения на плоскость. При этом начальное изображение может как соответствовать объектам из реального мира (автомобили, здания, ураган, астероид), так и быть полностью абстрактной (трехмерная проекция четырёхмерного фрактала).
Для получения трёхмерного изображения на плоскости требуются следующие шаги:
– моделирование – создание трёхмерной математической модели сцены и объектов в ней, построение каркасов объектов;
– рендеринг (визуализация) – «натягивание текстур», или размещение плоских изображений, на каркасы в соответствии со структурой каркасов, обсчет параметров освещения, теней и т.д. в соответствии с выбранной физической моделью;
– проецирование полученной трехмерной сцены на плоскость согласно выбранному углу обзора и вывод полученного изображения на устройство вывода – дисплей или принтер. Причем в последнее время, в связи с попытками создания 3D-дисплеев и 3D-принтеров, проецирование на плоскость может оказаться не обязательным.
Трёхмерная компьютерная графика широко используется в системах автоматизированного проектирования, архитектурной визуализации, печатной продукции, науке, промышленности, кинематографе, телевидении и в компьютерных играх.
Кодирование цвета
Для передачи и хранения цвета в компьютерной графике используются различные формы его представления. В общем случае цвет представляет собой набор чисел, координат в некоторой цветовой системе. Существует несколько систем кодирования цвета, Наиболее распространены системы RGB (дисплеи) и CMYK (типографские работы). Есть и другие системы, их применение обусловлено относительной ограниченностью вышеприведенных.
Система кодирования цвета RGB (Red, Green, Blue – красный, зелёный, синий) – аддитивная цветовая модель, т.е. цвета получаются путём добавления (англ. addition) к черному. Иначе говоря, если черный экран освещать прожекторами разных цветов, то при наложении освещений цвета будут математически складываться. Изменяя интенсивность того или иного канала, можно получить широкую гамму оттенков. При смешении всех трёх цветовых компонентов с одинаковой интенсивностью получается серый цвет, при максимуме – белый.
В телевизорах и мониторах применяются три электронных пушки (светодиода, светофильтра) для красного, зелёного и синего каналов. Система RGB оптимальна для дисплеев, поскольку при отсутствии лучей их экран темный.
Однако в случае, когда осуществляется печать на бумажный носитель, модель RGB не подходит, поскольку в данном случае основа является белой. Для таких ситуаций используется другая цветовая модель – CMYK.
Система кодирования цвета CMYK (Cyan, Magenta, Yellow, blacK – голубой, пурпурный, желтый, черный; произносится «цмик, смик, симак») – субтрактивная (вычитаемая) схема формирования цвета, используемая в полиграфии. Эти цвета получаются, если вычесть из белого три первичных цвета – RGB. Кроме того, несмотря на то, что чёрный цвет можно получать смешением в равной пропорции голубого, пурпурного и жёлтого красителей, по ряду причин такой подход обычно неудовлетворителен, поэтому для черного цвета применяют отдельный краситель.
Существуют также другие цветовые модели, например, индексированные палитры CGA и EGA, модели XYZ, YUV, YCbCr и др.
Как правило, интенсивность цвета во всех моделях задается числом. Может использоваться как доля от максимальной интенсивности (проценты 0-100 или дробное значение от 0 до 1), так и более корректный с точки зрения двоичного исчисления показатель, зависящий от количества памяти, выделяемой для хранения цветовой информации. Например,
Базы данных и СУБД
Основное назначение баз данных (БД) – хранение информации. Многие приложения для хранения данных применяют обычный текстовый, или плоский файл. Данные в плоском файле записываются и читаются как обычный последовательный текст. Главное преимущество использования плоских файлов – простота последовательных операций.
Однако при большом объеме хранимой информации этот подход оказывается неэффективным, поскольку, чтобы получить доступ к необходимому фрагменту сохраненной информации, нужно загрузить в память весь файл данных. Поэтому в этом случае используются файлы произвольного доступа. При этом задача осложняется необходимостью поддержки физической целостности файла данных. БД сохраняет большие объемы информации сложной структуры и высокой степени связанности, обеспечивая при этом возможности для эффективной манипуляции данными.
Термин база данных неразрывно связан с другим термином: система управления базами данных (СУБД). Система управления базами данных (СУБД) – совокупность программных и лингвистических средств, обеспечивающих создание, изменение и использование баз данных. На уровне СУБД реализуются операции с физическим представлением данных а для программиста или пользователя становится доступен интерфейс для манипулирования данными на логическом уровне.
БД и СУБД можно классифицировать следующим образом.
1. По месту расположения информационных ресурсов. В зависимости от решаемого круга задач и требований, выбирается одна из архитектур:
– централизованная (персональная);
– файл-серверная;
– клиент-серверная;
– клиент-сервер-серверная.
Централизованная архитектура: СУБД и БД размещаются и функционируют на одном компьютере, а пользователи получают доступ к БД, работая на этом же компьютере или через терминал.
В архитектуре файл–сервер база данных хранится на сервере, а СУБД устанавливаются на каждой ЭВМ. Производительность зависит от компьютера пользователя, при этом для передачи данных значительно загружается вычислительная сеть.
В архитектуре клиент–сервер БД хранится на сервере, а СУБД подразделяется на две части – клиентскую и серверную.
Технология клиент–сервер это такой способ организации работы программ, когда хранение и доступ к ресурсу обеспечивает одна программа (сервер), а взаимодействие с пользователем – другая (клиент). При этом клиент и сервер не только могут работать на разных компьютерах сети, но и в разных операционных системах, и даже быть выпущенными разными производителями. Необходимо лишь, чтобы они поддерживали один и тот же протокол взаимодействия (комплекс правил обмена информацией). Такой подход позволяет обеспечить совместный доступ к ресурсам большого количества пользователей, а также очень гибко распределить нагрузку между работающими в сети клиентами, и одним мощным центральным сервером.
С целью еще большей оптимизации потоков данных по сети применяется трехуровневая архитектура: тонкий клиент–сервер приложений–сервер БД. Тонкий клиент обеспечивает взаимодействие с пользователем, вся прикладная обработка выносится на сервер приложений, который также обеспечивает формирование запроса к серверу БД. При этом сервер базы данных и сервер приложений могут функционировать в различных операционных системах. Такая схема широко используется в интернете, поскольку зачастую требуется выполнить несколько десятков, сотен, а то и тысяч запросов в течение нескольких секунд.
2. По модели данных. В основе любой СУБД лежит определенная модель данных.
Модель данных – это правила представления и обработки данных в системе управления базами данных, которые включают, как минимум, методы описания типов и логических структур данных в базе данных, методы манипулирования данными, а также методы описания и поддержки целостности базы данных.
Наиболее широко используются следующие модели данных:
– иерархическая, строится по принципу иерархии типов объектов, т. е. один тип объекта является главным, а остальные, находящиеся на низших уровнях иерархии, – подчиненными. Данные организуются в виде иерархической структуры. Достоинством иерархической модели является простота понимания и использования. Недостатки модели – громоздкие структуры при сложных БД и, как правило, хранение избыточных данных;
– сетевая модель имеет меньше ограничений, чем иерархическая. Любой объект может быть и главным, и подчиненным, может участвовать в любом числе взаимосвязей. Достоинство модели – простота реализации часто встречающихся в реальном мире взаимосвязей, закладываемых в БД. Основной недостаток сетевой модели состоит в сложности управления такими данными, а также возможной потере независимости данных при реорганизации БД.
Иерархическая и сетевая модели данных стали применяться в системах управления базами данных в начале 60-х годов XX века. В начале 1970-х годов была предложена реляционная модель данных;
– реляционная модель представляет объекты и взаимосвязи между ними с помощью двумерных таблиц. Взаимосвязи также выступают в качестве объектов. Достоинством реляционной модели является простота работы пользователя с моделью. Некоторый недостаток модели – при небольших размерах БД реляционные системы работают медленнее систем, базирующихся на сетевой или иерархической модели данных.
Кроме трех вышеописанных, используются несколько более сложных моделей баз данных, такие как объектно-иерархические, объектно-реляционные, многомерные и т.д. Они ориентированы на работу со сложными структурами данных.
Дата добавления: 2019-10-16; просмотров: 592;