Машинная графика

advertisement
Государственное образовательное учреждение высшего, профессионального образования
УРАЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ – УПИ
КАФЕДРА
АВТОМАТИЗИРОВАННЫХ
СИСТЕМ
УПРАВЛЕНИЯ
ПРОГРАММИРОВАНИЕ
КОМПЬЮТЕРНОЙ ГРАФИКИ
Конспект лекций
для студентов всех форм обучения
направления 230100 – Информатика и вычислительная техника
Составитель: Папуловская Наталья Владимировна
Екатеринбург 2007
Лекция 3
Аннотация курса
Дисциплина
посвящена
изучению
программирования
компьютерной
графики и анимации в современных средах разработки.
Рассматриваются тенденции построения графических систем, понятие
конвейерной обработки графической информации. Изучаются стандарты в
области разработки графических интерфейсов.
Алгоритмические основы: основные растровые алгоритмы, компьютерная
геометрия, алгоритмы удаления скрытых линий и поверхностей, методы
закраски поверхностей
Рассматриваются
технологии
создания
трёхмерных
анимационных
изображений. Изучается графический стандарт OpenGL.
Содержание курса
1. Способы описания графических объектов (1, 2, 3)1
1.1. Растровая и векторная графика
1.2. Вычисляемая графика
1.3. Формирование цветного изображения
2. Геометрические преобразования на плоскости и в пространстве (4, 5)
2.1. Проекционные преобразования
2.2. Аффинные преобразования
3. Стандарты современных графических систем (6, 7)
3.1. Графический конвейер
3.2. Графические библиотеки (API)
4. Алгоритмические основы компьютерной графики (8, 9, 10, 11, 12)
4.1. Алгоритмы растровой графики
4.2. Методы устранения ступенчатости
4.3. Алгоритмы закраски областей
4.4. Алгоритмы удаления невидимых линий и поверхностей
4.5. Алгоритмы отсечения
5. Модели освещения (13, 14)
5.1. Моделирование источников света
5.2. Глобальная модель освещения
6. Создание реалистичных эффектов (15, 16)
6.1. Создание теней
6.2. Создание прозрачности
6.3. Детализация поверхностей на изображении
7. Технологии программирование анимированных графических объектов
(17)
1
В скобках обозначены номера соответствующих теме презентаций
3
Содержание лекции
Введение ....................................................................................................................... 5
Способы описания графических объектов ............................................................... 8
1. Растровая графика ................................................................................................ 8
1.1 Разрешение изображения .............................................................................. 13
1.2 Основы растрирования.................................................................................. 16
3. Векторная графика. ............................................................................................ 19
4. Фрактальная графика ......................................................................................... 23
Библиографический список ...................................................................................... 25
4
ВВЕДЕНИЕ
Компьютерная графика (также маши́нная гра́фика) — область
деятельности,
в которой
компьютеры
используются
как
для
синтеза
изображений, так и для обработки визуальной информации, полученной из
реального мира. Также компьютерной графикой называют и результат этой
деятельности.
Курс «Программирование компьютерной графики» посвящен изучению
алгоритмов
и
принципов
моделирования
компьютерных
изображений.
Компьютерная графика (КГ) в настоящее время сформировалась как
самостоятельная наука. Она стала необходимым инструментом в работе
учёных, инженеров и всех людей, чья деятельность связана с использованием
компьютерной обработкой изображений. Компьютерная графика развивалась
параллельно с развитием вычислительной техники. Компьютерные цифровые
изображения завоевали визуальный плацдарм. Почти все изображения, которые
нас окружают – обложки журналов, книги, газеты, рекламная печатная
продукция, рекламные ролики по телевидению, фильмы, презентации и т.д.
были созданы на компьютере. Компьютерная графика стала яркой приметой
нашего времени - сегодня это наиболее наглядное средство связи между
человеком и компьютером. Спектр применений КГ настолько широк, что
затрагивает сегодня практически каждого пользователя и специалиста в самых
различных
областях.
Виртуальная
реальность,
фрактальная
геометрия,
реалистический синтез живых объектов, компьютерная анимация, средства КГ
в решении вечных задач искусства - все это будоражит умы и открывают новые
высоты на пути творчества.
Проблема визуализации данных приобретает исключительную важность
при наличии большого объёма информации, хранящейся на машинных
носителях.
Человеку
удобнее
и
понятнее
воспринимать
информацию
представленную в виде изображения. С детства человек воспринимает
окружающий мир через картинки, ребенок не возьмёт в руки книгу без
5
иллюстраций. Изображение может гораздо больше и проще объяснить, чем
любое подробное описание.
Причин, по которым компьютер захватил пространство изображений
множество. Во-первых, более эффективно и экономически выгоднее создавать
изображение на компьютере, чем, используя традиционные методы. Во-вторых,
легче становится улучшать цифровые изображения и компоновать их с текстом.
В-третьих, компьютер обеспечивает надёжное сохранение изображений на
носителях информации. Человек, не являющийся художником, может,
используя
современное
программное
обеспечение
создавать
цифровые
изображения. Богатый потенциал КГ определяется солидной математической
базой, носителями которой являются конкретные специалисты, поэтому ее
дальнейшее развитие и распространение в значительной степени зависит от
уровня как общего, так и специального образования.
Итак,
конечным
продуктом
компьютерной
графики
является
изображение. В зависимости от использования этого изображения машинная
графика подразделяется на: научную графику (многомерные объекты),
художественную (иллюстрации, мультипликация), инженерную (чертежи),
деловую (диаграммы).
Программа курса «Программирование компьютерной графики» включает
темы:
построение прямых и кривых, сглаживание,
2D и 3D преобразования,
3D трансформации изображения путем изменения точки наблюдения,
алгоритмы отсечения невидимых линий и поверхностей,
алгоритм заполнения многоугольников,
моделирование сечений, яркости, полутонов и объемов,
работы с текстурами,
моделирование цветовых оттенков,
мультипликацию,
6
виртуальное моделирование через парадигму камеры,
рекурсивную геометрию,
алгоритмы трассировки лучей и оценки зрительного восприятие человека.
Поскольку фундамент компьютерной графики – изображения, нами будут
рассмотрены следующие темы:
Представление цифровых изображений в компьютере.
Формирование цветных изображений. Цветовые модели.
Геометрические преобразования на плоскости и в пространстве.
Формирование трёхмерных изображений.
Построение реалистических изображений.
Графические стандарты компьютерной графики.
Обзор
программного
обеспечения
динамических изображений.
7
для
создания
статических
и
СПОСОБЫ ОПИСАНИЯ ГРАФИЧЕСКИХ ОБЪЕКТОВ
Формальное определение компьютерная (машинная) графика – это
создание, хранение и обработка моделей объектов и их изображений с
помощью ЭВМ. Под интерактивной компьютерной графикой понимают раздел
компьютерной графики, изучающий вопросы динамического управления со
стороны пользователя содержанием изображения, его формой, размерами и
цветом на экране с помощью интерактивных устройств взаимодействия.
Под компьютерной геометрией понимают математический аппарат,
применяемый в компьютерной графике.
Необходимо отметить следующую отличительную черту компьютерных
изображений. Изображения, которые мы встречаем в нашей повседневной
жизни, реальные картины природы, можно бесконечно детализировать,
выявлять все новые цвета и оттенки. Изображения, хранящиеся в памяти
компьютера, независимо от способа их получения и представления, всегда
являются усеченной моделью картины реального мира. Их детализация
возможна лишь с той степенью, которая была заложена при их создании или
получении, и их цветовая гамма будет не шире заранее оговоренной.
Одно и то же изображение может быть представлено в памяти ЭВМ
тремя принципиально различными способами.
Рассмотрим подробнее эти
способы представления изображений, выделим их основные параметры и
определим их достоинства и недостатки.
1. Растровая графика
Что такое растровое изображение?
Возьмём фотографию (например, см. рис. 1.1). Конечно, она тоже состоит
из маленьких элементов, но будем считать, что отдельные элементы мы
рассмотреть не можем. Она представляется для нас, как реальная картина
природы.
8
Теперь разобьём это изображение на маленькие квадратики (маленькие,
но всё-таки чётко различимые), и каждый квадратик закрасим цветом,
преобладающим в нём (на самом деле программы при оцифровке генерируют
некий «средний» цвет, т. е. если у нас была одна чёрная точка и одна белая, то
квадратик будет иметь серый цвет).
Как мы видим, изображение стало состоять из конечного числа
квадратиков определённого цвета. Эти квадратики называют pixel (от PICture
ELement) – пиксел или пиксель.
Рис. 1.1. Исходное изображение
Теперь каким-либо методом занумеруем цвета. Конкретная реализация
этих методов нас пока не интересует. Для нас сейчас важно то, что каждый
пиксель на рисунке стал иметь определённый цвет, обозначенный цифрой (рис.
0.1).
Рис. 0.1. Фрагмент оцифрованного изображения и номера цветов
9
Теперь пойдём по порядку (слева направо и сверху вниз) и будем в
строчку выписывать номера цветов встречающихся пикселей. Получится
строка примерно следующего вида:
1 2 8 3 212 45 67 45 127 4 78 225 34 ...
Вот эта строка и есть наши оцифрованные данные. Теперь мы можем
сжать их (так как несжатые графические данные обычно имеют достаточно
большой размер) и сохранить в файл.
Итак, под растровым (bitmap, raster) понимают способ представления
изображения в виде совокупности отдельных точек (пикселей) различных
цветов
или
оттенков.
Это
наиболее
простой
способ
представления
изображения, ибо таким образом видит наш глаз.
Достоинством
такого
способа
является
возможность
получения
фотореалистичного изображения высокого качества в различном цветовом
диапазоне. Недостатком – высокая точность и широкий цветовой диапазон
требуют увеличения объема файла для хранения изображения и оперативной
памяти для его обработки.
Под растровой графикой понимается формирование изображения в том
виде, как оно выводится на экран монитора и на печать. Основным элементом
растрового изображения является точка. Таким образом изображение может
быть представлено в виде матрицы элементов – пикселов.
Математической
моделью
изображения
служит
функция:
f(i,j):{0, … , M–1} х {0, … , N–1}  {0, … , L–1}.
Самый легкий способ понять, как создается растровое изображение, – это
представить себё картину, которая создана путём раскрашивания крошечных
квадратиков на листе миллиметровой бумаги. Каждый квадратик имеет своё
точное местоположение и может быть снабжён адресом в соответствии с его
координатами по горизонтали и вертикали (ряд и колонка). Пикселы такие
маленькие, что изображение может казаться таким же чётким или даже более
чётким, чем фотография.
10
С размером изображения непосредственно связано его разрешение.
Разрешение изображения – термин, который имеет слишком много значений. В
прямом смысле он указывает горизонтальные и
вертикальные размеры
цифрового изображения, выраженные в пикселах. Разрешение монитора, или
разрешение отображения имеет два различных значения. С одной стороны, оно
описывает число пикселов, которые монитор может одновременно отображать
по горизонтали и вертикали (800х600, 1024х768). Чем выше разрешение
дисплея, тем большую часть изображения можно на нём наблюдать.
Второе значение этого термина описывает число точек или пикселов на
дюйм (dots per inch – dpi) . Пиксел (pixel) – это наименьшая видимая
окрашенная точка, которую может отобразить монитор. У монитора с
диагональю 15 дюймов размер изображения на экране составляет примерно
28х21 см. Зная, что в одном дюйме 25,4 мм, можно рассчитать, что при работе
монитора в режиме 800х600 пикселов разрешение экранного изображения
равно 72 ppi (pixel per inch).
При печати разрешение должно быть намного выше. Полиграфическая
печать полноцветного изображения требует разрешение 1200–1800 dpi.
Стандартный фотоснимок размером 10х15 должен содержать примерно
1000х1500 пикселов.
Множество {0, … , L–1} называется динамическим диапазоном яркости.
Яркость – это основная числовая характеристика цифрового изображения. Без
яркости нет изображения.
Определение.
Динамическим диапазоном изображения называется
диапазон возможных значений его яркости от минимального fmin до
максимального fmax.
Динамический
диапазон
реального
изображения
квантуется
фиксированным числом уровней яркости – L. Обычно L=2n, где n — количество
бит для представления одного пиксела.
11
n=1– Битовое изображение (1-битное, bitmap), или штриховая графика,
состоит только из чёрно-белых пикселов. Каждый пиксел содержит только
один бит информации.
n=8 бита – Серые полутоновые изображения (grayscale). L = 256 оттенков
серого. Каждый пиксел содержит восемь бит информации.
Цветные изображения 24-битные. Три 8-битных канала (256 цветов на
канал).
Существуют цветные изображения с повышенной глубиной битового
представления цвета, они отличаются исключительно широким динамическим
диапазоном, потому что вводятся с помощью сканеров и цифровых камер,
записывающих цвет в 10-16 битах на канал – от 1024 до 65536 цветов на канал.
Файлы таких изображений очень большие по размеру. При правильной
обработки такие изображения могут дать превосходную детализацию при
печати.
Итак, под цифровым изображением понимается скалярная или
векторная функция, определенная на ограниченной (как правило,
прямоугольной) области K плоскости R2. Эта область называется полем
зрения, пространственным окном или кадром изображения. Изображение
задается функцией
f  x , x  ( x1 , x2 )  K R2,
где f  x =  f 1 ( x ), f 2 ( x ),..., f n ( x )  Rn.
Значение функции f i  x  называется яркостью i-го цвета изображения.
При n = 1 изображение называется черно-белым, при n > 1 — многоспектральным. В каждой точке x поля зрения K функция f  x задает значение
яркости изображения.
Для создания цветных изображений используются базисные цвета –
красный, синий, зеленый. В этом случае цветное изображение можно
представить
трехспетральной
функцией
f ( x)  { f R ( x), f G ( x), f B ( x)} .
12
изображения
вида
При обработке изображения на ЦВМ оно сначала дискретизируются, т.е.
из него извлекается конечное
квантование отсчетов,
множество отсчетов. Затем осуществляется
т.е. их преобразование в целые числа, лежащие в
дискретном множестве значений. Диапазон яркости от 0 до f max разбивается
f
на равные интервалы с шагом h  max L , где L — число уровней яркости.
Бывает
очень
трудно
исправить
отдельные
части
растрового
изображения. Например, предположим, что вы рисуете на экране реальный
натюрморт. После, того, как вы закончили, вы решаете передвинуть один из
фруктов. К сожалению, ваш фрукт закреплён на том же самом месте, где
располагается фон вашего натюрморта и другие элементы, если вы попытаетесь
передвинуть часть вашего изображения, то рискуете разрушить всю картину. (К
счастью разработчики программного обеспечения изобрели пути выхода из
этого затруднения: Изображение разбивается на слои и каждый слой содержит
часть изображения, которая парит над пикселями, находящимися под ним.)
Растровую
графику
применяют
при
разработке
электронных
и
полиграфических изданий, изображения выполненные с помощью растровой
графики создаются с помощью сканирующих устройств, а так же при
использовании цифровых фото- и видеокамер. Графические редакторы,
предназначенные для работы с растровыми изображениями, в основном
ориентированы не на создание изображений, а на их цифровую обработку.
1.1 Разрешение изображения
Когда Вы работаете с цифровыми изображениями, то качество
изображения базируется на крошечных элементах, составляющих изображения.
Количество пикселов в изображении обозначают термином «разрешение»
(resolution). Разрешение так же означает количество элементов изображения
(точек) использованных при выводе на печать. Понятие о основных
составляющих разрешающей способности очень важно для каждого, кто
работает
с
цифровыми
изображениями.
13
Качество
вывода
на
печать
изображения часто зависит от разрешения. Часто разрешающая способность
изображения
определяется,
когда
изображение
оцифровывается
с
использованием сканера или цифрового фотоаппарата, так же оно может
создаваться в программе обработки или редактирования изображения. Когда вы
снимаете цифровым фотоаппаратом, то разрешение изображения определяется
разрешающей
способности
вашего
фотоаппарата.
Когда
изображение
оцифровывается при помощи сканера или создаётся в программе обработки,
разрешение устанавливается в пикселах на дюйм (ppi). Если вы работаете в
векторной программе, то не задаёте разрешение. Качество векторного
изображения зависит только от разрешения устройства вывода.
Каким бы образом вы не создавали цифровое изображение разрешение
установленное вами, определяет, как много пикселов содержит ваше
изображение. Если вы установили разрешение в 72 ррi, то каждый квадратный
дюйм вашего изображения будет содержать 72х72=5184 пиксела. Количество
пикселов в цифровом изображении определяет размер файла. Чем больше
пикселов содержит изображение, тем больше по размеру его файл.
Для того чтобы определить размер файла цифрового растрового
изображения, сначала перемножьте его размеры в пикселах, затем умножьте
полученное число на 32 – для получения цветного CMYK- изображения, на 24
для RGB-изображения, или на 8 для серого изображения. Полученное число
даст вам количество битов изображения. Разделите это число на 8, чтобы
получить количество байтов в картинке. Таким образом, для цветного
изображения 640х480 – (640*480*24)/8=920Кбайт. Файл изображения такого
же размера в градации серого будет равен 307 Кбайт.
Важно понимать, что разрешение монитора никак не связано с
разрешением самого изображения. Разрешающая способность монитора
определяет, как много пикселов отображается на экране. В PC стандартное
разрешение дисплеев Super VGA составляет 800х600, т.е. 96 пикселов на дюйм.
Если разрешение монитора такое же, как и разрешение изображения, то
изображение на экране соответствует его реальным размерам. Тем не менее,
14
если разрешение выше, чем у монитора, то изображение на экране кажется
больше, чем оно есть на самом деле. Изображение размером 1х1 дюйм с
разрешением 300 ppi на экране с разрешением 96 ppi затратит в 3 раза больше
экранного пространства.
Разрешение изображения часто определяется тем, как и на чем, оно будет
выведено. Например, если вы создаёте изображение для печати, то разрешение
изображения должно быть выше, чем у изображения предназначенное для
экрана компьютера. Если вы показываете ваше изображение на мониторе или
проекторе, то нет необходимости задавать разрешение больше, чем у экрана.
Созданное изображение с высоким разрешением будет только потреблять
память, и замедлять работу мультимедиа-презентации. Если изображение
выводится на печать, то чем выше количество точек на дюйм, тем выше
качество печати.
Черно-белые изображения, такие как логотипные, технические чертежи и
иллюстрации, как правило, сканируются для размещения их в рекламной
продукции и выполнения иллюстраций к тексту. Так как в чёрно-белых
иллюстрациях
не
используется
цвет,
многие
пользователи
ошибочно
предполагают, что им нет необходимости оцифровывать такие изображения с
высоким разрешением. На самом деле черно-белые иллюстрации должны
сканироваться с высоким разрешением именно потому, что в них нет цвета и
полутонов. В оцифрованном цветном изображении различные оттенки серого и
цветовые полутона помогают придавать иллюзию мягкости изображения. Так
как чёрно-белые иллюстрации не содержат теней серого, то глаза быстро
замечают зубчатые края и несовершенство изображения. Таким образом,
сканирование чёрно-белых иллюстраций необходимо с тем же разрешением,
что и разрешение вывода.
При увеличении размеров изображения возможны два варианта: можно
увеличить изображение, увеличив размеры пикселов, что применяется в
большинстве программных средств редактирования изображений, а можно
добавить пикселы и создать для них новые цвета. Второй вариант сохраняет
15
высокое разрешение, но отрицательным моментом процедуры перерасчёта,
является то, что вы можете тем самым снизить качество цифрового
изображения. Когда изображение увеличивается через перерасчёт, программа
должна
добавить новые пикселы и заполнить их цветом так, чтобы они
выглядели частью данного изображения. Процесс добавления новых пикселов и,
соответственно, их раскрашивание называется интерполяцией. Несмотря на
то, что многие программы обработки и редактирования изображений
используют сложные алгоритмы для интерполяции, чтобы обеспечить самое
высокое качество изображений, лучше все же по возможности избегать её.
Слишком сильная интерполяция может привести к нечёткости изображения.
1.2 Основы растрирования
Изображения на экране компьютера имеют непрерывные распределения
тона и гладкие переходы между смежными цветами или градациями серого.
Однако печатная машина оперирует с точками печатной краски по принципу
«всё или ничего» – точка или есть, или её нет, и все точки имеют одинаковый
базовый цвет. Таким образом, проблема воспроизведения при печати
заключается в том, как моделировать сотни оттенков серого, используя один
цвет – чёрный, или как моделировать миллионы цветов используя только
четыре цвета (голубой, пурпурный, жёлтый и чёрный). Правильно выбранное
цифровое растрирование создаёт иллюзию непрерывного тона.
Когда печатается цветное или чёрно-белое изображение, оно в
действительности формируется из мельчайших точек, которые называются
«полутонами». Различные точки создают различные по размеру полутона.
Размер точки растрового изображения на твердой копии (бумаге, пленке
и т. д.) зависит от примененного метода и параметров растрирования
оригинала. При растрировании на оригинал как бы накладывается сетка линий,
ячейки которой образуют элемент растра. Частота сетки растра измеряется
числом линий на дюйм (lines per inch — lpi) и называется линиатурой.
16
Количество строк на дюйм в полутоне называется линейным растром
(line screen) или экранной частотой (screen frequency), т.к. измеряется в линиях
на дюйм (lpi). Чем выше частота экрана, тем лучше изображение.
Выключённый пиксел
Включёный пиксел
Точки большего по размеру полутона дают больше уровней серого, чем
точки меньшего по размеру полутона. Количество оттенков серого вычисляют
по
формуле:
N
=
принтер
(разрешение
печати
в
единицах
dpi
/
пространственная частота растра в единицах lpi)2 + 1.
Предположим, что вы печатаете с качеством печати 600 dpi и частота
растра 60 lpi. 600/60 =10. Таким образом, каждая точка полутона состоит из
матрицы 10х10. Это значит, что вы множите создавать 100 оттенков серого
плюс 1 для белого.
Различные комбинации шаблонов точек в полутоне определяют
количество оттенков серого, которое может быть выведено в изображении.
Если вы хотите создать больше оттенков серого, то математически вам нужно
уменьшить частоту растра, но если вы уменьшите частоту растра уровень
деталировки в изображении также упадёт. Если вы увеличите частоту растра, то
уменьшите количество оттенков серого в своём изображении. По существу,
перед вами стоит выбор между более детальным и более контрастным выводом
изображения. (Оптимальное значение оттенков серого равно 256.)
Фактическая связь между разрешением принтера и пространственной
частотой растра – обратная.
Рассмотрим простейшие методы растрирования черно-белого оригинала.
Размер точки растра рассчитывается для каждого элемента и зависит от
интенсивности тона в данной ячейке. Чем больше интенсивность, тем плотнее
17
заполняется элемент растра, т. е. если в ячейку попал абсолютно черный цвет,
размер точки растра совпадет с размером элемента растра. В этом случае
говорят о 100 % заполняемости. Для абсолютно белого цвета значение
заполняемости составит 0 %. На практике заполняемость элемента на отпечатке
обычно составляет от 3 до 98 %, при этом все точки растра имеют одинаковую
оптическую плотность, в идеале приближающуюся к абсолютно черному цвету.
Иллюзия более темного тона создается за счет увеличения размеров точек и,
как следствие, сокращения пробельного поля между ними при одинаковом
расстоянии между центрами элементов растра. Такой метод называют
растрированием с амплитудной модуляцией (AM).
Существует и метод растрирования с частотной модуляцией (ЧМ),
когда интенсивность тона регулируется изменением расстояния между
соседними точками одинакового размера. Таким образом, при частотномодулированном растрировании в ячейках растра с разной интенсивностью
тона находится разное число точек. Изображения, растрированные ЧМметодом, выглядят более качественно, так как размер точек минимален и, во
всяком случае, существенно меньше, чем средний размер точки при АМрастрировании. Еще более повышает качество изображения разновидность ЧМметода, называемая стохастическим растрированием. В этом случае
рассчитывается число точек, необходимое для отображения требуемой
интенсивности тона в ячейке растра. Затем эти точки располагаются внутри
ячейки на расстояниях, вычисленных квазислучайным методом (на самом деле
используется специальный математический алгоритм), т. е. регулярная
структура растра внутри ячейки, как и на изображении в целом, вообще
отсутствует. Поэтому при стохастическом ЧМ-растрировании теряет смысл
понятие линиатуры растра, имеет значение лишь разрешающая способность
устройства вывода. Такой способ требует больших затрат вычислительных
ресурсов и высокой точности.
18
ячейка растра
АМ-растр
18,75 %
АМ-растр
50 %
ЧМ-растр
18,75 %
Рис. 0.3. Примеры амплитудной и частотной модуляции растра
Глубина цвета (color depth) — это число бит, используемых для
представления каждого пикселя изображения, определяемое цветовым или
тоновым диапазоном.
Цветовой (тоновый) диапазон (color range) — это максимальное число
цветов, используемых при создании изображения.
3. Векторная графика.
Для векторной графики характерно разбиение изображения на ряд
графических примитивов – точки, прямые, ломаные, дуги, полигоны. Таким
образом, появляется возможность хранить не все точки изображения, а
координаты узлов примитивов и их свойства (цвет, связь с другими узлами и т.
д.).
Вернемся к изображению на рис. Error! Reference source not found..
Взглянем на него по-другому. На изображении легко можно выделить
множество простых объектов — отрезки прямых, ломанные, эллипс, замкнутые
кривые. Представим себе, что пространство рисунка существует в некоторой
координатной
системе.
Тогда
можно
описать
это
изображение,
как
совокупность простых объектов, вышеперечисленных типов, координаты узлов
которых заданы вектором относительно точки начала координат (рис. 1.4).
19
Рис. 0.4. Векторное изображение и узлы его примитивов
Проще говоря, чтобы компьютер нарисовал прямую, нужны координаты
двух точек, которые связываются по кратчайшей прямой. Для дуги задается
радиус и т. д. Таким образом, векторная иллюстрация – это набор
геометрических примитивов.
Важной деталью является то, что объекты задаются независимо друг от
друга и, следовательно, могут перекрываться между собой.
При использовании векторного представления изображение хранится в
памяти как база данных описаний примитивов. Основные графические
примитивы, используемые в векторных графических редакторах: точка, прямая,
кривая Безье, эллипс (окружность), полигон (прямоугольник). Примитив
строится вокруг его узлов (nodes). Координаты узлов задаются относительно
координатной системы макета.
А изображение будет представлять из себя массив описаний – нечто
типа:
отрезок (20,20-100,80);
окружность(50,40-30);
кривая_Безье (20,20-50,30-100,50).
Каждому узлу приписывается группа параметров, в зависимости от типа
примитива, которые задают его геометрию относительно узла. Например,
окружность задается одним узлом и одним параметром – радиусом. Такой
20
набор параметров, которые играют роль коэффициентов и других величин в
уравнениях и аналитических соотношениях объекта данного типа, называют
аналитической моделью примитива. Отрисовать примитив – значит построить
его геометрическую форму по его параметрам согласно его аналитической
модели.
Векторное изображение может быть легко масштабировано без потери
деталей, так как это требует пересчета сравнительно небольшого числа
координат узлов. Другой термин – «object-oriented graphics».
Самой простой аналогией векторного изображения может служить
аппликация. Все изображение состоит из отдельных кусочков различной формы
и цвета (даже части растра), «склеенных» между собой. Понятно, что таким
образом трудно получить фотореалистичное изображение, так как на нем
сложно выделить конечное число примитивов, однако существенными
достоинствами векторного способа представления изображения, по сравнению
с растровым, являются:
векторное изображение может быть легко масштабировано без потери
качества, так как это требует пересчета сравнительно небольшого числа
координат узлов;
графические файлы, в которых хранятся векторные изображения, имеют
существенно меньший, по сравнению с растровыми, объем (порядка
нескольких килобайт).
Сферы применения векторной графики очень широки. В полиграфике –
от создания красочных иллюстраций до работы со шрифтами. Все, что мы
называем машинной графикой, 3D-графикой, графическими средствами
компьютерного моделирования и САПР – все это сферы приоритета векторной
графики, ибо эти ветви дерева компьютерных наук рассматривают изображение
исключительно с позиции его математического представления.
Как видно, векторным можно назвать только способ описания
изображения, а само изображение для нашего глаза всегда растровое. Таким
образом, задачами векторного графического редактора являются растровая
21
прорисовка графических примитивов и предоставление пользователю сервиса
по изменению параметров этих примитивов. Все изображение представляет
собой базу данных примитивов и параметров макета (размеры холста, единицы
измерения
и
т.
д.).
Отрисовать
изображение
–
значит
выполнить
последовательно процедуры прорисовки всех его деталей.
Для уяснения разницы между растровой и векторной графикой приведем
простой пример. Вы решили отсканировать Вашу фотографию размером 1015
см чтобы затем обработать и распечатать на цветном принтере. Для получения
приемлемого качества печати необходимо разрешение не менее 300 dpi.
Считаем:
10 см = 3,9 дюйма;
15 см = 5,9 дюймов.
По вертикали:
3,9 * 300 = 1170 точек.
По горизонтали: 5,9 * 300 = 1770 точек.
Итак, число пикселей растровой матрицы 1170 * 1770 = 2 070 900.
Теперь решим, сколько цветов мы хотим использовать. Для черно-белого
изображения используют обычно 256 градаций серого цвета для каждого
пикселя, или 1 байт. Получаем, что для хранения нашего изображения надо
2 070 900 байт или 1,97 Мб.
Для получения качественного цветного изображения надо не менее 256
оттенков для каждого базового цвета. В модели RGB соответственно их 3:
красный, зеленый и синий. Получаем общее количество байт – 3 на каждый
пиксел. Соответственно, размер хранимого изображения возрастает в три раза и
составляет 5,92 Мб.
Для создания макета для полиграфии фотографии сканируют с
разрешением 600 dpi, следовательно, размер файла вырастает еще вчетверо.
С другой стороны, если изображение состоит из простых объектов, то для
его хранения в векторном виде необходимо не более нескольких килобайт.
Основным элементом изображения в векторной графике является линия.
Линия – это элементарный объект векторной графики. Простейшие объекты
22
объединяются в более сложные, например объект четырёхугольник можно
представить как четыре связанные линии, а объект куб можно рассматривать
либо
как
двенадцать
связанных
линий,
либо
как
шесть
связанных
четырёхугольников.
Объекты векторной графики хранятся в памяти в виде набора параметров.
Что бы мы ни делали с линией, меняются только её параметры, хранящиеся в
ячейках памяти. Таким образом, объём памяти, занимаемый линией, не зависит
от размеров этой линии.
Как и все объекты, линии имеют свойства. К этим свойствам относятся:
форма линии, её толщина, цвет, характер линии (сплошная, пунктирная и т.п.).
замкнутые линии имеют свойства заполнения. Внутренняя область замкнутого
контура может быть заполнена цветом, текстурой, картой (заготовленное
растровое изображение). Простейшая линия, если она не замкнута, имеет две
вершины, которые называются узлами. Узлы тоже имеют свойства, от которых
зависит, как выглядит вершина линии, и как две линии сопрягаются между
собой.
Когда вы выводите изображение, созданное в векторной программе, то
его качество зависит, не от разрешения изображения, а от разрешающий
способности устройств вывода (количество точек на дюйм при печати).
4. Фрактальная графика
Фрактальная графика, как и векторная – вычисляемая, но отличается от
неё тем, что никакие объекты в памяти компьютера не хранятся. Изображение
строится по уравнению, или по системе уравнений. Изменяя коэффициенты
уравнений можно получать различные фрактальные изображения. Фракталом
называется структура, состоящая из частей, которые в каком-то смысле
подобны целому. Это определение Мандельброта, автора понятия фрактальной
геометрии. Он поведал миру об объектах, названных им фракталами.
Фрактальными свойствами обладают многие объекты живой и неживой
природы.
Обычная
снежинка,
многократно
23
увеличенная,
оказывается
фрактальным объектом. Фрактальные алгоритмы лежат в основе роста
кристаллов и растений. Ветка папоротника является фрактальным объектом,
каждая дочерняя ветка во многом повторяет свойства ветки более высокого
уровня.
Способность фрактальной графики моделировать образы живой природы
вычислительным путём часто используют для автоматической генерации
необычных иллюстраций.
24
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Эйнджел Эдвард. Интерактивная компьютерная графика. Вводный
курс на базе OpenGL. 2 изд.; пер. с англ./ Эдвард Эйнджел. – М. :
Вильямс, 2001. – 592 с.:ил.
2. OpenGL. Официальное руководство программиста; пер. с англ.
/Ву Мейсон, Нейдер Джеки, Девис Том, Шрайнер Дейв. СПб. :
ДиаСофтЮП, 2002.– 592 с.
3. Тихомиров
Ю.
Программирование
трёхмерной
графики
/Ю. Тихомиров – СПб. : BHV – Санкт-Петербург, 1998. – 256 с. :ил.
4. Краснов М. OpenGL. Графика в проектах Delphi/ М. Краснов –СПб.
: БХВ –Санкт-Петербург, 2000. –352 с.:ил.
5. Роджерс Д. Алгоритмические основы машинной графики; пер. с
англ./ Д. Роджерс – М. : Мир, 1989. – 512 с.:ил.
6. Роджерс Д., Адамс Дж. Математические основы машинной
графики: Пер. с англ. – М.: Мир, 2001. – 604 с.
7. Фоли Дж., вэн Дэм А. Основы интерактивной машинной графики:
В 2-х кн., Кн. 1. / Пер. с англ. – М.: Мир, 1985 – 368 с.
8. Фоли Дж., вэн Дэм А. Основы интерактивной машинной графики:
В 2-х кн., Кн. 2. / Пер. с англ. – М.: Мир, 1985 – 368 с.
9. Шикин Е. В., Боресков А. В. Зайцев А. А. Начала компьютерной
графики. – М.: ДИАЛОГ-МИФИ, 1993. – 138 с.
10.Шикин Е. В., Боресков А. В. Компьютерная графика. Полигональные модели./Е. В. Шикин, А.В. Боресков.– М.: ДИАЛОГМИФИ, 2000. – 464 с.
11.Хилл Ф. OpenGL. Программирование компьютерной графики. Для
профессионалов; пер. с англ./Ф.Хилл. – СПб.: Питер,2002.–1088 с.:
ил.
12.Бондаренко В.А.,Дольников В.Л. Фрактальное сжатие изображений
по Барнсли-Слоану./ Автоматика и телемеханика.-1994.-N5.-с.1220.
25
13.Витолин Д. Применение фракталов в машинной графике./
Computerworld-Россия.-1995.-N15.-с.11.
14.Федер Е. Фракталы. Пер. с англ.-М.: Мир,1991.-254с.
15.Application of fractals and chaos. 1993, Springer-Verlag, Berlin.
26
Download