Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФГБОУ ВПО «МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ
СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ»
Кафедра «Информационные системы, технологии
и автоматизация в строительстве»
КОМПЬЮТЕРНАЯ ГРАФИКА
Конспект лекций
Москва 2012
ВВЕДЕНИЕ
Компьютерная графика – это отдельная область информатики, занимающаяся проблемами получения различных изображений (рисунков, чертежей, мультипликации) на компьютере.
Компьютерная графика сегодня стала основным средством связи между человеком и компьютером, постоянно расширяющим сферы своего применения, т.к. в графическом виде результаты деятельности становятся более наглядными и понятными.
Во всех отраслях науки, техники, медицины, в коммерческой и управленческой деятельности используются построенные с помощью компьютера схемы, графики, диаграммы, предназначенные для наглядного отображения разнообразной информации. Архитекторы создают на экране монитора объемное изображение здания, и это позволяет им увидеть, как оно впишется в ландшафт. Конструкторы, разраВВЕДЕНИЕбатывая и рассчитывая элементы моделей зданий и сооружений, используют трехмерные графические объекты, чтобы представить окончательный вид модели.
Компьютерная или машинная графика – это вполне самостоятельная область человеческой деятельности со своими проблемами и спецификой. Компьютерная графика – это и новые эффективные технические средства для проектировщиков, конструкторов и исследователей, и программные системы и машинные языки, и новые научные, учебные дисциплины, родившиеся на базе синтеза таких наук как аналитическая, прикладная, начертательная геометрия, программирование для ЭВМ, методы вычислительной математики и т.п.
Основными задачами машинной графики являются ввод (считывание) графической информации в ЭВМ, вывод ее из ЭВМ (формирование изображений), а также определенного рода переработка информации в компьютере. Таким образом, основные задачи машинной геометрии или, как говорят, автоматизированного геометрического моделирования и конструирования - синтез в ЭВМ и анализ геометрических объектов, решение задач геометрического характера.
«Компьютерная графика» является одной из ключевых, базовых дисциплин, необходимых для качественной профессиональной подготовки бакалавров, обучающихся по направлению подготовки 230100 «Информатика и вычислительная техника». Знания, полученные учащимися при освоении этой дисциплины, будут необходимы для изучения таких дисциплин разных циклов, как «Геометрическое моделирование», «Организация и планирование строительного производства», «Геоинформационные системы», «Проектирование инженерных систем и сетей», «Геометрическое моделирование», «Архитектурное проектирование», «Конструкторские проектирование», «Информационное обеспечение систем автоматизации проектирования» и других.
Конспект лекций состоит из девяти глав.
В Главе 1 описаны и проанализированы разновидности компьютерной графики,
В Главе 2 рассказывается о базовых алгоритмах растровой графики и инструментах, используемых в растровых программах,
Глава 3 посвящена анализу формирования изображений с использованием растрового способа организации графических данных,
Глава 4 рассказывает о фрактальной графике,
Глава 5 подробно представляет цветовые модели компьютерной графики и механизмы их реализации в программных пакетах,
в Главе 6 анализируются базовые модели реалистического представления трехмерных сцен,
в Главе 7 дается представление о стандартах КГ,
Глава 8 посвящена описанию графических форматов,
Глава 9 знакомит с техническими средствами компьютерной графики.
Таким образом, конспект лекций не является узкоспециализированным и может представлять интерес для бакалавров, студентов и магистров, специализирующихся в информационных технологиях, разработке программного обеспечения и web-дизайна.
Оглавление
Глава 1. Основные понятия 5
1.1 Разновидности компьютерной графики 6
1.2. Принципы организации графических программ 9
Глава 2. Растровая графика. Базовые растровые алгоритмы 12
2.1 Растровые изображения и их основные характеристики 12
2.2 Вывод изображений на растровые устройства 14
2.3 Методы улучшения растровых изображений 16
2.4. Базовые растровые алгоритмы 23
2.5 Инструменты растровых графических пакетов 37
2.6 Преимущества и недостатки растровой графики 47
Глава 3. Векторная графика 49
3.1 Средства создания векторных изображений 49
3.2 Сравнение механизмов формирования изображений в растровой и векторной графике 50
3.3 Структура векторной иллюстрации 50
3.4 Математические основы векторной графики 52
3.5. Элементы (объекты) векторной графики 53
3.6. Достоинства и недостатки векторной графики 58
Глава 4. Фрактальная графика 59
4.1 Математика фракталов. Алгоритмы фрактального сжатия изображений 59
4.2 Обзор основных фрактальных программ 62
Глава 5. Цветовые модели компьютерной графики 64
5.1 Элементы цвета 64
5.1.1 Свет и цвет 64
5.1.2 Физическая природа света и цвета 65
5.1.3 Излученный и отраженный свет 66
5.1.4 Яркостная и цветовая информация 67
5.1.5 Цвет и окраска 68
5.2 Характеристики источника света 70
5.2.1 Стандартные источники 70
5.2.2 Особенности восприятия цвета человеком 70
5.3 Цветовой и динамический диапазоны 73
5.4 Типы цветовых моделей 75
5.4.1 Аддитивные цветовые модели 75
5.4.2 Субтрактивные цветовые модели 82
5.4.3 Перцепционные цветовые модели 86
5.4.4 Системы соответствия цветов и палитры 90
5.4.5 Триадные и плашечные цвета 91
5.4.6 Цветовые режимы 92
Глава 6. Реалистическое представление сцен 95
6.1 Закрашивание поверхностей 95
6.1.1 Модели отражения света 95
6.1.2 Вычисление нормалей и углов отражения 97
6.2 Метод Гуро 100
6.3 Метод Фонга 102
6.4. Имитация микрорельефа 103
6.5 Трассировка лучей 105
6.6 Анимация 112
Глава 7. Стандартизация в компьютерной графике 120
7.1 NGP (Network graphics рrotocol) 120
7.2 Международная деятельность по стандартизации в машинной графике 121
7.3 Классификация стандартов 123
7.4 Графические протоколы 128
7.4.1 Аппаратно-зависимые графические протоколы 128
7.4.2 Языки описания страниц 129
7.4.3 Аппаратно-независимые графические протоколы 130
7.4.4 Проблемно-ориентированные протоколы 132
7.4.5 Растровые графические файлы 132
Глава 8. Форматы графических файлов 135
8.1 Векторные форматы 136
8.2 Растровые форматы 138
8.3 Методы сжатия графических данных 143
8.4. 3D-форматы 147
8.5. Форматы мультимедиа 149
8.6. Преобразование файлов из одного формата в другой 157
Глава 9. Технические средства КГ (оборудование КГ) 162
9.1 Видеоадаптеры 162
9.2 Манипуляторы 166
9.3 Оборудование мультимедиа 169
9.4 Мониторы 171
9.5 Видеобластеры 174
9.6 Периферия 174
9.6.1 Принтеры 174
9.6.2 Имиджсеттеры 176
9.6.3 Плоттеры 176
9.7 Модемы 177
9.8 Звуковые карты 177
9.9 Сканеры 177
9.10 Графические планшеты (дигитайзеры) 180
9.11 Цифровые фотоаппараты и фотокамеры 180
Литература 182
Г л а в а 1. ОСНОВНЫЕ ПОНЯТИЯ
Важнейшая функция компьютера - обработка информации. Особо можно выделить обработку информации, связанную с изображениями. Она разделяется на три основные направления: компьютерная графика (КГ), обработка и распознавание изображений.
Задача компьютерной графики (Computer Graphics) - визуализация, то есть создание изображения. Визуализация выполняется, исходя из описания (модели) того, что нужно отображать. Существует много методов и алгоритмов визуализации, которые различаются между собою в зависимости от того что и как отображать. Например, отображение того, что может быть только в воображении человека - график функций, диаграмма, схема, карта. Или наоборот, имитация трехмерной реальности - изображение сцен в компьютерных играх, художественных фильмах, тренажерах, в системах архитектурного проектирования. Важными и связанными между собою факторами здесь являются: скорость изменения кадров, насыщенность сцены объектами, качество изображения, учет особенностей графического устройства.
Обработка изображений (Computer Vision) - это преобразования изображений. Входными данными является изображение, и результат обработки - тоже изображение. Примерами обработки изображений могут служить: повышение контраста, чёткости, коррекция цветов, редукция цветов, сглаживание, уменьшение шумов и так далее. В качестве материала для обработки могут использоваться космические снимки, сканированные изображения, радиолокационные, инфракрасные изображения и т. п. Задачей обработки изображений может быть как улучшение в зависимости от определенного критерия (реставрация, восстановление), так и специальное преобразование, кардинально меняющее изображения. В последнем случае обработка изображений может быть промежуточным этапом для дальнейшего распознавания изображения. Например, перед распознаванием часто необходимо выделять контуры, создавать бинарное изображение, разделять по цветам. Методы обработки изображений могут существенно отличаться в зависимости от того, каким путем получено изображение - синтезировано системой КГ либо это результат оцифровки черно-белой или цветной фотографии.
Рис. 1.1. Направления компьютерной графики
Для распознавания изображений (Image Processing) основная задача - получение описания объектов, представленных изображением. Методы и алгоритмы распознавания разрабатывались прежде всего для обеспечения зрения роботов и для систем специального назначения. Но в последнее время компьютерные системы распознавания изображений все чаще появляются в повседневной практике многих людей, например, офисные системы распознавания текстов, программы векторизации, создание трехмерных моделей человека.
Цель распознавания может формулироваться по-разному: выделение отдельных элементов (например, букв текста на изображении документа или условных знаков на изображении карты); классификация изображений в целом (например, проверка того, есть ли это изображение определенного летательного аппарата, или установление персоны по отпечаткам пальцев).
Методы классификации и выделение отдельных элементов могут быть тесно связаны между собою. Так, классификация может быть сделана на основе структурного анализа отдельных элементов объекта. Или для выделения отдельных элементов можно использовать методы классификации. Задача распознавания является обратной относительно визуализации.
Стоит отметить, что довольно популярным до недавнего времени было словосочетание интерактивная компьютерная графика. Им подчеркивалась способность компьютерной системы создавать графику и вести диалог с человеком. Прежде системы работали в пакетном режиме- способы диалога были не развиты. В настоящее время почти любую программу можно считать интерактивной системой КГ.
1.1 Разновидности компьютерной графики
Распространение компьютерной графики началось с полиграфии. Но вскоре она вырвалась из тесных помещений типографий на простор широкого применения. Огромную популярность завоевали компьютерные игры, научная графика и фильмы. Сейчас без развитой и изощренной графики не обходится ни один фантастический фильм, ни одна компьютерная игрушка. Создаются изображения настолько реальные, что трудно поверить в то, что все это создано на компьютере. Мощнейшие машины и талантливейшие команды математиков, программистов и дизайнеров работают над этим. Ни один приличный доклад в сфере бизнеса не обходится сейчас без компьютерной презентации.
Из простого перечисления областей применения видно, что понятие компьютерной графики довольно обширно - от алгоритмов, рисующих на экране причудливые узоры, до мощных пакетов ЗD-графики и программ, имитирующих классические инструменты художника. Иными словами, компьютерная графика не является простым рисованием при помощи компьютера, а представляет собой довольно сложный комплекс, который находит применение во многих областях человеческой деятельности:
• двухмерная графика;
• полиграфия;
• web-дизайн;
• мультимедиа;
• ЗD-графика и компьютерная анимация;
• видеомонтаж;
• САПР и деловая графика;
• геоинформационные системы.
Сферы применения компьютерной графики чрезвычайно разнообразны. Каждый ее раздел имеет свои отличительные особенности и тонкости «технологического производства». Для каждого из них создано свое программное обеспечение, включающее разнообразные специальные программы (графические редакторы). Вне зависимости от области использования каждый графический редактор, как правило, должен иметь:
● инструменты рисования на компьютер;
● библиотеку готовых изображений;
● набор шрифтов;
● набор спецэффектов;
● а также быть совместимым с другими графическими программами.
Остановимся на некоторых характерных чертах, присущих отдельным областям компьютерной графики, попутно затрагивая используемые в них программные средства.
Полиграфия
Компьютерная графика начала своё распространение с полиграфии. Полиграфия –довольно сложное направление, требующее от работающего в этой области наибольшей широты знаний. Даже на поверхностный взгляд работа в полиграфии довольно разнообразна: создание визиток, бланков, рекламных листовок, буклетов и плакатов; работа в периодических изданиях (часто имеющих свою специфику). Для реализации этих задач предназначены специальные программы верстки.
Программы верстки дают возможность соединять вместе текстовую и графическую информацию для создания информационных бюллетеней, журналов, брошюр и рекламной продукции. Среди наиболее популярных программ можно выделить Adobe PageMaker и QuarkXPress. Большинство программ верстки страниц используется для компоновки различных элементов на странице, а не для того, чтобы с нуля создавать в них текстовые или графические файлы. Тексты объёмных документов, как правило, пишутся (набираются) в системах обработки текстов (текстовых редакторах типа MS Word), а затем импортируются в программы верстки. Графика часто создаётся в программах черчения (деловой графики) и редактирования изображений, а затем импортируется в программу верстки страниц. Хотя все основные программы верстки страниц обладают примерно одними и теми же возможностями, свою популярность они завоевали по разным причинам. Например, PageMaker традиционно считается самым лёгким в использовании продуктом среди программ верстки страниц, в первую очередь из-за того, что в нём использован визуальный образ, знакомый большинству художников и дизайнеров. Конкурент и аналог PageMaker – QarkXPress – обычно используется для компьютеров на платформе Macintosh. Пакеты компьютерной графики для полиграфии позволяют дополнять текст иллюстрациями разного происхождения, создавать дизайн страниц и выводить полиграфическую продукцию на печать с высоким качеством.
Мультимедиа
Мультимедиа – это область компьютерной графики, связанная с созданием интерактивных энциклопедий, справочных систем, обучающих программ и интерфейсов к ним.
В отличие от полиграфии, где дизайнер-полиграфист сотрудничает с печатником, дизайнер-мультимедийщик сотрудничает с программистом. Здесь требования к графике уже другие. Так, в полиграфии, например, файлы должны были иметь достаточно большое разрешение. В результате размеры файлов могут составлять десятки и даже сотни мегабайтов. В мультимедиа же ограничением служит разрешение экрана монитора и требование минимизации размеров файлов. Здесь контроль за качеством проще, чем в полиграфии, для него достаточно хорошего монитора.
Для работы в этой области наряду с графическими редакторами необходимо знать программы создания мультимедиа - например Macromedia Director или MS Power Point. В создании новых версий презентационных пакетов можно отметить тенденцию всё более полного использования мультимедиа-возможностей и Интернета. Эти программы допускают удобный импорт видео- и звуковых файлов, в них предусмотрены средства анимации диаграмм.
World Wide Web (WWW)
Важным событием в жизни общества стало появление глобальной сети Internet. Сейчас происходит бурное развитие этой сети. Возрастают мощности каналов передачи данных, совершенствуются способы обмена и обработки информации. Сеть Internet используют всё больше людей в разных странах. Это способ общения людей, обмена информацией, сближения языков, распространения идей, новое пространство для бизнеса и т.п. Важное место в Internet занимает компьютерная графика. Всё больше совершенствуются способы передачи визуальной информации, разрабатываются более совершенные графические форматы, ощутимо желание использовать трёхмерную графику, анимацию, весь спектр мультимедиа.
Требования к созданию изображений для WWW очень противоречивы. С одной стороны, жёсткие ограничения по снижению размеров файлов для минимизации времени их передачи в сети, с другой - необходимость сохранения качества передаваемой по сети "картинки". Каждый формат графических изображений, применённый в WWW, имеет свои особенности: JPEG, например, хорош для фотографий, а GIF – для векторных изображений. К тому же WWW имеет свою область цветового охвата, что необходимо учитывать при создании изображений.
3D-графика и компьютерная анимация
Это ещё одно широкое и по-своему сложное направление, особый мир. 3D-графика – это создание искусственных предметов и персонажей, их анимация и совмещение с реальными предметами и интерьерами. В настоящий день определилось несколько перспективных направлений её использования.
● Широкое применение 3D-графика находит в индустрии компьютерных игр. Анимационные заставки, интерфейсы и персонажи компьютерных игр создаются в программах 3D-графики.
● Другая область применения 3D-графики–телевизионная реклама и оформление телевизионных каналов.
● Многие архитекторы и дизайнеры используют 3D-графику для построения макетов зданий и трёхмерных моделей архитектурных памятников, которых ещё не существует в природе.
Освоение 3D-графики требует немало времени и мощных системных ресурсов. Чтобы результат выглядел фотореалистично, необходимо освоить не только 3D-моделирование, но и уметь правильно осветить сцену, найти хороший ракурс камеры, подобрать материал и текстуры. Всё это существенно влияет на качество графики.
САПР и деловая графика
Системы автоматизированного проектирования были исторически первыми интерактивными системами (САПР - английская аббревиатура CAD - Computer Aided Design), которые появились в 60-х годах. Они представляют собой значительный этап эволюции компьютеров и программного обеспечения. В системе интерактивной KГ пользователь воспринимает на дисплее изображение, представляющее некоторый сложный объект и может вносить изменения в описание (модель) объекта (рис. 1.2). Такими изменениями могут быть как ввод и редактирование отдельных элементов, так и задание числовых значений для любых параметров, а также другие операции по вводу информации на основе восприятия изображений.
Рис. 1.2. Модель интерактивной компьютерной графики
Системы типа САПР активно используются во многих областях, например, в машиностроении и электронике. Одними из первых были созданы САПР для проектирования самолетов, автомобилей, системы для разработки микроэлектронных интегральных схем, архитектурные системы и т.п. Такие системы сначала функционировали на довольно больших компьютерах. Потом получили распространение быстродействующие компьютеры среднего класса с развитыми графическими возможностями — графические рабочие станции. С возрастанием мощностей персональных компьютеров все чаше САПР начали использовать на дешевых массовых компьютерах, которые сейчас имеют достаточное быстродействие и объемы памяти для решения многих задач. Это привело к широкому распространению систем САПР.
● Одно из главных применений составляет их использование в различных областях инженерной конструкторской деятельности – от проектирования микросхем до создания самолётов.
● Другой важной областью применения САПР является строительство и архитектура.
● САПР используется и в медицине. Например, автоматизированное проектирование имплантантов, особенно для костей и суставов, позволяет минимизировать необходимость внесения изменений в ходе операции, что сокращает время пребывания на операционном столе (результат положительный как с точки зрения пациента, так и с точки зрения врача).
Геоинформационные системы (ГИС)
Сегодня становятся все более популярными. Это относительно новая для массовых пользователей разновидность систем интерактивной компьютерной графики. Они интегрируют методы и технологии разнообразных областей - баз данных, геодезии, картографии, космонавтики, навигации и, конечно, компьютерной графики. Известны такие системы, как ArcGIS, AutoCAD Map, Maplnfo. Пример отечественных систем - ГИС "ОКО", "Визиком-Киев".
Системы типа ГИС могут использовать значительные ресурсы компьютерных систем как в плане работы с базами данных, так и для визуализации объектов, находящихся на поверхности Земли. Причем визуализацию необходимо делать с разными степенями детализации - как для Земли в целом, так и в границах отдельных участков.
Типичными для любой ГИС являются такие операции - ввод и редактирование объектов с учетом их расположения на поверхности Земли, формирование разнообразных цифровых моделей, запись в базы данных, выполнение разнообразных запросов к базам данных Важной функцией ГИС является анализ пространственных, топологических отношений множества объектов, расположенных на какой-то территории. Одной из функций также является спутниковая GPS-навигация.
1.2. Принципы организации графических программ
Многие пользователи ПК связывают понятие компьютерной графики с программами, предназначенными для редактирования двухмерных цифровых изображений. Это программное обеспечение по принципу действия и функциональному назначению можно разделить на 3 группы:
● растровая графика
● векторная графика
● фрактальная графика
Наиболее широко в компьютерной графике представлены первые 2 типа программ: растровые и векторные. Важно понимать принципиальные отличия между двумя этими типами ПО, так как каждый из них имеет свои сильные и слабые стороны.
О фрактальной графике разговор особый. Она занимает промежуточное положение между растровыми и векторными программами. Кроме того, фрактальные узоры часто используют в качестве красивых фронтальных заливок в редакторах растровой и векторной графики.
Двухмерная, или 2D-графика,– это основа всей компьютерной графики (в том числе и 3D-графики). Ни один компьютерный художник-дизайнер не может плодотворно работать над своими проектами без понимания базовых положений двухмерной графики.
Растровые программы
Большинство программ для редактирования изображений-Addobe Photoshop, Corel PHOTO-PAINT или MS Paint являются растровыми программами. В них изображение формируется из решётки крошечных квадратиков, именуемых пикселами. Поскольку каждый пиксел на экране компьютера отображён в специальном месте экрана, то программы, которые создают изображение таким способом, называют побитовыми, или программами с побитовым отображением (bitmap). Решётку (или матрицу), образуемую пикселами, называют растром. Поэтому программы с побитовым отображением также называются растровыми программами.
Как создаётся цифровое изображение? Многие программы для обработки изображений, такие как Addobe Photoshop, позволяют выбирать нужные электронные кисть, цвет и краску. Иногда конечный результат неотличим от традиционной живописи, но, в общем, возможности компьютера гораздо шире традиционных.
Большинство цифровых изображений сначала поступают в компьютер при помощи сканера или цифрового фотоаппарата. С помощью сканера можно оцифровать слайд, фотографию путём преобразования изображения в цифровые данные. Методика сканирования изображения с последующими операциями цветокоррекции и ретуширования наиболее часто используется в печатной компьютерной продукции, в первую очередь при создании рекламных объявлений и обложек журналов. Компьютер может поменять цвет вашей причёски или глаз, отретушировать родинку на щеке, изменить цвет или фон вашей фотографии, а также убрать все недостатки и дефекты. Для привлечения внимания зрителей компьютерные художники часто добавляют к фотографиям в журналах и рекламным объявлениям специальные эффекты, создавая сложные коллажи.
Процесс оцифровывания изображения посредством цифрового фотоаппарата несложен – человек просто направляет аппарат на объект съёмки и нажимает спуск. Изображение мгновенно оцифровывается и записывается в запоминающее устройство внутри фотоаппарата. Вам не нужно покупать и проявлять плёнку – её просто нет. Вместо вывода изображения на слайды или печати фотографий оно загружается в компьютер по кабельной линии. Когда изображение появляется на экране компьютера, вы можете изменять его цвета, ретушировать, крутить-вертеть, изгибать, искажать для создания специальных эффектов в программах-редакторах изображений: Adobe Photoshop, Corel PHOTO-PAINT или каких-то других, более удобных для пользователя.
Растровые программы предназначены в основном для редактирования изображений, обеспечивая возможность цветокоррекции, ретуши и создания специальных эффектов на базе цифровых изображений. Пользуясь программными продуктами для формирования изображений, такими как Adobe Photoshop или Corel PHOTO-PAINT, вы можете создавать коллажи, виньетки, фотомонтажи и подготавливать цветные изображения для вывода на печать. На сегодняшний день программы редактирования изображений используются при производстве практически всех печатных изображений, где необходима фотография. Их применяют для стирания морщин с лиц моделей, придания ярких красок мрачным и пасмурным дням и изменения общего настроения посредством специальных световых эффектов. Они также широко используются производителями мультимедиа для создания текстовых и фоновых эффектов и для изменения количества цветов изображения.
Подробно о растровом способе организации графической информации будет рассказано в Главе 2.
Векторные программы
Изображение, созданное в векторных программах, основывается на математических формулах, а не на координатах пикселов. Составляющие основу таких изображений кривые и прямые линии называются векторами. Так как при задании объектов на экране используются математические формулы, то отдельные элементы, изображения, создаваемые в векторных программах, – например, Adobe Illustrator, CorelDRAW и Macromedia FreeHand, – можно легко перемещать, увеличивать или уменьшать без проявления «эффекта ступенек». Так, для перемещения объекта достаточно перетащить его мышью. Компьютер автоматически пересчитывает его размер и новое местоположение.
Поскольку в этом случае изображение создаётся математически, векторные программы используются тогда, когда нужны чёткие линии. Они часто применяются при создании логотипов, шрифтов для вывода на плоттер и различных чертежей.
Когда вы видите изображение, созданное в векторной программе, его качество зависит не от исходного разрешения изображения, а от разрешающей способности устройства вывода (монитора, принтера, плоттера). Так как качество изображения не основывается на разрешении, то изображение, созданное в векторных программах, как правило, имеет меньший объём файлов, чем построенное в программах побитового отображения. В векторных программах нет проблем и со шрифтами – большие шрифтовые массивы не образуют файлов огромного размера.
Векторной графике посвящена Глава 3 данного конспекта лекций.
Фрактальные программы
Фрактал - это объект довольно сложной формы, которая получена в результате выполнения простого итерационного цикла над формой начальной, элементарной.
Одним из основных свойств фракталов является самоподобие. Объект называют самоподобным, когда увеличенные части объекта походят на сам объект и друг на друга.
Таким образом, в простейшем случае небольшая часть фрактала содержит информацию обо всем фрактале. Например, снежинка несет информацию о снежном сугробе, а горный камень имеет те же самые очертания, и что и горный хребет. Благодаря этому свойству можно использовать фракталы для генерирования поверхности местности, которая походит на саму себя, независимо от масштаба, в котором она отображена. Программы, получающие в последнее время широкое распространение и созданные по принципу генерации самоподобных фигур, явлются прекрасным инструментом в руках дизайнера, художника, разработчика WEB-приложений.
Отдельное перспективно напрвление развития фрактальных программ - создание алгоритма фрактального сжатия графической информации. Более подробно о фрактальной графике будет рассказано в главе 4.
Г л а в а 2. РАСТРОВАЯ ГРАФИКА.
БАЗОВЫЕ РАСТРОВЫЕ АЛГОРИТМЫ
2.1. Растровые изображения и их основные характеристики
Растр - это матрица ячеек (пикселов). Любой пиксел (pixel - Picture Element) имеет свой цвет. Совокупность пикселов различного цвета образует изображение. В зависимости от расположения пикселов в пространстве различают квадратный, прямоугольный, гексагональный или иные типы растра. Для описания расположения пикселов используют разнообразные системы координат. Общим для всех таких систем является то, что координаты пикселов образуют дискретный ряд значений (необязательно целые числа). Часто используется система целых координат - номеров пикселов с (0, 0) в левом верхнем углу. Такую систему мы будем использовать и в дальнейшем, ибо она удобна для рассмотрения алгоритмов графического вывода.
К основным характеристикам растровых изображений относят:
Геометрические характеристики растра
Размер растра обычно измеряется количеством пикселов по горизонтали и вертикали.
Разрешающая способность. Она характеризует расстояние между соседними пикселами - шаг дискретной сетки растра. Разрешающую способность измеряют количеством пикселов на единицу длины. Наиболее популярная единица измерения - dpi (dots per inch) - количество пикселов в одном дюйме длины (2.54 см). Не следует отождествлять шаг с размерами пикселов - размер пикселов может равняться шагу, а может быть как меньше, так и больше шага.
Можно сказать, что для КГ наиболее удобен растр с одинаковым шагом для обеих осей, то есть dpi X = dpi Y. Это удобно для многих алгоритмов вывода графических объектов. Иначе - проблемы, например, при рисовании окружности на экране дисплея EGA (устаревшая модель компьютерной видеосистемы, ее растр - прямоугольный, пикселы растянуты по высоте, поэтому для изображения окружности необходимо генерировать эллипс).
Форма пикселов растра определяется особенностями устройства графического вывода. Например, пикселы могут иметь форму прямоугольника или квадрата, которые по размерам равны шагу растра (дисплей на жидких кристаллах); пикселы могут иметь круглую форму и по размерам могут не равняться шагу растра (принтеры).
Рис. 2.1. Одно изображение на разных растрах
Количество цветов (глубина цвета) - важная характеристика любого изображения, не только растрового. В соответствии с психофизиологическими исследованиями, глаз человека способен различать 350 000 цветов.
Классифицируют изображения следующим образом.
• Двухцветные (бинарные) - 1 бит на пиксел. Среди двухцветных наиболее часто встречаются черно-белые изображения.
• Полутоновые - градации серого или другого цвета. Например, 256 градаций (1 байт на пиксел).
• Цветные изображения (2 бита на пиксел и больше). Глубина цвета 16 битов на пиксел (65536 цветов) получила название High Color, 24 бита на пиксел (16.7 млн. цветов) - True Color. В компьютерных графических системах используют и большую глубину цвета - 32, 48 и более битов на пиксел.
В качестве примера рассмотрим растровый рисунок (рис. 2.2).
Количество цветов - 256 градаций серого, разрешающая способность - примерно 100 dpi. Отметим, что в книге вы видите черно-белый типографский оттиск, поэтому о количестве цветов и разрешающей способности можно говорить лишь условно.
Рис. 2.2. Растр
Недостаточное количество цветов приводит к появлению лишних контуров на гладких поверхностях цилиндра и шара.
Рис. 2.3. 256 градаций серого, разрешающая способность 100 dpi
Изображение одних и тех же объектов, но дня других параметров растра (рис. 2.4).
Рис. 2.4. Количество градаций серого составляет 8;
количество цветов сохранено (256 градаций);
разрешающая способность уменьшена в 8 раз
Оценка разрешающей способности растра
Рис. 2.5. Оценка разрешающей способности растра
Таблица 2.1.
Разрешающая способность в зависимости от расстояния
Расстояние R, мм
Размер dP, мм
Разрешающая способность dpi
500
0. 14
181
300
0. 09
282
Глаз человека с нормальным зрением способен различать объекты с угловым размером около одной минуты. Если расстояние до объекта равно R, то можно приблизительно оценить этот размер (dP), как длину дуги, равную R ∙ 𝛼 (рис. 2.5). Можно предположить, что человек различает дискретность растра (шаг) также соответственно этому минимально различимому размеру. Иначе говоря, если расстояние между отдельными тачками (пикселами) меньше чем dP, то эти точки уже не воспринимаются как отдельные точки. Тогда можно оценить минимальную разрешающую способность растрового изображения, которое человеком уже не воспринимается как растровое, следующей величиной; dpi = 25, 4 / dP [мм].
Несколько значений dpi для разных R приведено в табл. 2.1.
Если считать расстояние, с которого человек обычно разглядывает печатные документы, равным 300 мм, то можно оценить минимальную разрешающую способность, при которой уже не заметны отдельные пикселы, как примерно 300 dpi (приблизительно 0.085 мм). Лазерные черно-белые принтеры полностью удовлетворяют такому требованию.
Дисплеи обычно рекомендуется разглядывать с расстояния не ближе 0.5 м. В соответствии с приведенной выше оценкой минимальной разрешающей способности расстоянию 0.5 м соответствуют приблизительно 200 dpi, В современных дисплеях разрешающая способность составляет 100-120 dpi - это плохо; например, дисплей размером 15" по диагонали должен обеспечивать не 1024x768 пикселов, а вдвое больше. Но на современном уровне развития техники это пока что невозможно.
2.2. Вывод изображений на растровые устройства
Для иллюстрации работы реальных растровых устройств рассмотрим результаты отображения рисунка-образца на разнообразных графических устройствах. В качестве тестового образца выбран черно-белый рисунок, который состоит из текста и простейшей графики - текст «Строчка текста».
Графика - векторный рисунок из линий минимально возможной толщины. Тестовый образец изготовлен и выведен на устройства с помощью редактора Word 2007.
Почему именно такой образец? Для того чтобы оценить погрешности отображения, тест следует подобрать так, чтобы устройства работали в режиме близком к предельно допустимому. Тогда и следует оценивать их возможности. Однако задача усложняется тем, что проверяются устройства разного класса. Оказалось, что некоторые устройства не в состоянии удовлетворительно отобразить даже такой простой образец, а некоторые устройства продемонстрировали значительный запас точности - для них нужны другие тесты.
После вывода образца на графическом устройстве, соответствующее растровое изображение оцифровывалось сканером с оптическим разрешением 600x600 dpi (2400x2400 в режиме интерполяции). Также использовалась фотокамера в режиме макросъемки.
Безусловно, погрешность сканера важна для полученных на устройствах изображений, обладающих сопоставимым, а также более высоким разрешением. Однако приведенные здесь результаты не следует рассматривать как точные измерения. Здесь ставились иные цели - проиллюстрировать геометрические свойства растров (расположение, форму и размеры отдельных пикселов) для устройств различного типа, показать наиболее характерные особенности отображения.
Для сравнения были выбраны графические устройства, которые можно встретить практически в любом современном офисе - это дисплеи и принтеры.
Торговые марки устройств не приводятся. Наше изучение особенностей их работы не следует рассматривать как тестирование или рекламу.
Первый пример - изображение на экране цветного монитора, на электронно-лучевой трубке (рис. 2.6). Следует заметить, что в данном случае изображение черно-белого образца на самом деле - цветное, в книге оно напечатано в градациях серого.
На рис. 2.6 показано увеличенное изображение фрагмента. Здесь уже четко видно "триадную" структуру растра, присущую цветному кинескопу.
Рис. 2.6. Растр электронно-лучевой трубки - триады RGB
Растровый характер изображения монитора на жидких кристаллах (рис. 2.7) выражен значительно четче, чем для монитора на электронно-лучевой трубке. Четкость отдельных пикселов обуславливает заметный ступенчатый эффект наклонных линий.
Рис. 2.7. Монитор на жидких кристаллах. Видеорежим
Растр монитора на жидких кристаллах 1024 на 768,
экран ноутбука 14”
Качество печати для матричных принтеров определяется погрешностями механики и износом красящей ленты (рис. 2.8). Здесь красящая лента выработала свой ресурс наполовину, поэтому изображение получилось как бы "в градациях серого цвета". Кроме того, изображение имеет полутоновый характер и из-за того, что чернота уменьшается на краях впадин оттиска игл. Вообще говоря, матричные принтеры могут печатать намного лучше. Даже испытуемый принтер может печатать с разрешением 240 на 216 dpi. Однако драйвер для Windows позволяет установить только 240x144 dpi, а качество практически не улучшается по сравнению с 120x144 (вероятно, из-за износа механики).
Рис. 2.8. Матричный 9-игольчатый принтер Увеличенный фрагмент
120 на 144 dpi
Лазерные принтеры, как правило, безупречно отрабатывают свою паспортную разрешающую способность (рис. 2.9). Немаловажным является то, что качество печати стабильно и практически не зависит от качества бумаги. Принтеры данного типа вне конкуренции (по крайней мере, в настоящее время) по быстродействию и качеству черно-белой печати среди других типов принтеров. Более дорогие модели лазерных принтеров обладают в несколько раз большей паспортной разрешающей способностью, при этом качество печати, как правило, возрастает соответственно. Оптического разрешения сканера в 600 dpi (2400 dpi интерполяция) уже недостаточно, чтобы точно отобразить фрагмент растра в мельчайших деталях.
Рис. 2.9. Лазерный черно-белый Фрагмент изображения
принтер, 600 dpi
Качество печати струйных принтеров достаточно редко соответствует заявленной паспортной разрешающей способности (рис. 2.10). Данная модель, возможно, - исключение из общего правила. В черно-белом режиме здесь фактически продемонстрирована точность печати на уровне 600 dpi лазерного принтера. Многие другие струйные принтеры с рекламируемым разрешением более тысячи dpi работают еще хуже. И это при печати на специальной бумаге.
Достоинством струйных принтеров является то, что это относительно недорогое устройство для цветной печати. С приемлемым качеством для цветной фотографии работают струйные фотопринтеры. Технология струйной печати также используется и в достаточно популярных крупноформатных (АЗ-А1) цветных растровых принтерах.
Рис. 2.10. Струйный цветной Фрагмент изображения
фотопринтер, черно-белый режим,
1440 dpi, печать на специальной
фотобумаге
2.3. Методы улучшения растровых изображений
Рассмотрим некоторые из существующих методов улучшения качества изображений, которые основываются на субъективном восприятии разрешающей способности и количества цветов. При одних и тех же значениях технических параметров устройства графического вывода можно создать иллюзию увеличения разрешающей способности или количества цветов. Причем, субъективное улучшение одной характеристики происходит за счет ухудшения другой.
Устранение ступенчатого эффекта
В растровых системах при невысокой разрешающей способности (меньше 300 dpi) существует проблема ступенчатого эффекта (aliasing) - при большом шаге сетки растра пикселы линий образуют как бы ступени лестницы.
Рассмотрим это на примере отрезка прямой линии. Вообще говоря, растровое изображение объекта определяется алгоритмом закрашивания пикселов, соответствующих телу изображаемого объекта. Разные алгоритмы могут дать существенно отличающиеся варианты растрового изображения одного и того же объекта. Можно сформулировать условие корректного закрашивания следующим образом - если в контур изображаемого объекта попадает больше половины площади ячейки сетки растра, то соответствующий пиксел закрашивается цветом объекта (С), иначе - пиксел сохраняет цвет фона (Сф).
На рис. 2.11 показано растровое изображение толстой прямой линии, на которую для сравнения наложен идеальный контур исходной линии.
Рис. 2.11. Растровое изображение отрезка линии
Устранение ступенчатого эффекта называется на английском языке antialiasing. Для того чтобы растровое изображение линии выглядело более ровным, можно цвет угловых пикселов "ступенек лестницы" заменить определенным оттенком, промежуточным между цветом объекта и цветом фона. Будем вычислять цвет пропорционально части площади ячейки растра, покрываемой идеальным контуром объекта. Если площадь всей ячейки обозначить как S, а часть площади, покрываемой контуром, - Sx, то искомый цвет равняется
На рис. 2.12 показано сглаженное растровое изображение, построенное указанным выше методом.
Рис. 2.12. Сглаживание
Методы визуализации сглаженных растровых изображений можно разделить на две группы. Первую группу составляют алгоритмы растеризации для отдельных примитивов - линий, фигур с заполнением. В ходе вывода последовательности примитивов для любого пиксела текущего примитива рассчитывается соответствующий цвет с учетом сглаживания.
Другую группу методов сглаживания составляют методы обработки уже существующего изображения. Для сглаживания растровых изображений часто используют алгоритмы цифровой фильтрации. Один из таких алгоритмов — локальная фильтрация. Она осуществляется путем взвешенного суммирования яркости пикселов, расположенных вокруг текущего обрабатываемого пиксела. Можно представить себе, что в ходе обработки изображения по растру скользит прямоугольное окно, которое выхватывает пикселы (рис. 2.13).
Для определения цвета текущего пиксела вычисляется некоторая функция, учитывающая значение цветов пикселов этого окна. Базовую операцию такого фильтра можно представить так:
где Ρ - значение цвета текущего пиксела, F - новое значение цвета пиксела, К - нормирующий коэффициент, Μ - двумерный массив коэффициентов, который определяет свойства фильтра (обычно этот массив называют "маской").
Рис. 2.13. Окно локального цифрового фильтра
Размеры окна фильтра: (jmax – jmin +1) - по горизонтали и (imax – imin +1) - по вертикали.
При и имеем фильтр с окном 3x3, частоиспользуемый на практике.
Для обработки всего растра необходимо выполнить указанные выше вычисления для каждого пиксела. Если в ходе обработки новые значения цвета пикселов записываются в первоначальный растр и вовлекаются в вычисления для очередных пикселов, то такую фильтрацию называют рекурсивной. При нерекурсивной фильтрации в вычисления вовлекаются только прежние значения цвета пикселов. Нерекурсивность можно обеспечить, если новые значения записывать в отдельный массив. Рекурсивный фильтр может дать больший эффект сравнительно с нерекурсивным фильтром - изменение цвета одного пиксела может привести к изменениям пикселов всего изображения. Поведение нерекурсивного фильтра в этом смысле более предсказуемо.
На рис. 2.14 представлены результаты работы двух вариантов нерекурсивного сглаживающего фильтра, использующего окно (маску) 3х3.
Значение нормирующего коэффициента здесь выбрано равным сумме элементов маски. Этим обеспечивается сохранение масштаба яркости преобразованного растра. Отметим, что маска - это не матрица, а массив коэффициентов, располагающихся соответственно пикселам окна. Средний фильтр можно задать и маской 2x2 - отбросить нулевые коэффициенты.
Рис. 2.14. Два сглаживающих фильтра
При сглаживании цветных изображений можно использовать модель RGB и производить фильтрацию по каждому компоненту.
С помощью локальной цифровой фильтрации можно выполнять довольно разнообразную обработку изображений - повышение резкости, выделение контуров и многое другое.
Дизеринг
Хорошо, если растровое устройство отображения может прямо воссоздавать тысячи цветов для любого пиксела. Не так уже и давно это было проблемой даже для компьютерных дисплеев (а точнее - для видеоадаптеров). Современные растровые дисплеи достаточно качественно воспроизводят миллионы цветов, благодаря чему без проблем можно отображать цветные фотографии. Но для растровых устройств, которые печатают на бумаге, положение другое. Устройства печати обычно имеют высокую разрешающую способность (dpi), часто на порядок выше, чем дисплеи. Однако они не могут непосредственно воссоздать даже сотню градаций серого для пикселов черно-белых фотографий, не говоря уже о миллионах цветов. Вы можете возразить, что в любой газете или журнале мы видим иллюстрации. Возьмите лупу и посмотрите, например, на изображение любой напечатанной фотографии. В большинстве случаев можно увидеть, что оттенки цветов (для цветных изображений) или градации серого (для черно-белых) имитируются комбинированием, смесью точек. Чем качественнее полиграфическое оборудование, тем меньше отдельные точки и расстояние между ними.
Вообразим себе, что отдельные точки на фотографии нельзя различить даже с помощью лупы. Это может быть в таких случаях: или нам посчастливилось увидеть печать многими сотнями красок, или разрешающая способность устройства печати очень высокая. Много красок при высокой разрешающей способности растра - это пока что фантастика. Однако, безусловно, с течением времени будут изобретены способы печати если не многими тысячами красок (что маловероятно), то хотя бы красками, которые плавно изменяют свой цвет, или будет изобретена бумага с соответствующими свойствами.
Для устройств печати на бумаге проблема количества красок достаточно важна. В полиграфии для цветных изображений обычно используют три цветных краски и одну черную, что в смеси дает восемь цветов (включая черный цвет и белый цвет бумаги). Встречаются образцы печати с большим количеством красок - например, карты, напечатанные с использованием восьми красок, однако такая технология печати намного сложнее. Состояние дел с цветной печатью можно оценить также на примере относительно простых офисных принтеров. Недавно появились струйные принтеры с увеличенным количеством красок. В таких принтерах в состав обычных CMYK-красок добавлены бледно-голубая, бледно-лиловая и бледно-желтая краски (семицветные принтеры). В шестицветных принтерах отсутствует бледно-желтая краска. Увеличение количества красок значительно улучшило качество печати, однако и этого пока явно мало.
Если графическое устройство не способно воссоздавать достаточное количество цветов, тогда используют растрирование - независимо от того, растровое это устройство или нерастровое. В полиграфии растрирование известно давно. Оно использовалось несколько столетий тому назад для печати гравюр. В гравюрах изображение создается многими штрихами, причем полутоновые градации представляются или штрихами разной толщины на одинаковом расстоянии, или штрихами одинаковой толщины с переменной густотой расположения. Такие способы используют особенности человеческого зрения и в первую очередь - пространственную интеграцию. Если достаточно близко расположить маленькие точки разных цветов, то они будут восприниматься как одна точка с некоторым усредненным цветом. Если на плоскости густо расположить много маленьких разноцветных точек, то будет создана визуальная иллюзия закрашивания плоскости определенным усредненным цветом. Однако, если увеличивать размеры точек и (или) расстояние между ними, то иллюзия сплошного закрашивания исчезает - включается другая система человеческого зрения, которая обеспечивает способность различать объекты, подчеркивать контуры.
В компьютерных графических системах часто используют эти методы. Они позволяют увеличить количество оттенков цветов за счет снижения пространственного разрешения растрового изображения. Иначе говоря - это обмен разрешающей способности на количество цветов. В литературе по КГ такие методы растрирования получили название dithering (разрежение, дрожание).
Рассмотрим методы дизеринга. Простейшим вариантом дизеринга можно считать создание оттенка цвета парами соседних пикселов.
Если рассмотреть ячейки из двух пикселов (рис. 2.15), то ячейка номер 1 дает оттенок цвета С:
где С1 и С2 - цвета, которые графическое устройство непосредственно способно воссоздать для любого пиксела. Числовые значения С1, С и С2 можно рассчитать в полутоновых градациях или в модели RGB - в отдельности для любого компонента.
Рис. 2.15. Ячейки
Пример растра с использованием ячеек из двух пикселов приведен на рис. 2.16. Как видим, для создания промежуточного оттенка (С) ячейки образуют вертикальные линии, которые очень заметны. Для того чтобы человек воспринял это как сплошной оттенок, необходимо, чтобы угловой размер ячеек был меньше одной угловой минуты. Можно изменять положения таких ячеек в растре, располагая их, например, по диагонали. Это лучше, но не намного.
Рис. 2.16. Простейший дизеринг
Наиболее часто используют квадратные ячейки больших размеров. Приведем пример ячеек размером 2x2 (рис. 2.17). Такие ячейки дают 5 градаций, из них три комбинации (1, 2, 3) образуют новые оттенки.
Предоставим также примеры ячеек других размеров (рис. 2.18).
Рис. 2.17. Ячейки 2x2
Рис. 2.18. Ячейки 3x3 предоставляют 10 градаций
Расчет цвета, который соответствует одной из комбинаций пикселов в ячейке, можно выполнить следующим образом. Если пикселы ячейки могут быть только двух цветов (С1 и С2), то необходимо подсчитать часть площади ячейки для пикселов каждого цвета. Цвет ячейки С можно оценить соотношением
где S - общая площадь ячейки; S1 и S2 - части площади, занятые пикселами цветов С1 и С2 соответственно, причем S1 + S2 = S. Проще всего, если пикселы квадратные, а их размер равняется шагу расположения пикселов. Примем площадь одного пиксела за единицу. В этом случае площадь, занятая пикселами в ячейке, равняется их количеству (рис. 2.19).
Рис. 2.19. Площадь определяется количеством пикселов
S = 25, S1 = 20, S2 = 5, C = (20 C1 + 5 C2) /25
Итак, если в ячейке размерами n x n использованы два цвета, то с помощью этой ячейки можно получить n2 + 1 разных цветовых градаций. Две комбинации пикселов ячейки - если все пикселы ячейки имеют цвет С1 или С2 - дают цвет соответственно С1 или C2. Все другие комбинации дают оттенки, промежуточные между С1 и С2.
Можно считать, что ячейки размером пхп образуют растр с разрешающей способностью в n раз меньшей, чем у начального растра, а глубина цвета возрастает пропорционально n2. Для характеристики изображений, которые создаются методом дизеринга, используют термин - линиатура растра. Линиатура вычисляется как количество линий (ячеек) на единицу длины - сантиметр, миллиметр, дюйм. В последнем случае единица измерения для линиатуры - lpi (по аналогии с dpi).
Как реализовать метод дизеринга в графической системе? Рассмотрим примеры преобразования растрового изображения размером pxq с определенной глубиной цвета в другой растр, предназначенный для отображения с помощью графического устройства, в котором используется ограниченное количество основных цветов. В таком случае надо выбрать размеры ячейки тхп, которые обеспечивают достаточное количество цветовых градаций. Потом любой пиксел растра превращается в пиксел растра отображения. Это можно осуществить двумя способами.
Первый способ. Любой пиксел заменяется ячейкой из mxn пикселов. Это самое точное преобразование по цветам, но размер растра увеличивается и составляет mpxnq пикселов.
Второй способ. Здесь размеры растра не изменяются. Цвет любого пиксела преобразованного растра вычисляется следующим образом.
• Определяем координаты пиксела (х, у) для преобразуемого растра.
• Находим цвет пиксела (х, у).
• По цвету пиксела находим номер (к) ячейки, наиболее адекватно представляющей этот цвет.
• По координатам (х, у) вычисляем координаты пиксела внутри ячейки:
• Находим цвет (С) пиксела ячейки с координатами (хk, уk ).
• Записываем в преобразованный растр пиксел (х, у) с цветом С.
Такой способ можно использовать не для любых вариантов расположения пикселов в ячейках. Конфигурации пикселов должны быть специально разработаны для таких преобразований. Одно из требований можно сформулировать так. Если ячейки разработаны на основе двух цветов, например, белого и черного, а градации изменяются пропорционально номеру ячейки, то необходимо, чтобы ячейка с номером (i) для более темной градации серого содержала бы все черные пикселы ячейки номер (i - 1).
Рассмотрим пример изображения, созданного на основе ячеек 5x5. Для создания такого изображения специально была выбрана небольшая разрешающая способность, чтобы подчеркнуть структуру изображения. Ячейки образуют достаточно заметный квадратный растр (рис. 2.20).
Рис. 2.20. Пример квадратного растра с ячейками 5x5
Для улучшения восприятия изображения можно использовать другое расположение ячеек, например, диагональное (рис 2.21).
2.21. Диагональное расположение ячеек 5x5
Диагональное расположение можно получить, если сдвигать четные строки ячеек. А для того чтобы получить диагональную структуру растра, подобную той, что используется для печати газет, можно использовать квадратное расположение ячеек другого типа (рис. 2.22).
Рис. 2.22. Диагональная структура - ячейки другого типа
Для всех приведенных выше примеров дизеринга ячейки образуют точки переменного размера с постоянным шагом. Однако часто используется другой подход - переменная плотность расположения точек постоянного размера. Такой способ получил название частотной модуляции (ЧМ) (рис. 2.23).
Рис. 2.23. ЧМ-ячейки 6x6
Положительная черта способа ЧМ - меньшая заметность структуры растра. Однако его использование усложнено в случае, когда размер пикселов больше, чем шаг. Начиная с определенной плотности, пикселы смыкаются. Кроме того, на дискретном растре невозможно обеспечить плавное изменение плотности (частоты), в особенности для ячеек небольшого размера.
Для изображений, созданных методом ЧМ-дизеринга, растрирование менее заметно (рис. 2.24).
Рис. 2.24. Диагональное расположение ЧМ-ячеек 5x5
Общим недостатком методов, использующих регулярное расположение одинаковых ячеек, является то, что всегда образуется текстура, появляется муар, лишние контуры. Одной из важных задач исследований в этой области считалась разработка таких вариантов ячеек, которые обуславливают наименее заметную растровую структуру (кроме тех случаев, когда наоборот, такую структуру нужно подчеркнуть для создания изображения в стиле гравюры).
Другой разновидностью дизеринга являются методы, в которых вообще не используются ячейки. Одним из популярнейших методов дизеринга в настоящее время является "'error diffusion" метод Флойда-Стейнберга. Он обеспечивает высокое качество изображений и часто используется в драйверах принтеров и графических редакторах (рис. 2.25).
Рис. 2.25. Дизеринг методом «error-diiffusion» Флойда-Стейнберга
Рассмотрим алгоритм Флойда-Стейнберга. При обработке первой строки растра для первого пиксела цвет (С) заменяется на ближайший из возможных (X). Например, пиксел серого цвета заменяется соответствующим черным или белым. Для этого пиксела вычисляется ошибка Ε = С - Х. Эта ошибка в пропорции (7/16, 5/16, 3/16, 1/16) распределяется по соседним пикселам (отсюда и название метода - "error diffusion "). При обработке следующего пиксела рассматривается уже сумма его собственного цвета плюс значение ошибки, которое дошло к этому пикселу. Как распространяется ошибка - это зависит от направления сканирования строки (рис. 2.26).
Рис. 2.26. Добавление частей ошибки Направления сканирования
к соседним символам
Для уменьшения вероятности образования регулярных узоров рекомендуется соседние строки сканировать в противоположных направлениях - "змейкой".
Этот метод был предложен для градаций серого, однако, он с успехом используется, например, для преобразования 24-битных изображений в 256-цветные.
2.4. Базовые растровые алгоритмы
Алгоритмы вывода прямой линии
Рассмотрим растровые алгоритмы для отрезков прямой линии. Предположим, что заданы координаты ( x1, yl - х2, у2) концов отрезка прямой. Для вывода линии необходимо закрасить определенным цветом все пикселы вдоль линии. Для того чтобы закрасить любой пиксел, необходимо знать его координаты.
Наиболее просто нарисовать отрезок горизонтальной линии.
Вычисление текущих координат пиксела выполняется как приращение по x (необходимо, чтобы х1 ≤ х2), а вывод пиксела обеспечивается специальной функцией.
Аналогично рисуется отрезок вертикали.
В цикле вывода горизонтального и вертикального отрезков выполняются простейшие операции - приращение на единицу, проверка на "< =" и запись пиксела в буфер растра. Поэтому операция рисования таких отрезков выполняется быстро и просто. Ее используют как базовую операцию для других операций, например, в алгоритмах заполнения полигонов.
Можно задать такой вопрос: какая линия рисуется быстрее - горизонталь или вертикаль? На первый взгляд - одинаково быстро. Если учитывать только математические аспекты, то скорость должна быть одинаковой при равной длине отрезков линий, поскольку в обоих случаях выполняется одно и то же количество одинаковых операций. Однако если кроме вычисления координат анализировать вывод пикселов в конкретный растр, то могут быть отличия. В растровых системах рисование пиксела обычно означает запись одного или нескольких битов в память, где сохраняется растр. И здесь уже не все равно — по строкам или по столбцам заполняется растр. Необходимо учитывать логическую организацию памяти компьютера, в которой хранятся биты или байты растра. Даже для компьютеров одного типа (например, персональных компьютеров) для разных поколений процессоров и памяти скорость записи по соседним адресам может существенно отличаться от скорости записи по не соседним адресам. В особенности это заметно, если для растра используется виртуальная память с сохранением отдельных страниц на диске и (или) в оперативной памяти (RAM). При работе графических программ в среде операционной системы Windows часто случается так, что горизонтали рисуются быстрее вертикалей, так как в каждой странице памяти сохраняются соседние байты - пикселы вдоль горизонтали растра. Подобный эффект также имеет место при использовании кэш-памяти. А может быть, что RAM достаточно, и даже весь растр размещается в кэше, а скорости рисования все же отличаются. Например, если используется черно-белый растр в формате один бит на пиксел, то для вертикали битовая маска одинакова для всех пикселов линии, а для горизонтали маску нужно изменять на каждом шаге. Здесь необходимо заметить, что рисование черно-белых горизонталей можно существенно ускорить, если записывать сразу восемь соседних пикселов - байт в памяти.
Горизонтали и вертикали представляют собой частный случай линий. Рассмотрим линию общего вида. Для нее также необходимо вычислять координаты любого пиксела. Известны несколько методов расчетов координат точек линии.
Прямое вычисление координат
Пусть заданы координаты конечных точек отрезка прямой. Найдем координаты точки внутри отрезка.
Запишем соотношения катетов для подобных прямоугольных треугольников:
Перепишем это соотношение как х =f(y):
а также как y =F(x):
В зависимости от угла наклона прямой выполняется цикл по оси х или по у (рис. 2. 27).
Рис. 2.27. Отрезок прямой
Рис. 2.28. Общая схема алгоритма вывода отрезка прямой линии
Положительные черты прямого вычисления координат.
1. Простота, ясность построения алгоритма.
2. Возможность работы с нецелыми значениями координат отрезка.
Недостатки.
1. Использование операций с плавающей точкой или целочисленных операций умножения и деления обуславливает маленькую скорость. Однако это зависит от процессора, и для разных типов компьютеров может быть по-разному. В современных компьютерах, в которых процессоры используют эффективные средства ускорения (например, конвейер арифметических операций с плавающей точкой), время выполнения целочисленных операций уже не намного меньше. Для старых компьютеров разница могла составлять десятки раз, поэтому и старались разрабатывать алгоритмы только на основе целочисленных операций.
2. При вычислении координат добавлением приращений может накапливаться ошибка вычислений координат.
Последнюю разновидность прямого вычисления координат, рассмотренную здесь, можно было бы назвать "инкрементной". Но такое название получили алгоритмы другого типа.
Инкрементные алгоритмы
Брезенхэм предложил подход, позволяющий разрабатывать так называемые инкрементные алгоритмы растеризации. Основной целью при разработке таких алгоритмов было построение циклов вычисления координат на основе только целочисленных операций сложения/вычитания без использования умножения и деления. Были разработаны инкрементные алгоритмы не только для прямых, но и для кривых линий.
Инкрементные алгоритмы выполняются как последовательное вычисление координат соседних пикселов путем добавления приращений координат. Приращения рассчитываются на основе анализа функции погрешности. В цикле выполняются только целочисленные операции сравнения и сложения/вычитания. Достигается повышение быстродействия для вычислений каждого пиксела по сравнению с прямым способом.
Рассмотрим пример работы приведенного выше алгоритма Брезенхэма для отрезка (х1у1 - х2у2) = (2, 3 - 8, 6). Этот алгоритм восьмисвязный, то есть при выполнении приращений координат для перехода к соседнему пикселу возможны восемь случаев (рис. 2.29).
Рис. 2.29. Восьмисвязность
Известны также четырехсвязные алгоритмы (рис. 2. 30).
Рис. 2.30. Четырехсвязность
Четырехсвязные алгоритмы проще, но они генерируют менее качественное изображение линий за большее количество тактов работы. Для приведенного примера четырехсвязный алгоритм работает 10 тактов, а восьмисвязный - только 7.
Кривая Безье
В начале 70-х годов профессор Пьер Безье, проектируя на компьютере корпуса автомобилей «Рено», впервые применил для этой цели особый вид кривых, описываемых уравнением третьего порядка, которые впоследствии стали известными под названием кривые Безье (функция Bezier).
Поскольку эти линии имеют особое значение как для растровой, так и векторной графики, имеет смысл рассмотреть их более подробно.
Кривые Безье описываются в параметрической форме: x = Px(t), y = Py(t),
Значение t выступает как параметр, которому соответствуют координаты отдельной точки линии. Параметрическая форма описания может быть удобнее для некоторых кривых, чем задание в виде функции у =ƒ(х), поскольку функция ƒ(х) может быть намного сложнее, чем Px(t) и Py(t), кроме того, ƒ(x) может быть неоднозначной.
Многочлены Безье для Рx и Рy имеют такой вид:
Px(t) = , и Py(t)=
где xi и yi - координаты точек-ориентиров Рi, а величины - это известные из комбинаторики, так называемые сочетания (они также известны как коэффициенты бинома Ньютона):
=
Значение m можно рассматривать и как степень полинома, и как значение, которое на единицу меньше количества точек-ориентиров.
Рассмотрим кривые Безье, классифицируя их по значениям т.
т = 1 (по двум точкам)
Кривая вырождается в отрезок прямой линии, которая определяется конечными точками Ро и Р1, как показано на рис. 2. 31:
P(t) = (1-t) P0 + t1
m=2 (по трем точкам, рис.2. 32):
P(t) = (1-t)2 P0 + 2t (1-t) P1 + t2P2
Рис. 2.31. Кривая Безье (m=1) Кривая Безье (m=2)
т = 3 (по четырем точкам, кубическая, рис 2.32). Используется довольно часто, в особенности в сплайновых кривых:
P(t) = (1-t)3P0 + 3t (1-t)2 P1 + 3 t2(1-t)P2 + t3P3
Рис. 2.32. Кубические кривые Безье (m=3)
Геометрический алгоритм для кривой Безье
Этот алгоритм позволяет вычислить координаты (х, у) точки кривой Безье по значению параметра t.
1. Каждая сторона контура многоугольника, который проходит по точкам -ориентирам, делится пропорционально значению t.
2. Точки деления соединяются отрезками прямых и образуют новый многоугольник. Количество узлов нового контура на единицу меньше, чем количество узлов предшествующего контура.
3. Стороны нового контура снова делятся пропорционально значению t. И так далее. Это продолжается до тех пор, пока не будет получена единственная точка деления. Эта точка и будет точкой кривой Безье (рис. 2.33).
Рис. 2.33. Геометрический алгоритм для кривых Безье
Алгоритмы вывода фигур
Фигурой здесь будем считать плоский геометрический объект, который состоит из линий контура и точек заполнения, которые помещаются внутри контура. Контуров может быть несколько - например, если объект имеет внутри пустоты (рис. 2.34). В некоторых графических системах одним объектом может считаться и более сложная многоконтурная фигура - совокупность островов с пустотами.
Графический вывод фигур делится на две задачи: вывод контура и вывод точек заполнения. Поскольку контур представляет собой линию, то вывод контура проводится на основе алгоритмов вывода линий. В зависимости от сложности контура, это могут быть отрезки прямых, кривых или произвольная последовательность соседних пикселов.
Рис. 2.34. Пример фигуры
Для вывода точек заполнения известны методы, которые разделяются в зависимости от использования контура на два типа: алгоритмы закрашивания от внутренней точки к границам произвольного контура и алгоритмы, которые используют математическое описание контура.
Алгоритмы закрашивания
Рассмотрим алгоритмы закрашивания произвольного контура, который уже нарисован в растре. Сначала определяются координаты произвольного пиксела, находящегося внутри очерченного контура фигуры. Цвет этого пиксела изменяем на нужный цвет заполнения. Потом проводится анализ цветов всех соседних пикселов. Если цвет некоторого соседнего пиксела не равен цвету границы контура или цвету заполнения, то цвет этого пиксела изменяется на цвет заполнения. Потом анализируется цвет пикселов, соседних с предшествующими. И так далее, пока внутри контура все пикселы не перекрасятся в цвет заполнения.
Пикселы контура образуют границу, за которую нельзя выходить в ходе последовательного перебора всех соседних пикселов. Соседними могут считаться только четыре пиксела (сосед справа, слева, сверху и снизу — четырехсвязность), или восемь пикселов (восьми-связность). Не всякий контур может считаться границей закрашивания, например, для восьмисвязного алгоритма (рис. 2. 35).
Рис. 2.35. Особенности восьмисвязного
закрашивания – выход за границу контура
на следующих шагах закрашивания
Простейший алгоритм закрашивания. Для всех алгоритмов закрашивания нужно задавать начальную точку внутри контура с координатами х0, у0. Простейший алгоритм можно описать всего двумя шагами.
Алгоритм закрашивания линиями. Данный алгоритм получил широкое распространение в компьютерной графике. От приведенного выше простейшего алгоритма он отличается тем, что на каждом шаге закрашивания рисуется горизонтальная линия, которая размещается между пикселами контура. Алгоритм также рекурсивный, но поскольку вызов функции осуществляется для линии, а не для каждого отдельного пиксела, то количество вложенных вызовов уменьшается пропорционально длине линии. Это уменьшает нагрузку на стековую память компьютера и обеспечивает высокую скорость работы.
Алгоритмы заполнения, которые используют математическое описание контура
Математическим описанием контура фигуры может служить уравнение у = f (x) для контypa окружности, эллипса или другой кривой. Для многоугольника (полигона) контур задается множеством координат вершин (хi, уi). Возможны и другие формы описания контура. Общим для рассматриваемых ниже алгоритмов есть то, что для генерации точек заполнения не нужны предварительно сформированные в растре пикселы границы контура фигуры. Контур может вообще не рисоваться в растре ни до, ни после заполнения.
Рис. 2.36. Заполнение
прямоугольника
Заполнение прямоугольников. Среди всех фигур прямоугольник заполнять наиболее просто. Если прямоугольник задан координатами противоположных углов, например, левого верхнего (х1, у1) и правого нижнего (х2, у2), тогда алгоритм может состоять в последовательном рисовании горизонтальных линий заданного цвета (рис. 2.36).
Заполнение круга. Для заполнения круга можно использовать алгоритм вывода контура. В процессе выполнения этого алгоритма последовательно вычисляются координаты пикселов контура в границах одного октанта. Для заполнения следует выводить горизонтали, которые соединяют пары точек на контуре, расположенные симметрично относительно оси y (рис. 2.37, слева).
Так же можно создать и алгоритм заполнения эллипса.
Заполнение полигонов. Контур полигона определяется вершинами, которые соединены отрезками прямых - ребрами (рис. 2.37, справа). Это - векторная форма описания фигуры.
Рассмотрим один из наиболее популярных алгоритмов заполнения полигона. Его основная идея - закрашивание фигуры отрезками прямых линий. Удобней использовать горизонтали. Алгоритм представляет собою цикл вдоль оси у, в ходе этого цикла выполняется поиск точек пересечения линии контура с соответствующими горизонталями. Этот алгоритм получил название XY.
Рис. 2.37. Заполнение круга Пример полигона
В этом алгоритме использовано топологическое свойство контура фигуры. Оно состоит в том, что любая прямая линия пересекает любой замкнутый контур четное количество раз (рис. 2.38). Для выпуклых фигур точек пересечения с любой прямой всегда две.
Рис. 2.38. Заполнение полигона
При нахождении точек пересечения горизонтали с контуром необходимо принимать во внимание особые точки. Если горизонталь имеет координату (у), совпадающую с координатой yi вершины Рi тогда надлежит анализировать то, как горизонталь проходит через вершину. Если горизонталь при этом пересекает контур, как, например, в вершинах Р0 ли Р4, то в массив записывается одна точка пересечения. Если горизонталь касается вершины контура (в этом случае вершина соответствует локальному минимуму или максимуму, как, например, в вершинах Р1, Р2, Р3 или Р5), тогда координата точки касания или не записывается, или записывается в массив два раза. Это является условием четного количества точек пересечения, хранящихся в массиве {хj}.
Процедура определения точек пересечения контура с горизонталью, учитывая анализ на локальный максимум, может быть достаточно сложной. Это замедляет работу. Радикальным решением для упрощения поиска точек пересечения может быть сдвиг координат вершин контура или горизонталей заполнения таким образом, чтобы ни одна горизонталь не попала в вершину.
Сдвиг можно выполнять разными способами, например, ввести в растр дробные координаты для горизонталей; ymin + 0.5, ymin + 1.5,..., ymin - 0.5. Но такое упрощение процедуры нахождения точек пересечения приводит к некоторому искажению формы полигона.
Для определения координат (х) точек пересечения для каждой горизонтали необходимо перебирать все n ребер контура. Координата пересечения peбра pi - pk c горизонталью (у) равняется
x = xi + (уk - у)(хк- хi )/(уk - уi).
Количество тактов работы этого алгоритма:
N тактов ≈ (ymax - ymin) N гор
где ymax, ymin - диапазон координат y, Νгоρ - число тактов, нужных для одной горизонтали. Оценим величину Νгоρ как пропорциональную числу вершин
N гор ≈ k n
где к – коэффициент пропорциональности,
n – число вершин полигона.
Возможна модификация приведенного алгоритма для ускорения его работы. Например, можно принять во внимание то, что каждая горизонталь обычно пересекает небольшое количество ребер контура. Поэтому, если при поиске точек пересечения делать предшествующий отбор ребер, которые находятся вокруг каждой горизонтали, то можно добиться уменьшения количества тактов работы с Nгор = к ∙ n до к. ∙ nр, где np - количество отобранных ребер. Например, разделим диапазон ymin -ymax пополам. Если для диапазона от ymin до yср, составить список ребер (или вершин), попадающих в этот диапазон, то в список будет включено приблизительно вдвое меньшее количество, чем для всего диапазона от ymin до ymax. Почему приблизительно - ибо это зависит от размещения вершин контура полигона. Таким образом, при работе алгоритма для каждой горизонтали в диапазоне от ymin до yср уже нужно не (к. ∙ п) тактов, а (k · n/2).
Аналогично для диапазона уср - ymах также можно составить список ребер, который также будет почти вдвое меньшим. Если принять, что подсчеты для каждой горизонтали теперь выполняются за вдвое меньшее количество тактов, а именно за (Nгор /2), то общее число тактов:
N тактов ≈ (ymax - ymin) N гор / 2 + Νдоп
где Νдоп – количество тактов, которые необходимы при создании списка ребер.
Такой способ повышения быстродействия заполнения полигонов эффективен для большого количества вершин. Контур можно делить не пополам, а на более мелкие части - соответственно повышается скорость.
Приведенные выше алгоритмы заполнения могут быть использованы не только для рисования фигур. На основе алгоритмов заполнения могут быть разработаны алгоритмы для других целей. Например, для определения площади фигуры (если считать площадь пропорциональной количеству пикселов заполнения). Или, например, алгоритм для поиска объектов по внутренней точке - эта операция часто используется в векторных графических редакторах.
Логическое условие будет определять стиль линии. Например, если условием будет четность значения С, то получим линию из разрозненных точек. Для рисования пунктирной линии можно анализировать остаток от деления С на S. Например, если рисовать пикселы линии только при С mod S < S/2, то получим пунктирную линию с длиной штрихов S/2. шаг штрихов - S.
При выводе полилиний, а также сплайновых кривых, аппроксимируемых прямолинейными отрезками, необходимо предотвратить обнуление значения счетчика в начале каждого отрезка и обеспечить продолжение непрерывного прироста вдоль всей сложной линии. Иначе будут нестыковки пунктира. Использование переменной-счетчика затруднено при генерации пунктирных линий в алгоритмах, которые используют симметрию, например, при выводе окружности или эллипса. Здесь необходимо обеспечивать стыковку пунктира на границах октантов или квадрантов.
Стиль заполнения
Кисть и текстура
При выводе фигур могут использоваться разные стили заполнения. Простейшее - сплошное заполнение - это когда все пикселы внутри контура фигуры имеют одинаковый цвет. Для обозначения стилей заполнения, отличных от сплошного, используют такие понятия, как кисть и текстура. Их можно считать синонимами, однако, понятие «текстура» обычно используется применительно к трехмерным объектам, а "кисть" - при изображении двумерных объектов. Текстура - это стиль заполнения, закрашивание, которое имитирует внешний вид, материал поверхности, рельефность трехмерного объекта.
Для описания алгоритмов заполнения фигур в определенном стиле, используется тот же способ, что и для описания алгоритмов рисования линий. Описание всех разновидностей подобных алгоритмов можно дать с помощью такой обобщенной схемы:
Например, в алгоритме вывода полигонов пикселы заполнения рисуются в теле цикла горизонталей, а все другие операции предназначены для расчета координат (х, у) этих пикселов. При сплошном заполнении С = const. Для других стилей нам нужно в течение цикла вывода фигуры как-то изменять цвет пикселов заполнения, чтобы получить определенный узор. Преобразуем алгоритм заполнения таким образом:
Функция ƒ(х, у) будет определять стиль заполнения. Аргументами функции цвета являются координаты текущего пиксела заполнения. Однако в отдельных случаях эти аргументы не нужны. Например, если цвет С вычислять как случайное значение в определенных границах: С = random(), то можно создать иллюзию шершавой матовой поверхности (рис. 2.39).
Другой стиль заполнения - штриховой (рис. 2.40). Для него функцию цвета также можно записать в аналитической форме:
где S - период, Τ - толщина штрихов, Сш - цвет штрихов, Сф - цвет фона.
Если не рисовать пикселы фона, то можно создать иллюзию полупрозрачной фигуры. Подобную функцию можно записать и для других типов штриховки. Аналитическая форма описания стиля заполнения позволяет достаточно просто изменять размеры штрихов при изменении масштаба показа, что весьма удобно для использования, например, в векторных графических системах. Недостаток аналитической формы - сложность формул для описания естественных материалов, поскольку большое количество вычислительных операций на каждый пиксел заполнения существенно уменьшает скорость визуализации.
Рис. 2.39. Матовая поверхность Рис. 2.40. Штриховка
Наиболее часто при использовании кистей и текстур используется наложение специально изготовленных растровых изображений. Такой алгоритм заполнения можно описать вышеупомянутой общей схемой, если строку С = f(x,у) заменить двумя другими строками:
Преобразование координат пиксела заполнения (х, у) в координаты внутри образца кисти можно выполнить таким образом:
xT = x mod m,
yT = y mod n,
где т, n - размеры растра образца кисти по горизонтали и вертикали. При этом координаты (хТ, уТ) попадают в диапазон хТ = 0... m - 1, уТ = 0... n - 1 при любых значениях х и у. Таким образом, обеспечивается циклическое копирование фрагментов кисти внутри области заполнения фигуры (рис. 2.41).
Рис. 2.41. Копирование растра кисти
Удобно, когда размеры кисти равняются степени двойки. В этом случае вместо операций взятия остатка (mod) можно использовать более быстрые для цифровых компьютеров поразрядные двоичные операции. Приведем пример быстрого вычисления остатка от деления на 16.
Еще один пример. Если необходимо вычислить (X mod 256), а значение X записано в регистре АХ микропроцессора (совместимого с 80x86), то для выполнения такой операции достаточно взять содержимое младшей байтовой части этого регистра - AL.
Для пикселов текстур часто употребляется название тексел.
Растровые текстуры и кисти широко используются в современной компьютерной графике, в том числе и в 3D-графике. Для отображения трехмерных объектов часто применяются полигональные поверхности, каждая грань отображается с наложенной текстурой. Поскольку объекты обычно показываются из разных ракурсов - повороты, изменения размеров и т. п., необходимо соответственно трансформировать и каждую грань с текстурой. Для этого используются проективные текстуры.
Общая схема алгоритма заполнения контуров полигонов для проективных текстур такая же, как приведенная выше. Однако растровый образец здесь представляет всю грань, а преобразование координат из (х, у) в (хT, уT) сложнее.
Для параллельной проекции можно использовать аффинное преобразование:
xT = Ax +By + C,
yT = Dx + Ey +F,
где коэффициенты A, В,..., F являются константами при пересчете координат всех пикселов для отдельной текстурированной грани. Такое преобразование координат можно использовать, если привязать текстуру к грани по трем опорным точкам. Пример наложения проективной текстуры приведен на рис. 2.42.
Рис. 2.42. Наложение проективной текстуры (1,2, 3 - опорные точки грани)
Привязывание по трем точкам соответствует системе уравнений
xTi = Axi +Byi + C,
yTi = Dxi + Eyi +F,
где i = 1, 2, 3. По известным координатам (хTi, yTi ) и (хi, уi ) можно найти коэффициенты А, В,..., F, если решить систему линейных уравнений.
Эта система распадается на две независимые системы третьего порядка. Для упрощения записи заменим xTi, на Хi а уTi на Yi:
X1 = Ax1 +By1 + C, Y1 = Dx1 +Ey1 + F,
X2 = Ax2 +By2 + C, и Y2 = Dx2 +Ey2 + F,
X3 = Ax3 +By3 + C, Y3 = Dx3 +Ey3 + F,
Для решения систем линейных уравнений известно много способов. Используем способ детерминантов. Решение первой системы для коэффициентов А, В и С можно записать в виде:
A = det A / det,
B = detB / det,
C = det C / det,
где – это главный детерминант системы,
а детерминанты dеtA, dеtB и detC получаются заменой соответствующих столбцов в det столбцом свободных членов
Если главный детерминант равняется нулю, то это означает; что решить систему невозможно. Это может быть, например, тогда, когда все три точки (х1, y1), (х2, y2) и (х3, у3) располагаются вдоль прямой линии. Однако в этом случае рисовать текстуру и не нужно - грань мы видим с торца. Вычислить детерминант третьей степени можно, например, с помощью "правила Саррюса" . Для этого справа нужно дописать первые два столбца, а потом прибавить (отнять) произведение по диагоналям:
Вычислим главный детерминант
Преобразуем выражение так, чтобы уменьшить количество умножений:
det = x1 (y2-y3) + x2 (y3-y1) + x3(y1-y2)
Аналогично вычисляются detA и detB. Детерминант detC - самый сложный. Но его вычислять не обязательно. Запишем решение системы в следующем виде:
A = det A/det = (X1(y2-y3) + X2 (y3-y1) + X3(y1-y2))/det,
B = det B/det = (x1(X2-X3) + x2 (X3-X1) + x3(X1-X2))/det,
C = X1 - Ax1 By1
Таким же способом решаем систему уравнений для D, Ε и F.
D = (Y1(y2-y3) + Y2 (y3-y1) + Y3(y1-y2))/det,
E = (x1(Y2-Y3) +x2 (Y3-Y1) + x3(Y1-Y2))/det,
F = Y1 - Dx1 - Ey1
Здесь главный детерминант det совпадает с детерминантом первой системы уравнений - для А, В и С.
Наложение текстур в центральной (перспективной) проекции осуществляется сложнее, чем в параллельной проекции. Рассмотрим рис. 2.43, на котором изображен текстурированный прямоугольник.
Рис. 2.43. Прямоугольник в разных проекциях
Прямоугольник в параллельной проекции всегда выглядит как параллелограмм, поскольку для этой проекции сохраняется параллельность прямых и отношение длин. В перспективной (центральной) проекции это уже не параллелограмм и не трапеция (в косоугольной - трапеция), поскольку параллельность и отношение длин здесь не сохраняются. А что сохраняется? Как изображать плоские грани?
Здесь уместно вспомнить, как формируется изображение в определенной проекции средствами компьютерной графики. Последовательность преобразований координат выглядит так:
Если считать, что точки текстуры должны соответствовать точкам на объекте, то координаты текстуры должны связываться с мировыми координатами. Поскольку для параллельной проекции в цепочке от мировых координат к экранным все преобразования линейные, то целиком допустимо связать координаты текстуры с экранными координатами одним аффинным преобразованиям.
Для перспективной проекции так делать нельзя. Преобразование координат из видовых - в координаты плоскости проецирования - нелинейное. Поэтому экранные координаты сначала следует преобразовать в такие, которые линейно связаны с мировыми - это могут быть, например, видовые. А потом видовые координаты (или непосредственно мировые) связать с координатами текстуры аффинным преобразованием, используя, например, метод трех точек.
Рассмотрим, как можно выводить в перспективной проекции полигон с текстурой. Будем использовать алгоритм заполнения полигона горизонтальными линиями, раньше уже рассмотренный нами. На рис. 2.46 изображена одна из горизонталей (АВ). Вершины полигона (1-2-3-4) здесь заданы экранными двумерными координатами. Для краткости изложения будем считать, что экранные координаты совпадают с координатами в плоскости проецирования. В ходе вывода полигона для связи с текстурой будем вычислять видовые координаты произвольной точки (Р) этого полигона. Для этого будем использовать как базовую такую операцию: по известным видовым координатам концов отрезка находим видовые координаты точки отрезка, заданной координатами в плоскости проецирования.
Рис. 2.44. Полигон
Для определения видовых координат X, Y, Ζ точки А должны быть известны видовые координаты концов отрезка (1-2). Для видовых координат справедливы соотношения:
= =
Выберем пропорцию, которая связывает, например, координаты Х и Ζ. Тогда
X = a +Zb,
где a = X1 - Z1(X2 - X1)/(Z2-Z1), b = (X2 - X1)/(Z2-Z1)
Теперь запишем для перспективной проекции соотношения между видовыми координатами произвольной точки и координатой Хn в плоскости проецирования:
Xn = X (Zk - Zпл) / (Zk - Z)
где Zk - это координата камеры (точки схода лучей проецирования), Znл - координата плоскости проецирования. Перепишем это уравнение так:
X = c + Zd,
где c = XnZk / (Zk - Zпл), d = -Xn / (Zk - Zпл).
Теперь решим систему уравнений:
X = a + Zb,
X = c + Zd
Решением системы будет:
Z =
после чего вычисляется X, например, по формуле X = а + Zb. Для определения координаты Υ достаточно заменить всюду в формулах X на Υ. Здесь можно заметить, что вычисление видовых координат (X. Υ, Ζ) по известным координатам проекции соответствует обратному проективному преобразованию.
Найдя видовые координаты точки А, мы можем так же вычислить видовые координаты и для точки В, лежащей на отрезке (3-4). Аналогично определяются видовые координаты точки Р.
Следует отметить, что для преобразования координат необходимо вычислять дробно-линейные выражения, что может существенно замедлить цикл визуализации. Поэтому часто используют упрощенные вычисления координат. Также используется комбинирование методов - для небольших треугольных граней (которые являются небольшими в текущем ракурсе обзора) используют только аффинные преобразование, а для больших полигонов выполняют вычисления с учетом перспективы.
Для наложения текстур на поверхности объектов используются и другие преобразования координат.
Если в ходе анимации изменять координаты привязывания текстуры, то можно получить интересные видеоэффекты.
Одна из проблем наложения текстур состоит в том, что преобразования растровых образцов (повороты, изменение размеров и т. п.) приводят к ухудшению качества изображения. Повороты растра прибавляют ступенчатости {aliasing); увеличение размеров укрупняет пикселы, а уменьшение размеров растра приводит к потере многих пикселов образца текстуры, появляется муар.
Одним из методов улучшения визуализации текстурированных объектов является использование нескольких образцов текстур с разной детализацией - MIPmaps (MIP от лат. Multum In Parvo - много в одном). Компьютерная система в течение цикла визуализации сама выбирает подходящий образец текстуры с нужной разрешающей способностью.
Для улучшения текстурированных изображений также используют методы фильтрации растров текстур, например, билинейную фильтрацию (рис. 2.45).
Билинейная фильтрация выполняется так. Пусть текущий тексел имеет координаты х, у. Сначала интерполируются соответственно координате x цвета пар ближайших пикселов А-В и C-D. Потом выполняется интерполяция полученных значений соответственно координате y. Также используются другие, более сложные способы фильтрации, например, трилинейная и анизотропная фильтрация. Трилинейная фильтрация объединяет билинейную фильтрацию и интерполяцию разных уровней текстур MIPmaps. Анизотропная фильтрация — самая совершенная, она учитывает также текущую пространственную ориентацию текстурированных граней.
Рис. 2.45. Билинейная
фильтрация
При использовании текстур необходим достаточный объем памяти компьютера - количество растровых образцов может достигать десятков, сотен в зависимости от количества типов объектов и многообразия пространственных сцен. Чтобы как можно быстрее создавать изображение, необходимо сохранять текстуры в оперативной памяти, а если это позволяет видеоадаптер - то в памяти видеоадаптера.
Для экономии памяти, которая выделяется для текстур, можно использовать блочное текстурирование. Текстура здесь уже не представляет всю грань целиком, а лишь отдельный фрагмент, который циклически повторяется в грани. Это делается так же, как размножение рисунка кисти при закрашивании полигонов, которые уже рассмотрены нами в этом параграфе. Разумеется, не для всех объектов можно использовать такой способ отображения, однако, например, для образцов массовой "коробочной" архитектуры в этом плане есть практически неограниченные возможности.
При формировании растровых изображений объектов главное - для любого пиксела объекта установить нужный цвет. Иногда не очень важно, какой именно метод используется для расчетов цветов. Например, можно моделировать законы оптики и на основе определенных моделей делать расчеты освещения объектов в ходе цикла визуализации. Тем не менее, например, для компьютерной игры это можно осуществить намного более легким способом - просто наложить предварительно изготовленную текстуру.
Поскольку обычно наложение текстуры осуществляется быстрее создания теней путем геометрических расчетов или трассировки лучей, то это позволяет достичь высокой скорости визуализации. Однако, на этом пути возникают проблемы обеспечения надлежащей разрешающей способности текстуры.
Еще один пример использования текстуры - в качестве карты прозрачности. Цвет любого пиксела текстуры здесь определяет прозрачность соответствующей точки поверхности объекта.
Можно также использовать текстуру для имитации зеркального отражения, однако, ее корректное использование возможно только для одного ракурса обзора объектов.
Известны также текстуры для имитации рельефа (Bump Mapping). Иллюзия искривления поверхности средствами bump-текстурирования достигается изменением направления нормали.
Нормаль к поверхности для каждой точки изменяется соответственно значению тексела. Таким образом можно имитировать, например, волны. Поскольку иллюзия рельефности здесь создается не искривлением поверхности, а только соответствующей локальной подсветкой или затемнением, то возможности отображения рельефа методом bитр-текстурирования существенно ограничены, в том числе и ракурсом показа. Если смотреть на плоскую грань с торца, то она - плоская, как ее не закрась.
Таким образом, для задания многих свойств поверхности объекта можно использовать одну или несколько текстур. В настоящее время употребляется термин multitexturing - многослойное наложение текстур.
Наложение двух и больше текстур предусматривает задание определенной функции комбинирования (смешивания) текселов.
Безусловно, можно предложить и более сложные способы наложения многослойных текстур - надо разрабатывать соответствующие функции комбинирования. Можно считать, что здесь мы снова возвращаемся к аналитическому, процедурному, описанию стиля заполнения - только теперь мы используем в формулах также и текстуры.
Шейдеры
Развитие методов и технологий текстурирования, стремление использовать гибкие процедурные методы закрашивания привели к появлению понятия шейдер. Шейдер (от англ. shade - затемнять, здесь не путать shade с shadow - тень, шейдер затемняет, а не затеняет - для получения изображения теней от объектов в графике используются пока что не шейдеры, а другие средства) - это небольшая программа, которая содержит набор инструкции для расчета цветов пикселов объектов в ходе цикла визуализации. Фактически, шейдеры, немного в другом виде, использовались уже давно в графических пакетах для создания спецэффектов в кино (например, в пакете Maya). При создании спецэффектов для записи кадров кинофильма не очень нужен режим реального времени, каждый кадр может генерироваться минуту и дольше, главное здесь - это качество изображения.
Современные графические процессоры способны выполнять для любого пиксела десятки и сотни шейдерных команд в реальном времени.
Сейчас существуют два типа шейдеров - вершинные (vertex shaders) и пиксельные (pixel shaders). Вершинные шейдеры предназначены для вычисления координат вершин полигонов и выполнения расчетов освещения, например, методом Гуро. Их можно считать альтернативой для стандартных возможностей аппаратных средств T&L (transform and lighting). Вершинный шейдер может обрабатывать все данные, относящиеся к одной вершине - координаты вершины, координаты нормали, текстурные координаты, цвет, освещение и т. п.
Пиксельные шейдеры появились сначала как способ описания наложения пикселов многослойных текстур. Теперь они содержат разнообразные операции обработки цветов отдельных пикселов.
Шейдеры оперируют такими типами данных - целые числа, числа с плавающей тонкой, тройки RGB, векторы, матрицы. Приведем формат одной команды шейдера для DirectX Graphics
где: op — имя команды,
Как видим, язык команд шейдеров фактически является ассемблером. Для разработки шейдерных программ можно использовать API DirectX (8. 0 и следующих версий), OpenGL 2. 0 (шейдерные операции частично поддерживаются в расширениях OpenGL версий 1. 2 и 1. 3). Также разработаны специальные языки программирования для шейдеров, например, Cg от nVidia .
Общие сведения о шейдерных возможностях некоторых современных видеоадаптеров предоставлены в табл. 2.2.
Таблица 2.2
Характеристики шейдерных возможностей видеоадаптеров
Характеристика
nVidia NV30
ATI Radeon 9700
Пиксельные шейдеры
Наложение текстур
До 16
До 16
Текстурные инструкции
До 1024
До 160
Цветовые инструкции
До 1024
До 160
Тип данных
Плавающая точка
Плавающая точка
Максимальная точность
128 бит
128 бит
Вершинные шейдеры
Инструкции
До 65536
До 1024
Статические инструкции
До 256
До 1024
Регистры
16
16
Циклы
256
Нет
2.5. Инструменты растровых графических пакетов
К фундаментальным инструментам растровой графики относятся такие инструменты обработки изображений, как:
• инструменты выделения;
• каналы и маски;
• инструменты ретуширования;
• гистограммы;
• кривые;
• инструменты для цветовой (цветовой баланс) и тоновой коррекции (уровни);
• фильтры (спецэффекты);
• слои
Инструменты выделения. Каналы и маски
Растровое изображение в отличие от векторного не содержит объектов, которые можно легко «расцепить для выполнения их индивидуального редактирования. Поэтому для создания, например, коллажей (фотомонтажей) из отдельных фрагментов нескольких изображений каждый из них предварительно необходимо выделить. Такая работа, напоминающая вырезание кусков изображений из бумаги ножницами, называется процессом выделения (или обтравки) изображений. Выделение (Selection) – это область, ограниченная замкнутой рамкой выделения в виде движущейся пунктирной линии (контура), которая отмечает часть изображения, доступную для копирования, редактирования и выполнения различных типов преобразований. На жаргоне программистов эта пунктирная линия получила название маршируюшие муравьи». Она отделяет выделенную область от защищенной области.
Маски – это один из базовых инструментов профессиональных растровых редакторов. В подтверждение этому можно напомнить, что в простейшем растровом редакторе МS Раiпt, поставляемом в составе ОС Windows, возможность работы с масками отсутствует. В то же время в нем поддерживаются выделения.
Хотя концепции маски и выделения тесно связаны, понятие маски шире. Всякая маска включает в себя два типа областей: непрозрачные и прозрачные. Первые используются для защиты закрываемых ими частей изображений или объектов от нежелательных изменений. Они, собственно, и выполняют функцию маскирования. Прозрачные области можно рассматривать как отверстия в маске. Их используют для выделения фрагментов изображения или объекта, которые собираются модифицировать. Эти области называются выделенной областью, или выделением (обтравкой).
Таким образом, маска не есть нечто противоположное выделению. Противоположными свойствами обладают части маски, а именно защищенные и выбранные (выделенные) области. Соотношение между этими частями не является постоянным. В процессе работы над изображением оно может изменяться за счет увеличения доли одной из них и соответственно уменьшения доли другой. Для этой цели в растровых редакторах имеется специальный набор инструментов выделения.
Терминологическая эквилибристика
Свой вклад в неоднозначность терминов «маска» и «выделение» вносят названия родственных инструментов в различных программах растровой графики. Так, в Рhotoshop эти инструменты называются инструментами выделения, а в Согеl РНОТО-РАINТ в их названии присутствует слово «маска». Хотя ин том и другом случае они используются для нанесения на изображение выделенных областей. Аналогично команды по работе с масками и выделениями в РНОТО-РАINT представлены в меню Маsk, а в Рhotoshop в меню Select.
Выделение
Под термином выделение (или выделенная область) будем понимать области изображений и объектов, доступные для перемещения, копирования, редактирования и выполнения любых других преобразований. И наоборот, термин маска используется для обозначения областей изображений и объектов, защищенных от применения перечисленных операций.
Понятие маски возникло не на пустом месте. По смыслу и назначению оно близко к понятию трафарета. Представьте себе художника, вырезающего из ватмана трафарет какого-либо слова. Затем он набивает по этому трафарету текст поролоновой губкой, смоченной в краске. При этом часть краски попадает в прорезанные отверстия, а часть остается на трафарете, который и выполняет в данном случае роль защитной маски.
Количество цветовых каналов определяется количеством базовых цветов в используемой цветовой модели. Так, изображение в формате Grayscale имеет один канал, в цветовых моделях RGВ и L*a*b – три канала, а в модели СМYК - четыре канала. В растровых редакторах цветовые каналы генерируются автоматически при создании или открытииизображения. Наряду с цветовыми каналами, число которых жестко определено типом используемой цветовой модели, в растровых редакторах возможно использование дополнительных каналов (альфа-каналов), количество которых ограничено только возможностями компьютера. Эта разновидность каналов широко используется для ретуширования, компоновки и локальной коррекции изображений.
Назначение этого типа каналов тесно связано с понятием маски. Более того, фактически каждый такой канал представляет собой маску. Поэтому создание маски приводит к одновременному созданию альфа-канала, в который помещается «серое» изображениемаски. Чтобы более четко понять связь этих двух понятий, давайте остановимся на физической природе маски. Внешне маска напоминает трафарет. Если же говорить техническим языком, то маска сама является изображением. Это изображение помещается поверх другого изображения, над фрагментами которого мы собираемся выполнить определенные операции. Для любого пикксела маски значение оттенка серого цвета можно изменять в пределах 256 градаций серого (от 0 до 255). Область маски со значением цвета пикселов, равного 0 (черный), полностью защищает изображение от изменений (собственно, и служит маской). Область, пикселы которой имеют значение 255 (белый), полностью открыта для проведения изменений. Такая область называется выбранной (выделенной).
Частично защищенные пикселы также входят в выбранную область и изображаются оттенками серого. Степень изменений, примененных к выбранной области или ее части, можно задать назначением прозрачности выделения.
Инструменты выделения и маскирования
Современные графические редакторы располагают разнообразными инструментами выделения. По принципу формирования выделенных областей их можно разделить на четыре группы.
Обычные (геометрические), использующие для построения выделений разнообразные геометрические формы: прямоугольную, квадратную, круглую и эллиптическую.
Инструменты выделения от «руки». Типичным примером таких инструментов являются: Лассо в Рhotoshор и Freehand Маsk в Согеl РНОТО-РАINТ. Они используются для выделения объектов сложной формы путем их обводки.
Инструменты выделения контуров (раth tools) похожи на инструменты предыдущей группы. Однако в данном случае выделенные области представляют собой векторные объекты. Благодаря этому такие выделения имеют ряд преимуществ перед обычными (растровыми) выделениями:
• требуют для своего хранения меньший объем памяти;
• предоставляют возможность импорта в векторные программы, такие как Аdobe Illustrator, СогеlDRAW и Freehand;
• дают возможность масштабирования без потери качества;
• более просты для прецизионного редактирования формы выделения, поскольку состоят из управляющих точек (узлов), которые можно перемещать для настройки нужной формы контура выделения.
Цветочувствительные, в которых выделенная область изображения определяется цветом изображения. В основе работы этих инструментов лежит назначение двух параметров:
- базового цвета, выбираемого щелчком мыши на соответствующей точке изображения;
- диапазона цветов, близких к базовому.
Такое количество инструментов выделения обусловлено разнообразием задач, решаемых при редактировании изображения. В одном случае вам могут понадобиться точные геометрические формы выделения, в другом - прецизионные нерегулярные формы объектов и, наконец, в третьем - области изображения, включающие в себя определенный диапазон цветов, например цвета неба.
С помощью инструментов выделения можно создавать два типа выделений.
• Простые, реализация которых требует выполнения одной операции.
• Сложные выделения строятся на базе двух или более простых выделений.
Ретушь
Традиционно инструменты ретуширования изображений предназначены для восстановления поврежденных изображений, например, для ретуши фотографий.
Ретушь (retouch) - коррекция изображения с целью устранения мелких дефектов, исправления тонального и цветового балансов.
С другой стороны, для дизайнеров в области рекламы и маркетинга основной целью ретуширования является украшение изображения, придание ему большей убедительности. Для реализации этого может потребоваться выполнение двух групп операций:
• устранить детали, мешающие созданию нужного эффекта. Обычно это морщины на лице, блики и мелкие посторонние предметы;
• добавить некоторые детали, чтобы подчеркнуть (усилить) нужный эффект.
Изображения могут иметь царапины, пятна и другие дефекты локального характера. В этом случае процесс ретуширования можно выполнить без применения выделений или масок, используя лишь входящие в состав используемого вами пакета инструментальные средства локального улучшения.
Отметим наиболее часто используемые средства ретуширования: инструмент клонирования, инструменты размытия, инструменты повышения резкости, инструменты осветления и затемнения. Они выполняют несколько функций.
Инструменты клонирования (Сlоning Тооls) предназначены для копирования деталей из одного места изображения (неповрежденного) в другое (поврежденное). Типичным примером такого инструмента является Штамп. Клонирование рекомендуется применять для удаления дефектов сканирования, следов пыли, царапин пятен путем замены на тона и детали того же или другого изображения, сходного по цвету или более совершенного.
Инструменты размытия (Blur) и повышения резкости (Sharpen) позволяют соответственно локально снижать или усиливать контраст между пикселами изображения. Так, локальное ослабление нежелательных подробностей (морщин, нездорового цвета кожи и т. д.) позволит акцентировать внимание на главных деталях изображения, маскируя второстепенные детали. В то же время локальное увеличение резкости может привлечь внимание к каким-то особенностям изображения (например, блеск драгоценностей), что составляет основу рекламы производимых изделий или имиджа человека, использующего эти изделия.
Инструменты сглаживания минимизируют различия между соседними оттенками в тех местах, где проходит кисть. Они применяются для удаления морщин, складок на одежде, случайного шума, наложенного на изображение при сканировании, а также для сглаживания границ между исходными и клонированными с помощью соответствующего инструмента участками изображения.
Инструменты Осветления (Dodge) и Затемнения (Burn) делают объекты более светлыми или тусклыми. Эти средства предназначены для коррекции освещенности или изменения значения яркости, чтобы выделить или скрыть отдельные детали.
Хотя большинство фильтров предназначено для применения к изображению специальных эффектов (об этом подробнее будет сказано ниже в соответствующем разделе), некоторые из них могут быть полезными для ретуширования изображений. В большинстве случаев для получения нужного эффекта их следует использовать в совокупности с масками и выделениями.
К наиболее полезным типам фильтров для решения задач ретуширования можно отнести следующие:
• Нерезкое маскирование (Unsharp mask) и Фильтры усиления краев (Edge-Sharpening filters). С их помощью можно повышать контраст и подчеркивать детали изображения. Локальное использование их для целей ретуширования позволяет усилить одни детали изображения по сравнению с другими.
• Размытия (Blur) и Смягчения (Soften). Эти группы фильтров позволяют удалять дефекты сканирования и сглаживать второстепенные детали.
• Добавление шума (Noise). За счет добавления шума в небольшую выделенную область можно скрыть некоторые дефекты изображения или замаскировать нарушающие гармонию детали изображения.
Гистограммы
Инструмент Гистограмма (Histogram) позволяет оценить разброс между минимальной и максимальной яркостью изображения (динамический диапазон). С его помощью можно получить также наглядное представление о распределении всех тонов в изображении. Поэтому неудивительно, что гистограмма является одним из основных средств, используемых для контроля за тональными и цветовыми настройками изображения. Гистограммой называется график, отображающий распределение пикселов изображения по яркости.
При построении этого графика по оси Х откладываются значения яркостей в диапазоне от 0 (черный) до 255 (белый), а по оси Y - количество пикселов, имеющих соответствующее значение яркости.
Человек, впервые сталкивающийся с этим понятием, может усомниться в его важности. Однако после приобретения определенного практического опыта одного взгляда на гистограмму бывает достаточно, чтобы понять, какие тоновые области изображения нуждаются в коррекции и в какой именно.
В том случае, если вы хотите улучшить плохое изображение (или плохо отсканированное изображение), анализ его гистограммы позволит установить, стоит этим заниматься или лучше отсканировать его заново. С помощью гистограммы вы можете также определить пути и способы дальнейшей коррекции изображения.
Если основная масса пикселов изображения смещена к одному из краев графика, вы вряд ли вы сможете спасти изображение с помощью коррекции. И наоборот, достаточно равномерное распределение пикселов вдоль всей оси Х позволяете уверенностью сказать, что изображение может быть улучшено.
С помощью гистограммы (рис. 2.50) вы также можете оценить тоновый диапазон изображения, то есть определить, какие тоновые области доминируют: тени (темные области), света (светлые области) или средние тона. Так, изображение, залитое серым однородным тоном, будет характеризоваться гистограммой, содержащей один пик в области средних тонов.
Термины тени (shadows), средние тона (midtones) и света (highlights) используются в графических редакторах для обозначения соответственно темных, средних и светлых тонов изображения.
Можно просматривать гистограммы распределения цветов по отдельным цветовым каналам, данное средство расширяет возможности использования этого инструмента и позволяет выполнять тонкую настройку.
• «Гребенка» с большим количеством пиков и провалов говорит о том, что изображение сильно зашумлено или же уже было подвергнуто компьютерной обработке.
• Пики в непосредственной близости к левому/правому краю гистограммы говорят о том, что на изображении присутствуют большие области черного/белого с потерей деталей в них. Изображений, в которых присутствие таких областей оправдано, не так уж много - например, силуэты. В остальных же случаях присутствие таких областей на изображении является серьезным недостатком и может быть результатом, например, неправильной экспозиции (коррекции не подлежит) или же отсечения светов/теней при сканировании.
Тоновая коррекция изображения
Смысл тоновой коррекции состоит в придании изображению максимального динамического диапазона.
Тон – уровень (градация, оттенок) серого цвета. Тоновое изображение имеет непрерывную шкалу градаций серого от белого до черного. Для одного канала число таких градаций равно 256.
В свою очередь, это напрямую связано с настройкой яркости изображения. Для оценки и коррекции яркости и контрастности изображения (его тоновой коррекции) профессиональные растровые редакторы предоставляют широкий набор средств, среди которых можно отметить:
• два мощных универсальных инструмента – Уровни (Levels) и Кривые (Curves);
• более простые инструменты, например Яркость/Контраст (Brightness/Contrast), предназначенные для устранения наиболее грубых дефектов типа недостаточной яркости или повышенной контрастности.
Уровни (Levels)
В основе работы данного инструмента лежит использование гистограмм. Однако в отличие от рассмотренной в предыдущем разделе команды Histogram (Гистограмма) здесь этот инструмент выполняет активную функцию, позволяя изменять динамический диапазон изображения.
Познакомимся с предоставляемым Уровнями набором элементов настройки. Наряду с гистограммой, выполняющей функции основного индикатора настройки изображения, здесь имеются поля для ввода численных значений параметров и кнопки инструментов.
Остановимся на назначении основных групп параметров. Параметры раздела Входные уровни (Input Levels) используются для установки новых значений черной и белой точек изображения, что позволяет сократить диапазон яркостей изображения и повысить его контрастность. Для этих целей можно воспользоваться перемещением находящихся над гистограммой треугольников либо ввести численные значения в соответствующие поля ввода. Например, установка в левом поле значения 30 приведет к тому, что все цвета, имеющие значение яркости меньше этой величины, станут черными, и соответственно ввод значения 220 в правом поле приведет к обращению в максимум всех яркостей в диапазоне 220-255. В результатё диапазон яркостей исходного изображения понизится с 255 до 195, а контрастность возрастет. Следует помнить, что при выполнении такого преобразования информация, содержащаяся в тоновых диапазонах 0 - 30 (светах) и 220 - 255 (тенях), будет потеряна. Однако при неудовлетворительном результате всегда можно воспользоваться кнопкой Отмена (Саnсеl) или экспериментировать с копией исходного изображения.
Между крайними треугольниками, характеризующими значение светов и теней изображения, расположен третий треугольник, который предназначен для управления яркостью в области средних тонов изображения. Этот элемент управления в растровой графике имеет специальное название – коэффициент гамма (гамма - коэффициент контраста в средних тонах изображения), а действия, выполняемые путем перемещения среднего треугольника, называют настройкой гаммы. Установка значения этого параметра меньше 1 (это значение задается по умолчанию) приводит к затемнению изображения, и наоборот, больше 1 – к осветлению изображения в области средних тонов. В обоих случаях происходит изменение контрастности изображения.
Параметрами раздела Выходные уровни (Output Levels) можно управлять точно так же, как и входными параметрами. Однако в отличие от них, здесь перемещение левого треугольника приводит к осветлению более темных пикселов (теней), и наоборот, перемещение правого треугольника затемняет более светлые пикселы (света). Например, задан в левом поле значение, равное 40, вы настраиваете на эту величину яркость самого темного пиксела, что приводит к повышению уровня освещенности изображения. Аналогичным образом с помощью правого поля ввода можно установить новое, более низкое, значение самого светлого пиксела. В итоге это приводит к снижению контрастности изображения.
Нажатие кнопки Авто (Auto) является альтернативой выполнения специальной команды Автоуровни (Auto Levels). Оно приводит к запуску процедуры автоматической тоновой коррекции, сущность которой состоит в отбрасывании заранее установленного количества самых светлых и самых темных пикселов изображения. По умолчанию эти значения равны 5%. Обычно использование этого средства приводит к неудовлетворительным результатам.
Сущность белой и черной точек
Белой точкой (White point) называется то место изображения, где оно выглядит очень светлым, но при этом в нем еще можно различить какие-то детали изображения. Белую точку в изображении можно задать искусственно более темной. В этом случае все элементы изображения, более светлые, чем указанные данным инструментом, будут полностью белыми без видимых деталей. Установка нового значения белой точки позволяет для некоторых изображений расширить тональный диапазон без потери деталей в светах и повысить четкость средних тонов. Однако необходимо учесть, что нельзя указывать в качестве белой точки отблески от блестящих предметов (например, от металлических никелированных или хромированных деталей), поскольку в этих частях изображения нет вообще никаких видимых деталей.
Черной точкой (Black point) называется то место изображения, где оно выглядит очень темным, но при этом в нем еще можно различить какие-то детали изображения. Черную точку в изображении можно задать искусственно более светлой, указан в изображении на более светлое место. В этом случае все элементы изображения, более темные, чем указанные данным инструментом, будут полностью черными без видимых деталей. Установка нового значения черной точки позволяет для некоторых изображений расширить тональный диапазон без потери деталей в тенях и повысить четкость средних тонов.
Кривые
По принципу действия команда Кривые близка к команде Уровни. Только здесь для настройки яркости изображения в окне диалога Кривые (Curves) вместо гистограммы используется инструментальное средство, известное под именем кривая (в локализованных версиях растровых редакторов встречаются и другие термины - настроечная кривая и градационная кривая).
В момент открытия окна диалога Кривые (Curves) его основное инструментальное средство - настроечная кривая - предстает в виде прямой линии с наклоном 45. Это говорит о том, что все входные и выходные пикселы имеют идентичные значения яркости.
Кривые уже давно используются в сканерах и графических системах высокого класса для подготовки изображений к печати. В последнее время они активно применяются в профессиональных графических пакетах, являясь одним из самых мощных и тонких средств регулирования тона и цвета изображения.
Кривая (curves) – это график, с помощью которого осуществляется преобразование спектрального диапазона исходного изображения (входные данные) к спектральному диапазону скорректированного изображения (выходные данные). В некоторых источниках это инструментальное средство называют также яркостная кривая, настроечная кривая и градационная кривая.
Иными словами, кривая – это инструмент для одновременного изменения контраста во многих яркостных диапазонах изображения. Этим она отличается от гистограмм (и соответственно инструмента Уровни), в которой для настройки яркости используются только три области (света, тени и средние тона). По умолчанию в исходном виде кривая представляет собой прямую линию с наклоном в 45°, что соответствует линейному возрастанию уровней яркости от темного тона к светлому. В процессе редактирования кривой вы изменяете конечные (выходные) уровни яркости относительно исходной (входной) прямой линии.
Для RGB-изображений на кривой отображаются значения яркости в диапазоне от 0 до 255 градаций, причем в левой части графика расположены тени (0). В случае использования CMYK-изображений в качестве единиц измерения используются проценты от 0 до 100. В этом случае, наоборот, в левой части графика отображаются света (0). Для инвертирования расположения на графике областей теней и светов нажмите на кнопку в форме двойной стрелки под кривой.
Устанавливая наклон кривой более 45° (выпуклая кривая), вы расширяете диапазон тонов или цветов, входящих в соответствующие области изображения, делая его контрастнее и детальнее. Наоборот, установка вогнутой кривой приводит к сужению диапазона тонов и, как следствие, - к уменьшению контраста.
Цветовая коррекция и цветовой баланс
В современных графических системах для получения качественных изображений (таких, как рекламные объявления и обложки журналов) используется технологическая цепочка, включающая сканирование изображения с последующей его цветокоррекцией. Для выполнения операции цветокоррекции может быть использовано программное обеспечение, поставляемое в комплекте со сканером, или растровые графические редакторы.
Цветокоррекция - изменение цветовых параметров пикселов (яркости, контрастности, цветового тона, насыщенности) с целью достижения оптимальных результатов.
К наиболее распространенным средствам, используемым для повышения качества цветных изображений, можно отнести следующие команды:
Цветовой баланс - соотношение цветов в изображении. Регулировка цветового баланса позволяет усилить или ослабить один цвет за счет другого дополнительного (комплементарного ему).
Для того чтобы понять сущность цветового баланса, вернемся к понятию цветового круга. Если вы забыли порядок следования цветов, обратитесь к рис. 2.46.
Рис. 2.46. Цветовой круг
На цветовом круге каждый цвет имеет противоположный (комплементарный) ему цвет. Перемещаясь по прямой, соединяющей точку с заданным цветом и центр круга, вы попадете в точку с комплиментарным ему цветом. Красный цвет комплементарен голубому, зеленый - пурпурному, желтый - синему. В основе коррекции цвета с помощью команды Баланс цветов (Со1ог balance) лежит уменьшение величины избыточной цветовой составляющей за счет усиления ее комплементарного цвета. Увеличение красного цвета приводит к уменьшению голубого, и, наоборот, снижение красного увеличивает содержание в изображении голубого цвета.
Более подробно о цветовых моделях компьютерной графики, в том. числе о цветовой коррекции и цветовом балансе будет рассказано в главе 5.
Фильтры (Plug-ins) и спецэффекты (Effects)
Большинство фильтров (filters или plug-ins) предназначено для создания специальных эффектов, например имитации мозаики или живописного стиля Ван-Гога. С помощью трехмерных спецэффектов двухмерные графические программы способны трансформировать плоское двухмерное изображение в объемное. Группа художественных эффектов позволяет за считанные минуты превратить обычную фотографию в произведение живописи. При этом можно имитировать самые разные виды живописи (масло, акварель и т. п.) и стили любых художников.
Фильтры и спецэффекты представляют собой небольшие программы, выполняющие заранее установленную последовательность команд. Они автоматически вычисляют значения и характеристики каждого пиксела изображения и затем модифицируют их в соответствии с новыми значениями. Например, при применении к изображению фильтра Размывка движением (Motion Blur) идет анализ значений всех входящих в изображение пикселов и сдвиг этих значений в определенном направлении для создания иллюзии движения.
Большинство современных графических программ поддерживает возможность применения фильтров, разработанных третьими фирмами под стандарт Adobe Photoshop. Например, Согеl РНОТО-PAINT также поддерживает подключаемые модули других фирм и содержит в своем составе фильтры, разработанные для Аdоbе Photoshор. Эти модули называются подключаемыми (Plug-ins). Их использование расширяет функциональные возможности программы.
Имея под «рукой» подключаемые фильтры, вы можете творить чудеса, диапазон которых ограничен только вашей фантазией и ресурсами используемой вами системы. Для иллюстрации возможностей подключаемых фильтров мы коснемся в этом разделе четырех эффектов, часто применяемых для обработки изображений: размывание; увеличение резкости; тиснение; акварельный эффект.
Процесс размывания сводится к перераспределению цветов изображения и смягчению резких границ. При увеличении резкости, наоборот, подчеркиваются различия между цветами смежных пикселов и выделяются незаметные детали. Тиснение преобразует изображение так, что фигуры внутри изображения смотрятся, будто выдавленные на металлической поверхности, как профиль Ленина на лицевой стороне юбилейных рублей. Акварельный эффект превращает фотографическое изображение в картинку, как будто бы написанную акварелью.
С алгоритмической точки зрения получение специальных эффектов не представляет особого труда. Секрет каждого из них кроется в крошечной матрице чисел, которую называют ядром свертки. Матрица размером 3 х 3 содержит три строки по три числа в каждой. Для преобразования каждого пиксела изображения необходимо выполнить следующие действия:
• Шаг 1. Значение цвета пиксела умножается на число в центре ядра (а22).
• Шаг 2. На следующем шаге выполняется умножение восьми значений цветов пикселов, окружающих центральный пиксел, на соответствующие им коэффициенты ядра с последующим суммированием всех девяти значений. В результате получается новое значение цвета преобразуемого пиксела.
• Шаг 3. Для каждого пиксела изображения повторяется процесс, включающий выполнение шагов 1 и 2. Данную процедуру принято называть фильтрацией изображения.
Коэффициенты ядра свертки определяют результат процесса фильтрации. Их формирование зависит от типа эффекта. Например, ядро размывания состоит из совокупности коэффициентов, каждый из которых меньше 1, а их сумма составляет 1. Это означает, что каждый пиксел поглощает что-то из цветов соседей, но полная яркость изображения остается неизменной (если сумма коэффициентов больше 1, яркость увеличится; если меньше 1, яркость уменьшится). В ядре резкости центральный коэффициент больше 1, а окружающие его значения являются отрицательными числами, сумма которых на единицу меньше центрального коэффициента. Таким образом достигается увеличение существующего контраста между цветом пиксела и цветами его соседей. Это звучит немного мистически, но цифровое изображение, в конце концов, всего лишь связка чисел. Изменяя эти числа правильным способом, можно прийти к удивительным и, возможно, очень полезным спецэффектам.
Пример 1. Алгоритм работы фильтра Размывание
1. При подготовке к размыванию цифровое изображение считывается в память компьютера в виде красного, зеленого и синего компонентов цвета каждого пиксела.
2. Ядро размывания размером 3 х 3 применяется к красному, зеленому и синему компонентам цвета каждого пиксела изображения. Значение цвета пиксела (который, собственно, находится в центре ядра) вычисляется умножением соответствующего весового коэффициента на соответствующее ему значение цвета в изображении с последующим суммированием результатов. Итоговое изображение получается размытым по сравнению с оригиналом, потому что цвет каждого пиксела выровнялся (усреднился) благодаря влиянию соседей.
3. Степень размывания можно увеличить одним из трех способов:
• использованием большего размера ядра для распределения цвета среди большего числа соседей (в окне диалога этого фильтра значение размера ядра задается установкой параметра Радиус (Radius) в пикселах);
• подбором коэффициентов ядра и уменьшением влияния центрального коэффициента,
• повторной фильтрацией изображения с тем же ядром размывания.
Пример 2. Алгоритм работы фильтра Тиснение
В изображении, к которому применен эффект Тиснение, контуры кажутся выдавленными над поверхностью. Тиснение осуществляется почти так же, как размывание и увеличение резкости. Процесс производится над обычным цветным изображением.
1. Каждый пиксел в изображении обрабатывается ядром тиснения размером 3 х 3. В отличие от ядер размывания и резкости, в которых сумма коэффициентов равна 1, сумма весов в ядре тиснения равна 0. Это означает, что «фоновым» пикселам (пикселам, которые не находятся на границах перехода от одного цвета к другому) присваиваются нулевые значения, а не фоновым пикселам - значения, отличные от нуля.
2. После того как значение пиксела обработано ядром тиснения, к нему прибавляется значение 128. В результате фоновые пикселы окрасятся в средний серый цвет: красный - 128, зеленый - 128, синий - 128. Суммы, превышающие 255, можно округлить до 255 или взять остаток по модулю 255, чтобы значение оказалось между 0 и 255.
3. Направление подсветки изображения можно изменять, меняя позиции 1 и -1 в ядре. Если, например, поменять местами значения 1 и -1, то направление подсветки инвертируется.
Слои
Слои - один из основных инструментов растровой графики.
Слой (layer) - дополнительный уровень (холст) для рисования, метафора прозрачной кальки. Каждый слой сохраняет (повторяет) все параметры основного изображения (размеры, разрешение, цветовую модель, число каналов). Соответственно пропорционально количеству используемых слоев возрастает размер изображения. Так, добавление к фоновому слою нового слоя увеличивает размер файла изображения в два раза, двух слоев - в три раза и т. д.
Слой можно сделать невидимым, то есть вытащить стекло из стопки и убрать. Слои можно поменять местами, и тогда рисунки будут перекрывать друг друга иначе. Можно рисовать только на одном слое, совершенно не затрагивал другие.
Естественно, что если вы закрасите какой-то слой сплошным рисунком без дырок (или плотным сплошным цветом), то не увидите, что нарисовано на нижних слоях. Правда, компьютерная живопись позволяет сделать слой полупрозрачным. Если рисунки состоят в основном из линий и не закрашенных областей, то у вас будет просвечивать стол (фон), на котором лежат ваши стекла (или скатерть на этом столе).
2.6. Преимущества и недостатки растровой графики
Достоинства
Одним из достоинств растровой графики является простота и, как следствие, техническая реализуемость (автоматизация) ввода (оцифровки) изобразительной информации. Существует развитая система внешних устройств ввода изображений (к ним относятся сканеры, видеокамеры, цифровые фотокамеры, графические планшеты).
Растровое изображение имеет преимущества при работе с фотореалистичными объектами, например сценами природы или фотографиями людей. Дело в том, что наш мир создан как растровый. И его объекты трудно представить в векторном, то есть математическом, представлении. Фотореалистичность подразумевает, что в растровой программе можно получать живописные эффекты, например туман или дымку, добиваться тончайшей нюансировки цвета, создавать перспективную глубину и нерезкость, размытость и т. д.
Форматы файлов, предназначенные для сохранения точечных изображений, являются стандартными, поэтому не имеет решающего значения, в каком графическом редакторе создано то или иное изображение.
Недостатки
При первой же вашей попытке что-нибудь нарисовать в программе точечной графики - например, в Photoshop, - она потребует от вас принципиального решения о разрешении (количестве точек на единицу длины) и о глубине цвета (количестве цветовых битов на пиксел). Ничего этого знать в векторной программе не нужно. Объем файла точечной графики однозначно определяется произведением площади изображения на разрешение и на глубину цвета (если они приведены к единой размерности). При этом совершенно не важно, что отображено на фотографии: деревянный одноцветный столб или коллекция бабочек с обилием цвета и форм. Если три параметра одинаковы, размер файла будет практически одинаковым.
Как только вы попытаетесь отсканировать не очень большую фотографию с максимальными разрешением и глубиной цвета, эта картинка потребует для сохранения столько дискового пространства, что вы схватитесь за голову обеими руками. При попытке слегка повернуть на небольшой угол изображение, например, с четкими тонкими вертикальными линиями, четкие линии превращаются в четкие «ступеньки». Любые трансформации (повороты, масштабирование, наклоны) в точечной графике не бывают без искажений.
Невозможно увеличить изображение для рассмотрения деталей. Поскольку изображение состоит из точек, то увеличение изображения приводит только к тому, что эти точки становятся крупнее. Никаких дополнительных деталей при увеличении растрового изображения рассмотреть не удается. Более того, увеличение точек растра визуально искажает иллюстрацию и делает ее грубой (пикселизация). Текст в растровой графике оказывается проблемой. В большинстве растровых программ вы, как правило, редактируете текст во время его создания, но когда вы щелкаете мышью в каком-либо еще месте на экране, печатный символ закрепляется там, где он был бы нанесен на холст. Если нужно отредактировать уже набранный ранее текст, то нельзя просто поместить курсор между двумя буквами, удалить одну и начать снова набирать. С этой проблемой вы сразу столкнетесь, например, когда начнете работать в растровом графическом редакторе MS Paint. Кроме того, при большом разрешении файл растрового текста будет огромного размера.
Г л а в а 3. ВЕ КТОРНАЯ ГРАФИКА
Изображение, созданное в векторных программах, основывается на математических формулах, а не на координатах пикселов. Поэтому векторные файлы содержат наборы инструкций для построения геометрических объектов - линий, эллипсов, прямоугольников, многоугольников и дуг (рис. 3.1). В соответствии с этим основу векторных изображений составляют разнообразные линии или кривые, называемые векторами, или, по-другому, контурами. Каждый контур представляет собой независимый объект, который можно редактировать: перемещать, масштабировать, изменять. В соответствии с этим векторную графику часто называют также объектно-ориентированной графикой.
Рис. 3.1. Примитив векторного файла
Особенности терминологии
Каждый тип компьютерной графики имеет свою терминологию, математический аппарат и характерный для него набор инструментальных средств. Поэтому, несмотря на большое количество представленных на рынке векторных программ, все они в той или иной мере включают в свой состав общий базовый набор инструментальных средств.
В этой главе приведены с базовые термины и понятия векторной графики, составляющие ядро любой современной векторной программы. Основная сложность в реализации этой задачи - разнообразие терминов, используемых и различных программах для обозначения одних и тех же понятий. Ситуация еще более осложняется при переходе к локализованным версиям оригинальных продуктов. Даже в случае локализации различных версий одной и той же программы ни переводчики, ни редакторы не заботятся о сохранении преемственности в терминологии. Поэтому для профессиональной работы с графикой важно составить представление об особенностях используемой терминологии и базовых примитивах векторной графики.
3.1. Средства создания векторных изображений
Векторные изображения могут быть созданы несколькими видами программ.
• Программами векторной графики.
• Программами САПР, типичным представителем которых является программа AutoCAD. Ее векторный формат - DXF (Dynamic Exchange Format) понимается многими современными программами.
• Специализированными программами конвертирования растровых изображений в векторные. (CorelTrace 9 и Adobe Streamline).
К векторным объектам относятся также текст и PostScript-контуры вроде тех, которые можно найти также в файлах, созданных с помощью текстовых процессов типа MS Word или программ верстки типа PageMaker.
На платформе Windows наибольшее распространение из программ векторной графики получил редактор
Векторные редакторы и программы САПР являются наилучшим средством для построения шрифтовых и высокоточных графических объектов, таких как, например, конструкторские чертежи. Для таких иллюстраций принципиально важное значение имеет сохранение четких, ясных контуров независимо от размера изображения. Как правило, в векторном редакторе создается заготовка, затем она масштабируется до нужного размера и переводится в необходимый нам формат изображения.
Когда вы выводите на печать изображение, созданное в векторной программе, его качество зависит не от исходного разрешения изображения, а определяется разрешающей способностью устройств вывода (монитора, принтера, плоттера и т. п.). Именно благодаря тому, что качество векторного изображения не связано с разрешением, файлы векторных изображений имеют, как правило, меньший объем по сравнению с файлами растровых редакторов.
3.2. Сравнение механизмов формирования изображений в растровой и векторной графике
Проиллюстрируем разницу в механизмах работы растровых и векторных редакторов на примере описания одного и того же отрезка прямой:
• в векторном формате - задаются координаты начала и конца прямой, цвет и толщина линии. Для сохранения такой информации на диске потребуется всего несколько байтов памяти;
• в растровом формате - задаются координаты и цвет каждой точки (пиксела), входящей в этот отрезок прямой. А поскольку количество входящих в нее пикселов зависит от разрешения, то объем информации, необходимой для описания отрезка прямой (а значит, требуемый для ее запоминания объем памяти), будет определяться установленным разрешением.
Из приведенного примера видно, что векторный формат, как правило, более компактен (хотя сложные рисунки, содержащие сотни и тысячи объектов, могут иметь размеры, превышающие размеры растровых изображений). Вместе с тем он совершенно не пригоден для хранения сканированных изображений, например фотографий. А вот рисунки и чертежи гораздо удобнее и практичнее делать именно в векторном виде.
3.3. Структура векторной иллюстрации
Структуру любой векторной иллюстрации можно представить в виде иерархического дерева. В такой схеме сама иллюстрация занимает верхний уровень, а ее составные части занимают более низкие уровни иерархии. Для знакомства с основными элементами векторного изображения давайте откроем в одном из векторных редакторов (например, CorelDRAW) любую векторную иллюстрацию и выделим ее составные части, последовательно спускаясь с вершины дерева на его более нижние ветви. Самый верхний иерархический уровень занимает сама иллюстрация, объединяющая в своем составе объекты + узлы + линии + заливки.
1. Следующий уровень иерархии - объекты, представляющие собой разнообразные векторные формы. В большинстве редакторов для их отображения необходимо выбрать режим просмотра в виде каркаса.
2. Объекты иллюстрации состоят из одного или нескольких контуров. Контуры при этои могут быть замкнутыми и открытыми. Обычно все объекты в иллюстрации сгруппированы, поэтому для получения доступа к редактированию отдельных объектов иллюстрации их нужно сначала разгруппировать.
Контуром называется любая геометрическая фигура, созданная с помощью рисующих инструментов векторной программы и представляющая собой очертания того или иного графического объекта.
Типичными примерами контуров могут служить окружность, прямоугольник или другие графические элементы сложного изображения (в том числе и сегмент кривой линии).
Замкнутый контур - это замкнутая кривая, у которой начальная и конечная точки совпадают. Примером замкнутого контура является окружность. В некоторых редакторах замкнутый контур называют фигурой.
Открытый контур имеет четко обозначенные концевые точки. Синусоидальная линия, например, является открытым контуром.
3. Следующий уровень иерархии составляют сегменты, которые выполняют функции кирпичиков, используемых для построения контуров (каждый контур может состоять из одного или нескольких сегментов). Начало и конец каждого сегмента называют узлами, или опорными точками, поскольку они фиксируют положение сегмента, «привязывая» его к определенной позиции в контуре. Перемещение узловых точек приводит к модификации сегментов контура и к изменению его формы. Наряду с узлами в состав сегмента входят
также соединяющие узлы линии (прямые или кривые).
Закрытые контуры (формы) имеют свойство заполнения цветом, текстурой или растровым изображением (картой). На рис. 3.2 приведен пример одноцветной заливки контура.
Рис. 3.2. Анатомия векторного рисунка: узлы - линии - закрытый контур - открытый контур - заливки
Заливка – это цвет или узор, выводимый в замкнутой области, ограниченной кривой.
4. На самом нижнем уровне иерархии расположены узлы и отрезки линий, соединяющих между собой соседние узлы. Линии наряду с узлами выполняют функции основных элементов векторного изображения. Существует несколько типов линий и разновидностей узлов. Их названия и функциональное назначение будут рассмотрены ниже.
Простейшая незамкнутая линия имеет две вершины, называемые узлами (или концевыми точками). В двухмерной графике узел (точка) задается двумя числами (х, у),
В широком смысле любой из перечисленных здесь элементов иллюстрации, начиная от самой иллюстрации и кончая узлами и линиями, можно трактовать как объект. Поэтому в дальнейшем изложении мы иногда будем использовать термин «объект» в смысле элемента векторного рисунка.
3.4. Математические основы векторной графики
Если основным элементом растровой графики является пиксел (точка), то в случае векторной графики в роли базового элемента выступает линия. Это связано с тем, что в векторной графике любой объект состоит из набора линий, соединенных между собой узлами. Как уже отмечалось в предыдущем разделе, отдельная линия, соединяющая соседние узлы, называется сегментом (в геометрии ей соответствует отрезок). Сегмент может быть задан с помощью уравнения прямой или уравнения кривой линии, требующих для своего описания разного количества параметров. Для более полного понимания механизма формирования векторных объектов рассмотрим способы представления основных элементов векторной графики: точки, прямой линии, отрезка прямой, кривой второго порядка, кривой третьего порядка, кривых Безъе.
В векторной графике тачке соответствует узел. На плоскости этот объект представляется двумя числами (X, Y), задающими его положение относительно начала координат.
Для описания прямой линии используется уравнение Y = аХ + b. Поэтому для построения данного объекта требуется задание всего двух параметров: а и b. Результатом будет построение бесконечной прямой в декартовых координатах. В отличие от прямой, отрезок прямой требует для своего описания двух дополнительных параметров, соответствующих началу и концу отрезка (например, X1 и Х2).
К классу кривых второго порядка относятся параболы, гиперболы, эллипсы и окружности, то есть все линии, уравнения которых содержат переменные в степени не выше второй. В векторной графике эти кривые используется для построения базовых форм (примитивов) в виде эллипсов и окружностей. Кривые второго порядка не имеют точек перегиба. Используемое для описания этих кривых каноническое уравнение требует для своего задания пяти параметров:
х2 + a1y2 + а2ху + а3х + а4у + a5 = 0.
Для построения отрезка кривой требуется задать два дополнительных параметра.
В отличие от кривых второго порядка кривые третьего порядка могут иметь точку перегиба. Например, график функции Y = X3 (рис. 3.3) имеет точку перегиба в начале координат (0,0). Именно эта особенность данного класса функций позволяет использовать их в качестве основных кривых для моделирования различных природных объектов в векторной графике. Следует отметить, что упомянутые ранее прямые и кривые второго порядка являются частным случаем кривых третьего порядка.
Каноническое уравнение, используемое для описания уравнения третьего порядка, требует для своего задания девяти параметров:
х3 + a1y3 + a2 х2 у+ а3ху2 + а4х2 + а5у2 + а6ху + а7х + а8у + а9 = 0.
Для описания отрезка кривой третьего порядка требуется на два параметра больше. Кривые Безъе - это частный вид кривых третьего порядка, требующий для своего описания меньшего количества параметров - восьми вместо одиннадцати. В основе построения кривых Безье лежит использование двух касательных, проведенных к крайним точкам отрезка линии (рис. 3.3, справа). На кривизну (форму) линии влияет угол наклона и длина отрезка касательной, значениями которых можно управлять в интерактивном режиме путем перетаскивания их концевых точек. Таким образом, касательные выполняют функции виртуальных рычагов, позволяющих управлять формой кривой. Более подробно об этом будет сказано далее в разделе «Кривые Безье».
Рис. 3.3. Представление кривой линии с помощью кривых третьего порядка: слева - классический вариант; справа - кривая Беэье
3.5. Элементы (объекты) векторной графики
Познакомимся более детально с основными элементами векторного рисунка, рассмотренными ранее в подразделе «Структура векторной иллюстрации».
Линии
Как уже отмечалось, в основе векторной графики лежит использование математических представлений о свойствах контуров, основу которых составляет элементарный объект векторной графики линия. С ее помощью можно легко построить любой более сложный объект. Например, объект четырехугольник можно создать с помощью четырех линий, а куб - с помощью 12 линий или 6 четырехугольников. Таким образом, иллюстрация составляется из простых объектов, как из кубиков.
Благодаря этому процесс рисования а векторных редакторах фактически сводится к созданию контуров (объектов) нужной формы и приданию им определенных заливок и обводок. Этот принцип лежит в основе всех программ векторной графики. Различаются лишь приемы работы и некоторые специальные эффекты.
В то же время построение линии наряду с использованием для ее описания математического аппарата предполагает задание ряда дополнительных атрибутов, определяющих ее основные свойства: форму, толщину, цвет, стиль (сплошная, пунктирная и т. п.). Количество перечисленных атрибутов зависит от вида линии. Открытые линии, например, в отличие от замкнутых не имеют атрибута заливки (рис. 3.4). Замкнутые контуры кроме обводки могут иметь определенную пользователем заливку).
По умолчанию контуры объектов обычно не имеют толщины. Чтобы контур был виден на экране, ему придают обводку (абрис) определенной толщины, стиля (например, сплошная или пунктирная) и цвета. В большинстве редакторов выбор перечисленных атрибутов линии выполняется путем использования специальных библиотек, доступ к которым реализуется с помощью соответствующих окон диалога.
Рис. 3.4. Иллюстрация свойств векторного объекта Линия: 1) прямолинейный незамкнутый контур (линия), нарисованный в программе Corel XARA 2 инструментом Рисунок от руки (Freehand) при нажатой клавише Alt без атрибута обводки (слева) и с добавлением обводки (справа) толщиной 4 пункта (4pt); 2) замкнутая линия в виде эллипса без заливки (слева) и с заливкой(справа)
Кривые Безье
В настоящее время кривые Безье присутствуют практически в любом современном графическом пакете. Достаточно сказать, что все компьютерные шрифты состоят из кривых Безье. Кривые Безье находят также широкое применение и в растровой графике. Так, в программе Photoshop используется термин контур (path), базирующийся на кривых Безье. Именно с помощью этого инструмента вы можете выделить на сканированной фотографии нужный объект (например, для его вырезания), который будет использован при создании фотомонтажа.
Отрезками такой кривой можно аппроксимировать сколь угодно сложный контур. В этом случае он будет состоять из набора кривых Безье. В местах сочленений сформированная из отрезков кривой Безье линия может иметь изломы. Однако с помощью функции сглаживания (smooth) управляющие точки соседних отрезков легко выстраиваются в одну линию, после чего излом исчезает. Гибкость в построении и редактировании кривых Безье во многом определяется характеристиками узловых и управляющих точек, свойства которых будут рассмотрены в следующем разделе.
Появление кривых Безье вызвало настоящий переворот в видео и трехмерной графике. Это связано с тем, что до появления формул Безье контуры компьютерных персонажей были ломаными, поверхности - гранеными, а движение - прерывистым, скачкообразным, неестественным. Использование кривых Безье позволило реализовать наиболее общий и интуитивно понятный способ управления движением. В соответствии с ним параметрам кривой можно поставить в соответствие параметры движения компьютерного персонажа. В результате движение будет происходить по тем же рассмотренным нами правилам. Таким образом, знаменитая кривая используется не только в двухмерной компьютерной графике, но и в трехмерной графике, видео и анимаций.
Узлы (Опорные точки)
Наряду с линией (line) другим основным элементом векторной графики является узел (опорная точка). Как уже отмечалось, линии и узлы используются для построения контуров, которые могут быть представлены в виде прямой, кривой или формы. Каждый контур имеет несколько узлов.
В векторных редакторах (как, впрочем, и в растровых) форму контура изменяют путем манипуляции узлами. Это можно сделать одним из следующих способов:
• перемещением узлов;
• изменением свойств узлов (в том числе атрибутов связанных с ними касательных линий и управляющих точек, рис. 3.5);
• добавлением или удалением узлов.
Рис. 3.5. Невыделенные узловые точки
Таким образом, в основе всех процедур, связанных с редактированием (отчасти и созданием) любого типа контуров, лежит работа с узлами. Поэтому прежде, чем приступить к изучению процедур редактирования, давайте сначала познакомимся с типами узловых точек.
Касательные линии и управляющие точки
При выделении узловой точки криволинейного сегмента у нее появляются одна или две управляющие точки, соединенные с узловой точкой касательными линиями, Управляющие точки изображаются черными закрашенными точками. Расположение касательных линий и управляющих точек определяет длину и форму (кривизну) криволинейного сегмента, а их перемещение приводит к изменению формы контура.
В локализованных версиях векторных программ наряду с термином касательные используются и другие термины: рычаги управления, направляющие и «усы». Форма и цвет управляющих точек также зависят от используемого редактора. Если в CorelDRAW они, как и выделенные узлы, обозначаются черными квадратиками, но меньшего размера, то в Corel XARA они закрашены красным цветом, а выделенный узел отображается незакрашенным квадратом.
Типы узловых точек
Касательная линия всегда является касательной к сегменту кривой в узловой точке. Ее наклон и длина определяют наклон и радиус изгиба соответствующего криволинейного сегмента. Перемещение узловых точек и настройка касательных линий позволяют изменять форму криволинейных сегментов. Различают три типа узловых точек:
• гладкий узел (smooth node);
• симметричный узел (symmetrical node);
• острый узел (cusp node).
Симметричный узел
У симметричного узла оба отрезка касательных по обе стороны точки привязки имеют одинаковую длину и лежат на одной прямой, которая показывает направление касательной к контуру в данной узловой точке (рис. 3.6). Это означает, что кривизна сегментов с обеих сторон точки привязки одинакова (в данной точке не претерпевают разрыва первая и вторая производные кривой).
Изменение положения управляющей точки приводит к соответствующему изменению угла наклона касательной к кривой. Изменение длины касательной линии с одной стороны точки привязки путем перемещения управляющей точки приводит к соответствующему изменению и второй касательной линии, что изменяет радиус кривизны линии в точке привязки.
В CorelDRAW, например, симметричные узлы создаются автоматически при рисовании кривых инструментом Bezier (Кривая Безье) методом перетаскивания. Поскольку этот тип узлов является частным случаем гладких узлов в большинстве программ векторной графики (например, в Corel Хаrа), он не выделен в виде самостоятельного типа узла.
Рис. 3.6. У симметричной узловой точки длина обоих отрезков
касательных одинакова, и они лежат на одной прямой
Гладкий узел
У гадкой узловой точки оба отрезка касательных линий по обе стороны точки привязки лежат на одной прямой, которая показывает направление касательной к кривой в данной точке, но длина управляющих линий разная. Это говорит о том, что кривизна криволинейных участков, прилегающих к этой опорной точке, различна с разных ее сторон. Математически это значит, что в данной точке нет разрыва первой производной, но вторая производная кривой претерпевает разрыв.
Изменение длины касательной линии с одной стороны точки привязки путем перемещения управляющей точки приводит к соответствующему изменению радиуса кривизны этого криволинейного сегмента с одной стороны узловой точки. При этом длина второго отрезка касательной линии (с другой стороны узловой точки) не изменяется.
Острый узел
У острого узла касательные линии с разных сторон этой точки не лежат на одной прямой. Поэтому два криволинейных сегмента, прилегающих к опорной точке, имеют различную кривизну с разных сторон узловой точки и контур в этой точке образует резкий излом (рис. 3.7). Здесь радиус кривизны и угол наклона касательной для каждого криволинейного сегмента можно регулировать независимо друг от друга соответствующим изменением длины и угла наклона касательной линии для каждого прилегающего к опорной точке криволинейного сегмента в отдельности. В частности, один из отрезков касательных может быть равен нулю. В этом случае форма сегмента кривой будет регулироваться только одним отрезком касательной, а не двумя, как это было в предыдущих случаях.
Рис. 3.7. Три варианта острых узлов: без управляющих точек (1), с одной управляющей точкой (2) и двумя (3). В последнем случае кривизну сегментов контура в острой узловой точке можно изменять независимо для каждого сегмента
Примитивы (Формы)
Наряду с разнообразными кривыми, основу которых составляют кривые Безье, векторные редакторы имеют в своем составе специальные инструментальные средства для создания простых форм (графических примитивов), что упрощает построение сложных объектов.
Часто наряду со своим прямым назначением простые формы используются в качестве исходных заготовок для создания на их базе более сложных объектов. В этом случае для последующего редактирования созданных заготовок необходимо привлечение рассмотренной нами ранее технологии редактирования кривых Безье с помощью перемещения узлов и управляющих точек. Однако все не так однозначно. Для осуществления этой процедуры в некоторых редакторах требуется выполнить специальное преобразование примитивов в кривые Безье, поскольку их математическое описание в некоторых редакторах отличается от формул, заложенных в построение кривых Безье.
Комбинированные объекты
Векторное изображение может состоять из десятков и сотен объектов (контуров). Все они сначала создаются как простые объекты, из которых затем формируется сложный объект. Достигнутый в результате этих действий результат необходимо зафиксировать, чтобы избежать при выполнении последующих операций искажения рисунка из-за возможного изменения соотношения пропорций между объектами или их взаимного расположения. Для этих целей в векторных редакторах предусмотрена группа базовых операций, включающих:
• группировку объектов;
• объединение объектов;
Группировка объектов
Операция группировки состоит в объединении двух или более объектов (контуров) в одну группу. С полученным таким образом сгруппированным объектом можно обращаться как с единым объектом. Его можно перемешать, поворачивать, растягивать и выполнять многие другие операции без искажения взаимного расположения и пропорций входящих в него объектов.
При реализации операции группировки можно использовать несколько уровней группировки. В этом случае разгруппировка объектов происходит в обратном порядке с сохранением иерархии группировки.
Объединение объектов
Объединенный объект (контур) создается путем использования одной или нескольких операций по объединению двух или нескольких контуров. В результате такой операции из нескольких объектов получается новый объект, обладающий свойствами самого верхнего из исходных объектов, участвующих в операции. Поэтому в отличие от рассмотренной ранее операции группировки здесь свойства составляющих объектов теряются.
В современных векторных редакторах предусмотрены различные варианты слияния объектов. Наиболее распространенными из них являются три процедуры, принцип действия которых основан на использовании базовых логических операций ИЛИ, И, И-НЕ.
3.6. Достоинства и недостатки векторной графики
Для эффективного применения векторной графики в творческой работе необходимо представлять себе ее достоинства и недостатки.
Достоинства
Одним из главных достоинств этого вида графики является возможность неограниченного масштабирования изображения без потери качества и практически без увеличения размеров исходного файла. Это связано с тем, что векторная графика содержит только описания объектов, формирующих изображения, а компьютер или устройство печати интерпретирует их необходимым образом.
Векторную графику значительно легче редактировать, поскольку готовое изображение не является «плоской» картинкой из пикселов, а составлено из объектов, которые могут накладываться друг на друга, перекрываться, оставаясь в то же время совершенно независимыми друг от друга.
Векторным программам свойственна высокая точность рисования (до сотой доли микрона).
Векторная графика экономна в плане объемов дискового пространства, необходимого для хранения изображений. Это связано с тем, что сохраняется не само изображение, а только некоторые основные данные (математическая формула объекта), используя которые программа всякий раз воссоздает изображение заново. Описание цветовых характеристик почти не увеличивает размер векторного файла.
Векторные изображения, как правило, занимают меньший объем памяти компьютера по сравнению с растровыми. Гораздо проще описать окружность радиусом 10 и центром в точке х = 20, у = 30, чем помнить все пикселы массива, соответствующего этой окружности.
Для векторных редакторов характерно прекрасное качество печати рисунков и отсутствие проблем с экспортом векторного изображения в растровое.
Недостатки
Практически невозможно осуществить экспорт изображения из растрового формата в векторный. И наоборот, обратное преобразование (то есть превращение векторного изображения в растровое) выполняется практически автоматически не только с помощью графических редакторов, но и буфера обмена Windows.
Векторная графика ограничена в чисто живописных средствах и не позволяет получать фотореалистичные изображения с тем же качеством, что и растровая. Причина в том, что здесь, в отличие от растровой графики, минимальной областью, закрашиваемой однородным цветом, является не один пиксел, а один объект. А размеры объекта по определению больше.
Векторный принцип описания изображения не позволяет автоматизировать ввод графической информации, как это делает сканер для растровой графики. К сожалению, не существует, например, векторных мониторов или векторных сканеров.
В векторной графике невозможно применение обширной библиотеки эффектов (фильтров), используемых при работе с растровыми изображениями.
Строго говоря, ни один современный профессиональный графический пакет не является чисто векторным или чисто растровым, а совмещает в себе элементы как того, так и другого вида графики. Например, векторный редактор CorelDRAW имеет как собственные, так и подключаемые (plug-ins) инструменты для редактирования растровых изображений, а в шестой версии растрового редактора Photoshop расширены инструментальные возможности для работы с векторными объектами.
Г л а в а 4. ФРАКТАЛЬНАЯ ГРАФИКА
Понятия фракталы, фрактальная геометрия и фрактальная графика, появившиеся в конце 70-х, сегодня прочно вошли в обиход математиков и компьютерных художников. Слово фрактал образовано от латинского fractus и в переводе означает “состояние из фрагментов”. Оно было предложено математиком Бенуа Мандельбромом в 1975 году для обозначения нерегулярных, но самоподобных структур, которыми он занимался. Рождение фрактальной геометрии принято связывать с выходом в 1977 году книги Мандельброта “The Fractal Geometry of Nature”. В его работе использованы научные результаты других ученых, работавших в 1875-1925 годах в той же области (Пуанкаре, Фату, Жюлиа, Кантор, Хаусдорф). Но только в наше время удалось объединить их работы в единую систему.
Из всех типов фракталов наиболее наглядными являются геометрические фракталы. В двухмерном случае их получают с помощью некоторой ломаной (или поверхности в трехмерном случае), называется генератором. За один шаг алгоритма каждый из отрезков, составляющих ломанную, заменяется на ломаную-генератор в соответствующем масштабе. В результате бесконечного повторения этой процедуры получается геометрический фрактал.
Одним из основных свойств фракталов является самоподобие. Объект называют самоподобным, когда увеличенные части объекта походят на сам объект и друг на друга.
Можно сказать, что в простейшем случае небольшая часть фрактала содержит информацию обо всем фрактале. Например, снежинка несет информацию о снежном сугробе, а горный камень имеет те же самые очертания, и что и горный хребет. Благодаря тому свойству мы можем использовать фракталы для генерирования поверхности местности, которая походит на саму себя, независимо от масштаба, в котором она отображена. Эта идея нашла использование в компьютерной графике благодаря компактности математического аппарата, необходимого для ее реализации. Так, с помощью некоторых математических коэффициентов можно задать линии и поверхности очень сложной формы.
Сегодня разработаны алгоритмы синтеза коэффициентов фрактала, использующего произвести копию любой картинки сколь угодно близкой к исходному оригиналу. С точки зрения машинной графики фрактальная геометрия незаменима при генерации искусственных облаков, гор, поверхности моря. Фактически благодаря фрактальной геометрии найден способ эффективной реализации сложных неевклидовых объектов, образы которых весьма похожи на природные.
Геометрические фракталы на экране компьютера – это узоры, построенные самим компьютером по заданной программе. Они очень красивы, необычны и интересны. Многие художники на Западе (например, Мелиса, Бинде) рассматривают фракталы как новый вид компьютерного искусства. Помимо фрактальной живописи существуют фрактальная анимация и фрактальная музыка.
Создатель фракталов – это художник, скульптор, фотограф, изобретатель и ученый в одном лице. Вы сами задаете форму рисунка математической формулой, исследуете сходимость процесса, варьируя его параметры, выбираете вид изображения и палитру цветов, то есть творите рисунок «с нуля». В этом одно из отличий фрактальных графических редакторов (и в частности - Painter) от прочих графических программ. Например, в Adobe Photoshop изображение, как правило, «с нуля» не создается, а только обрабатывается. Другой самобытной особенностью фрактального графического редактора Painter (как и прочих фрактальных программ, например Art Dabbler) является то, что реальный художник, работающий без компьютера, никогда не достигнет с помощью кисти, карандаша и пера тех возможностей, которые заложены в Painter программистами.
4.1. Математика фракталов. Алгоритмы фрактального сжатия изображений
Как уже было сказано выше, фрактал можно определить как объект довольно сложной формы, которая получена в результате выполнения простого итерационного цикла. Итерационность, рекурсивность процедуры создания обуславливают такие свойства фракталов, как самоподобие - отдельные части похожи по форме на весь фрактал в целом. Приведем математическое описание «классических» или «математических» фракталов.
Фракталом Мандельброта названа фигура, которая порождается очень простым циклом. Для создания этого фрактала необходимо для каждой точки изображения выполнить цикл итераций в соответствии с формулой:
zk+1 = + z0
где k = 0, 1,..., п. Величины zk - это комплексные числа, zk = хk + iуk, причем стартовые значения х0 и у0 - это координаты точки изображения. Для каждой точки изображения итерации выполняются ограниченное количество раз (п) или до тех пор, пока модуль числа zk не превышает 2. Модуль комплексного числа равняется корню квадратному из х2 + у2. Для вычисления квадрата величины zk можно воспользоваться формулой z2 = (х + iy) (x + iy) = x2 - у2 + i2xy, поскольку i2 = - 1. Цикл итераций для фрактала Мандельброта можно выполнять в диапазоне x = (от -2. 2, до 1), у = (от -1. 2 до 1. 2). Для того чтобы получить изображение в растре, необходимо пересчитывать координаты этого диапазона в пиксельные.
Рис.4.1. Пример фрактального изображения
Фрактал Жулиа совсем не похож на фрактал Мандельброта, однако, он определяется итерационным циклом, почти полностью тождественным циклу генерации Мандельброта. Формула итераций для фрактала Жулиа такова:
zk+1 = +c
где с – комплексная константа.
Условием завершения итераций является | zk | > 2 - так же, как для фрактала Мандельброта.
Как видим, фрактал самоподобный – при любом увеличении отдельные части напоминают формы целого. Самоподобие считается важным свойством фракталов. Это отличает их от других типов объектов сложной формы.
Рассмотрим следующий пример фрактала - фрактал Ньютон. Для него итерационная формула имеет такой вид:
zk+1 =
где z – также комплексные числа, причем z0= x + iy соответствует координатам точки изображения.
Условием прекращения цикла итераций для фрактала Ньютон есть приближение значений |x4-1| к нулю.
Рассмотрим еще одну разновидность фракталов, названных геометрическими, поскольку их форма может быть описана как последовательность простых геометрических операций. Например, кривая Кох становится фракталом в результате бесконечного количества итераций, в ходе которых выполняется деление каждого отрезка прямой на три части. На рис. 4.2 показаны три итерации - постепенно линия становится похожей на снежинку.
Рис. 4.2. Геометрические интерпретации
для кривой Кох
Следующую группу составляют фракталы, которые генерируются согласно методу "систем итеративных функций" - IFS (Iterated Functions Systems). Этот метод может быть описан, как последовательный итеративный расчет координат новых точек в пространстве:
xk+1 = Fx(xk,yk),
yk+1 = Fy(xk,yk),
где Fx и Fy - функции преобразования координат, например, аффинного преобразования. Эти функции и обуславливают форму фрактала. В случае аффинного преобразования необходимо найти соответствующие числовые значения коэффициентов.
Рис. 4.3. Опорные точки элементов фрактала
Попробуем разработать фрактал, который выглядел бы, как растение. Вообразим ствол, на котором много веточек. На каждой веточке много меньших веточек и так далее. Наименьшие ветви можно считать листвой или колючками. Все элементы будем рисовать отрезками прямой. Каждый отрезок будет определяться двумя конечными точками.
Для начала итераций необходимо задать стартовые координаты концов отрезка. Это будут точки 1, 2. На каждом шаге итераций будем рассчитывать координаты других точек.
Сначала находим точку 3. Это повернутая на угол α точка 2, центр поворота - в точке 1 (рис. 4.3):
x3 = (x2 –x1) cos α – (y2 –y1) sin α + x1,
y3 = (x2 –x1) sin α + (y2 –y1) cos α + y1.
Если α = 0 , то ствол и все ветви прямые. Потом находим точку 4. От нее будут распространяться ветви. Пусть соотношение длин отрезков 1- 4 и 1 - 3 равняется k, причем 0 < k < 1. Тогда для вычисления координат точки 4 можно воспользоваться такими формулами:
x4 = x1 (1-k) + x3 k,
y4 = y1 (1-k) + y3 k.
Теперь зададим длину и угол наклона ветвей, которые растут из точки 4. Сначала найдем координаты точки 5. Введем еще один параметр - k1, который будет определять соотношение длин отрезков 4-5 и 4-3, причем 0 < kl < 1. Координаты точки 5 равняются
x5 = x4 (1-k1) + x3 k1,
y5 = y4 (1-k1) + y3 k1.
Точки 6 и 7 - это точка 5, но повернутая относительно точки 4 на углы β и - β соответственно:
x6 = (x5 –x4) cos β – (y5 –y4) sin β + x4,
y6 = (x5 –x4) sin β + (y5 –y4)cojs β + y4,
x7 = (x5 –x4) cos β + (y5 –y4) sin β + y4,
y7 = (x5 –x4) sin β + (y5 –y4) cos β + y4,
Кроме расчета опорных точек, на каждом шаге будем рисовать один отрезок 1 - 4. В зависимости от номера итераций можно изменять цвет отрезка. Также можно устанавливать его толщину, например, пропорционально длине.
Таким образом, фрактал мы определили как последовательность аффинных преобразований координат точек. Величины а, β, к, k1 - это параметры, которые описывают вид фрактала в целом. Они являются константами на протяжении всего итеративного процесса. Это дает возможность в итерациях использовать только операции сложения, вычитания и умножения, если вычислить значения sin(), cos(), (1 - к) и (1 - k1) только один раз перед началом итераций как коэффициенты-константы.
Фрактал при α = 2°, β = 86°, к = 0. 14, k1 = 0. 3 похож на папоротник.
Рис. 4.4. Вид фрактала для разного количества циклов итераций
4.2 Обзор основных фрактальных программ
У фрактальной математики возникают все новые и новые сферы применения. Одно из них - создание алгоритма фрактального сжатия графической информации. Так, метод IFS используется не только для создания изображений. Его использовали Барнсли и Слоан для эффективного сжатия графических изображений при записи в файл. Основная идея такая: поскольку фракталы могут представлять очень сложные изображения с помощью простых итераций, то описание этих итераций требует значительно меньшего объема информации, чем соответствующие растровые изображения. Для кодирования изображений необходимо решать обратную задачу - для изображения (или его фрагмента) подобрать соответствующие коэффициенты аффинного преобразования. Этот метод используется для записи цветных фотографий в файлы со сжатием в десятки и сотни раз без заметного ухудшения изображения. Формат таких графических файлов был назван FIF (Fractal Image Format) и запатентован фирмой Iterated Systems.
Алгоритмы, используемые для генерации изображений фрактальной графики, находят применение и в традиционных видах компьютерной графики: растровой и векторной. Например, в CorelDRAW эти алгоритмы используются для создания текстурных заливок.
В 1997 году на рынке компьютерной графики cреди известных производителей профессионального ПО для графики (Adobe, Macromedia, Autodeck, Corel, Microsoft) объявился новичок, способный захватить часть рынка графического ПО. Речь идет о компании MetaCreations Inc, которая была образована путем слияния нескольких коллективов разработчиков, специализировавшихся в областях двухмерной (2D) и трехмерной графики (3D). Остановимся на наиболее значимых из них.
Фирма MetaTools знаменита своим основателем - Каем Краузе, а также его детищами - наборами фильтров (plug-ins) для пакетов растровой (Kai's Power Tools) и векторной (Vector Effects) графики, модулями для программ обработки цифрового видео (Studio Effects) и генератором трехмерных ландшафтов КРГ Bryce. Компания Fractal Design впервые ввела в компьютерный обиход понятие Natural Media, представляющее возможность имитации “естественных” инструментов художника. Представьте, что вы рисуете на виртуальном холсте (то есть водите мышью по коврику и видите результат на экране монитора) инструментом программы Painter в режиме Oil (Кисть с масляной краской) лини. Зеленого цвета. Затем рядом тем же инструментом линию красного цвета. В результате вы видите, что в местах наложения цветов происходит смешивание электронных красок точно так же, но как они бы смешивались на бумаге или на холсте. Не удивительно, что программы Fractal Designer Painter, Expression и Kay Dream Studio дали толчок развитию компьютерной графики как искусства.
Лидером на рынке фрактальной графики до недавнего времени (то есть до продажи своих программных продуктов другим фирмам) являлась компания Мeta Creations. Спектр ее продуктов охватывает многие области компьютерной графики. Fractal Design Painter - программа для создания и обработки высокохудожественных растровых иллюстраций. Поддерживает многослойность изображений и возможность использования фильтров от программы Adobe Photoshop. Данная программа позволяет эмулировать большое число художественных инструментов: карандаши, кисти, пастели, разнообразные типы красок. На сегодняшний день Fractal Desing Painter - программа «номер один» для художников, использующих в своем творчестве компьютер. Для максимально удобства работы рекомендуется использовать графический планшет, поскольку в отличие от мыши он позволяет более точно передавать путь движения кисти.
Fractal Design Expression комбинирует в себе растровую и векторную технику компьютерной графики. То есть можно рисовать векторные объекты, как в CorelDRAW или Adobe Illustrator, редактировать их по опорным узлам и выполнять все прочие векторные операции. Но каждой линии, фигуре вы можете назначить любой растровый тип кисти. Кистей великое множество, ведь эта программа родилась во Fractal Design, фирме, знаменитой своей имитацией реальных инструментов художника. Здесь эмулируется практически все реальные растровое художественные инструменты и краски, а результатом работы является векторное изображение.
Г л а в а 5. ЦВЕТОВЫЕ МОДЕЛИ КОМПЬЮТЕРНОЙ ГРАФИКИ
Для изучения способов представления цвета в компьютерных системах и в компьютерной графике в частности, сначала рассмотрим некоторые общие аспекты.
5.1. Элементы цвета
Для того чтобы «увидеть» цвет, нужны три вещи (рис. 5.1):
• источник света;
• объект;
• ваш глаз (приемник излучения).
Рис. 5.1. Основные участники процесса восприятия цвета
Теперь можно перейти к оценке роли физических и биологических аспектов процесса восприятия цвета.
Первый аспект - физика. Свет попадает на квадрат и отражается.
Второй аспект - биология. Отраженный свет попадает в глаз человека и воздействует на светочувствительные клетки глаза, которые содержат два типа рецепторов: палочки (cones) и колбочки (staves). Колбочки активны только в темноте или в сумерках. При нормальном освещении мы воспринимаем цвет исключительно с помощью палочек трех разновидностей, каждая из которых чувствительна к определенному диапазону видимого спектра. В данном случае отраженный от объекта свет воздействует на палочки, чувствительные к зеленому цвету. Они передают соответствующие импульсы в мозг, который после их обработки и последующей интерпретации выдает сообщение: квадратный, зеленый.
Но вопросы по-прежнему остаются.
Что в действительности стимулирует колбочки?
Почему в данном случае происходит возбуждение только одного типа палочек, который чувствителен к зеленому цвету?
Ответы на них будут даны ниже.
5.1.1 Свет и цвет
Как уже было отмечено в рассмотренном выше примере, наличие света является непременным условием визуального восприятия всего цветового богатства окружающего нас мира. В то же время из курса элементарной физики большинству из вас известно, что белый свет вне зависимости от его источника - солнце, лампочка или экран монитора - в действительности представляет собой смесь цветов. Если пропустить луч белого света через простую призму, он разложится на цветной спектр.
Рис. 5.2. Спектральный состав видимого цвета
Цвета этого спектра, называемого видимым спектром света, условно классифицируют как красный, оранжевый, желтый, зеленый, голубой, синий и фиолетовый. Любой из них, в свою очередь, представляет собой электромагнитное излучение, перекрывающее достаточно широкий диапазон длин волн видимого спектра (рис. 5.2). Для нашего глаза каждый кусочек этого видимого спектра обладает своими уникальными характеристиками, которые и называются цветом. Поскольку в видимом спектре содержатся миллионы цветов, то различие между двумя соседними цветами практически неощутимо.
Спектральный состав цвета можно представить в виде графика распределения энергии излучения по разным длинам волн. Та длина волны, на которую приходится максимальная интенсивность излучения, называется доминирующей. Именно она в значительной степени определяет окраску цвета, хотя основные параметры воспринимаемого нашим глазом цвета определяются результатом воздействия на него всего спектрального состава цвета.
5.1.2. Физическая природа света и цвета
Напомним, что свет представляет собой электромагнитное излучение, связанное с флуктуацией электрического и магнитного полей. Иными словами, свет представляет собой энергию, а цвет есть продукт взаимодействия этой энергии с веществом. Однако для понимания природы цвета необходимо совершить небольшой экскурс в физику световых явлений и коснуться природы источников цвета.
Свет имеет двойственную природу, обладая свойствами волны и частицы. Корпускулы света, называемые фотонами, излучаются источником света в виде волн, распространяющихся с постоянной скоростью порядка 300000 км/с. Аналогично морским волнам световые волны имеют гребни и впадины. Поэтому в качестве характеристики световых волн используют длину волны, представляющую собой расстояние между двумя гребнями (единица измерения - метры или ангстремы, равные 108 м), и амплитуду, определяемую как расстояние между гребнем и впадиной.
Разные длины волны воспринимаются нами как разные цвета: свет с большой длиной волны будет красным, а с маленькой - синим или фиолетовым. В случае если свет состоит из волн разной длины (например, белый цвет содержит все длины волн, то наш глаз смешивает разные длины воли в одну, получаем таким образом один результирующий цвет.
Альтернативными характеристиками электромагнитного излучения являются частота (измеряемая в герцах или циклах/с) и энергия (измеряемая в электроно-вольтах). Чем короче длина волны, тем больше ее частота и выше энергия. И наоборот, чем больше длина волны, тем меньше частота и ниже энергия.
5.1.3. Излученный и отраженный свет
Все, что мы видим в окружающем нас пространстве, либо излучает свет, либо его отражает.
Излученный цвет - это свет, испускаемый активным источником. Примерами таких источников могут служить солнце, лампочка или экран монитора. В основе их действия обычно лежит нагревание металлических тел либо химические или термоядерные реакции. Цвет любого излучателя зависит от спектрального состава излучения. Если источник излучает световые волны во всем видимом диапазоне, то его цвет будет восприниматься нашим глазом как белый. Преобладание в его спектральном составе длин волн определенного диапазона (например, 400 - 450 нм) даст нам ощущение доминирующего в нем цвета (в данном случае сине-фиолетового). И наконец, присутствие в излучаемом свете световых компонент из разных областей видимого спектра (например, красной и зеленой) дает восприятие нами результирующего цвета (в данном случае желтого). Но при этом в любом случае попадающий в наш глаз излучаемый цвет сохраняет в себе все цвета, из которых он был создан.
Отраженный свет возникает при отражении некоторым предметом (вернее, его поверхностью) световых волн, падающих на него от источника света. Механизм отражения цвета зависит от цветового типа поверхности, которые можно условно разделить на две группы: ахроматические; хроматические.
Первую группу составляют ахроматические (иначе бесцветные) цвета: черный, белый и все серые (от самого темного до самого светлого). Их часто называют нейтральными. В предельном случае такие поверхности либо отражают все падающие на них лучи, ничего не поглощая (идеально белая поверхность), либо полностью лучи поглощают, ничего не отражая (идеальная черная поверхность). Все остальные варианты (серые поверхности) равномерно поглощают световые волны разной длины. Отраженный от них цвет не меняет своего спектрального состава, изменяется только его интенсивность.
Вторую группу образуют поверхности, окрашенные в хроматические цвета, которые по-разному отражают свет с разной длиной волны. Так, если вы осветите белым
цветом листок зеленой бумаги, то бумага будет выглядеть зеленой, потому что ее поверхность поглощает все световые волны, кроме зеленой составляющей белого цвета. Что же произойдет, если осветить зеленую бумагу красным или синим цветом? Бумага будет восприниматься черной, потому что падающие на нее красный и синий цвета она не отражает. Если же осветить зеленый предмет зеленым светом, это позволит выделить его на фоне окружающих его предметов другого цвета.
Процесс отражения света сопровождается не только связанным с ним процессом поглощения в приповерхностном слое. При наличии полупрозрачных предметов часть падающего света проходит через них (рис. 5.4). На этом свойстве основано действие фильтров фотоаппаратов, вырезающих из области видимого спектра нужный цветовой диапазон (иначе - отсекающих нежелательный цветовой спектр). Чтобы лучше понять этот эффект, прижмите к поверхности лампочки пластину цветного оргстекла. В результате наш глаз «увидит» цвет, не поглощенный пластиком.
Рис. 5.3. Процессы отражения, поглощения
и пропускания света объектом
Каждый объект имеет спектральные характеристики отражения и пропускания. Эти характеристики определяют, как объект отражает и пропускает свет с определенными длинами волн.
• Спектральная кривая отражения определяется путем измерения отраженного света при освещении объекта стандартным источником.
• Спектральная кривая пропускания определяется путем измерения света, яро-шедшего сквозь объект.
Некоторые измерительные устройства позволяют даже вводить поправки, компенсирующие изменение условий внешнего освещения.
Спектральные характеристики отражения и пропускания связаны с явлением мета» метрии, суть которого состоит в том, что объекты с разными спектральными характеристиками могут выглядеть одинаково при одном освещении и по-разному - при другом. Такое различие обусловлено как составом объектов, так и спектральным составом внешнего освещения. Для определения спектральных характеристик объектов используют специальные приборы, спектрофотометры, со стандартными источниками света.
Указанные различия в механизмах формирования излученного и отраженного света важны для понимания восприятия цвета глазом человека.
5.1.4. Яркостная и цветовая информация
Излучаемый источником цвет, как правило, представляет собой смесь световых волн различной длины. Единственным исключением являются так называемые монохроматические источники света, примерами которых могут служить различные типы лазеров и широко распространенные натриевые лампы. Последние излучают свет только одной длины волны в оранжевой области спектра.
Длина световых волн выражается в нанометрах (нм), представляющих собой миллиардные доли метра (10-9). Наш глаз может воспринимать электромагнитные волны с длинами в диапазоне от 400 до 700 нм, что составляет ничтожно малую часть всего спектра электромагнитных волн (от 104 до 10-14 м).
В действительности человеческий глаз может воспринимать цвет в более широком диапазоне длин волн - от 380 до 780 нм. Однако воздействие, оказываемое светом за пределами диапазона 400-700 нм, пренебрежимо мало.
Как уже отмечалось, энергия, переносимая электромагнитной волной, связана с длиной волны обратно пропорциональной зависимостью. Поэтому фиолетовая область видимого спектра, являясь коротковолновой, обладает более высокой энергией по сравнению с красной областью спектра.
С физической точки зрения свет можно охарактеризовать двумя параметрами: энергией (интенсивностью) и длиной волны. Однако в теории цвета, живописи, телевидении и компьютерной графике наибольшее распространение получили два производных от них параметра: яркость и цветность.
Яркость (или интенсивность) пропорциональна сумме энергий всех составляющих цветового спектра света.
Цветность, наоборот, связана с доминирующими длинами волн в этом спектре, Ахроматические цвета, то есть белые, серые и черные, характеризуются только яркостью. Это проявляется в том, что одни цвета темнее, а другие светлее. В отличие от них хроматические цвета для своего описания требуют задания и яркости, и цветности.
Распространенность указанных параметров обусловлена физиологическими особенностями нашего зрения, связанными с наличием в сетчатке глаза уже упоминавшихся ранее двух типов нервных клеток: палочек, реагирующих на яркостную составляющую света, и колбочек, воспринимающих цветовую информацию.
Яркость является количественной характеристикой цвета. С ее помощью мы можем сравнивать интенсивность излучения различных источников между собой. В отличие от нее цветность имеет качественный характер. Поэтому для того, чтобы сравнить два цвета по цветности, желательно было бы отделить их от яркости. Практически это невозможно, но теоретически вполне доступно с помощью имеющейся всех графических пакетах цветовой модели Lab. Присутствующие в ней абстрактные цветовые компоненты (собственно цветности) а и b обладают нулевой яркостью, а канал L содержит только яркостную информацию.
5.1.5. Цвет и окраска
Для правильной интерпретации восприятия цвета необходимо различать понятия цвета и окраски предмета.
Окраска - это способность предмета отражать излучение в том или ином диапазоне длин волн.
Цвет является более широким понятием, включающим окраску и условия освещения.
Чтобы представить имеющееся между ними различие, вспомните, как, например, выглядит снег при различных условиях освещения (зимний, мартовский или в сумерках) или сравните его изображения на картинах Пластова, Грабаря и Кустодиева. Несмотря на то что чистый снег всегда имеет белую окраску, его цвет в зависимости от освещения может не только быть белым, но иметь голубой, розовый и даже желтый оттенки. Эту разницу очень важно понимать при использовании цвета в прикладных целях, поскольку различия в освещении при настройке цветопередачи изображения разработчиком и последующем просмотре изображения потребителем дадут совершенно разные результаты.
Цвет – это один из факторов нашего восприятия светового излучения. Светом и цветом исследователи интересовались давно. Одним из первых выдающихся достижений в этой области являются опыты Исаака Ньютона в 1666 г. по разложению белого света на составляющие. Ранее считалось, что белый цвет - простейшей. Ньютон опроверг это. Суть опытов Ньютона такова. Белый луч света (использовался солнечный свет) направлялся на стеклянную треугольную призму. Пройдя сквозь призму, луч преломлялся и, будучи направленный на экран, давал в результате цветную полосу - спектр. В спектре присутствовали цвета радуги, которые плавно переходили друг в друга. Эти цвета уже не раскладывались на составляющие. Ньютон разбил весь спектр на семь участков, соответствующих ярко выраженным различным цветам. Он считал эти семь цветов основными — красный, оранжевый, желтый, зеленый, голубой, синий и фиолетовый. Почему именно семь? Некоторые объясняют это убежденностью Ньютона в мистических свойствах семерки.
Вторая часть опытов Ньютона такова. Лучи, прошедшие сквозь призму, направлялись на вторую призму, с помощью которой удалось снова получить белый свет. Таким образом, было доказано, что белый цвет - это смесь множества разных цветов. Семь основных цветов Ньютон расположил по кругу (рис. 5.4).
Рис. 5.4. Цветовой круг Ньютона
Ньютон предположил, что определенный цвет получается путем смешивания основных цветов, взятых в определенной пропорции. Если в точках на границе цветового круга, которые соответствуют основным цветам, расположить грузы, пропорциональное количеству каждого цвета в смеси, то суммарный цвет будет соответствовать точке центра тяжести, Белый цвет соответствует центру цветового круга. Последующие исследования цвета выполняли Томас Юнг, Джемс Максвелл и другие ученые. Исследования человеческого цветовосприятия являлись довольно важной задачей, но основные усилия были направлены на изучение объективных свойств света. В настоящее время физики полагают, что свет имеет двойственный характер. С одной стороны, свет представляется в виде потока частиц (еще Ньютон выдвинул так называемую корпускулярну теорию). С другой стороны, свету присущи волновые свойства. С помощью волновой теории, выдвинутой Христианом Гюйгенсом в 1678 году, были объяснены многие свойства света, в частности, законы отражения и преломления.
Рис. 5.5. Зависимость чувчтвительности
человеческого зрения от длины волны
светового излучения
С позиций волновых свойств цвет описывается следующим образом. Одна из волновых характеристик света - длина волны - расстояние, которое проходит волна в течение одного периода колебания. Монохромотическим называется излучение, спектр которого состоит из единственной линии, соответствующей единственной длине волны. Радуга, полученная Ньютоном, состоит из бесчисленного множества монохроматических излучений (равно как и радуга, наблюдаемая нами после дождя). Довольно качественным источником монохроматического излучения является лазер - именно поэтому его луч легко сфокусировать. Цвет монохроматического излучения определяется длиной волны. Диапазон дайн волн для видимого света простирается от 380-400 нм (фиолетовый) до 700-780 нм (красный). В указанном диапазоне чувствительность человеческого зрения непостоянная. Наибольшая чувствительность наблюдается для длин волн, соответствующих зеленому цвету.
Как показал Ньютон, белый цвет можно представить смесью всех цветов радуги. Другими словами, спектр белого является бесконечным, сплошным - в нем присутствуют излучения всех длин волн видимого диапазона.
5.2. Характеристики источника света
5.2.1. Стандартные источники
Для имитации различного освещения измерительные устройства используют стандартизованные источники излучения - D50, D65, D93, А, В, С, а также F2 или F8 (флюоресцентные лампы). Эти источники имеют определенные стандартизованные спектральные характеристики, установленные в 1931 г. международной комиссией по освещению (CIE):
• источник А - норма среднего искусственного света эквивалентна цветовой температуре 2854°К, что соответствует излучению лампы накаливания;
• источник В - норма прямого солнечного света с цветовой температурой, близкой к 4800°К;
• источник С - норма рассеянного дневного света с температурой около 6500°К;
• источник D65 имеет температуру, почти равную 6500°К (применяется во всем мире, кроме Германии, где стандартным считается D50 с цветовой температурой 5000°К).
Источники В и С в действительности получают из источника А путем изменения спектральной характеристики последнего с помощью соответствующего фильтра.
5.2.2 Особенности восприятия цвета человеком
Световые волны, излучаемые или отражаемые объектом, собираются хрусталиком и через стекловидное тело проецируются на сетчатку. Там они возбуждают определенные нервные клетки, физиологическое назначение которых состоит в распознавании световых волн. В результате возбуждения в нервных клетках возникает электрический сигнал, который по зрительному нерву поступает в зрительный центр мозга, где с помощью пока еще до конца не понятных механизмов и возникает зрительное восприятие цвета.
На самой сетчатке можно выделить две области, которые называют желтым пятном и слепым пятном. На слепом пятне нервные пути сетчатки переходят в зрительный нерв. Поскольку в атом месте нервных клеток нет, то свет, попадающий на слепое пятно, не обнаруживается. На желтом пятне имеет место обратная картина. Оно расположено по центру зрительной оси и содержит много зрительных клеток, чувствительных к цвету (колбочек; см. ниже). При хорошем освещении глаз обычно фокусирует падающий свет на желтом пятне. Наоборот, ночью сильной фокусировки приходится избегать, поскольку из-за низкой чувствительности колбочек зрительное восприятие значительно ослабляется.
Колбочки и палочки
За цветовое и яркостное восприятие человеческого глаза отвечают два различных типа нервных клеток (рецепторов), называемых соответственно колбочками и палочками.
Процесс функционирования палочек и колбочек не имеет принципиальных отличий. В обоих случаях происходит поглощение световых волн и по достижении определенного порога вырабатывается нервный импульс. При этом оба вида нервных клеток реагируют на интенсивность падающего света. В чем же тогда проявляется их различие?
Палочки «отвечают» за черно-белое зрение, поскольку способны регистрировать только суммарную энергию света. Этот тип рецепторов равномерно распределен по сетчатке глаза и обладает очень высокой чувствительностью, примерно в 1000 раз превышающей чувствительность колбочек. Именно благодаря им обеспечивается возможность распознавания предметов в условиях плохой освещенности («ночью все кошки серы»).
Колбочки предназначены для распознавания цветовой информации. В отличие от палочек имеются три сорта колбочек, каждая из которых реагирует на определенный диапазон длин волн. Из экспериментальных данных видно, что первый тип воспринимает световые волны с длинами волн в диапазоне 400-500 нм («синяя» составляющая спектра), второй - от 500 до 600 нм («зеленая» составляющая спектра) и третий - от 600 до 700 («красная» составляющая спектра). В зависимости от того, световые волны какой длины и интенсивности присутствуют в спектре, те или иные группы колбочек возбуждаются сильнее или слабее. Полученная с помощью зрительных рецепторов информация поступает в виде сигналов в мозг, который определяет, в каких соотношения возбуждены три вида колбочек, создавая на базе этого цветовое восприятие.
Таким образом, исходя из особенностей строения человеческого глаза можно сделать вывод, что цвет трехмерен по своей природе.
Принцип действия большинства технических устройств, предназначенных для обработки содержащейся в свете цветовой информации, также базируется на раздельном распознавании красной, зеленой и синей составляющих света.
Настало время разобраться с тем, как свойства палочек и колбочек влияют на чувствительность зрения к яркости света.
Рис. 5.6. Спектральная чувствительность
различных типов колбочек
Спектральная чувствительность глаза к яркости
Как можно увидеть из рис. 5.9, области чувствительности различных типов колбочек значительно перекрываются. Поэтому, как правило, в процессе восприятия глазом падающего на него света возбуждаются все три сорта колбочек. А поскольку чувствительности разных типов колбочек отличаются очень сильно, то глаз человека имеет неодинаковую чувствительность к разным длинам волн. Особенно хорошо воспринимается зеленый цвет, красный - несколько слабее, а чувствительность к синему цвету чрезвычайно низка. В результате отдельные цветовые составляющие цветного изображения вносят разный вклад в ощущение яркости.
На практике в качестве яркостной характеристики чувствительности глаза обычно используют кривую спектральной чувствительности (рис. 5.7). Для дневного освещения ее можно получить путем суммирования приведенных на рис.5.7 спектральных составляющих трех типов колбочек с последующим нормированием полученной кривой (путем деления всех ее составляющих на максимальное значение яркости). По существу этот график представляет собой не что иное, как КПД человеческого глаза. По графику можно легко оценить, какая часть попавшего в глаз света вносит наибольший вклад в формирование ощущения цвета. Так, для получения с помощью синего цвета такого же ощущения яркости, как от зеленого цвета, его реальная энергия должна быть в несколько раз выше.
Рис. 5.7. Кривые спектральной чувствительности глаза при различных условиях внешнего освещения: 1- в сумерках, 2 - при дневном освещении
При получении кривой спектральной чувствительности в качестве нормирующего коэффициента используется принятая за единицу спектральная эффективность желто-зеленого излучения с длиной волны 555 нм. Для отображения интенсивности составляющей спектра используется обозначение Vג.
При оценке яркостной чувствительности цвета следует учитывать, что свой вклад в ощущение яркости вносят как колбочки, так и палочки. А поскольку максимальная чувствительность палочек по сравнению с колбочками лежит в более коротковолновой области спектра (соответственно 500 нм против 555 нм), то именно этим фактором объясняется зависимость спектральной чувствительности от внешней освещенности.
Вклад палочек и колбочек в результирующее значение яркости определяется условиями освещенности. Так, в темноте работают только палочки. В сумерках в формировании яркостного восприятия участвуют и палочки, и колбочки, а при повышении уровня освещенности начинают доминировать палочки.
В результате проведения многочисленных психологических тестов наряду с теоретическими исследованиями было установлено, что для большинства людей ощущение яркости при восприятии цветных изображений определяется на 71,5% зеленой составляющей, 21 % - красной и 7,2% - синей. Таким образом, если известны зеленая, синяя и красная составляющие источника цвета, то воспринимаемая нашим глазом результирующая яркость такого источника может быть определена по формуле:
Яркость = 0,715160 × зеленый + 0,212671 × красный + 0,072169 × синий.
Существуют и другие выражения для определения яркости.
Для стандарта в области NTSC телевидения:
Яркость = 0,59 × зеленый + О J ×красный + 0,11 ×синий.
5.3. Цветовой и динамический диапазоны
Для эффективной организации передачи информации между различными устройствами, входящими в состав издательских систем, важно понимать разницу между цветовым и динамическим диапазонами.
Цветовой диапазон - диапазон цветов, которые могут восприниматься или воспроизводиться наблюдателем или приемным устройством.
Динамический диапазон характеризует различие между наиболее светлым и наиболее темным элементами в изображении или в поле зрения.
Человеческое зрение имеет широчайший цветовой и динамический диапазон. Глаз человека способен различать градации миллионных долей яркости.
Компьютерные устройства имеют сравнительно узкие цветовой и динамический диапазоны. Кроме того, имеются различия в характеристиках разных устройств. Например, цветовые и динамические диапазоны сканеров и мониторов шире, чем соответствующие диапазоны принтеров.
В совокупности цветовой и динамический диапазоны определяют область воспринимаемых нами цветов и области цветов (цветовое пространство), в которых работают устройства ввода, вывода и обработки изображений. Для представления этих областей используются два способа:
1. В виде различных цветовых моделей.
2. С помощью набора цветов (палитр), доступных в системах соответствия цветов. Для каждой из таких систем - DIC, DuPont®, FOCOLTONE®, PANTO-NE®, TOYO и TRUMATCH®, - определены специальные цвета, которые можно выбирать по каталогам образцов. За исключением плашечных цветов палитры PANTONE®, эти системы подстановки цветов связываются с цветовыми моделями. Системы DIC и TOYO базируются на совместном использовании основных цветов и специальных красителей.
Современные графические пакеты оперируют большим количеством специфических терминов, включающих определение цветовые, цвет. Перечислим их:
• цветовые модели;
• цветовые палитры, которые в свою очередь подразделяются на плашечные цветовые палитры и основные цветовые палитры;
• системы соответствия цветов;
• системы управления цветами.
Их обилие и внешняя схожесть могут смутить не только новичка в области обработки компьютерных изображений. Далее будет дано последовательное разъяснения смысла и назначения этих терминов.
Для характеристики цвета используются следующие атрибуты.
1. Цветовой тон. Его можно определить преобладающей длиной волны в спектре излучения. Цветовой тон позволяет отличать один цвет от другого - например, зеленый от красного, желтого и других.
2. Яркость. Определяется энергией, интенсивностью светового излучения. Выражает количество воспринимаемого света.
3. Насыщенность или чистота тона. Выражается долей присутствия белого цвета. В идеально чистом цвете примесь белого отсутствует. Если, например, к чистому красному цвету добавить в определенной пропорции белый цвет (у художников это называется "разбелом"), то получится светлый бледно-красный цвет.
Указанные три атрибута позволяют описать все цвета и оттенки. То, что атрибутов именно три, является одним из проявлений трехмерных свойств цвета. Далее мы увидим, что имеются и другие трехмерные системы описания цвета.
Мы попытались объяснить цвет с помощью длин волн и спектра. Как оказывается, это неполное представление о цвете, а вообще говоря, оно неправильное. Во-первых, глаз человека - это не спектрометр. Зрительная система человека, скорее всего, регистрирует на длину волны и спектр, а формирует ощущения другим способом. Во-вторых, без учета особенностей человеческого восприятия невозможно объяснить смешение цветов. Например, белый цвет действительно можно представить равномерным спектром смеси бесконечного множества монохроматических цветов. Однако тот же белый цвет можно создать смесью всего двух специально подобранных монохроматических цветов (такие цвета называются взаимно дополнительными), Во всяком случае, человек воспринимает эту смесь как белый цвет. А можно получить белый цвет, смешав три нам более монохроматических излучений. Излучения, различные по спектру, но дающие один и тот же цвет, называются метамерными.
Необходимо также уточнить, что понимается под цветовым тоном. Рассмотрим два примера спектра (рис. 5.8).
Рис. 5.8. Спектры: а - в сплошном спектре имеется явное преобладание одной составляющей: б - в дискретном спектре две составляющие с одинаковой интенсивностью
Анализ спектра, изображенного на рис. 5.13 (a), позволяет утверждать, что излучение имеет светло-зеленый цвет, поскольку четко выделяется одна спектральная линия на фоне равномерного спектра белого. А какой цвет (цветовой тон) cooтвeтствует спектру варианта (б)? Здесь нельзя в спектре преобладающую составляющую, поскольку присутствуют красная и зеленая линии одинаковой интенсивности. По законам смешения цветов, это может дать оттенок желтого цвета — однако в спектре нет соответствующей линии монохроматического желтого. Поэтому, под цветовым тоном следует понимать цвет монохроматического излучения, соответствующего суммарному цвету смеси. Впрочем, как именно соответствующего" - это также требует уточнения.
Наука, которая изучает цвет и его измерения, называется колориметрией. Она описывает общие закономерности цветового восприятия света человеком. Одними из основных законов колориметрии являются законы смешивания цветов. Эти законы в наиболее полном виде были сформулированы в 1853 году немецким математиком Германом Грассманом.
1. Цвет - трехмерен, для его описания необходимы три компонента. Любые четыре цвета находятся в линейной зависимости, хотя существует неограниченное число линейно-независимых совокупностей из трех цветов. Другими словами, для любого заданного цвета (Ц) можно записать такое цветовое уравнение, которое выражает линейную зависимость цветов:
Ц= k1Ц1 + k2Ц2 + k3Ц3,
где Ц1, Ц2 ,Ц3 - некоторые базисные, линейно-независимые цвета, коэффициенты k1, k2 и k3 указывают количество соответствующего смешиваемого цвета, Линейная независимость цветоа Ц1, Ц2, Ц3 означает, что ни один из них не может быть выражен взвешен ной суммой (линейной комбинацией) двух других. Первый закон можно трактовать и в более широком смысле, а именно, в смысле трехмерности цвета. Необязательно для описания цвета использовать смесь других цветом можно применять и другие компоненты, но их обязательно должно быть три.
2. Если в смеси трех цветовых компонентов один меняется непрерывно, в то время как два других остаются постоянными, цвет смеси также изменяете непрерывно.
3. Цвет смеси зависит только от цветов смешиваемых компонентов и не зависит от их спектральных составов. Смысл третьего закона становится более понятным, если учесть, что один и тот же цвет (в том числе и цвет смешиваемых компонентов) может быть получен разными способами. Например, смешиваемый компонент может быть получен, в свою очередь, смешиванием других компонентов.
На теоретической базе этих законов существуют все современные цветовые модели.
5.4. Типы цветовых моделей
Большинство графических пакетов позволяют оперировать широким кругом цветовых моделей, часть из которых создана для специальных целей, а другая - для особых типов красок. Перечислим их:
• CMY;
• CMYK;
• RGB;
• HSB;
• HLS;
• Lab;
• YIQ;
• YCC.
По принципу действия перечисленные цветовые модели можно условно разбить на три класса:
• аддитивные (RGB), основанные на сложении цветов;
• субтрактивные (CMY, CMYK), основу которых составляет операция вычитания цветов (субтрактивный синтез);
• перцепционные (HSB, HLS, Lab, YCC), базирующиеся на восприятии.
Перед тем как перейти к непосредственному рассмотрению конкретных цветовых моделей, уделим немного внимания общим физическим закономерностям, свойственным природе цвета.
Эта модель используется для описания цветов, которые могут быть получены с помощью устройств, основанных на принципе излучения. В качестве основных цветов берется красный (Red), зеленый (Green) и синий (Blue). Другие цвета и оттенки могут быть получены смешиванием определенного количества любого из основных цветов.
5.4.1. Аддитивные цветовые модели
Аддитивный цвет получается на основе законов Грассмана путем соединения лучей света разных цветов. В основе этого явления лежит тот факт, что большинство цветов видимого спектра могут быть получены путем смешивания в различных пропорциях трех основных цветовых компонент. Этими компонентами, которые в теории цвета иногда называются первичными цветами, являются красный (Red), зеленый (Green) и синий (Blue) цвета. При попарном смешивании первичных цветов образуются вторичные цвета: голубой (Cyan), пурпурный (Magenta) и желтый (Yellow). Следует отметить, что первичные и вторичные цвета относятся к базовым цветам.
Базовыми цветами называют цвета, с помощью которых можно получить практически весь спектр видимых цветов.
Для получения новых цветов с помощью аддитивного синтеза можно использовать и различные комбинации из двух основных цветов, варьирование состава которых приводит к изменению результирующего цвета. На рис. 5.9 приведена схема получения новых цветов на базе двух первичных путем использования источников зеленого и красного цветов, интенсивностью каждого из которых можно управлять с помощью фильтра. Можно увидеть, что равные пропорции первичных цветов дают желтый цвет (1, 2); снижение в смеси интенсивности зеленого цвета при той же интенсивности красного позволяет синтезировать оранжевый цвет (3,4); подобные колометрические схемы позволяют создать желтый и оранжевый цвета в виде геометрического места цветовых точек - локуса (2,4). Однако таким способом нельзя получить некоторые цвета, например голубой, для создания которого требуется наличие третьего первичного цвета - синего.
Рис. 5.9. Аддитивный синтез новых цветов на базе разного процентного соотношения двух первичных цветов - красного и зеленого.
Аддитивные цвета нашли широкое применение в системах освещения, видеосистемах, устройствах записи на фотопленку, мониторах, сканерах и цифровых камерах.
Используемые для построения RGB-модели первичные, или аддитивные, цвета имеют еще одно название. Иногда, чтобы подчеркнуть тот факт, что при добавлении света интенсивность цвета увеличивается, эту модель называют добавляющей. Такое обилие терминов, используемых для описания RGB-модели, связано с тем, что она возникла задолго до появления компьютера и каждая область ее применения внесла свой вклад в терминологию.
Рис. 5.10. Представление RGB-модели в виде куба
Рис. 5.11. Модель Т. Юнга
RGB - модель
Вкратце история модели RGB такова. Томас Юнг (1773-1829) взял три фонаря и приспособил к ним красный, зеленый и синий светофильтры. Так были получены источники света соответствующих цветов. Направив на белый экран свет этих трех источников, ученый получил такое изображение (рис. 5.11). На экране свет от источников давал цветные круги. В местах пересечения кругов наблюдалось смешивание цветов. Желтый цвет давало смешивание красного и зеленого, голубой - смесь зеленого и синего, пурпурный - синего и красного, а белый цвет образовался смешением всех трех основных цветов. Некоторое время спустя, Джемс Максвелл (1831-1879) изготовил первый колориметр, с помощью которого человек мог сравнивать монохроматический цвет и цвет смешивания в заданной пропорции компонентов RGB. Регулируя яркость любого из смешиваемых компонентов, можно добиться уравнивания цветов смеси и монохроматического излучения. Это описывается следующим образом:
Ц = rR + gG +bB,
где r, g и b - количество соответствующих основных цветов. Эта модель используется для описания цветов, которые могут быть получены с помощью устройств, которые основаны на принципе излучения. В качестве основных цветов выбран красный (Red), зеленый (Green) и синий (Blue). Другие цвета й оттенки могут быть получены смешиванием определенного количества основных цветов.
Соотношение коэффициентов r, g и b Максвелл наглядно показал с помощью треугольника, со временем названного его именем. Треугольник Максвелла является равносторонним, в его вершинах располагаются основные цвета - R, G и В (рис. 5.12). Из заданной точки проводятся линии, перпендикулярные сторонам треугольника. Длина каждой линии и показывает соответствующую величину коэффициента г, g или b. Одинаковые значения r = g = b имеют место в центре треугольника и соответствуют белому цвету. Следует также указать, что некоторые цвета отображаются точками вне треугольника RGB, - это означает отрицательное значение соответствующего цветового коэффициента. Сумма коэффициентов равняется высоте треугольника, а при высоте, равной единице, составляет r + g + b = 1.
В качестве основных цветов, Максвелл использовал излучения с такими длинами волн: 630, 528 и 457 им.
Рис. 5.12. Треугольник Максвелла
К настоящему времени система RGB - это официальный стандарт. Решением Международной Комиссии по Освещению - МКО (CIE - Commision International de VEclairage) в 1931 году были стандартизированы основные цвета, которые было рекомендовано использовать в качестве R, G и В. Это монохроматические цвета светового излучения с длинами волн соответственно:
R - 700 нм, G - 546.1 нм, В - 435.8 нм.
Красный цвет получается с помощью лампы накаливания с фильтром. Для получения чистых зеленых и синих цветов используется ртутная лампа. Также стандартизировано значение светового потока для каждого основного цвета.
Еще одним важным параметром для системы RGB является цвет, полученный после смешивания трех компонентов в равных количествах. Это белый цвет. Оказывается, для того, чтобы смешиванием компонентов R,G, и B получить белый цвет, яркости соответствующих источников не должно быть равным, и должны находиться в пропорции
Рис. 5.13. Трехмерные координаты RGB
LR :L G :LB =1:4,5907:0,0601
Если расчеты цвета делаются для источников излучения с одинаковой яркостью, то указанное соотношение яркостей можно учесть соответствующими масштабными коэффициентами.
Теперь рассмотрим другие аспекты. Цвет, создаваемый смешиванием трех основных компонентов, можно представить вектором в трехмерной системе координат R, G и В, изображенной на рис. 5.13. Черному цвету соответствует центр координат - точка (0,0,0). Белый цвет выражен максимальным значением компонентов. Пусть это максимальное значение вдоль каждой оси равняется единице. Тогда белый цвет - это вектор (1,1,1). Точки, которые лежат на диагонали куба от черного к белому, имеют одинаковые значения координат: R1=G1=B1. Это градации серого - их можно считать белым цветом разной яркости. Следовательно, если все компоненты вектора (r ,g , b) умножить на одинаковый коэффциент (k=0..1...1), то цвет (kr, kg, kb) сохраняется, изменяется только яркость. Поэтому для анализа цвета важно соотношение компонентов. Если в цветовом уравнении
Ц = rR + gG + bB
разделить коэффициенты r, g и b на их сумму:
r' =, r' =, r' =,
то можно записать такое цветовое уравнение
Ц=r' R + g' G + b' B.
Это уравнение представляет векторы цвета (r', g', b'), которые лежат в единичной плоскости r' + g' + b' =1. Иными словами, мы перешли от куба к треугольнику Максвелла.
В ходе колориметрических экспериментов были определены коэффициенты (r' , g', b'), это призма из белого гипса, грани которой освещаются источником света. На левую грань направлен источник чистого монохромотического излучения, а правая грань освещается смесью трех источников RGB. Наблюдатель видит одновременно две грани, что позволяет фиксировать равенство цветов.
Коэффициенты r', g', b' могут быть и положительными, и отрицательными, суммой компонентов R,G,B. Но как отнять то, чего нет? Для уравнивания цвета пришлось прибавить к монохроматическому излучению один из компонентов R,G или B. Например, если монохромическое излучение для некоторого значения ג разбавлялось красным, то это можно выразить так:
Ц(ג)+r’(ג)R=g’(ג)G+b’(ג)B
Как оказалось, ни один цвет монохромотического излучения не может быть представлен только положительными значениями коэффициентов смешивания. Это наглядно можно изобразить с помощью цветового графика, построенного на основе треугольника Максвелла (рис.5.14). Верхняя часть кривой линии соответствует чистым монохромотическим цветам, а нижняя линия - от 380 нм до 780 нм - представляет так называемые пурпурные цвета (смесь синего и красного), которые не являются монохромотическими. точки, которые лежат внутри контура кривой, соответствуют реальным цветам, а вне этого контура - нереальным цветам. Точки внутри треугольника соответствуют положительным значениям коэффициентов r' ,g' ,b' и представляют цвета, которые можно получить смешиванием компонентов RGB.
Рис. 5.14. Цветовой график RGB
Таким образом, система RGB имеет неполный цветовой охват - некоторые насыщенные цвета не могут быть представлены смесью указанных трех компонентов. В первую очередь, это цвета от зеленого к синему, включая все оттенки голубого - они соответствуют левой части кривой цветового графика. Ещё раз подчеркнем, что речь здесь идет о насыщенных цветах, так как ненасыщенные голубые цвета получить можно смешиванием компонентов RGB. Несмотря на неполный охват, система RGB широко используется в данное время - в первую очередь, в цветных телевизорах и дисплеях компьютеров. Отсутствие некоторых оттенков цвета не слишком заметно.
Ещё одним фактором, способствующим популярности системы RGB, является ее наглядность - основные цвета находятся в трех четко различимых участках видимого спектра. Кроме того, одна гипотеза, объясняющих цветовое зрение человека - трехкомпонентная теория - утверждает, что в зрительной системе человека есть три типа светочувствительных элементов.Один тип элементов реагирует на зеленый, другой тип - на красный, а третий тип - на синий цвет.
Такая гипотеза высказывалась ещё Ломоносовым, её обоснованием занимались многие ученый, начиная с Т. Юнга. Впрочем, трехкомпонентная теория не является единственной теорией цветового зрения человека.
Почему RGB-модель нравится компьютеру?
В графических пакетах цветовая модель RGB используется для создания цветов изображения на экране монитора, основными элементами которого являются три электронных прожектора и экран с нанесенными на него тремя разными люминофорами. Точно так же, как и зрительные пигменты трех типов колбочек, эти люминофоры имеют разные спектральные характеристики. Но в отличие от глаза они не поглощают, а излучают свет. Один люминофор под действием попадающего на него электронного луча излучает красный цвет, другой - зеленый и третий - синий.
Мельчайший элемент изображения, воспроизводимый компьютером, называется пикселом (pixel от pixture element). При работе с низким разрешением отдельные пикселы не видны. Однако если вы будете рассматривать белый экран включенного монитора через лупу, то увидите, что он состоит из множества отдельных точек красного, зеленого и синего цветов, объединенных в RGB-элементы в виде триад основных точек. Цвет каждого из воспроизводимых кинескопом пикселов (RGB-элементов изображения) получается в результате смешивания красного, синего и зеленого цветов входящих в него трех люминофорных точек. При просмотре изображения на экране с некоторого расстояния эти цветовые составляющие RGB-элементов.
Для назначения цвета и яркости точек, формирующих изображение монитора, нужно задать значения интенсивностей для каждой из составляющих RGB-элемента (пиксела). В этом процессе значения интенсивностей используются для управления мощностью трех электронных прожекторов, возбуждающих свечение соответствующего типа люминофора. В то же время число градаций интенсивности определяет цветовое разрешение, или, иначе, глубину цвета, которые характеризуют максимальное количество воспроизводимых цветов. На рис. 5.15 приведена схема формирования 24-битового цвета, обеспечивающая возможность воспроизведения 256 × 256 × 256 = 16,7 млн. цветов.
Рис. 5.15. Каждый из трех цветовых компонентов RGB - триады может принимать одно из 256 дискретных значений - от максимальной интенсивности (255) до нулевой, соответствующей черному цвету
Ограничения RGB-модели
Несмотря на то, что цветовая модель RGB достаточно проста и наглядна, при ее практическом применении возникает серьезная проблема - ограничение цветового охвата. Эта проблема связана с тем, что цвет, возникающий в результате смешения цветовых составляющих RGB элемента, зависит от типа люминофора. А поскольку в технологии производства современных кинескопов находят применение разные типы люминофоров, то установка одних и тех же интенсивностей электронных лучей в случае различных люминофоров приведет к синтезу разного цвета. Например, если на электронный блок монитора подать определенную тройку RGB-значений, скажем R = 98, G = 127 и В = 201, то нельзя однозначно сказать, каков будет результат смешивания. Эти значения всего лишь задают интенсивности возбуждения трех люминофоров одного элемента изображения. Какой получится при этом цвет, зависит от спектрального состава излучаемого люминофором света. Поэтому в случае аддитивного синтеза для однозначного определения цвета наряду с установкой триады значений интенсивностей необходимо знать спектральную характеристику люминофора.
Существуют и другие причины, приводящие к аппаратной зависимости RGB-модели даже для мониторов, выпускаемых одним и тем же производителем. Это связано, в частности, с тем, что в процессе эксплуатации происходит старение люминофора и изменение эмиссионных характеристик электронных прожекторов. Для устранения (или по крайней мере минимизации) зависимости RGB-модели от аппаратных средств используются различные устройства и программы градуировки. Цветовой охват (color gamut) - это диапазон цветов, который может различать человек или воспроизводить устройство независимо от механизма получения цвета (излучения или отражения).
Ограниченность цветового охвата объясняется тем, что с помощью аддитивного синтеза принципиально невозможно получить все цвета видимого спектра (это доказано теоретически!). В частности, некоторые цвета, такие как чистый голубой или чистый желтый, не могут быть точно воссозданы на экране. Но несмотря на то, что человеческий глаз способен различать цветов больше, чем монитор, RGB-модели вполне достаточно для создания цветов и оттенков, необходимых для воспроизводства фотореалистических изображений на экране компьютера.
sRGB - стандартизированный вариант RGB-цветового пространства
Главный недостаток RGB-модели заключается в ее размытости. Это обусловлено тем, что на практике RGB-модель характеризует цветовое пространство конкретного устройства, например монитора или сканера.
Нужен какой-то общий знаменатель.
Тем не менее любое RGB-пространство можно сделать стандартным. Для этого надо всего лишь однозначно определить его. Например, в Photoshop 5 предлагается целых девять заранее определенных вариантов, важное место среди которых занимает стандартное цветовое пространство для Интернета - sRGB (так называемое standard RGB - стандартное RGB). По инициативе двух фирм - Microsoft и HP - оно стандартизировано и соответствует цветовому пространству типичного монитора VGA низшего класса. Сегодня это пространство является альтернативой системам управления цветом, использующим 1СС, предназначенные для описания цветового охвата устройств, которые входят в состав настольных издательских систем. В отличие от последних для пользователя Интернета важны простота и компактность файлов. Вряд ли вам понравится получать по сети двухмегабайтный (и даже двухкилобайтный) профиль с каждой картинкой (хотя спецификация ICC 1:1998-09 позволяет встраивать профили даже в изображения в формате GIF). Идея стандартного RGB-пространства настольно привлекательна, что даже Adobe Systems включила его в состав своих продуктов. Например, Photoshop 5.0 открывает RGB-файлы, не содержащие ICC-профиля, как sRGB.
5.4.2. Субтрактивные цветовые модели
В отличие от экрана монитора, воспроизведение цветов которого основано на излучении света, печатная страница может только отражать цвет. Поэтому RGB-модель в данном случае неприемлема. Вместо нее для описания печатных цветов используется модель CMY, базирующаяся на субтрактивных цветах.
Субтрактивные цвета в отличие от аддитивных цветов (той же RGB-модели) получаются вычитанием вторичных цветов из общего луча света. В этой системе белый цвет появляется как результат отсутствия всех цветов, тогда как их присутствие дает черный цвет.
В последнее время в качестве синонима термина «субтрактивная» иногда используют термин «исключающая». Происхождение этого названия связано с явлением отражения света от покрытой красителем поверхности, а также с тем фактом, что при добавлении красителей интенсивность света уменьшается, поскольку свет поглощается тем больше, чем больше красителя нанесено на поверхность.
Нанесение на бумагу трех базовых цветов: голубого (Cyan), пурпурного (Magenta) и желтого (Yellow) позволяет создать множество субтрактивных цветов.
Цветовая модель CMY
Используется для описания цвета при получении изображений на устройствах, которые реализуют принцип ппоглощения цветов. В первую очередь, она используется в устройствах, которые печатают на бумаге. Название данной модели состоит из названий основных субтрактивных цветов:голубого (Cyan), пурпурного (Magenta) и желтого (Yellow) (рис.5.16).
Рис. 5.16. Цветовая модель CMY - поглощение (вычитание) цветов)
Нанесение желтой краски на белую бумагу означает, что поглощается отраженный синий цвет. Голубая краска поглощает красный цвет. Пурпурная краска - зеленый. Комби-нированне красок позволяет получить цвета, которые остались - зеленый, красный, синий и черный. Черный соответствует поглощению всех цветов при отражении. На практике добиться черного смешиванием сложно из-за нендеальности красок, поэтому в принтерах используют еще и краску черного цвета (black). Тогда модель называется CMYK, Необходимо также отметить, что не всякие краски обеспечивают указанное выше вычитание цветов CMY. В табл. 5.1 для сравнения представим описание некоторых цветов в моделях RGB и CMY.
Таблица 5.1.
Описание цветов в моделях RGB и CMY
Цвет
Модель RGB
Модель CMY
R
G
B
C
M
Y
Красный
1
1
1
Желтый
1
1
1
Ярко-Зеленый
1
1
1
Голубой
1
1
1
Синий
1
1
1
Пурпурный
1
1
1
Черный
1
1
1
Белый
1
1
1
Соотношение для перекодировки цвета из модели CMY в RBG:
Здесь считается, что компоненты кодируются числами в диапозоне от 0 до 1. Для другого диапозона чисел можно записать соответствующие обратное соотношение.
CMY и CMYK
Существуют две наиболее распространенные версии субтрактивной модели: CMY и CMYK. Первая из них используется в том случае, если изображение или рисунок будут выводиться на черно-белом принтере, позволяющем заменять черный картридж на цветной (color upgrade). В ее основе лежит использование трех субтрактивных (вторичных) цветов: голубого (Cyan), пурпурного (Magenta) и желтого (Yellow). Теоретически при смешивании этих цветов на белой бумаге в равной пропорции получается черный цвет.
Однако в реальном технологическом процессе получение черного цвета путем смешивания трех основных цветов для бумаги неэффективно по трем причинам.
Невозможно произвести идеально чистые пурпурные, синие и желтые краски. Поэтому цвет получается не чисто черным, а грязно-коричневым.
На создание черного цвета с помощью модели CMY тратится в три раза больше краски.
В силу перечисленных факторов при печати чистого черного цвета используется добавка дополнительной черной компоненты цвета. Эта технология приводит также к улучшению качества теней и серых оттенков. Интенсивность каждой из четырех компонент цвета может изменяться в диапазоне от 0 до 100 %.
В аббревиатуре модели CMYK используется буква «К» (последняя буква слова Black) для того, чтобы избежать путаницы, поскольку в английском языке с буквы «В» начинается не только слово Black (черный), но и слово Blue (синий). Встречается еще один вариант трактовки использования этой буквы как аббревиатуры термина Key color (ключевой цвет).
Ограничения модели CMYK
CMYK-модель имеет те же два типа ограничений, что и RGB-модель: аппаратная зависимость; ограниченный цветовой диапазон.
В CMYK-модели также нельзя точно предсказать результирующий цвет только на базе численных значений ее отдельных компонентов. В этом смысле она является даже более аппаратно-зависимой моделью, чем RGB. Это связано с тем, что в ней имеется большее количество дестабилизирующих факторов, чем в RGB-модели. К ним в первую очередь можно отнести вариацию состава цветных красителей, используемых для создания печатных цветов. Цветовое ощущение определяется еще и типом применяемой бумаги, способом печати и, не в последнюю очередь, внешним освещением. Последнее неудивительно - ведь никакой объект не может отразить цвет, отсутствующий в источнике излучения.
В силу тот что цветные красители имеют худшие характеристики по сравнению с люминофорами, цветовая модель CMYK имеет более узкий цветовой диапазон по сравнению с RGB-моделью. В частности, она не может воспроизводить яркие насыщенные цвета, а также ряд специфических цветов, таких, например, как металлический или золотистый.
Об экранных цветах, которые невозможно точно воссоздать при печати, говорят, что они лежат вне цветового охвата (gamut alarm) модели CMYK (рис. 5.17). В большинстве графических пакетов под такими цветами понимаются цвета, которые могут быть представлены в формате RGB или HSB, но при этом не имеют печатных аналогов в цветовом пространстве CMYK.
Рис. 5.17. Несовпадение цветов, отображанмых на экране монитора, с печатаемыми на принтере. При распечатке цвета становятся темными и приглушенными
Несоответствие цветовых диапазонов RGB- и CMYK-моделей представляет серьезную проблему. Судите сами: полученная вами на экране монитора в результате напряженной работы прекрасная картинка при распечатке вдруг превращается в унылое и блеклое подобие оригинала. Для предотвращения подобной ситуации разработчиками графических программ предусмотрен комплекс специальных средств.
Наиболее простые основаны на выявлении и коррекции несоответствующих цветов непосредственно в процессе редактирования.
Более кардинальные предназначены для расширения цветового пространства CMYK-модели.
И наконец самый «продвинутый» - использование систем управления цветом - CMS (color management systems).
К первой группе средств, используемых при подготовке изображения для печати, можно отнести следующие.
Редактирование изображения в формате CMYK-модели. Хотя относительно целесообразности применения этого способа существуют прямо противоположные мнения, не вдаваясь в физические аспекты дискуссии, отметим, что полученное в этом случае при печати изображение будет соответствовать наблюдаемому на мониторе.
Возможности расширения цветового охвата CMYK
И профессионалы в области полиграфии, занимающиеся подготовкой и изданием красочных буклетов по живописи, и специалисты в области рекламы, чьи доходы напрямую связаны с воздействием цветных публикаций на покупателя, уже давно имеют претензии к стандартной CMYK-модели из-за относительно узкого диапазона воспроизводимых ею цветов. С помощью четырехцветной печати можно воспроизвести достаточно реалистичные красные цвета, но невозможно добиться ярких розовых, синих, фиолетовых и многих других цветов. Но даже те цвета, которые хорошо воспроизводятся с помощью этой модели, часто оказываются недостаточно насыщенными. По этой причине на базе CMYK-модели разработан ряд технологий, например технология HiFi Color.
К настоящему времени создано несколько вариантов HiFi Color. Их общей чертой является расширение используемых при цветовой печати гаммы цветов за счет добавления новых цветов к четырем базовым цветам CMYK.
Использование плашечных цветов
Плошечными (простыми, смесовыми) цветами называются цвета, которые воспроизводятся на бумаге готовыми смесовыми красками, созданными с помощью специальной технологии, базирующейся на использовании для каждого цвета соответствующего ему уникального красителя (чернил). Поскольку они в отличие от триадных (CMYK) цветов не прозрачны, то отражают свет поверхностным слоем. Это позволяет добиться воспроизведения очень ярких тонов и специальных эффектов типа металлизации и иризации (перелива оттенков при разных углах зрения). Плашечные краски используют вместо триадных (CMYK) красок или в добавление к ним. Несколько фирм занимаются производством таких цветов. Это в первую очередь Pantone, TRUMATCH и Focoltone.
5.4.3. Перцепционные цветовые модели
Для дизайнеров, художников и фотографов основным инструментом индикации и воспроизведения цвета служит глаз. Этот естественный «инструмент» обладает цветовым охватом, намного превышающим возможности любого технического устройства, будь то сканер, принтер или фотоэкспонирующее устройство вывода на пленку.
Как было показано ранее, используемые для описания технических устройств цветовые системы RGB и CMYK являются аппаратнозависимыми. Это значит, что воспроизводимый или создаваемый с помощью них цвет определяется не только составляющими модели, но и зависит от характеристик устройства вывода. Для устранения аппаратной зависимости был разработан ряд так называемых перцепционных (иначе - интуитивных) цветовых моделей. В их основу заложено раздельное определение яркости и цветности. Такой подход обеспечивает ряд преимуществ:
• позволяет обращаться с цветом на интуитивно понятном уровне;
• значительно упрощает проблему согласования цветов, поскольку после установки значения яркости можно заняться настройкой цвета.
Прототипом всех цветовых моделей, использующих концепцию разделения яркости и цветности, является HSV-модель. К другим подобным системам относятся HSI, HSB, HSL и YUV. Общим для них является то, что цвет задается не в виде смеси трех основных цветов - красного, синего и зеленого, а определяется путем указания двух компонентов: цветности (цветового тона и насыщенности) и яркости.
Цветовая модель HSB
Модель HSB (Hue - цветовой тон, Saturation - насыщенность, Brightness - яркость) или ее ближайший аналог HSL представлены в большинстве современных графических пакетов. Из всех используемых в настоящее время моделей эта модель иаиболее точно соответствует способу восприятия цветов человеческим глазом. Она позволяет описывать цвета интуитивно ясным способом.
В HSB-модели все цвета определяются с помощью комбинации трех базовых параметров (рис. 5.18):
• цветовой тон (Н);
• насыщенность(S);
• яркость (В).
Рис. 5.18. Цветовой тон определяет положение цвета на цветовом круге, насыщенность и яркость задают количество «чистого» цвета и света в данном тоне
Для лучшего понимания природы HSB-модели давайте познакомимся с физическим смыслом ее основных компонентов.
Цветовой тон
Как уже отмечалось, каждый реальный источник света воспроизводит его в виде смеси волн, имеющих разные длины. Под цветовым тоном (hue) понимается свет с доминирующей длиной волны. Обычно для описания цветового тона (в некоторых источниках применяется термин оттенок) используется название цвета, например красный, оранжевый или зеленый. В традиционной интерпретации этой модели каждый цветовой тон занимает определенное положение на периферии цветового круга и характеризуется величиной угла в диапазоне от 0 до 360° (рис. 5.19). Обычно для красного цвета берется угол 0°, для чисто зеленого - 120° и для чисто синего - 240°.
На цветовом круге первичные цвета расположены на равном расстоянии друг от друга. Вторичные цвета находятся между первичными. В свою очередь, каждый цвет расположен напротив дополняющего его (комплиментарного) цвета, причем он находится между цветами, с помощью которых получен. Например, сложение желтого и голубого цветов дает зеленый. Таким образом, на цветовом круге зеленый цвет должен располагаться между желтым и голубым. Хотя оранжевый или фиолетовый не являются первичными или вторичными цветами (они представляются комбинацией первичного и вторичного цветов), они показаны на круговой диаграмме цветов, чтобы проиллюстрировать их положение относительно других цветов.
Однако само по себе понятие цветового тона не содержит всей полноты информации о цвете. Например, свет, в котором преобладает компонента с длиной волны около 450 нанометров, будет восприниматься большинством людей с нормальным зрением, как оттенок, обычно ассоциируемый с синим цветом (ему соответствует на цветовом круге угол 240°).
Чтобы усилить в изображении какой-либо цвет, нужно ослабить дополняющий его цвет (расположенный напротив него на цветовом круге). Например, чтобы изменить общее цветовое содержание изображения в сторону зеленого цвета, следует снизить в нем содержание пурпурного цвета. Именно на этом принципе основана цветовая коррекция изображения.
Рис. 5.19. Расположение цветов на цветовом круге
Вопрос в том, что понимать под понятием синий? Темно-синее или голубое небо лазурное море, полевой василек и незабудка - это все примеры цветов, в которых доминирует синий цвет, но, несмотря на это, они воспринимаются нашим глаза как разные. Что обусловливает их различие, как много или, наоборот, мало содержат они в своем составе других компонентов, которые наш глаз интерпретирует как составные части цвета? Этими дополнительными компонентами являются насыщенность (saturation) и яркость (brightness).
Насыщенность
Цветовой тон не единственный атрибут цвета, различаемый людьми. Другой компонент - насыщенность - характеризует чистоту цвета. Он определяет соотношение между основной, доминирующей компонентой цвета и всеми остальными длинами волн (количеством серого), участвующими в формировании цвета. Количественное значение этого параметра выражается в процентах от 0% (серый) до 100% (полностью насыщенный).
По другому определению, насыщенность отражает, насколько далеко отстоит данный цвет от равного с ним по яркости белого цвета. В этом случае насыщенность можно измерять числом едва заметных переходов (градаций), лежащих между данным цветом и белым.
Чем выше значение насыщенности, тем сильнее и яснее ощущается цветовой тон. Например, пастельный синий цвет воспринимается как размытый синий цвет из-за незначительного содержания в нем чистого оттенка. Снижение насыщенности приводит к тому, что цвет становится нейтральным, без четко выраженного тона.
Если вы возьмете цветную фотографию и понизите насыщение до 0%, то в итоге получите черно-белую фотографию (в градациях серого). Примерами цветов с максимальной насыщенностью могут служить спектральные цвета, в частности желтый цвет, соответствующий линии спектра натрия с длиной волны 536 мкм. В то же время желтый цвет, полученный путем аддитивного сложения красного с зеленым цветов, характеризуется пониженной насыщенностью. И совсем низкую насыщенность имеет желтый свет солнечного диска, содержащего практически полный спектр видимых цветов.
Примерами «полностью» нейтральных (ахроматических) цветов могут служить серый, белый и черный цвета. По мере перемещения к центру круга цвет приближается к серому, поскольку при этом все базовые цвета смешиваются в равной пропорции.
Естественные цвета имеют низкую насыщенность, поэтому слишком насыщенные
цвета выглядят ненатуральными и подчеркнутыми.
Перемещение поперек цветового круга (в отличие от движения по окружности) приводит к уменьшению доли цвета, от которого вы удаляетесь, и возрастанию доли цвета, к которому вы приближаетесь. В итоге это приводит к понижению насыщенности, которая имеет максимальное значение (100%) на поверхности окружности и минимальное (0%) - в центре круга.
Яркость
Яркость (В) характеризует интенсивность, с которой энергия света воздействует на рецепторы нашего глаза. Ее можно интерпретировать также как относительную освещенность или затемненность цвета (светлоту цвета). Солнечный зайчик - пример высокой интенсивности освещения (яркого). В то же время тлеющие угли - низкой. Любые цвета и оттенки независимо от их цветового тона можно сравнить по яркости, то есть определить, какой из них темнее, а какой светлее.
Яркость никоим образом не влияет на цветность, но от нее зависит, насколько сильно цвет будет восприниматься нашим глазом. При нулевой яркости мы не видим ничего, поэтому любой цвет будет восприниматься как черный. Исходя из этого яркость иногда трактуют подобно насыщенности, то есть как величину, обратную степени разбавленности цвета черным. В этом случае при отсутствии черного мы получаем чистый спектральный цвет, а максимальная яркость вызывает ощущение ослепительно белого цвета.
Когда говорят о яркости как атрибуте цвета, под белым цветом понимают абсолютную яркость, а под черным цветом - полное отсутствие яркости. Серый цвет характеризует промежуточное значение яркости.
Ахроматические цвета, то есть белые, серые и черные, характеризуются только яркостью. Это проявляется в том, что одни цвета темнее, а другие светлее.
Величина яркости измеряется в процентах в диапазоне от 0% (черный) до 100% (белый). По мере снижения процентного содержания яркости цвет становится темнее, стремясь к черному. Данная компонента является нелинейной, что соответствует нашему восприятию светлых и темных цветов.
Яркость и цветовой тонне являются полностью независимыми параметрами. Изменение яркости изображения влияет на изменение цветового тона, что создает нежелательный цветовой отлив (сдвиг) в изображении. Так, при значительном уменьшении яркости зеленые цвета синеют, синие приближаются к фиолетовым, желтые - к оранжевым, а оранжевые - к красным. Сильное увеличение яркости излучения вызывает другой эффект. Красные цвета переходят в оранжевые, затем в желтые и, наконец, - в белые.
Универсальность яркостной компоненты
Яркость (светлота) - качество, присущее как хроматическим, так и ахроматическим цветам. Поэтому по яркости можно сравнивать между собой любые цвета и оттенки: бледно-зеленый с темно-зеленым, розовый с синим, красный с фиолетовым и т. д. Это свойство находит использование при конвертировании цветных изображений в черно-белые или полутоновые.
У художников принято светлотные отношения называть тональными. Поэтому различают светлотный и цветовой тон. Когда говорят, что картина написана в светлых тонах, то прежде всего имеют в виду светлотные отношения, а по цвету она может быть и серо-белой, и розовато-желтой, и светло-сиреневой - словом, самой разной.
Различие между HSB- и HSL-моделями состоит в замене нелинейного компонента brightness (яркость) на линейный компонент lightness (светлота).
Достоинства и ограничения HSB-модели
Модель HSB в отличие от моделей RGB и CMYK носит абстрактный характер. Отчасти это связано с тем, что цветовой тон и насыщенность цвета нельзя измерить непосредственно. Любая форма ввода цветовой информации всегда начинается с определения красной, зеленой и синей составляющих, на базе которых затем с помощью математического пересчета получают компоненты HSB-модели. В результате эта цветовая модель имеет то же цветовое пространство, что и RGB-модель, а значит, и присущий ей недостаток - ограниченное цветовое пространство.
Вместе с тем HSB-модель обладает по сравнению с RGB - и CMYK-моделями двумя важными преимуществами:
Аппаратной независимостью. Задание составляющих этой модели в виде значений цветового тона, насыщенности и яркости позволяют однозначно определить цвет без необходимости учета параметров устройства вывода.
Более простым и интуитивно понятным механизмом управления цветом.
Это связано с тем, что цветовой тон, насыщенность и яркость представляют собой независимые характеристики цвета. Например, чистый красный цвет расположен на цветовом круге под углом 0°. Если нужно сместить красный тон к оранжевому тону, то следует лишь несколько увеличить угол, определяющий цветовой тон. Для получения более блеклого цвета достаточно лишь снизить насыщенность, а для придания ему большей яркости соответственно увеличить значение яркости. Получение таких эффектов с помощью RGB-модели практически невозможно, поскольку значения ее цветовых компонентов очень сильно зависят друг от друга. Поэтому при изменении одной из ее составляющих, например красной, это окажет влияние не только на цветовой тон, но одновременно и на насыщенность и яркость.
5.4.4. Системы соответствия цветов и палитры
Как уже отмечалось ранее при рассмотрении цветовых моделей, каждая из них характеризуется собственным цветовым охватом. Это приводит к тому, что часть цветов, используемых в технологии многослойной печати, не может быть точно отображена на экране монитора. Кроме того, на воспроизведение цвета на экране монитора влияет множество других факторов: условия освещенности, срок эксплуатации, точность его настройки. Поэтому нельзя выбирать нужный нам цвет непосредственно на экране дисплея.
С целью повышения точности воспроизведения цвета на этапе печати в современные графические программы включены системы сопоставления цветов и палитры, которые предоставляют в ваше распоряжение еще один способ назначения цветов, альтернативный цветовым моделям.
Системы соответствия цветов
Для упрощения процедуры идентификации цвета ведущими фирмами, специализирующимися в области полиграфии и производстве красителей, были созданы системы соответствия цветов.
Система соответствия цветов включает в себя набор следующих основных компонентов:
• Эталонные таблицы (атласы или каталоги) цветов, содержащихся в одноименных палитрах
• Электронные палитры (или просто палитры)
• Специальные программные и аппаратные средства для калибровки устройств вывода.
Рассмотрим подробнее эталонные таблицы и электронные палитры.
Назначение эталона
Эталонные таблицы предоставляют собой набор цветов (образцов), которые могут быть адекватным образом отображены в процессе печати на соответствующей им бумаге.
Изготовление эталона тщательно контролируется с целью минимизации вариаций цветов. Каждому цвету присваивается свое уникальное имя и указывается тип пигмента или состав смеси из различных пигментов, необходимых для его реализации. Указывается также идентифицированный с данным пигментом тип бумаги. В дополнение к этой таблице, используемой как справочник, пользователь получает образцы цветов, которые можно вырезать и прикрепить к изображению. Благодаря этим образцам система обеспечивает точный визуальный контроль соответствия того, что мы видим на экране, с тем, что мы получим на печати. Типичными примерами атласов цветов (или, как их еще называют, цветовых образцов) являются каталоги фирм TRUMATCH и Pantone, известные под названиями Colorfinder и Process Color Guide.
Вы можете выбрать из них нужные вам цвета, затем определить соответствующее им процентное содержание каждого из компонентов CMYK-модели и быть уверенными, что они точно отобразятся при печати (даже если цвет на экране не соответствует цвету выбранного вами образца).
Каждая из рассмотренных систем соответствия цветов имеет два варианта атласов образцов с одними и теми же CMYK-цветами, напечатанными на мелованной и немелованной бумаге.
Реальность такова, что цвет, напечатанный на немелованной бумаге, выглядит более темным и приглушенным по сравнению с аналогичным цветом, напечатанным на мелованной бумаге. Поэтому если вы собираетесь использовать при печати оба вида бумаги, вам понадобятся два каталога цветовых образцов.
В современных программах графики, таких как программа CorelDRAW, электронные палитры систем соответствия цветов поставляются вместе с высококачественными копиями цветных каталогов.
Кодирование цвета. Палитра
Для того чтобы компьютер имел возможность работать с цветными изображениями, необходимо представлять цвета в виде чисел - кодировать цвет. Способ кодирования зависит от цветовой модели и формата числовых данных в компьютере.
Для модели RGB любой из компонентов может быть представлен числами, ограниченными определенным диапазоном - например, дробными числами от 0 до 1, или целыми числами от 0 до какого-либо максимального значения. В настоящее время довольно распространен формат True Color, в котором каждый компонент представлен в виде банта, что дает 256 градаций для любого компонента: R - 0 ... 255, G = 0 ... 255, В = 0 ... 255. Количество цветов составляет 256x256x256 = 16.7 млн. (224).
Такой способ кодирования цветов можно назвать компонентным. В компьютере коды изображений True Color представлены в виде троек байтов или упаковываются в длинное целое (четырехбайтовое) - 32 бита (так, например, сделано в API Windows):
С = 00000000 bbbbbbbb gggggggg rrrrrrrr.
При работе с изображениями в системах КГ часто приходится искать компромисс между качеством изображения (требуется как можно больше цветов) и ресурсами, необходимыми для хранения и воспроизведения изображения. Ресурсы исчисляются, например, объемом памяти (нужно уменьшать количество бит на пиксел).
Кроме того, некоторые изображения сами по себе могут использовать ограниченное количество цветов. Например, для черчения может быть достаточно двух цветов, для фото человеческого лица важны оттенки красного, розового, желтого, пурпурного, зеленого; а для неба - оттенки голубого и серого. В таких случаях использование полноцветного кодирования цвета является избыточным.
При ограничении количества цветов используют палитру, представляющую набор цветов, важных для данного изображения. Палитру можно воспринимать как таблицу цветов. Палитра устанавливает взаимосвязь между кодом цвета и его компонентами в выбранной цветовой модели.
Недостатком такой палитры можно считать отсутствие оранжевого цвета - этот цвет является одним из семи основных цветов радуги. Существуют также другие стандартные палитры, например, 256-цветная для VGA. Компьютерные видеосистемы обычно предоставляют возможность программисту установить собственную палитру.
Каждый цвет изображения, используя палитру, кодируется индексом, которой будет определять номер строки в таблице палитры. Вот почему такой способ кодирования цвета называется индексным.
5.4.5. Триадные и плашечные цвета
Для печатания результатов работы, выполненной вами в графической программе на полиграфическом оборудовании, возможно использование одной из двух схем печати: плашечной или многослойной.
Плашечными (или простыми) цветами называются цвета, которые воспроизводятся
на бумаге готовыми смесовыми красками.
Каждый плашечный цвет репродуцируется с помощью отдельной печатной формы (плашки).
Многослойная печать основана на использовании триадных (иначе составных) цветов и включает в себя как минимум четыре процесса.
Триадные цвета воспроизводятся путем смешивания в разных пропорциях триадных красок (голубой, пурпурной, желтой), применяемых в стандартной четырехкрасочной печати.
В графических программах все цветовые модели работают именно с триадными цветами. Поэтому воспроизведение плашечного цвета на экране монитора с помощью, например, цветовой модели RGB приводит к аппроксимации плашечного цвета триадным цветом.
Плашечная схема печати применяется тогда, когда количество цветов в рисунке меньше четырех или когда отдельные цвета не могут быть получены путем смешивания красок (например, неоновые или имитирующие металлизированную поверхность).
В случае необходимости прецизионного воспроизведения цвета или создания специальных цветовых эффектов возможны реализация плашечной печати с большим количеством цветов или совмещение плашечной и многослойной печати.
Некоторые плашечные цвета можно точно передать с помощью триадных красок, другие находятся за пределами цветового охвата CMYK. Например, пастельные, неоновые или металлизированные краски не имеют аналогов в цветовой системе CMYK, а оттенок зеленого цвета легко заменить его составным аналогом.
Различие между плашечными и триадными цветами напрямую связано с процессами взаимодействия света с чернилами, используемыми для создания этих красок.
Чернила для плашечной печати непрозрачны, поэтому они отражают свет поверхностным слоем. В результате для получения на бумаге, например, пурпурного цвета потребуется использование пурпурных чернил. Это позволяет, в свою очередь, добиваться очень ярких тонов и специальных эффектов типа металлизации и ирилизации (перелива оттенков).
Чернила для многослойной печати, наоборот, прозрачны. Поэтому свет отражается не их поверхностным слоем, а поверхностью материала, на который они нанесены. Это приводит к тому, что образование цвета происходит за счет удаления из спектра лишних компонентов путем поглощения их слоем краски. В результате для воспроизведения пурпурного цвета на поверхность страницы необходимо наложить два типа чернил - бирюзового и синего цветов. Они поглотят синюю и зеленую части спектра, оставив (отразив) для нашего глаза только пурпурную часть спектра.
5.4.6. Цветовые режимы
Цветовые режимы представляют собой практическую реализацию рассмотренных выше цветовых моделей. В большинстве графических программ только три цветовые модели - RGB, CMYK и Lab - имеют одноименные цветовые режимы. Вместе с тем в них широко представлены режимы с ограниченной цветовой палитрой.
Наиболее широким (и практически идентичным) охватом цветовых режимов характеризуются программы Adobe Photoshop и Corel PHOTO-PAINT.
Режим черно-белой графики
Художники и разработчики программного обеспечения иногда называют этот режим монохромной графикой, растровой графикой (bitmap art), или графикой с однобитовым разрешением.
Для отображения черно-белого изображения используются только два типа ячеек: черные и белые (рис. 5.20). Поэтому для запоминания каждого пикселя требуется только 1 бит памяти компьютера. Областям исходного изображения, имеющим промежуточные оттенки, назначаются черные или белые пиксели, поскольку других оттенков для этой модели не предусмотрено. В качестве аналога бинарного узла вы можете представить лампочку, которая может находиться только в одном из двух состояний: вкл или выкл. При такой кодировке цвет пикселя также может принимать только одно из двух состояний: черный или белый. Этот режим можно использовать для работы с черно-белыми изображениями, полученными сканированием черно-белых чертежей и гравюр, а также иногда при выводе цветных изображений на черно-белую печать.
Рис. 5.20. Интерпретация двоичной
1-битовой информации
Остановимся на назначении и особенностях организации каждого из типов монохромных изображений.
Line Art (Гравюра)
Этот вид монохромного черно-белого изображения характеризуется высоким контрастом изображения, что связано с отсутствием полутонов. При конвертировании в этот тип изображения все цветные пикселы, формирующие изображение, преобразуются только в черные и белые. В качестве критерия такого преобразования используется настраиваемый параметр Threshold (Порог). Цвета, яркость которых ниже установленного порогового значения, преобразуются в черный цвет. В противном случае происходит преобразование в белый цвет.
Методы, основанные на алгоритмах формирования случайных узоров
В современных графических программах для эмуляции оттенков серого широко используются алгоритмы, основу которых составляет генерация случайных узоров на базе наборов черных и белых пикселов.
Ordered (Упорядоченный)
В отличие от рассмотренной выше группы методов в этом варианте для эмуляции оттенков серого используются фиксированные растровые узоры. Поэтому данный метод имеет достаточно высокое быстродействие.
Метод Cardinality-Distribution
Данный метод создает текстуроподобное изображение путем анализа и преобразования атрибутов каждого пиксела изображения.
Halftone (Полутон)
Такой способ реализации изображения базируется на специфике восприятия изображения человеческим глазом, для которого область изображения, заполненная крупными точками, ассоциируется с более темными тонами и, наоборот, область, заполненная точками меньшего размера, воспринимается как более светлая. Режим Halftone поддерживается большинством принтеров. Полутоновые изображения представляют собой однобитовые изображения с непрерывным тоном, которые реализуются с помощью конгломерата точек разного размера и формы. В полученном таким образом изображении оттенки серого имитируются точками разного размера, внесенными в специальный шаблон, форму которого можно выбрать из раскрывающегося списка Screen type (Тип растра).
Режим Grayscale (Градации серого)
Использование режима Grayscale (Градации серого) позволяет увеличить информационную емкость изображения за счет повышения цветового разрешения каждого пиксела. Поскольку в этом режиме на каждый пиксел выделяется до 8 бит, то требуется иная форма организации информации по сравнению с ранее рассмотренными однобитовыми монохромными режимами. Если, как уже отмечалось, режим Черно-белая графика может быть сравним с элементарной математикой, в которой основной элемент графического изображения - пиксел - может принимать только два состояния: включен и выключен, то режим Градации серого - это высшая математика, позволяющая оперировать с комбинацией до 256 оттенков, обеспечивая более высокое тоновое разрешение изображения. Это связано с тем, что устройства, использующие двоичную математику, сводят все многообразие явлений к комбинации вариантов, количество которых равно числу 2 в соответствующей степени. Для пиксела с 4-битовым разрешением число возможных вариантов составит 24, что соответствует 16 комбинациям. В случае 8-битового разрешения это число возрастет до 28, или 256 комбинаций. Именно такое количество оттенков может быть реализовано при сканировании изображения в режиме Оттенки серого большинством непрофессиональных сканеров. Растровые редакторы воспринимают полученное в этом режиме цифровое изображение в виде одноцветного (монохромного) канала, содержащего 256 различных уровней яркости.
С технической точки зрения монохромное изображение, содержащее гамму из 256 оттенков серого, перекрывает весь диапазон оттенков от черного до белого, создавая непрерывную для глаза шкалу. Поэтому для получения монохромного изображения, близкого к оригиналу, при сканировании изображения можно использовать режим
Градации серого
Последние версии профессиональных редакторов, включая Adobe Photoshop и Corel PHOTO-PAINT, наряду со стандартной 8-битовой глубиной цвета полутоновых изображений поддерживает 16-битовую глубину цвета, которая позволяет воспроизводить 65536 оттенков серого. Художественная ценность черно-белого изображения определяется композицией и световой контрастностью. Многие прекрасные цветные изображения плохо смотрятся при преобразовании их в черно-белые из-за одинаковой световой тональности разных цветов. Для получения хороших результатов в режиме Градации серого нужно использовать монохромный источник с высокой контрастностью.
Режим Duotone (Дуплекс)
Дуплекс – это 8-разрядный цветовой режим, использующий 256 оттенков не более четырех цветовых тонов.
Фактически дуплексную цветовую модель можно рассматривать как изображение в цветовой модели Grayscale, улучшенное с помощью дополнительных цветов (от одного до четырех). В дуплексном цветовом режиме изображение состоит из 256 оттенков одной (Monotone, тоновое), двух (Duotone, двухтоновый дуплекс), трех (Tritone, тритон) или четырех (Quadtone, квадртон) красок.
Двухтоновый вариант данной цветовой модели широко распространен в полиграфии. Здесь в качестве дуплекса используется модифицированное изображение в градациях серого, отпечатанное с помощью красок двух цветов - как правило, черного и акцентирующего цвета, хотя могут использоваться любые другие два цвета. В общем случае этот термин относится также к дуплексам с тремя и четырьмя красками. Использование двух красок вместо четырех значительно сокращает расходы на печать, обеспечивая вместе с тем широкий диапазон выбираемых оттенков. Дуплекс идеален для добавления акцентирующего цвета к фотографии или расширения тонального диапазона красителей.Этот режим можно использовать для того, чтобы придавать цветность черно-белым изображениям либо создавать интересные эффекты с помощью различных параметров тонирования.
Режим RGB Color
Данный режим часто называют RGB-цветом. Он наиболее удобен для редактирования изображений на экране компьютера, так как обеспечивает цветовое разрешение 24 бит/пиксел. Это позволяет использовать для реализации цветных цифровых изображений палитру из 16,7 млн цветов. На жаргоне программистов цветовую модель RGB называют естественным щеглом (true color), так как 16 млн цветов, доступных при такой глубине цвета, достаточно для представления всех различимых человеческим глазом оттенков.
Очевидно, что для источников изображения, имеющих ограниченную цветовую палитру, такое количество цветовых оттенков может оказаться избыточным.
Г л а в а 6. РЕАЛИСТИЧЕСКОЕ ПРЕДСТАВЛЕНИЕ СЦЕН
Основные направления реалистического представления сцен компьютерной графики определяются как:
синтез реалистичных изображений,
реалистическое оживление синтезированных объектов (анимация).
В этой главе будут рассмотрены только некоторые базовые методы синтеза реалистических изображений:
Модели освещения
Модели закраски
Трассировка лучей
Имитация микрорельефа
Механизмы отражения света
6.1 Закрашивание поверхностей
В этом разделе рассмотрим методы, которые позволяют получить более-менее реалистичное изображение для объектов, которые моделируются многогранниками и полигональными сетками.
6.1.1. Модели отражения света
Рассмотрим, как можно определить цвет пикселов изображения поверхности в соответствии с интенсивностью отраженного света при учете взаимного расположения поверхности, источника света и наблюдателя.
Зеркальное отражение света. Угол между нормалью и падающим лучом равняется углу между нормалью и отраженным лучом. Падающий луч, отраженный луч и нормаль располагаются в одной плоскости (рис. 6.1).
Рис. 6.1. Зеркальное отражение света
Поверхность считается идеально зеркальной, если на ней отсутствуют какие-либо неровности, шероховатости. Собственный цвет у такой поверхности не наблюдается. Световая энергия падающего луча отражается только по линии отраженного луча. Любое рассеивание в стороны от этой линии отсутствует. В природе, вероятно, нет идеально гладких поверхностей, поэтому полагают следующее: если глубина шероховатостей существенно меньше длины волны излучения, то рассеивание не наблюдается. Для видимого спектра можно принять, что глубина шероховатости поверхности зеркала должна быть меньше 0.5 мкм.
Если поверхность зеркала отполирована неидеально, то наблюдается зависимость интенсивности отраженного света от длины волны - чем больше длина волны, тем лучшее отражение. Например, красные лучи отражаются сильнее, чем синие.
При наличии шероховатости есть зависимость интенсивности отраженного света от угла падения. Отражение света максимально для углов, близких к 90 градусам.
Падающий луч, попадая на шероховатую поверхность реального зеркала, порождает не один отраженный луч, а несколько лучей, которые рассеиваются в разных направлениях. Зона рассеивания зависит от качества полировки и может быть описана некоторым законом распределения. Как правило, форма зоны рассеивания симметрична относительно линии идеального зеркально отраженного луча. К числу простейших, но довольно часто используемых, относится эмпирическая модель Фонга, соответственно которой интенсивность зеркально отраженного излучения пропорциональна (cosa) где а - угол отклонения от линии идеально отраженного луча. Показатель находится в диапазоне от 1 до 1000 и зависит от качества полировки. Запишем это таким образом:
Is = I cos p ,
где I - интенсивность излучения источника
Диффузное отражение. Этот вид отражения присущ матовым поверхностям. Матовой можно считать такую поверхность, размер шероховатостей которой уже настолько большой, что падающий луч рассеивается равномерно во все стороны. Такой тип отражения характерен, например, для гипса, песка, бумаги. Диффузное отражение описывается законом Ламберта, согласно которому интенсивность отраженного света пропорциональна косинусу угла между направлением на точечный источник света и нормалью к поверхности:
Id = I cos,
где I - интенсивность источника света.
При создании реалистических изображений следует учитывать то, что в природе, вероятно, не существуют идеально зеркальные или идеально матовые поверхности. При изображении объектов средствами компьютерной графики обычно моделируют сочетание зеркальности и диффузного рассеивания в пропорции, характерной для конкретного материала. В этом случае модель отражения записывают в виде взвешенной суммы диффузной и зеркальной составляющих:
I рез = Id Kd + IsKs = I (Kd cos θ + Ks cosp α),
где константы Kd и Кс определяют отражательные свойства определенного материала. Константы Kd и Кс обычно принимают значения в диапазоне от 0 до 1, причем Kd + Кс = 1.
Соответственно этой формуле интенсивность отраженного света равняется нулю для некоторых углов и . Однако в реальных сценах обычно нет абсолютно затемненных объектов, следует учитывать фоновое подсвечивание - освещение рассеянным светом, отраженным от других объектов.
В таком случае интенсивность может быть эмпирически выражена следующей формулой:
Iрез = IaKa + IdKd + IsKs = IaKa + I (Kd cos +Ks cos p )
где Ia - интенсивность рассеянного света, Ка - константа.
Можно еще усовершенствовать модель отражения, если учесть то, что энергия от источника света уменьшается соответственно расстоянию до него
Iрез = IaKa + F (R) (Kd cos θ + Ks cos p )
где R - расстояние от источника света до поверхности, F(R) - функция ослабления. Для точечного источника света энергия излучения уменьшается пропорционально квадрату расстояния. На практике обычно используют линейную аппроксимацию функции ослабления.
Для нескольких источников света диффузную и зеркальную составляющую рассчитывают в отдельности для каждого источника, а результат - сумма всех составляющих:
Iрез = IaKa + Kd+ Ks
6.1.2. Вычисление нормалей и углов отражения
Вычисление координат вектора нормали. Рассматривая модели отражения света, вы, наверное, обратили внимание на то, что нормаль к поверхности - важный элемент. Определение вектора нормали к поверхности в заданной точке может быть выполнено разными способами. В значительной степени это определяется типом модели описания поверхности. Для поверхностей, заданных в аналитической форме, известны методы дифференциальной геометрии, которые основываются на вычислении частных производных функций описания. Например, если поверхность задана параметрическими функциями
x = x (s, t),
y = y (s, t),
z = z (s, t),
тогда координаты вектора нормали можно вычислить так:
В случае описания поверхности векторно-полигональной моделью для определения нормалей можно использовать методы векторной алгебры.
Пусть в пространстве задана некоторая многогранная поверхность. Рассмотрим одну ее плоскую грань, имеющую вид треугольника (рис. 6.2).
Рис. 6.2. Одна грань поверхности Радиус-векторы
Для вычисления координат вектора нормали воспользуемся векторным произведением любых двух векторов, которые лежат в плоскости грани. Такими векторами могут служить и ребра грани, например, ребра 1-2 и 1-3. Однако формулы для векторного произведения были определены нами только для радиус-векторов. Чтобы перейти к радиус-векторам, введем новую систему координат, центр которой совпадает с вершиной 1, а оси - параллельны осям бывшей системы. Координаты вершин в новой системе:
Теперь назовем ребро (1-2) вектором А, а ребро (1-3) - вектором В, как показано на рис. 6.2. Таким образом, положение нормали к грани в пространстве будет описываться радиус-вектором N. Его координаты в системе (х', у', z') выразим формулами для векторного произведения
(y2 - y1)(z3 -z1) - (z2 - z1)(y3 - y1),
(z2 -z1)(x3 -x1) - (x2 - x1)(z3 - z1)
(x2 - x1)(y3 -y1) - (y2 - y1)(x3 - x1)
Плоская грань может быть изображена в разных ракурсах. В каждой конкретной ситуации необходимо выбирать направление нормали, которое соответствует видимой стороне грани. Если плоская грань может быть видна с обратной стороны, то тогда в расчетах отраженного света необходимо выбирать для нормали обратный вектор, то есть (-N).
Если полигональная поверхность имеет не треугольные грани, а, например, плоские четырехугольные, то расчет нормали можно выполнять по любым трем вершинам грани.
Диффузное отражение. Рассчитаем косинус угла между вектором нормали и направлением на источник света. Это можно выполнить таким способом.
Сначала необходимо определить радиус-вектор, направленный на источник света. Обозначим его как S. Потом для вычисления косинуса угла между радиус-векторами S и N воспользуемся формулами скалярного произведения векторов. Поскольку
S∙N = │S││N│ cosΘ
а также
S∙N = xsxN + ysyN + zszN
то получим
cosΘ= xsxN + ysyN + zszN / │S││N│
Для упрощения вычислений целесообразно использовать векторы S и N единичной длины, то есть |S|*|N| = 1.
Использование скалярного произведения здесь можно считать универсальным методом, который можно использовать для любого расположения точечного источника света. В отдельных случаях можно рассчитать косинус угла падения по-иному. Например, если источник света располагается на оси Z видовых координат в бесконечности позади камеры, тогда косинус угла нормали к грани с осью Z равняется отношению координаты r и длины радиус-вектора нормали
Зеркальное отражение. Будем считать, что задан радиус-вектор S, направленный на источник света, а также известен радиус-вектор нормали N. Нужно найти косинус угла между отраженным лучом и направлением камеры.
Сначала необходимо вычислить радиус-вектор отраженного луча. Обозначим его как R. Выполним некоторые геометрические построения, как показано на рис. 6.3.
Рис. 6.3. Векторы R1, S1 и N1 – единичной длины
Для решения нашей задачи сначала рассмотрим единичные векторы R1, S1, и N1. Поскольку векторы нормали, падающего луча и отраженного луча находятся в одной плоскости, то можно записать R1 + S1 = N1, где N1 - это вектор, который соответствует диагонали ромба и совпадает по yаправлению с нормалью. Длина вектора N1 равняется 2cos. Поскольку вектор N1 по направлению совпадает с N1, то
N1 = N1 2 cos Θ
или
R1 + S1 = N1 2 cos Θ
Отсюда находится единичный вектор отраженного луча:
R1 = N1 2 cos Θ - S1 = 2 cos Θ -
Найдем cos. Для этого используем скалярное произведение векторов N и S:
cos Θ =
Подставим это значение в выражение для R1:
R1 = N1 2 -
Полагая, что искомый вектор отраженного луча будет иметь такую же длину, что и вектор падающего луча, т.е. R = S R1 , получим:
R = N 2 - S
Это решение в векторной форме. Запишем координаты вектора R:
Теперь осталось найти косинус угла между отраженным лучом и направлением камеры. Пусть K - радиус-вектор, направленный на камеру. Найдем искомый косинус угла:
cos Θ = =
Для упрощения вычислений целесообразно задавать векторы S, N и R единичной длины (тогда и R будет единичным).
6.2 Метод Гуро
Этот метод предназначен для создания иллюзии гладкой криволинейной поверхности, которая описана в виде многогранников или полигональной сетки с плоскими гранями. Если каждая плоская грань имеет один постоянный цвет, который определен в соответствии с учетом отражения, то разные цвета соседних граней очень заметны, и поверхность выглядит именно как многогранник. Казалось, этот дефект можно замаскировать за счет увеличения количества граней при аппроксимации поверхности. Но зрение человека имеет способность подчеркивать перепады яркости на границах смежных граней - такой эффект называется эффектом полос Маха. Вследствие этого, для создания иллюзии гладкости нужно намного увеличить количество граней, что приводит к существенному замедлению визуализации - чем больше граней, тем меньше скорость рисования объектов.
Метод Гуро основан на идее закрашивания каждой плоской грани не одним цветом, а плавно изменяющимися оттенками, которые вычисляются путем интерполяции цветов прилегающих граней. Закрашивание граней по методу Гуро осуществляется в четыре этапа.
• Вычисляются нормали к каждой грани.
• Определяются нормали в вершинах. Нормаль в вершине определяется усреднением нормалей прилегающих граней (рис. 6.4).
Рис. 6.4. Нормаль в вершине a
На основе нормалей в вершинах вычисляются значения интенсивностей в вершинах в соответствии с выбранной моделью отражения света. Закрашиваются полигоны граней цветом, который соответствует линейной интерполяции значений интенсивности в вершинах.
Вектор нормали в вершине (а) равняется
Определение интерполированных значений интенсивности отраженного света в каждой точке грани (и, следовательно, цвет каждого пиксела) удобно выполнять во время цикла заполнения полигона. Рассмотрим заполнение контура грани горизонталями в экранных координатах (рис. 6.5).
Рис. 6.5. Заполнение полигона грани
Интерполированная интенсивность I в точке (X, У) определяется, исходя из пропорции
откуда
I = I1 +
Значение интенсивности I1 и I2 на концах горизонтального отрезка вычислим путем интерполяции интенсивности в вершинах:
,
или:
I1 = Ib +
I2 = Ib +
6.3 Метод Фонга
Аналогичен методу Гуро, но при использовании метода Фонга для определения цвета в каждой точке интерполируются не интенсивности отраженного света, а векторы нормалей.
• Определяются нормали к граням.
• По нормалям к граням определяются нормали в вершинах. В каждой точке закрашиваемой грани определяется интерполированный вектор нормали.
• Цвет каждой точки грани вычисляется в соответствии с направлением интерполированного вектора нормали и согласно выбранной модели отражения света.
Метод Фонга сложнее метода Гуро. Для каждой точки (пиксела) поверхности необходимо выполнять намного больше вычислительных операций. Тем не менее, он дает значительно лучшие результаты, в особенности при имитации зеркальных поверхностей.
6.4. Имитация микрорельефа
Пусть нам необходимо показать поверхность, изобилующую мелкими неровностями. Можно попытаться создать полигональную модель, аппроксимирующую все видимые детали рельефа, вплоть до мельчайших бугорков, ямок, трещин и т. п. Однако это может потребовать такого количества треугольников, которое не в состоянии поддержать компьютерная система.
Для визуализации таких поверхностей часто используется следующий метод. Общие очертания поверхности моделируются полигонами, а имитация мелких деталей рельефа производится с помощью текстур.
Рассмотрим один из популярных в настоящее время методов рельефного текстурирования - DOT3. Согласно этому методу, каждый тексел текстуры хранит координаты вектора нормали для соответствующей точки поверхности (рис. 6.6).
Почему лучше использовать карту нормалей, а не само изображение в виде текстуры? Потому что, это дает возможность создавать иллюзию игры света и тени при смене ракурса показа и возможном движении источников света, и даже при деформациях поверхности. Обычная текстура это обеспечить не в состоянии - она представляет изображение, сделанное только для одного ракурса показа и фиксированного положения источников света.
6.6. Пример имитации микрорельефа методом DOT3 Bump Mapping
Для хранения координат нормалей удобно использовать 24-битный растровый графический формат файлов - тут каждая тройка RGB будет представлять тройку координат UVN. Координаты UVN описывают векторы нормалей в так называемой касательной или тангенциальной системе координат (рис. 6.7).
Рис. 6.7. Используемые системы координат
У системы координат UVN оси U и N лежат в плоскости текстуры, они параллельны осям текстурных координат ХT и YT, а ось N является нормалью к поверхности. Пусть задан вектор направления света L. Тогда, при расчете цвета пиксела поверхности, например, для диффузной модели отражения, можно использовать скалярное произведение векторов L и Nbump:
Цвет точки = (собственный цвет поверхности) x DOT3(L, Nbump)
где DОТ - часто используемое в англоязычной литературе обозначение для скалярного произведения (bot product) векторов (отсюда и название DОТЗ Витр Маррing).
Очевидно, что для корректного вычисления результата необходимо использовать в скалярном произведении одну и ту же систему координат для векторов L и Nbump . Для этого нужно привести вектор Nbump систему координат, описывающую вектор L (обычно это мировые координаты). А можно наоборот, выразить вектор L в системе координат UVN.
Преломление света
Законы преломления света следует учитывать при построении изображений прозрачных объектов.
Модель идеального преломления. Согласно этой модели луч отклоняется на границе двух сред, причем падающий луч, преломленный луч и нормаль лежат в одной плоскости (в этой же плоскости лежит и зеркально отраженный луч).
Обозначим угол между падающим лучом и нормалью как 1, а угол между нормалью и преломленным лучом как 2. Для этих углов известен закон Снеллиуса, согласно которому
η1sin α1 = η2 sin α2
где η1 и η2 - абсолютные показатели преломления соответствующих сред.
Рис. 6.8. Преломление луча и преломление в треугольной призме
На рис. 6.8 изображен пример отклонения луча при преломлении. В данном случае границей раздела сред служат две параллельные плоскости (например, при прохождении луча через толстое стекло). Очевидно, что угол 1 равняется углу 4, а угол 2 равняется углу 3. Другими словами, после прохождения сквозь стекло луч будет параллельно смещен. Это смещение зависит от толщины стекла и соотношения показателей преломление сред. Возможно, это простейший пример преломления. Вы, наверное, уже наблюдали и более сложные объекты, например, треугольную призму. Для нее границами сред являются непараллельные плоскости. Прозрачные объекты могут иметь и криволинейные поверхности (например, линзы в разнообразных оптических приборах).
Принято считать, что для вакуума абсолютный показатель преломления равняется единице. Для воздуха он составляет 1.00029, для воды - 1.33, для стекла разных сортов: 1.52 (легкий крон), 1.65 (тяжелый крон). Показатель преломления зависит от состояния вещества, например, от температуры. На практике обычно используют отношение показателей преломления двух сред (η1/η2), которое называют относительным показателем преломления.
Кроме идеального преломления, в компъютерной графике используется диффузное преломление. Соответственно этой модели, падающий луч преломляется во все стороны. Примером может служить молочное стекло, обледеневшее стекло.
6.5 Трассировка лучей
Методы трассировки лучей (Ray Tracing) на сегодняшний день считаются наиболее мощными и универсальными методами создания реалистичных изображений. Известно много примеров реализации алгоритмов трассировки для качественного отображения самых сложных трехмерных сцен. Можно отметить, что универсальность методов трассировки в значительной мере обусловлена тем, что в их основе лежат простые и ясные понятия, которые отражают наш опыт восприятия окружающего мира.
Рис. 6.9. Модели отражения: а – идеальное зеркало, б - неидеальное зеркало, в – диффузное, г – сумма диффузного и зеркального, д – обратное, е - сумма диффузного, зеркального и обратного
Как мы видим окружающую реальность? Во-первых, нужно определиться с тем, что мы вообще способны видеть. Это изучается в специальных дисциплинах, а до некоторой степени, это вопрос философский. Но здесь мы будем считать, что окружающие объекты обладают такими свойствами относительно света:
• излучают;
• отражают и поглощают;
• пропускают сквозь себя.
Рис. 6.10. Излучение : а – рномерно во все тороны, б - направленно
Каждое из этих свойств можно описать некоторым набором характеристик. Например, излучение можно охарактеризовать интенсивностью, направленностью, спектром. Излучение может исходить от условно точечного источника (далекая звезда) или от источника рассеянного света (скажем, от расплавленной лавы, извергающейся из кратера вулкана). Распространение излучения может осуществляться вдоль довольно узкого луча (сфокусированный луч лазера) или конусом (прожектор), или равномерно во все стороны (Солнце), или еще как-то. Свойство отражения (поглощение) можно описать характеристиками диффузного рассеивания и зеркального отражения. Прозрачность можно описать ослаблением интенсивности и преломлением.
Распределение световой энергии по возможным направлениям световых лучей можно отобразить с помощью векторных диаграмм, в которых длина векторов соответствует интенсивности (рис. 6.9 – 6.11).
В предшествующих параграфах мы с вами уже ознакомились с видами отражения, которые упоминаются наиболее часто - зеркальным и диффузным. Реже в литературе поминается обратное зеркальное или антизеркальное отражение, в котором максимум интенсивности отражения соответствует направлению на источник. Обратное зеркальное отражение имеют некоторые виды растительности на поверхности Земли, наблюдаемые с высоты рисовые поля.
Некоторые реальные объекты преломляют лучи намного более сложным образом, например, обледеневшее стекло.
Один и тот же объект реальной действительности может восприниматься как источник света, а может, при ином рассмотрении, считаться предметом, только отражающим и пропускающим свет. Например, купол облачного неба в некоторой трехмерной сцене может моделироваться в виде протяженного (распределенного) источника света, а в других моделях это же небо выступает как полупрозрачная среда, освещенная со стороны Солнца.
Рис. 6.11. Преломление а – идеальное, б - дифузное
В общем случае каждый объект описывается некоторым сочетанием вышеперечисленных трех свойств. В качестве упражнения попробуйте привести пример объекта, который обладает одновременно тремя указанными свойствами - сам излучает свет и, в то же время, отражает, а также пропускает свет от других источников. Вероятно, ваше воображение подскажет и другие примеры, нежели, скажем, раскаленное докрасна стекло.
Теперь рассмотрим то, как формируется изображение некоторой сцены, которая содержит несколько пространственных объектов. Будем считать, что из точек поверхности (объема) излучаемых объектов выходят лучи света. Можно назвать такие лучи первичными - они освещают все другое.
Важным моментом является предположение, что световой луч в свободном пространстве распространяется вдоль прямой линии (хотя в специальных разделах физики изучаются также и причины возможного искривления). Но в геометрической оптике принято, что луч света распространяется прямолинейно до тех пор, пока не встретится отражающая поверхность или граница среды преломления. Так будем полагать и мы.
От источников излучения исходит по разным направлениям бесчисленное множество первичных лучей (даже луч лазера невозможно идеально сфокусировать - все равно свет будет распространяться не одной идеально тонкой линией, а конусом, пучком лучей). Некоторые лучи уходят в свободное пространство, а некоторые (их также бесчисленное множество) попадают на другие объекты. Если луч попадет в прозрачный объект, то, преломляясь, он идет дальше, при этом некоторая часть световой энергии поглощается. Подобно этому, если на пути луча встречается зеркально отражающая поверхность, то он также изменяет направление, а часть световой энергии поглощается. Если объект зеркальный и одновременно прозрачный (например, обычное стекло), то будут уже два луча - в этом случае говорят, что луч расщепляется.
Можно сказать, что в результате воздействия на объекты первичных лучей возникают вторичные лучи. Бесчисленное множество вторичных лучей уходит в свободное пространство, но некоторые из них попадают на другие объекты. Так, многократно отражаясь и преломляясь, отдельные световые лучи приходят в точку наблюдения - глаз человека или оптическую систему камеры. Очевидно, что в точку наблюдения может попасть и часть первичных лучей непосредственно от источников излучения. Таким образом, изображение сцены формируется некоторым множеством световых лучей.
Цвет отдельных точек изображения определяется спектром и интенсивностью первичных лучей источников излучения, а также поглощением световой энергии в объектах, встретившихся на пути соответствующих лучей.
Рис. 6.12. Схема обратной трассировки лучей
Непосредственная реализация данной лучевой модели формирования изображения представляется затруднительной. Можно попробовать разработать алгоритм построения изображения указанным способом. В таком алгоритме необходимо предусмотреть перебор всех первичных лучей и определить, какие из них попадают в объекты и в камеру. Потом выполнить перебор всех вторичных лучей, и также учесть только те, которые попадают в объекты и в камеру. И так далее. Можно назвать такой метод прямой трассировкой лучей. Практическая ценность такого метода вызовет сомнение. В самом деле, как учитывать бесконечное множество лучей, идущих во все стороны? Очевидно, что полный перебор бесконечного числа лучей в принципе невозможен. Даже если каким-то образом свести это к конечному числу операций (например, разделить всю сферу направлений на угловые секторы и оперировать уже не бесконечно тонкими линиями, а секторами), все равно остается главный недостаток метода — много лишних операций, связанных с расчетом лучей, которые потом не используются. Так, во всяком случае, это представляется в настоящее время.
Метод обратной трассировки лучей позволяет значительно сократить перебор световых лучей. Метод разработан в 80-х годах, основополагающими считаются работы Уиттеда и Кэя. Согласно этому методу отслеживание лучей осуществляется не от источников света, а в обратном'направлении - от точки наблюдения. Так учитываются только те лучи, которые вносят вклад в формирование изображения.
Рассмотрим, как можно получить растровое изображение некоторой трехмерной сцены методом обратной трассировки. Предположим, что плоскость проецирования разбита на множество квадратиков - пикселов. Выберем центральную проекцию с центром схода на некотором расстоянии от плоскости проецирования. Проведем прямую линию из центра схода через середину квадратика (пиксела) плоскости проецирования (рис. 6.12). Это будет первичный луч обратной трассировки. Если прямая линия этого луча попадает в один или несколько объектов сцены, то выбираем ближайшую точку пересечения. Для определения цвета пиксела изображения нужно учитывать свойства объекта, а также то, какое световое излучение приходится на соответствующую точку объекта.
Если объект зеркальный (хотя бы частично), то строим вторичный луч - луч падения, считая лучом отражения предыдущий, первичный, трассируемый луч. Выше мы рассматривали зеркальное отражение и получили формулы для вектора отраженного луча по заданным векторам нормали и луча падения. Но здесь нам известен вектор отраженного луча, а как найти вектор падающего луча? Для этого можно использовать ту же формулу зеркального отражения, но определяя необходимый вектор луча падения как отраженный луч. То есть отражение наоборот.
Для идеального зеркала достаточно потом проследить лишь очередную точку пересечения вторичного луча с некоторым объектом. Что означает термин "идеальное зеркало"? Будем считать, что такое зеркало имеет идеально равную отполированную поверхность, поэтому одному отраженному лучу соответствует только один падающий луч. Зеркало может быть затемненным, то есть поглощать часть световой энергии, но все равно выполняется правило: один луч падает - один отражается. Можно рассматривать также "неидеальное зеркало". Это будет означать, что поверхность неровная. Направлению отраженного луча будут соответствовать несколько падающих лучей (или наоборот, один падающий луч порождает несколько отраженных лучей), которые образуют некоторый конус, возможно, несимметричный, с осью вдоль линии падающего луча идеального зеркала. Конус соответствует некоторому закону распределения интенсивностей, простейший из которых описывается моделью Фонга - косинус угла, возведенный в некоторую степень. Неидеальное зеркало резко усложняет трассировку - нужно проследить не один, а множество падающих лучей, учитывать взнос излучения от других видимых из данной точки объектов.
Если объект прозрачный, то необходимо построить новый луч, такой, который при преломлении давал бы предшествующий трассируемый луч. Здесь также можно воспользоваться обратимостью, которая справедлива и для преломления. Для расчета вектора искомого луча можно применить рассмотренные выше формулы для вектора луча преломления, считая, что преломление происходит в обратном направлении.
Если объект обладает свойствами диффузного отражения и преломления, то, в общем случае, как и для неидеального зеркала, необходимо трассировать лучи, которые приходят от всех имеющихся объектов. Для диффузного отражения интенсивность отраженного света, как известно, пропорциональна косинусу угла между вектором луча от источника света и нормалью. Здесь источником света может выступать любой видимый из данной точки объект, способный передавать световую энергию.
Если выясняется, что текущий луч обратной трассировки не пересекает любой объект, а направляется в свободное пространство, то на этом трассировка для этого луча заканчивается.
Обратная трассировка лучей в том виде, в котором мы ее здесь рассмотрели, хотя и сокращает перебор, но не позволяет избавиться от бесконечного числа анализируемых лучей. В самом деле, данный метод позволяет сразу получить для каждой точки изображения один первичный луч обратной трассировки. Однако вторичных лучей отражения уже может быть бесконечное число. Так, например, если объект может отражать свет от любого другого объекта, и если эти другие объекты имеют довольно большие размеры, то какие именно точки излучающих объектов нужно учитывать для построения соответствующих лучей, например, при диффузном отражении? Очевидно, все точки.
При практической реализации метода обратной трассировки вводят ограничения. Некоторые из них необходимы, чтобы можно было в принципе решить задачу синтеза изображения, а некоторые ограничения позволяют значительно повысить быстродействие трассировки. Примеры таких ограничений.
1. Среди всех типов объектов выделяются некоторые, которые назовем источниками света. Источники света могут только излучать свет, но не могут его отражать или преломлять (будем рассматривать только точечные источники света).
2. Свойства отражающих поверхностей описываются суммой двух компонентов - диффузного и зеркального.
3. В свою очередь, зеркальность также описывается двумя составляющими. Первая (reflection) учитывает отражение от других объектов, которые не являются источниками света. Строится только один зеркально отраженный луч r для дальнейшей трассировки. Вторая составляющая (Specular) означает световые блики от источников света. Для этого направляются лучи на все источники света и определяются углы, образованные этими лучами с зеркально отраженным лучом обратной трассировки (r). При зеркальном отражении цвет точки поверхности определяется цветом того, что отражается. В простейшем случае зеркало не имеет собственного цвета поверхности.
4. При диффузном отражении учитываются только лучи от источников света . Лучи от зеркально отражающих поверхностей игнорируются. Если луч, направленный на данный источник света, закрывается другим объектом, значит, данная точка объекта находится в тени. При диффузном отражении цвет освещенной точки поверхности определяется собственным цветом поверхности и цветом источников света.
5. Для прозрачных (trапsрагепt) объектов обычно не учитывается зависимость коэффициента преломления от длины волны. Иногда прозрачность вообще моделируют без преломления, то есть направление преломленного луча I совпадает с направлением падающего луча.
6. Для учета освещенности объектов светом, который рассеивается другими объектами, вводится фоновая составляющая (атbient).
7. Для завершения трассировки вводят некоторое предельное значение освещенности, которое уже не должно вносить взнос в результирующий цвет, или ограничивают количество итераций.
Согласно модели Уиттеда, цвет некоторой точки объекта определяется суммарной интенсивностью
I() = KaIa()C() + KdId()C() + KsIs() + KrIr() + KtIt()
где λ - длина волны,
С (λ) - заданный исходный цвет точки объекта,
Ка, Kd, Ks, Kr и Кt — коэффициенты, учитывающие свойства конкретного объекта через параметры фонового подсвечивания, диффузного рассеивания, зеркальности, отражения и прозрачности,
Ia - интенсивность фонового подсвечивания,
Id - интенсивность, учитываемая для диффузного рассеивания,
Is - интенсивность, учитываемая для зеркальности,
Ir - интенсивность излучения, приходящего по отраженному лучу,
It - интенсивность излучения, приходящего по преломленному лучу.
Интенсивность фонового подсвечивания (1а) для некоторого объекта обычно константа. Запишем формулы для других интенсивностей. Для диффузного отражения
Id =
где Ii(λ) - интенсивность излучения i-ro источника света, θi - угол между нормалью к поверхности объекта и направлением на i-vi источник света.
Для зеркальности:
Id =
где р - показатель степени от единицы до нескольких сотен (согласно модели Фонга), αi - угол между отраженным лучом (обратной трассировки) и направлением на г'-й источник света.
Интенсивности излучений проходящих по отраженному лучу (Ir), а так же по преломленному лучу (It), умножают на коэффициент, учитывающий ослабление интенсивности в зависимости от расстояния, пройденного лучом. Такой коэффициент записывается в виде е-d где d - пройденное расстояние, - параметр ослабления, учитывающий свойства среды, в которой распространяется луч.
Для первичного луча необходимо задать направление, которое соответствует избранной проекции. Если проекция центральная, то первичные лучи расходятся из общей точки, для параллельной проекции первичные лучи - параллельные. Луч можно задать, например, координатами начальной и конечной точек отрезка, координатой начальной точки и направлением, или еще как-нибудь. Задание первичного луча однозначно определяет проекцию изображаемой сцены. При обратной трассировке лучей любые преобразования координат вообще не обязательны. Проекция получается автоматически - в том числе, не только плоская, но и, например, цилиндрическая или сферическая. Это одно из проявлений универсальности метода трассировки.
В ходе трассировки лучей необходимо определять точки пересечения прямой линии луча с объектами. Способ определения точки пересечения зависит от того, кокой это объект, и каким образом он представлен в определенной графической системе. Так, например, для объектов, представленных в виде многогранников и полигональных сеток, можно использовать известные методы определения точки пересечения прямой и плоскости, рассмотренные в аналитической геометрии. Однако, если ставится задача определения пересечения луча с гранью, то необходимо еще, чтобы найденная точка пересечения лежала внутри контура грани.
Известно несколько способов проверки произвольной точки на принадлежность полигону. Рассмотрим две разновидности, в сущности, одного и того же метода (рис. 6.13).
Первый способ. Находятся все точки пересечения контура горизонталью, которая соответствует координате Y заданной точки. Точки пересечения сортируются по возрастанию значений координат Х. Пары точек пересечения образуют отрезки. Если точка, которая проверяется, принадлежит одному из отрезков (для этого сравниваются координаты Х заданной точки и концов отрезков), то она – внутренняя.
Рис. 6.13. Точка – внутренняя, если: а - точка принадлежит секущему отрезку, б – число пересечений нечетное
Второй способ. Определяется точка, лежащая на одной горизонтали с испытуемой точкой, причем требуется, чтобы она лежала вне контура полигона. Найденная внешняя точка и испытуемая являются концами горизонтального отрезка. Определяются точки пересечения данного отрезка с контуром полигона. Если количество пересечений нечетное, это значит, что испытуемая точка – внутренняя.
Если луч пересекает несколько объектов, то выбирается ближайшая точка по направлению текущего луча.
Сделаем общие выводы о относительно метода обратной трассировки лучей.
Положительные черты
1. Универсальность метода, его применимость для синтеза изображения довольно сложных пространственных схем. Воплощает много законов геометрической оптики. Просто реализуются разнообразные проекции.
2. Даже усеченные варианты данного метода позволяют получить довольно реалистичные изображения. Например если ограничится только первичными лучами( из точки проецирования), то это дает удаление невидимых точек. Трассировка уже одного – двух вторичных лучей дает тени, зеркальность, прозрачность.
3. Все преобразования координат (если таковые имеются) линейные, поэтому довольно просто работать с текстурами.
4. Для одного пиксела растрового изображения можно трассировать несколько близко расположенных лучей, а потом усреднять их цвет для устранения лестничного (ступенчатого) эффекта (антиалиасинг).
5. Поскольку расчет отдельной точки изображения выполняется независимо от других точек, то это может быть эффективно использовано при реализации данного метода в параллельных вычислительных системах, в которых лучи могут трассироваться одновременно.
Недостатки
1. Проблемы с моделированием диффузного отражения и преломления
2. Для каждой точки изображения необходимо выполнять много вычислительных операций. Трассировка лучей принадлежит к числу самых медленных алгоритмов синтеза изображений.
6.6 Анимация
В предыдущих параграфах мы рассмотрели методы и алгоритмы создания трехмерных моделей. В этом параграфе мы затронем вопросы, связанные с анимацией этих моделей.
Можно дать такое определение анимации - это создание зрительной иллюзии движения, изменения чего-то во времени.
Следует заметить, что в настоящее время существует некоторый разнобой в терминологии: наряду со словом "анимация" используется слово "видео". Значения этих слов несколько отличается. Термин "анимация" ранее использовался, когда говорили о "живых" ' куклах, а затем о персонажах мультфильмов. Само слово "видео" (со значением видеофильм) начало использоваться в русском языке с появлением видеомагнитофонов. Есть понятие "цифровое видео", которое часто используют для обозначения движущегося изображения, как правило фильма, сопровождающегося звуком. Таким образом, при создании видео (съемке фильма) какое-то непрерывное действие запечатлевалось на множестве фотографий (кадров). Кроме того, термин "видео" употребляется для обозначения изображений на экране, воспринимаемых органами зрения, в противопоставление звуковой информации: различают видеоданные и аудиоданные.
Эффект анимации основан на некоторых особенностях зрения человека, а именно: след изображения сохраняется некоторое время на сетчатке глаза свойственна способность объединять быстро сменяющие друг друга изображения в единый зрительный ряд, который даёт иллюзию непрерывности
Эти особенности зрения человека были использованы при создании игрушек тауматроп (1825 г.) и зоотроп (1834 г.). Тауматроп представлял собой плоский диск с рисунками, нанесенными на обе его стороны, а зоотроп - бумажную ленту с рисунками. При вращении этих игрушек возникала иллюзия движения.
В XX веке бурно развивалась мультипликация (традиционная анимация), средствами которой создавались рисованные двумерные фильмы.
Аналогично создаются движущиеся изображения на экране компьютера. Можно выделить два основных подхода к созданию компьютерной анимации: покадровый (каждый кадр с изображением движущегося объекта рисуется разработчиком) и по ключевым кадрам разработчик рисует опорные кадры, а программа рассчитывавает промежуточные кадры, помогая осуществить плавный переход - tween - из одного кадра в другой). Покадровый подход - очень трудоемкий, но дает более качественный результат. Анимация по ключевым кадрам значительно упрощает и ускоряет производство видеофильма, поэтому многие векторные редакторы имеют функцию Blend (перетекание), обеспечивающую такую анимацию. Например, при создании сложной анимации для Интернета часто используется векторный редактор Macromedia Flash. Анимация во Flash построена на использовании ключевых кадров. Поддерживаются тип motion tween (без изменения формы объекта) и тип shape tween (с изменением формы - с морфингом). Могут быть анимированы многие параметры, в частности, яркость, цвет, прозрачность. Объекты могут двигаться по прямой линии или по заданному пути (motion path), с ускорением или замедлением (easy in/easy out).
Методы компьютерной анимации
Известные к настоящему времени технологии компьютерной анимации можно разделить на два такие класса: 2D - и ЗD - анимация. Несмотря на то, что результатом в обоих случаях является создание серии изображений в плоской проекции, методы 2D- и ЗD-анимация существенно различаются. Под 2D-анимацией обычно подразумевается перемещение, наложение в определенном порядке отдельных спрайтов. Например, на фон накладываются изображения фигурок людей и животных. Для каждой движущейся фигурки заготавливается несколько картинок, изображающих персонаж в различных фазах движения. Картинка может быть небольшим растром. Тогда для правильного наложения такого спрайта на фон в прямоугольнике растра пикселы за границами контура фигурки делаются прозрачными. До недавнего времени компьютерная 2D-анимация была очень популярной в разнообразных компьютерных играх. Для ее поддержки, как правило, все видеоадаптеры аппаратно выполняют соответствующие базовые функции, и в первую очередь, быстрое копирование прямоугольных фрагментов растра.
В настоящее время наблюдается переход на технологии 3D-анимации. Ее суть заключается в использовании трехмерных моделей объектов пространственных сцен и их отображение методами ЗD-графики.
Следует отметить, что некоторые методы, разработанные ранее для 20-анимации, сейчас успешно реализуются и в системах ЗD-анимации. Примером может служить следующий метод. Современные программы трехмерной анимации позволяют художнику-аниматору построить первоначальную сцену (ключевой кадр), передвинуть вперед указатель на временной шкале, изменить первоначальную сцену (следующий ключевой кадр) и получить построенные самим компьютером промежуточные кадры. Таким образом реализуется так называемый метод анимации по ключевым кадрам. Но идеи метода анимации по ключевым кадрам возникли и использовались еще при создании рисованных мультфильмов, когда ведущий аниматор определял, и сам делал ключевые кадры, а другие аниматоры рисовали остальные кадры. Аналогичный по идеям метод расчета промежуточных изображений & ЗD-моделей - tweening - используется для уменьшения количество хранимых кадров (тогда при воспроизведении анимации на экране осуществляется интерполяция «на лету» положения вершин полигональной модели). Таким образом, одни и те же идеи и методы могут использовать и при традиционной, и при компьютерной 2D - или ЗD - анимации.
Рассмотрим вкратце остальные методы анимации.
Для создания иллюзии механического движения достаточно перемещать (поворачивать) одни модели относительно других моделей или относительно неподвижного фона (кстати, можно передвигать фон, оставляя модель неподвижной). Это методы, так сказать, простой анимации.
К методам простой анимации можно также отнести несложную деформацию (изменение масштаба всего предмета, неоднородное масштабирование, например, сжатие по одной оси и т. п.). Это также методы искажения объекта, связанные со смещением одной (нескольких) вершин объекта и распространением смещения по направлению к соседним вершинам. При этом величина смещения является заданной функцией расстояния.
Разработана также группа методов, связанных либо с деформацией двумерной сетки, на которую помещен объект, либо с глобальной деформацией пространства, в котором задан объект. Часто используются различные модификации метода свободной деформации (FFD - free-form deformation), являющегося трехмерным расширением метода деформации двумерной сетки. Общая идея этих методов основана на том, что художнику-аниматору проще оперировать системой локальных координат, в которую помещен искажаемый объект, чем вершинами этого объекта. Поэтому, после определенной художником-аниматором деформации локальной системы координат, производится пересчет координат вершин искажаемого объекта в глобальное пространство.
В современных программах, реализующих механическое движение, как правило, создают средства динамики, обеспечивающие анимацию объектов в соответствий с законами физики. Например, при расчете траекторий движений объектов учитываются влияния трения, гравитации, магнетизма и др. Художник-аниматор, работая с такими программами, может даже не создавать ключевые кадры - он задает начальное положение, физические свойства и законы взаимодействия объектов ит. п.
Наряду с методом анимации по ключевым кадрам, упомянутым выше, применяют и более изощренный метод анимации на основе событий (который не исключает и применения ключевых кадров). При этом методе "событиям и считаются изменения в состоянии того или иного параметра. В качестве параметров выступают предусмотренные конкретной анимационной программой элементы сцены (формы объектов, текстуры, параметры источников света, координаты камеры и т. д.). Для каждого параметра на временной шкале выделяется отдельная дорожка, что позволяет перемещать события вдоль временной шкалы или подвергать иным преобразованиям независимо друг от друга. При этом траектория объектов может быть нелинейной.
Для передачи движения "живых" объектов, которое характеризуется взаимосвязанным плавным перемещением нескольких (или всех) элементов объекта, возникает необходимость в сложной деформации модели. Например, если движется рука, то, как правило, слегка изменяются очертания плеча. При так называемой "лицевой анимации" необходимо менять взаиморасположение нескольких элементов объектов. Такой объект должен описываться единой моделью для того, чтобы при движении отдельных его частей, например, руки, не создавались грубые переходы, стыки.
Один из методов более совершенной анимации - метод вершинной (вертексной) анимации объектов - связан с представлением объекта как цельной полигональной модели (еще говорят, что он должен представлять собой одну сетку). Тогда, например, лицевая анимация выполняется путем передвижения по заданной траектории определенных вершин полигональной модели, в то время как положение остальных вершин не меняется, тем самым осуществляется деформация полигональной модели (деформация сетки объекта). Таким образом создается ряд трехмерных моделей, отображающих последовательность движения "живого" объекта в различные моменты времени. Этот ряд последовательно выводится на экран (естественно, уже с текстурами, светом и т. п.), создавая иллюзию движения. Однако при таком методе анимации приходится хранить положение каждой вершины полигональной модели в каждом кадре анимации. То, что анимации моделей хранятся как бы по трехмерным кадрам, приводит к росту размера файлов пропорционально количеству кадров.
Разумеется, существуют методы, позволяющие снизить объемы хранимой информации в том числе метод расчета промежуточных изображений (tweening) между изменениями объекта. В этих случаях для задания опорного кадра анимации используются наборы сеток, а между опорными кадрами положение точек и ориентация нормалей интерполируется необходимым образом (чаще всего линейно).
Следует заметить, что несмотря на преимущественное применение скелетной анимации (описана ниже), вершинная анимация продолжает использоваться по определенным соображениям (например, при желании уменьшить временные затраты или упростить код).
В качестве примера метода осуществления сложной деформации модели приведем морфинг (термин происходит от слова metamorphosing - проведение преобразования). Морфинг заключается в последовательном превращении одного объекта в другой посредством перемещении по определенной траектории заданных точек (линий) одного объекта в соответствующие точки (линии) другого объекта в сочетании с наложением этих двух объектов. Хотя он представляет собой двумерный анимационный метод, некоторые его модификации успешно применяется наряду с трехмерным методом скелетной анимации, например, для реалистической анимации лица. Кроме того, проводятся довольно успешные исследования по осуществлению морфинга трехмерных объектов.
Существует два подхода к осуществлению морфинга - подход, основанный на использовании криволинейной координатной сетки, и подход, основанный на установлении соответствия между изображениями при помощи линий особенности. Так или иначе, при использовании морфинга приходится решать на интуитивном уровне, какие из областей изображения одного объекта и с какой скоростью преобразовывать в области изображения другого объекта.
Метод взвешенно-целевого морфинга достаточно успешно применяется для реалистичной анимации лица. Такое название метод получил вследствие особенности обеспечения требуемого выражения лица. В соответствии с этим методом вначале подготавливаются ключевые состояния лица: улыбка, широко раскрытые глаза, насупленные брови и т. д. Затем указываются "весовые" доли для каждого из этих ключевых состояний, тем самым создается требуемое выражение лица.
Одним из наиболее эффективных и часто применяемых является метод скелетной анимации, при котором перемещение вершин полигональной модели осуществляется с помощью невидимых анимированных "костей" (bones), составляющих иерархическую структуру - "скелет" (skeleton). Для каждой кости задаются длина и некоторые параметры, характеризующие ее положение.
Рассмотрим следующий пример (рис. 6.14).
Чтобы имитировать движения рыбки нужно как-то деформировать соответствующую полигональную сетку. Движения хвоста можно осуществлять простейшим способом - сдвигать координаты всех вершин пропорционально расстоянию вершины от головы. Но так невозможно имитировать поворот хвостового плавника на угол 90 градусов и более. Можно наряду с глобальным сдвигом применять локальные повороты групп вершин. Движения губ и плавников можно было бы выполнить как перемещения отдельных вершин.
Однако описание соответствия указанных преобразований сетки и движений рыбки здесь представляется достаточно сложным и запутанным. Как представляется, здесь лучше использовать деформацию поверхности на основе скелетной модели. Для построения изображения рис. 6.18 мы использовали один из простейших вариантов скелета.
Рис. 6.14. Пример деформируемой полигональной сетки
Сложность скелета определяется требуемым уровнем детализации изображаемого объекта. Например, при изображении человека, шагающего где-то вдали, достаточно показать основные движения рук и ног, в то время как для крупных планов, возможно, потребуется показать движения отдельных пальцев (рис. 6.15).
Скелет состоит из костей (звеньев) и сочленений (на рис. 6.15) сочленения изображены кружочками). Каждая i-я кость описывается такими параметрами: длиной (li) и поворотами относительно родительской кости. Если поворот возможен только в одной плоскости, то говорят, что такое сочленение имеет одну вращательную степень свободы. Если повороты могут осуществляться в двух или трёх плоскостях, то это называют двумя или тремя степенями свободы. Заметим, что в теории манипуляторов кроме вращательных движений движений элементов шарнирных конструкций предусматривают также возможность изменения длины звена - это еще одна степень свободы. В качестве базового элемента для расчётов удобно использовать звено только с одной вращательной степенью свободы. В этом случае сочленение с несколькими вращательными степенями свободы представляется из нескольких сочленений звеньев нулевой длины. Таким образом, для описания каждой кости будем использовать один угол поворота (αi).
Рис. 6.15. Скелет человека для разных уровней детализации
Скелет имеет древовидную иерархическую структуру - с родительской костью соединяется одна или несколько костей, которые, в свою очередь могут являться родительскими для других соединенных с ними костями. Рассмотрим конструкцию из двух костей (рис. 6.16).
Зафиксируем систему трехмерных координат (х0, у0, z0) в начале родительской кости (ось у0 смотрит на нас). Угол поворота родительской кости (α1) здесь отсчитывается от вертикали (хотя это не принципиально).
Найдем координаты произвольной точки Р, связанной с концом второй кости:
Р = R1 х T1 х R2 х Т2 х Р2,
где Р2 - это координаты искомой точки, заданные в локальной системе координат (х2, y2, z2), центр которой располагается в конце второй кости, R1 и R2 - матрицы поворотов на углы α1 и α2, Т1 и T2 - матрицы сдвига вдоль оси z на длину костей.
Обобщим эту формулу для шарнирного соединения п костей.
Р = Мп * Pn,
где Рп — это координаты искомой точки в локальной системе координат, связанной с концом последней кости шарнира, Мп — матрица преобразований координат. Эту матрицу удобно вычислять рекурсивно:
Mi = Mi-1 x Ri x Ti,
где i = 1,2, …, n, причем
.
M1 = R1 x T1
Рис. 6.16. Взаимное расположение двух костей
Если требуется вычислить мировые координаты всех точек поверхности (опорных точек полигональных сеток) тела движущегося объекта, то необходимо вначале определить матрицу преобразований из локальной системы, связанной с начальной точкой всех родительских костей, в систему мировых координат. Затем произвести обход скелета, для каждой кости вычисляя свою матрицу Мi. Для задания координат опорных точек поверхности тела вокруг костей, удобно использовать соответствующие локальные координаты с центрами в концах костей.
Идея метода скелетной анимации основывается на том, что большинство движущихся объектов можно представить в виде иерархической структуры. Это относится как к живым объектам (людям, животным, растениям и т.п.), так и неживым (планетные системы, роботы и т. п.). Перемещение одного элемента такой иерархической структуры относительно другого элемента может вызвать последовательность перемещений ряда элементов. Другими словами, трансформации элементов в иерархической системе взаимозависимы, поэтому можно задать программе анимации трансформацию одного элемента и получить рассчитанную ею трансформацию всей иерархической структуры. Отношения между родительской и дочерней костями обуславливают иерархию координатных систем и соответствующую иерархию трансформаций (перемещений и/или деформаций). Родительская кость, для которой не существует родительской кости, называется корневой (root) или предком всех других Костей, ее локальная система координат является абсолютной. В частности, для скелетной модели человека в качестве корневой кости часто выбирают тазовую кость.
Следует заметить, что в целях экономии времени расчета и объема памяти при анимации иногда используют простейший вариант использования скелета - каждая вершина полигональной сетки поверхности связывается только с одной костью. Однако лучшее качество, большая реалистичность достигаются при учете влияния на одну вершину нескольких костей. В этом случае для вершины задают степень влияния каждой кости с помощью коэффициента веса, сумма которых для одной вершины, как правило, должна быть равна единице. В соответствии со значениями этих коэффициентов выполняется интерполяция координат вершин полигонов (метод интерполяции вершин - vertex blending).
Как подмножество метода интерполяции вершин может рассматриваться vertex skinning - метод трансформации вершин геометрической сетки в местах сгиба модели. Применяется метод vertex skinning для того, чтобы на стыках текстур (особенно на сгибах и сочленениях - это, например, все суставы модели человека или животного) были плавные, естественные переходы, особенно во время движения. Таким образом, при помощи этого метода осуществляется правильное расположение вершин. Для этого используются матрицы, называемые skinning matrices. Текстуры же на корректно трансформированную геометрию натягиваются правильно автоматически. Основная идея этого метода - интерполировать результаты матричного преобразования, используя веса, основанные на начальном местоположении каждой вершины. Это позволяет отдельному треугольнику сетки деформироваться (натягиваться подобно коже) и сохранять связь, например, с суставами, поскольку каждой вершине приписывают различный вес.
Таким образом, вычисление координат некоторой вершины V интерполяцией в соответствии с методом vertex blending можно описать так:
V= V1 x k + V2 x (1-k),
где V1 , V2 - используемые вершины, а коэффициент k принимает значение в диапазоне от 0 до 1.
Метод vertex skinning - это vertex blending для вершин, обработанных разными матрицами (М1,М2):
V = V1 x M1 x k + V2 x M2 x (1-k).
Таким образом, для осуществления скелетной анимации какого-нибудь персонажа необходимо, прежде всего, создать его полигональную модель (сетку персонажа). Деформация сетки персонажа осуществляется под влиянием скелета. Он создается и подгоняется под размеры и форму тела персонажа, затем каждая вершина сетки связывается с одной или несколькими костями скелета. Если какая-то кость подверглась трансформации, то необходимо выполнить расчет скелета, вследствие чего осуществляется деформация сетки. Иными словами, при анимации изменяются параметры положения частей скелета, а сетка лишь следует за ними.
Основные достоинства метода скелетной анимации заключаются в следующем:
• в меньшем размере файлов, в которых хранится анимация, так как в них нет необходимости хранить положения всех вершин для всех кадров;
• в лучшем качестве изображения по сравнению с вершинной анимацией при том же (и даже меньшем) количестве полигонов;
• в упрощении задач художника-аниматора, так как ему не нужно самому отслеживать трансформацию по всей иерархии костей.
Одной из проблем реализации метода скелетной анимации является управление движением костей скелета. Нужно как-то описывать последовательность движений костей, соответствующих требуемым движениям персонажа. Пусть, например, у персонажа таз — это корневое звено, для которого туловище и ноги являются дочерними звеньями. В свою очередь, ноги являются родительскими звеньями по отношению к ступням.
В соответствии с методом прямой кинематики (Forward Kinematics) управляя углами поворота костей скелета, добиваются требуемых поз. Процесс подбора углов можно представить следующим образом. Движение родительского звена (например, ноги) автоматически приводит в движение всю цепь дочерних звеньев (в данном случае ступню), причем дочерние звенья будут перемещаться, не изменяя своего положения относительно объекта-предка. Если родительское, звено поворачивается, то дочернее соответственно и перемещается, и поворачивается, чтобы его ориентация по отношению к родительскому звену осталось прежней. Этот метод несколько утомителен для художника-аниматора, так как требует указывать множество углов в сочленениях.
При использовании метода обратной (инверсной) кинематики (Inverse Kinematics) исходными являются позы, а точнее, координаты концевых точек звеньев скелета. Исходя из этих координат, находятся соответствующие углы поворота всех костей. Движение задается перемещением самого младшего дочернего звена (в нашем случае ступни), что заставляет всю остальную цепочку (ногу, туловище, таз и т.д.) перемещаться. Как правило, расчет перемещений осуществляется с учетом ограничений на работу сочленений звеньев: например, вводятся приоритеты сочленений, их фиксация, угловые ограничения и трение в узлах сочленений и т.п. При этом метод обратной кинематики, в отличии от метода прямой кинематики, может дать несколько вариантов решения (или странные и непредвиденные решения) - это зависит от количества звеньев и ограничений.
Задача обратной кинематики для простых скелетов с небольшим количеством звеньев может решаться аналитически непосредственно. Для расчета сложных скелетных конструкции применяются математический аппарат якобианов и соответствующие итерационные методы.
Следует отметить, что при использовании, например, метода обратной кинематики расчет скелета может не производиться заранее, а вычисляться процедурно. Так называемый метод процедурной анимации применяется в тех случаях, когда моделирования движений трудно (неэффективно) воспроизводить с помощью ключевых кадров. При процедурной анимации текущие значения параметров анимации рассчитываются на основе заданных начальных значений и математических выражений, описывающих изменение параметров во времени. Процедурная анимация часто используется для качественной анимации разнообразных физических эффектов.
Аналогично применяется параметрическая анимация. В роли параметра может выступать любой объект - кривая, поверхность, точка, систем координат и т.д. Например, частоту или скорость движения объекта можно задать графиком, а затем анимировать этот график, изменяя тем самым параметры движения объекта.
Упомянем также о таких средствах анимации как редактирование кривых действия и системы частиц (particle systems).
Движения, особенно "живых" объектов в реальном мире редко бывает линейным: например, объекты могут плавно замедлять ход, а затем резко останавливаться. Для подготовки подобных эффектов используются графические средства редактирования кривых действия.
При использовании метода моделирования частиц (particles) создается набор частиц (часто в качестве частиц используются точки, то есть объекты, не имеющие размеров). Для частиц могут быть заданы законы их существования, например, основанные на каких-то реальных физических законах, а именно, законах притяжения под действием силы тяжести, электростатических, магнитных сил, и т.п.
Например, система частиц в разработанной компанией RealSoft OY системе 3D-графики RealSoft 4D может работать с частицами следующих типов: 1D, 2D, 3D, NURBS-кривые (NURBS - Non Uniform Rational B-Spline - неоднородный рациональный Би-сплайн), причем любой объект сцены может быть представлен как частица. Частицы рассчитываются как брызги воды, туман, огонь, они могут использоваться в качестве параметров для процедурной обработки. Любая поверхность может быть источником частиц, и любой объект может быть ими заполнен. При движении частицы могут быть заданы начальные параметры ее движения, действующие на нее силы, время жизни, цветовые параметры и т.п. Частицы могут быть текстурированы, все атрибуты частиц (например, толщина, длина или прозрачность) доступны для анимации. Комбинируя все эти возможности моделирования, художник может создать модели персонажей, декорации и окружающую среду.
Кроме того, в состав RealSoft 4D входит Envelope System - редактор графов, с помощью которого можно управлять поведением любого атрибута объекта в виде функции другого атрибута объекта сцены. Например, можно задать закон изменения угла скелетона в зависимости от гравитационного поля. Графы представлены как NURBS-кривые в 4D- пространстве, что позволяет получать очень мягкие движения при анимации
Методы обратной кинематики и анимации по ключевым кадрам используются совместно с методом канальной анимации. Метод канальной анимации (channel animation) основан на снятии информации о каком-либо параметру объекта с датчика (канала). Например, для снятия информации о движении актера датчики крепятся по всему его телу в тех местах, которые будут приведены в соответствие с контрольными точками компьютерной модели для ввода и оцифровки движения, а приемники информации подключены к компьютеру. Датчики могут быть разных видов, например, электромеханическими, электромагнитными (беспроводными или соединяющимися с компьютером проводами) или оптико-электронными, информацию с которых считывают специальные оптические устройства, подключенные к компьютеру. Следует заметить, что в настоящее время беспроводные датчики используются реже, так как для снабжения их энергией актеру приходится носить на себе аккумулятор. Оцифрованные движения реального человека служат для создания моделей, изображающих компьютерный персонаж.
На этом методе основано относительно новое направление в анимации - технология real time performance animation, основанная на захвате (видеозахвате) движения (Motion Capture), который дает возможность передавать естественные, реалистичные движения в реальном времени. Для захвата движений часто используют пассивные оптические метки и видеотехнологию для записи движений объекта. В этом случае актеру приходится носить только отражающие свет метки, закрепленные на одежде. Естественно, что качество синтезированного движения напрямую зависит от количества и расположения датчиков.
Таким образом могут создаваться данные для библиотеки движений, в которых содержится информация о движении тех или иных частей тела человека, животного при конкретных действиях. Использование библиотеки значительно упрощает и удешевляет создание анимации.
Глава 7. Стандартизация в компьютерной графике
Начальный период создания и развития средств машинной графики характеризовался развитием многочисленных, иногда достаточно эффективных, графических систем, ориентированных на то или иное оборудование. Фактически этот период можно охарактеризовать как период основного внимания к техническим средствам.
В следующий период более актуальной стала проблема создания программного обеспечения. Во-первых, велись разработки алгоритмов машинной графики - генерация примитивных элементов, интерполяция, аппроксимация, формы и методы представления изображений и т.д.; во-вторых, создавались инструментальные средства машинной графики - графические языки, пакеты процедур, языки диалога.
Постепенно сформировалось представление о программном продукте как о промышленном изделии, что выдвинуло проблему стандартизации графического программного обеспечения. Развитие сетей ЭВМ, оснащенных терминальными устройствами различных типов, потребовало обеспечить независимость программного обеспечения от аппаратуры.
7.1 NGP (Network graphics рrotocol)
Первые результаты по стандартизации были получены применительно к сети ARPA в рамках работ по разработке протоколов для аппаратно и машинно-независимого представления графических данных в сети.
Модель работы пользователя в сети с применением графического протокола приведена на рис. 7.1
Рис. 7.1. Модель организации работы в сети
В начале сеанса работы пользователь располагается перед дисплеем, подключенным к терминальной ЭВМ, инициирует терминальную программу и устанавливает связь с ЭВМ сети, на которой ему будет предоставлено необходимое обслуживание. Прикладная программа главной ЭВМ при необходимости выполнить ввод/вывод использует обслуживающую программу, функцией которой является интерфейс прикладной программы с сетевым графическим протоколом.
Терминальная программа используется для интерпретации протокола в подходящую аппаратно-зависимую форму и для реализации функций ввода и запроса к обстановке.
Данные в сети передаются только в стандартной форме, следовательно, на передающей стороне выполняется кодирование, а на приемной - декодирование информации. Предусмотрено два уровня протокола вывода: сегментированный и структурированный форматы. В сегментированном формате изображение строится из отдельных сегментов, представляющих собой список графических примитивов (точек, линий, строк текста). ТП выполняет только перекодировку и может быть достаточно простой. В структурированном формате изображение строится из вызовов отдельных подкартин, состоящих из примитивов и вызовов других подкартин. Объем передаваемых данных уменьшается, но на ТМ, как правило, требуется программное выполнение преобразований.
Для работы с виртуальными устройствами ввода, служащими для выполнения позиционирования, ввода скалярного значения, ввода состояния кнопки (вкл/выкл), ввода строки символов, ввода времени, используется два метода: 1) запроса и получения состояния устройства ввода, например, строки символов; 2) разрешения пользователю совершить действия, приводящие к возникновению события ввода и получения на главной ЭВМ "сообщения" события.
Аппаратная независимость обеспечивается средствами опроса, котоpый позволяет выяснить конфигурацию и возможности используемых устройств. Адаптация к возможностям реализуется необходимыми настройками прикладной и обслуживающей программ.
После публикации появился целый ряд работ, посвященных использованию идей протокола в нашей стране.
7.2 Международная деятельность по стандартизации в машинной графике
Работы по протоколам послужили отправной точкой по развитию стандартизации в машинной графике. В 1974 г. в США был создан комитет по стандартизации машинной графики GSPC в АСМ/SIGGRAPH. В 1975 г. в ФРГ в Институте стандартов был создан подкомитет по машинной графике - DIN-NI/UA-5.9. В 1977 г. в международной организации по стандартизации (ISO) была создана рабочая группа TC97/SC5/WG2 "машинная графика" .
Важную роль в разработке методологии стандартизации машинной графики сыграла конференция в Сейлаке (Франция), организованная графическим подкомитетом WG 5.2 IFIP в 1976 г. На конференции были сформулированы и обсуждены основные условия и проблемы стандартизации. Было установлено, что основная цель стандартизации - переносимость графических систем, которая достигается стандартизацией интерфейса между графическим ядром системы (базовой графической системой), реализующим собственно графические функции, и моделирующей системой - проблемно-ориентированной прикладной программой, использующей функции графического ядра. Базовая система должна обладать: независимостью от вычислительных систем; независимостью от языков программирования; независимостью от области применения; независимостью от графических устройств.
Структура прикладной графической системы, удовлетворяющей сформулированным требованиям, может быть представлена в виде шестиуровневой модели (рис. 7.2).
Рис. 7.2. Уровневая модель прикладной графической системы
Процесс преобразования информации при выполнении вывода может быть представлен состоящим из следующих этапов (рис. 7.3):
1. Модельные преобразования. Проблемно-ориентированный уровень из геометрических моделей отдельных объектов, задаваемых в собственных локальных системах координат, формирует описание совокупного объекта в некоторой единой (мировой) системе координат. Описание совокупного объекта подается в графическую систему.
2. Нормализующие преобразования. Графическая система переводит описание из мировой, вообще говоря произвольной, системы координат в т.н. нормализованные координаты устройства, имеющие фиксированные пределы изменения координат, например, от 0.0 до 1.0.
3. Преобразования сегментов. Если графическая система предоставляет средства манипулирования отдельными подкартинами изображения (часто именуемыми сегментами), например, для независимого размещения отдельных самостоятельных частей изображения, то могут потребоваться такие преобразования.
4. Видовые преобразования. В случае 3D описания изображения и 2D устройства вывода необходимо выполнить проецирование изображения на заданную картинную плоскость. Наоборот, при 2D сцене и 3D устройстве вывода необходимо выполнить преобразование, связанное с размещением изображения. При выполнении этих преобразований, естественно, может потребоваться выполнение отсечения частей изображения. После этого этапа по сути дела готово описание изображения в некоторой аппаратно-независимой форме, пригодной для вывода на любое устройство.
5. Преобразование рабочей станции. Для выполнения вывода на конкретное устройство необходимо преобразование данных из аппаратно-независимой формы в координаты устройства.
Процесс преобразования координатной информации при вводе от координатных устройств обратен вышеописанному преобразованию при выводе.
Рис.7.3. Схема преобразований координатной информации в графической системе
Концептуальная модель переносимой графической системы показана на рис. 7.4. Штриховые линии на нем обозначают интерфейсы, при стандартизации которых может быть обеспечена переносимость.
Верхний уровень стандартизации - IGES предназначен для обеспечения мобильности компонент САПР.
Средний уровень стандартизации - уровень базового графического пакета (GKS) определяется выбором базовых функций системы. Этот интерфейс делает базовую графическую систему независимой от области применения.
Нижний уровень стандартизации - уровень связи с виртуальным графическим устройством (CGI) зависит от выбора примитивов ввода/вывода, являющихся абстракцией возможностей устройств. Этот интерфейс делает базовую графическую систему аппаратно-независимой.
Рис. 7.4. Архитектура переносимой графической системы
Деятельность ISO, IEC по стандартизации в машинной графике
Главными организациями формирующими международные стандарты в области информационной технологии являются ISO (International Organization for Standartization) и IEC (International Electrotechnical Commission). В конце 1987 г. был сформирован первый совместный технический комитет (JTC1) ISO/IEC с целью стандартизации в области информационной технологии. Стандартизацией в машинной графике занимается 24-й подкомитет (ISO/IEC JTC1/SC24). В 1988 г. была создана постоянная советская часть этого подкомитета. Основными стандартами являются :
1. GKS (Graphical Kernel System) - набор базовых функций для 2D аппаратно-независимой машинной графики.
2. GKS-3D (Graphical Kernel System for 3 Dimensions) - расширение GKS для поддержки базовых функций в 3D.
3. PHIGS (Programmer's Hierarchical Interactive Graphics System) - набор базовых функций 3D графики аналогичный GKS-3D, но в отличие от GKS-3D, ориентированной на непосредственный вывод графических примитивов, группируемых в сегменты, графическая информация накапливается в иерархической структуре данных. В целом PHIGS ориентирован на приложения, требующие быстрой модификации графических данных, описывающих геометрию объектов.
4. Языковые интерфейсы (Language bindings) - представление функций и типов данных функциональных графических стандартов в стандартизованных языках программирования.
5. CGM (Computer Graphics Metafile) - аппаратно-независимый формат обмена графической информацией. Используется для передачи и запоминания информации, описывающей изображения.
6. CGI (Computer Graphics Interafce) - набор базовых элементов для управления и обмена данными между аппаратно-независимым и аппаратно-зависимым уровнями графической системы.
7. CGRM (Computer Graphics Reference Model) - модель стандартов в машинной графике, которая определяет концепции и взаимосоотношения применительно к будущим стандартам в машинной графике.
8. Регистрация - механизм регистрации стандартизуемых аспектов примитивов вывода, обобщенных примитивов, escape-функций (для доступа к аппаратным возможностям устройств) и других графических элементов.
9. Тестирование реализаций на соответствие графическим стандартам - основные цели этого проекта: специфицирование характеристик стандартизованных тестов, используемых для определения соответствия реализаций графическим стандартам, и выработка предписаний разработчикам функциональных стандартов относительно правил соответствия.
В составе 24-го подкомитета имеется 5 рабочих групп (WG):
WG1: Архитектура. Цель этой группы - развитие CGRM - модели стандартов машинной графики.
WG2: Интерфейсы прикладных программ. Стандартизация функциональных спецификаций для интерфейсов прикладных программ.
WG3: Метафайлы и интерфейсы с устройствами. Стандартизация обмена графической информацией, включая метафайл и интерфейс с устройствами.
WG4: Языковые интерфейсы. Стандартизация языковых интерфейсов для функциональных стандартов машинной графики.
WG5: Верификация, тестирование и регистрация. Разрабатывает методы и процедуры проверки соответствия и тестирования реализаций функциональных стандартов машинной графики и методов и процедур регистрации графических примитивов.
7.3 Классификация стандартов
Из рис. 7.4 видно, что для обеспечения мобильности программного обеспечения требуется стандартизовать:
базовую графическую систему, т.е. стандартизовать графический интерфейс (набор базовых графических функций) - Core System, GKS, GKS-3D, PMIG, PHIGS, PHIGS+ и т.д.
графический протокол (порядок и правила обмена информацией) - IGES, CGM и др.
Далее будут рассмотрены отдельные графические интерфейсы, являющиеся международными графическими стандартами, а затем – некоторые графические протоколы, среди которых большая часть - стандарты де-факто и только один - CGM - международный стандарт.
Core-System
Существенным этапом в области стандартизации машинной графики явилась публикация проекта стандарта CORE-SYSTEM (GSPC-77) , модель которой приведена на рис. 7.5. Главные идеи, положенные в основу системы CORE : разделение функций ввода и вывода; минимизация отличий между выводом на графопостроитель и интерактивный дисплей; концепция двух координатных систем - мировой системы координат, в которой конструируется выдаваемое изображение, и приборной системы координат, в которой представляются данные для отображения; концепция дисплейного файла, содержащего приборную координатную информацию; понятие дисплейного файла сегментов, каждый из которых может независимо модифицироваться как элемент; обеспечение функций преобразования данных из мировой системы координат в приборную путем вызова видового преобразования.
В системе выделены следующие группы функций: вывода; сегментирования дисплейного файла; установления и опроса атрибутов примитивов (цвет, яркость, ширина линии и т.д.) и атрибутов сегментов (тип, видимость, указуемость и т.д.); визуализации; выполнения ввода с виртуальных устройств ввода типа указка, клавиатура, кнопка, локатор, датчик; управления и доступа к специальным аппаратным возможностям.
В 1979 г. был опубликован уточненный проект стандарта CORE-SYSTEM (GSPC-79) . Кроме прочих изменений, в этой версии предусмотрена (весьма ограниченно) поддержка растровых устройств. Всего предлагалось 266 функций, так что охватывался широкий спектр применения машинной графики, начиная от пассивного вывода до интерактивных систем высокого уровня.
Рис. 7.5. Модель графической системы, положенная в основу CORE-SYSTEM
Ясно, что для многих приложений требуется лишь часть возможностей графпакета, все остальные, если будут присутствовать, будут приводить к неэффективности прикладной программы. Для устранения этого противоречия система разбита на три не зависящие друг от друга группы уровней - группа уровней вывода, группа уровней ввода, группа уровней размерности. Уровни внутри группы совместимы снизу-вверх.
Группа уровней вывода включает в себя:
базовый вывод, поддерживающий полный набор примитивов вывода, их атрибутов и операций визуализации и предназначенный для приложений, не требующих выборочного редактирования изображений;
буферизованный вывод дополнительно к предыдущему уровню позволяет использовать сохраняемые сегменты без преобразования образа - преобразования графической информации, содержащейся в сегменте в момент выполнения вывода.
Группа уровней ввода включает:
без ввода, т.е. применяется для пассивных приложений;
синхронный ввод - ввод производится синхронно с работой прикладной программы, т.е. ее исполнение приостанавливается до завершения ввода;
асинхронный ввод - ввод производится независимо от работы прикладной программы, а вводимые оператором данные накапливаются в обрабатываемой прикладной программой очереди ввода.
На последних двух уровнях поддерживаются виртуальные устройства ввода классов ЛОКАТОР, ШТРИХ, ДАТЧИК, ВЫБОР, УКАЗКА и КЛАВИАТУРА.
Группа уровней размерности включает:
2D - поддерживаются только 2D операции;
3D - дополнительно к 2D поддерживаются и 3D операции.
Предложения GSPC получили широкий отклик в виде многочисленных реализаций версий базовой системы.
GKS (Graphical Kernel System)
Результатом работ в ФРГ было создание системы GKS. Модель графической системы, положенная в ее основу, приведена на рис. 7.6. В 1979 г. GKS была принята в качестве отправной точки международного стандарта. В процессе разработки международного стандарта в исходную версию GKS был внесен целый ряд изменений, приблизивших ее к CORE-SYSTEM, но сохранивших ряд отличительных фундаментальных концепций. Основной из таких отличительных черт является введение понятия рабочей станции, представляющей собой абстракцию совокупности виртуальных устройств ввода/вывода, более полно соответствующей современной тенденции использования интеллектуальных терминалов.
По максимуму рабочая станция обладает следующими свойствами: имеет одну адресуемую поверхность вывода с фиксированным разрешением; допускается только прямоугольное поле отображения, которое не может состоять из нескольких отдельных частей; позволяет задание и использование поля отображения, которое меньше максимально возможного, с гарантией того, что изображение не генерируется вне заданного поля отображения; поддерживает несколько типов линий, шрифтов текста, размеров символов и т.д. для вывода примитивов с различными атрибутами; имеет одно или больше устройств ввода для каждого класса устройств, которые независимо друг от друга могут работать в одном из трех режимов - синхронный ввод, опрос, асинхронный ввод; запоминает сегменты и обеспечивает средства для изменений сегментов и манипуляций с ними.
Ясно, что выделение рабочей станции излишне громоздко, когда приходится иметь дело с одним устройством вывода и ввода. Основная ценность введения понятия рабочей станции состоит в удобной и естественной возможности разделения аппаратно-независимой и аппаратно-зависимой частей.
Следует отметить, что в GKS столь же последовательно проводится разделение функций ввода/вывода, как и в CORE.
Набор примитивов GKS подобен набору примитивов CORE, хотя меньше и несколько более приспособлен для целей растровой графики (ломаная; полимаркер; текст; многоугольник, который может быть "залит" одним цветом, заштрихован, покрыт узором, либо может быть не закрашен за исключением границ; массив прямоугольных ячеек, закрашенных одним цветом; обобщенный примитив черчения, дающий доступ к специальным геометрическим и графическим возможностям устройств).
В отличие от CORE в GKS нет понятия текущей позиции, так что построение примитива не зависит от предыстории вычерчивания. В GKS имеется 2 способа задания атрибутов примитивов. Первый - индивидуальный способ аналогичен используемому в CORE, не зависит от рабочей станции и основан на индивидуальном задании атрибутов, которые сохраняют свое значение пока не будут изменены прикладной программой. Второй - групповой способ зависит от рабочей станции и основан на задании независимых групп значений атрибутов. Для использования требуемой группы атрибутов задается ее номер, который сохраняет свое значение пока не будет переустановлен.
Видовые операции, определяющие переход от входных (мировых) координат к физическим координатам устройства, также похожи, но в GKS, в отличие от CORE, допускается наличие не одной, а нескольких пар окно/поле вывода.
Средства сегментации GKS напоминают средства сегментации CORE, но в GKS добавлены средства манипулирования сегментами на заданной рабочей станции и средства работы с рабочей станцией специального типа - приборно-независимым хранилищем сегментов (ПНХС).
Виртуальные устройства ввода также подобны, хотя названия несколько отличаются и в GKS правила работы с устройствами лучше проработаны.
Рис. 7.6. Модель графической системы, положенная в основу GKS
Для повышения эффективности конкретных приложений в GKS, аналогично CORE, предусмотрено разбиение на уровни. Предлагается три уровня вывода и три уровня всех остальных функций.
Уровни вывода:
0: Минимальный вывод. Доступны все примитивы. Используются только групповые, немодифицируемые атрибуты примитивов. В каждый момент времени активна только одна рабочая станция вывода. Опросы параметров системы - только базовые. Доступно чтение пикселов - отдельных точек изображения из растровых устройств.
1: Базовая сегментация с полным выводом. Все возможности уровня 0. Полное управление рабочей станцией. Полные возможности вывода. Полные возможности групповых таблиц атрибутов. Одновременно могут быть активными несколько рабочих станций. Есть рабочие станции типа метафайл для сохранения/воспроизведения изображений. Может использоваться требуемое число пар окно/поле вывода. Есть базовая сегментация (без ПНХС). Доступны требуемые опросы.
2: Приборно-независимое хранилище сегментов. Все возможности уровня 1. Имеется ПНХС.
Уровни ввода:
A: Нет ввода.
B: Синхронный ввод. Существуют виртуальные устройства ввода каждого класса, работающие в режиме синхронного ввода (request).
C: Полный ввод. Все возможности ввода уровня B. Предусмотрены режимы асинхронного ввода и ввода по опросу (event и sample).
В 1985 г. GKS была принята в качестве международного стандарта . В 1988 г. для стандартизованных языков программирования были приняты международные стандарты на интерфейс GKS c языками Fortran, Pascal, Ada, C.
GKS-3D (Graphical Kernel System for Three Dimensions)
Отличия GKS-3D от GKS заключаются в добавлении 3D функций:
• примитивов 3D вывода;
• установки атрибутов вывода (2 функции);
• поддержки 3D преобразований (9 функций);
• работы с 3D сегментами и преобразований 2D сегментов в 3D и наоборот (4 функции);
• ввода с 3D координатных устройств (10 функций);
• утилит работы с матрицами 3D преобразований (2 функции).
В целом GKS может рассматриваться как подмножество GKS-3D, т.е. 2D приложения, написанные на GKS, гарантированно исполняются в 3D окружении без каких-либо изменений.
В 1988 г. GKS-3D была принята в качестве международного стандарта . В период с 1988 по 1990 гг. прорабатывались проекты стандартов ISO 8806 на интерфейсы GKS-3D с языками программирования. В 1991 г. завершилось их принятие в качестве международных стандартов.
PHIGS (Programmer's Hierarchical Interactive Graphics System)
Во многих приложениях возникает необходимость геометрического моделирования трехмерных тел (САПР машиностроительного, строительного, архитектурного и других направлений, системы автоматизации научных исследований, системы визуализации и т.д.).
Использование GKS или GKS-3D для отображения результатов моделирования предполагает, что моделирование целиком должна выполнять прикладная программа, так как эти системы ориентированы на прямой ввод/вывод и в них не предусмотрено иного манипулирования графическими данными кроме накопления в сегментах.
PHIGS же комбинирует графику с техникой моделирования и представляет собой набор функций программирования графики с поддержкой быстрой модификации графических данных, описывающих геометрические соотношения объектов.
Набор примитивов вывода и их атрибутов в PHIGS тот же самый, что и в GKS-3D с добавлением примитива "annotation text relative" для пометки объектов.
Принципиальное отличие PHIGS от GKS состоит в том, что в PHIGS создание и отображение изображения разделены на две независимых фазы - занесения в централизованную структурную память (CSS - Centralized Structure Store) и отображения заданной структуры на требуемую рабочую станцию.
Структура состоит из графических и неграфических элементов. Поддерживаются возможности создания и редактирования структур в CSS. Структура может вызывать другие структуры за счет чего создаются иерархии. Предусмотрено 9 классов структурных элементов:
Таблица 7.1. Классы структурных элементов в CSS
примитивы вывода;
спецификация атрибута;
локальное преобразование моделирования;
редактирование;
обобщенный структурный элемент;
прикладные данные;
глобальное преобразование моделирования;
управление;
отсечение.
Графический вывод задается в т.н. модельных координатах. Элемент "локальное преобразование моделирования" задает преобразование, которое применяется к последующим примитивам вывода.
Элемент "редактирование" определяет метку, используемую при редактировании и несущественную при отображении. Предоставлены возможности поиска метки и установки на нее указателя.
"Обобщенный структурный элемент" позволяет определить нестандартные действия.
Элемент "прикладные данные" несущественен при отображении. Обычно представляет собой указатель на прикладную базу данных.
Основное отличие между системами PHIGS и GKS-3D заключается в наличии элемента "Исполнить структуру" (Execute Structure), позволяющего при отображении исполнить структуру как часть другой. Когда такой элемент принимается интерпретатором, то текущее состояние упрятывается и управление переключается на структуру, заданную в элементе. После завершения интерпретации вызванной структуры восстанавливается исходное состояние и интерпретация продолжается с элемента, следующего за элементом "Исполнить структуру".
При вызове структуры она наследует глобальное модельное преобразование вызвавшей структуры. Даже если при исполнении вызванной структуры глобальное модельное преобразование будет изменено с помощью соответствующих функций, тем не менее по возврату исходное глобальное преобразование будет восстановлено.
Локальное модельное преобразование, комбинируясь с глобальным, формирует текущее модельное преобразование.
В PHIGS может быть отредактирован отдельный графический элемент структуры, что обеспечивает большую скорость модификации изображения по сравнению с GKS, в которой, как минимум, требуется перегенерация сегмента, содержащего изменяемый примитив.
PHIGS+
PHIGS+ - расширение PHIGS, имеющее дополнительные функциональные возможности для приложений, требующих учета освещенности, раскраски (интерполяции цветов по поверхности), а также дополнительные возможности по управлению отображением и новые примитивы для поддержки эффективного описания сложных поверхностей. Эти расширения были сформулированы как поправка к существующим частям 1-3 стандарта PHIGS и введением новой части 4 стандарта.
Поддержка освещенности и раскраски основана на предоставлении средств задания позиции источника света и наличии примитивов "с данными", задающими вектора нормалей и цвета вершин.
Предоставлена возможность задания в структуре "ограничивающего бокса". Когда он обрабатывается, то устанавливаются флаги отсечения (если ограничивающий бокс полностью вне области вывода) и отбраковки (если ограничивающий бокс меньше заданного размера). Этот дополнительный элемент структуры предназначен для управления пропуском исполнения структуры, образ котрой находится вне области вывода, и позволяет повысить скорость отображения.
CGI (Computer Graphics Interface)
Это стандарт ISO на интерфейс между аппаратно-независимой частью графического программного обеспечения (базисной графической системой) и аппаратно-зависимой (драйверами). Этот интерфейс ранее (в рамках ANSI) назывался интерфейсом виртуального устройства.
Для эффективного использования аппаратных возможностей современных графических устройств набор функций CGI перекрывает аппаратно-реализуемые возможности и включает в себя следующие функции:
◦ управление устройством,
◦ вывод графических примитивов,
◦ изменение графических атрибутов,
◦ сегментация изображений,
◦ графический ввод,
◦ растровые операции.
Отличительными особенностями CGI (по сравнению со стандартами на интерфейс базисной графической системы) являются следующие: расширенный набор графических примитивов, одноступенчатое преобразование координат, увеличенное количество логических устройств ввода, наличие растровых операций. В целом набор функций CGI достаточно удобен для создания надстроенного над ним графического программного обеспечения. Последнее позволяет эффективно создавать на основе CGI различные базисные графические системы.
Следует отметить, что стандарт на интерфейс виртуального устройства ориентирован в первую очередь на унификацию способа взаимодействия с различными графическими устройствами и предназначен для системных, но не прикладных программистов. Он был утвержден после появления множества проектов по стандартизации программных интерфейсов базисной графической системы.
7.4 Графические протоколы
Анализ применяемых в настоящее время графических протоколов и проектов по их стандартизации позволяет выделить протоколы следующих типов:
• аппаратно-зависимые графические протоколы или команды графических устройств,
• аппаратно-независимые графические протоколы или метафайлы,
• прикладные графические протоколы (проблемно-ориентированные протоколы),
• растровые графические файлы.
7.4.1 Аппаратно-зависимые графические протоколы
Аппаратно-зависимые графические протоколы разрабатываются фирмами, производящими графическое оборудование. Они представляют собой последовательность команд для построения изображений на устройствах выпускаемых данной фирмой. Для интерпретации таких протоколов не требуется дополнительных ресурсов если используется соответствующее устройство. Поэтому, такие протоколы могут успешно применяться в распределенных системах при отсутствии локальной ЭВМ.
Вопрос о поддержке тех или иных аппаратно-зависимых графических протоколов определяется составом используемого оборудования. Целесообразно, чтобы центральная ЭВМ обеспечивала возможность генерации команд для наиболее распространенных графических устройств. В настоящее время значительная часть производящейся в мире графической аппаратуры работает с протоколами TEKTRONIX, REGIS и HPGL. Поддержка этих протоколов обеспечивается также в наиболее распространенных зарубежных программных продуктах.
Протокол TEKTRONIX
Разработан одноименной фирмой, выпускающей графические дисплеи. Ввиду широкой распространенности устройств этой фирмы другие разработчики графической аппаратуры часто обеспечивают режим совместимости с TEKTRONIX'ом в своих устройствах. Поддержка этого протокола производится также в некоторых эмуляторах терминала (например, VTERM, ST240, TEEMTALK) работающих на персональных компьютерах типа IBM PC.
Существуют две разновидности протокола TEKTRONIX, соответствующие дисплеям серии 4010/12/14 и дисплеям серий 41ХХ, 42ХХ, 43ХХ. Дисплеи 4010/12/14 это дисплеи на запоминающей трубке с минимальным набором графических команд.
Протоколы серии TEKTRONIX 41XX и старше включают множество функций управления алфавитно-цифровым режимом, каналом передачи данных и дополнительными внешними устройствами (hardcopy, планшет, диск).
Для представления команд используется символьное кодирование с использованием служебных символов в имени команды (чаще всего - символа Esc), что затрудняет чтение операторов человеком.
Протокол REGIS
Разработан для дисплеев серии VT (240 и выше). С этим протоколом работают также персональные компьютеры фирмы LabTam и ряд графопостроителей различных фирм. Поддержка протокола REGIS обеспечивается в некоторых эмуляторах терминала на IBM PC (VTERM, ST240). По функциональным возможностям протокол REGIS заметно уступает протоколу TEKTRONIXа. В частности, в нем гораздо беднее набор растровых операций, задания атрибутов построений, средств графического ввода и управления плоскостями вывода, полностью отсутствуют возможности сегментации изображения, выполнения видовых преобразований, определения символов.
Протокол HP-GL
Графический протокол HP-GL (язык описания данных Graphic Language) разработан фирмой Hewlett Packard в 1976 г. и поддерживается множеством других фирм, выпускающих графопостроители. В настоящее время используется версия HP-GL/2. Операторы языка содержат символьное имя команды и несколько параметров, также подготовленных в печатном текстовом виде. Всего в языке 88 операторов, разбитых на 9 функциональных групп. Ядро языка содержит 5 групп из 55 операторов, которые должны поддерживаться на всех устройствах. Оставшиеся 3 группы из 33 операторов являются специфичными для некоторых из устройств. В целом, благодаря использованию явного текстового представления, язык легко читается и интерпретируется.
7.4.2 Языки описания страниц
Любая страница может быть описана как просто пиксельный массив, но это практически неприемлемо. Язык описания страниц должен описывать любой текст и графику на высоком уровне в терминах абстрактных графических элементов.
Выполнение вывода с использованием языка описания страниц идет в две стадии:
1. Приложение генерирует аппаратно-независимое описание на языке описания страниц.
2. Программа, управляющая некоторым растровым устройством вывода, интерпретирует описание и отображение его на устройство.
Эти две стадии могут быть выполнены в разное время и в разных местах.
Примитивы вывода выдаются на растровое устройство вывода процессом, называемым преобразованием сканирования (растеризация).
Язык PostScript
Особое место среди графических языков высокого уровня занимает интерпретируемый язык описания страниц PostScript , разработанный фирмой Adobe и используемый не только для описания и построения изображений, но и качестве высокоуровневого аппаратно-независимого протокола обмена между компонующей и отображающей системами.
В первую очередь PostScript - это общий язык программирования с встроенными мощными графическими примитивами. С другой стороны, это язык описания страниц, который включает возможности языка программирования, и используется для связи с электронными печатающими устройствами.
На PostScript'е можно описывать любые графические формы, двухуровневые изображения и печатаемые формы. Для построения изображений (в том числе и всевозможных шрифтов) в языке PostScript предоставляется возможность управления каждой точкой печатающего устройства.
Естественно, что вследствие наглядности PostScript, как и другие языки программирования неоптимален в смысле минимальности кодирования информации. Поэтому его использование в качестве графического протокола представляется нецелесообразным. Однако он становится незаменим при передаче тексто-графических документов, предназначенных для воспроизведения на печатающих устройствах с высоким разрешением (например, лазерных принтерах).
Аппаратная независимость достигается тем, что построение изображения ведется в пользовательской системе координат с помощью обычных графических примитивов и описание изображения не содержит никакой информации об устройстве отображения.
В языке предусмотрен ряд типов данных - числа, строки, одномерные массивы, словари (таблицы, задающие соответствие между ключом и значением). Элементы массивов могут быть различных типов. Примитивы управления включают в себя условия, циклы и процедуры, которые могут вызываться рекурсивно.
Операторы (арифметические, логические, графические и управления) записываются в постфиксной записи и манипулируют со стеком типа LIFO.
В язык встроены следующие изобразительные возможности:
• изображения строятся из отрезков линий, дуг и кубических кривых;
• примитивы могут быть выведены линиями требуемого вида, закрашены любым цветом или использоваться для задания области отсечения для других графических элементов;
• текст полностью интегрирован с графикой, символы как стандартных шрифтов, так и определенных пользователем, рассматриваются как графические образы, которые обрабатываются графическими операторами языка;
• 2D общая координатная система поддерживает обычные линейные преобразования и их комбинации (сдвиг, поворот, масштабирование, отражение и т.д.);
• как построенные графическими операторами, так и естественные изображения, введенные, например, со сканера, могут иметь требуемые разрешение и динамический диапазон.
PostScript стал стандартом "де-факто" и получил чрезвычайно широкое распространение как язык описания страниц для лазерных принтеров и других устройств с высоким разрешением, его интерпретаторы входят в состав контроллеров растровых принтеров многих типов.
Языки описания страниц, близкие по возможностям к PostScript, разработаны также фирмами Xerox (язык Interpress) и Imagen (язык DDL).
На основе расширения языка PostScript фирмой Sun Microsystems разработана система NEWS (the Network extensible Window System) для управления окнами в сети.
Язык PCL
Несколько версий языка описания страниц Printer Communication Language (PCL) было разработано фирмой Hewlett-Packard для вывода на лазерный принтер рисунков и текстов с использованием различных шрифтов. В версии PCL5 имеется 64 оператора, разбитых на 10 функциональных групп. Все операторы начинаются с символа Esc (шестнадцатиричный код 01BH) и содержат один или несколько последующих символов. Символьное кодирование, используемое в PCL, менее приспособлено для чтения человеком, чем явное текстовое кодирование, используемое в языке PostScript, но значительно компактнее последнего.
7.4.3 Аппаратно-независимые графические протоколы
Аппаратно-независимый графический протокол или метафайл представляют собой процедурное описание изображения в функциях виртуального графического устройства. Он обеспечивает возможность запоминать графическую информацию единым образом, передавать ее между различными графическими системами (в том числе работающими на различных ЭВМ) и интерпретировать информацию для вывода на различные графические устройства. Для интерпретации метафайла требуется локальная ЭВМ, выполняющая эмуляцию не реализованных в аппаратуре функций и кодирование в команды конкретных устройств.
В настоящее время в мировой практике наиболее активно поддерживаются стандартизованные аппаратно-независимые протоколы NAPLPS, GKSM, CGM и WMF - стандарт де-факто фирмы Microsoft на метафайл.
NAPLPS - North American Presentation Level Protocol Syntax
Это американский стандарт на представление графических данных в сетях VIDEOTEX (имеется также европейский аналог этого стандарта - SET). Основными требованиями при разработке этого протокола были следующие:
• возможность передачи графической информации в потоке буквенно-цифровых данных,
• минимальность объема передаваемых графических данных,
• минимальность усилий для интерпретации и возможность вывода изображений на простейшие графические устройства.
Обеспечение этих требований привело к тому, что был разработан эффективный способ упаковки графической информации в 7-ми или 8-битные коды ASCII. Эти же требования привели к ограничению функциональных возможностей протокола, что не позволяет получить высокое качество изображений при использовании современных графических устройств.
GKSM - Graphical Kernel System Metafile
Это de-facto стандарт на графический метафайл в рамках базисной графической системы GKS (приложение Е к стандарту GKS). По функциональным возможностям этот протокол полностью соответствует системе GKS со всеми ее достоинствами и недостатками. Поэтому, он легко интерпретируется в системах, соответствующих стандарту GKS.
Недостатком GKSM-протокола (равно как и системы GKS) является, например, минимальный набор стандартизованных графических примитивов (их всего 5), что не дает возможности эффективного использования современных интеллектуальных графических устройств и увеличивает объем передаваемой информации. Возможность же использования обобщенного графического примитива или ESCAPE-механизма (предназначенных для нестандартных функций) не обеспечивает однозначность интерпретации графических данных при передаче их между различными системами.
Кодирование в GKSM текстовое, что позволяет читать (просматривать, редактировать) метафайл но требует большего объема чем символьное кодирование применяемое в NAPLPS или CGM.
CGM - Computer Graphics Metafile
Это стандарт ISO на графический метафайл. Функционально этот протокол соответствует стандарту на интерфейс виртуального устройства CGI (Computer Graphics Interface), предназначенного для обеспечения связи различных графических систем с различным графическим оборудованием и являющегося обобщением текущего уровня развития графического программного и аппаратного обеспечения. По этой причине протокол CGM может совмещаться с различными программными системами и позволяет наиболее эффективно использовать возможности имеющихся графических устройств.
В CGM предусмотрены три способа кодирования - символьное, двоичное и текстовое. Символьное кодирование (по идеологии близкое к принятому в NAPLPS) достаточно компактно и предназначено для хранения и транспортировки графической информации. Двоичное кодирование требует минимальных усилий по генерации и интерпретации и предназначено для внутрисистемного использования. Текстовое кодирование наиболее наглядно и обеспечивает возможность визуального просмотра и редактирования графических файлов. При необходимости в рамках графической системы могут быть предусмотрены соответствующие перекодировщики.
DXF
Это формат графических файлов с которыми работает система AutoCad. Его следовало бы отнести к категории аппаратно-зависимых протоколов, но (в настоящее время) нет ни одного устройства понимающего этот формат. Использование этого формата целесообразно в том случае, когда есть необходимость использования графических возможностей системы Autocad.
WMF - Windows Metafile Format
В системе Windows фирмы Microsoft для сохранения и последующего использования цветных изображений используется свой формат метафайла. В WMF используется единственный способ кодирования - двоичный, который, как это отмечалось выше, наиболее компактен и обеспечивает наибольшие скорости упаковки и воспроизведения, но неудобен для просмотра и анализа человеком. Метафайл содержит заголовок и собственно описание изображения в виде записей GDI (Graphical Device Interface) функций. Всего предусмотрено три варианта метафайла - стандартный, размещаемый (placeable) и буферный (clipboard). Отличия вариантов состоят только в разных структурах заголовков. В составе Windows предусмотрены функции для создания и проигрывания метафайлов и манипулирования ими.
Перечисленные аппаратно-независимые графические протоколы ограничиваются 2-мерными графическими примитивами, что не позволяет использовать ресурсы локальной ЭВМ для сокращения объема передаваемой информации при работе с 3D изображениями. Поэтому, представляется целесообразной разработка двухуровневого графического протокола согласованного с CGM и обеспечивающего возможность передачи 3D объектов. Сокращение нагрузки на линию связи будет происходить в данном случае не только за счет повышения семантической насыщенности передаваемой информации, но и за счет возможности получения на локальной ЭВМ множества изображений с различными параметрами визуализации (например, множество изображений пространственного объекта с различных точек зрения).
7.4.4 Проблемно-ориентированные протоколы
Прикладные графические протоколы это объектно - ориентированные протоколы передачи данных между прикладными системами. Они наиболее компактны (вследствие высокой семантической насыщенности), допускают свободу в выборе различных способов графического представления, но требуют большей мощности локальной ЭВМ для интерпретации. Прикладные протоколы стандартизованы пока только для САПР машиностроения и электроники.
В качестве примеров можно привести следующие стандарты:
• STEP (STandard for the Exchange Product Model Data),
• MAP (Manufacturing Automation Protocol),
• VDAFS (Sculptured Surface Interface),
• EDIF (Electronic Design Interchange Format).
Основные трудности, связанные с разработкой протоколов этого уровня, состоят в том, что во многих областях применения до сих пор не унифицированы основные объекты (в том числе графические) и операции над ними. Для работы в этом направлении потребуются объединенные усилия проблемных специалистов, математиков и системных программистов в области баз данных, машинной графики, телекоммуникаций и т.д.
7.4.5 Растровые графические файлы
С появлением и широким распространением персональных ЭВМ, использующих растровые дисплеи и устройства документирования (лазерные и струйные принтеры и т.д.), для целей компактного хранения и транспортировки графической информации стали активно применяться различного рода растровые графические файлы. Используется более десятка различных типов растровых графических файлов. К наиболее известным относятся:
• TIFF (Tag Image File Format),
• GIF (Graphics Interchange Format),
• PIC,
• PCX,
• MAC (MacPaint),
• BMP (Bitmap).
ZSoft (PCX)
Формат распространен на IBM PC и используется в графических редакторах (Paintbrush, EgaPaint) и системах подготовки документации (Ventura Deck Top Publisher, First Publisher).
В PCX используется очень неэффективный метод кодирования, он дает низкий коэффициент сжатия. Однако время, используемое на кодирование/декодирование практически равно времени кодирования без всякой упаковки. Это дает преимущества при использовании этого формата в интерактивных системах с быстрой сменой изображений.
MacPaint (MAC)
Является основным форматом в системах подготовки документации и графических редакторах на персональных компьютерах фирмы Apple (Macintosh, Lisa).
X Window System
В отличие от большинства других предложений по стандартизации, таких как, например, GKS, система Х спроектирована и реализована небольшой группой разработчиков из Массачусетского технологического института в рамках проекта Athena, спонсорами которого были фирмы DEC и IBM.
Система Х - программное окружение для программистов и пользователей прикладного программного обеспечения инженерных рабочих станций и представляет собой целостную систему, в рамках которой синтезированы предложения по управлению окнами, функциональному и языковому интерфейсам, аппаратно-независимому протоколу и программному обеспечению рабочей станции.
Основой Х является "базовая оконная система". Полное Х-окружение надстроено над ней в виде уровней (рис.7.7).
Рис.7.7. Структура X
Базовая оконная система взаимодействует с окружающим миром только через сетевой интерфейс. Какого-либо специального привилегированного доступа к ней не предусмотрено.
Архитектура Х-системы базируется на модели клиент-сервер (рис.7.8.). Клиент - прикладная программа. Сервер - программа, вызванная на компьютере, к которому физически подключен дисплей. В ней сосредоточена вся аппаратная зависимость.
Рис.7.8. Архитектура Х-системы
Основные критерии, которыми руководствовались в разработке Х-системы:
• транспортабельность - система должна быть применима к различным дисплеям;
• аппаратная независимость приложений;
• сетевая прозрачность - приложения могут быть вызваны как локально, так и на удаленных ЭВМ без каких-либо их изменений и без необходимости информирования об отличиях. Должны быть поддержаны различные сетевые протоколы;
• конкурирующие приложения - дисплей может делиться между несколькими приложениями. Возможен вывод из нескольких приложений как в единственное, так и в несколько окон;
• интерфейсы с приложениями и управление окнами - Х не предписывает какого либо одного способа работы с окнами, например, только перекрывающимися;
• перекрытия окон - ввод/вывод должны быть возможны для полностью или частично затененных окон.
Форматы TIFF (Tag Image File Format), GIF (Graphics Interchange Format) и BitMap (BMP) будут подробно рассмотрены в следующей главе.
Сегодня в машинной графике широко распространилось понимание необходимости стандартизации, которая позволяет обеспечить переносимость пакетов прикладных программ, унифицировать графические методы работы, углубить их понимание и практического использования, ставить задачи перед разработчиками аппаратуры.
В настоящее время работы по стандартизации, в основном, сосредоточены на узком фронте специфицирования некоторого минимального набора "базисных" функций с одновременным стремлением к многофункциональности пакетов графических подпрограмм. Следует ожидать, что дальнейшее продвижение стандартизации будет идти по пути повышения ее функционального уровня в определенных, сформировавшихся областях приложений.
В целом, текущее состояние работ по стандартизации машинной графики - необходимый, но пока первый шаг в этой части создающейся на наших глазах индустрии программного обеспечения .
Наряду с положительными аспектами стандартизации следует отметить и определенные минусы, имеющие общий характер.
1. Стандартизация всегда означает затверждение некоторого определенного уровня достижений и понимания, тем самым в определенной степени тормозится развитие новых, нестандартных технических средств и программного обеспечения. Особенно, если учесть то, что первой строчкой наших стандартов является: "несоблюдение стандарта преследуется по закону".
2. Стремление покрыть широкий спектр применений, начиная от пассивного вывода до высокоинтерактивных приложений, несмотря на наличие уровней, все-таки приводит к громоздкости и набора средств, и структуры данных и, естественно, программного кода.
3. Стремление к легкой адаптируемости влечет за собой чрезвычайно большое количество средств запроса к обстановке (в GKS - 75 функций из общего числа 185, т.е. более 40%). Такое количество несомненно избыточно для многих конкретных приложений. Не случайно поэтому, например, еще в 1987 г. темой одной из дискуссий на Всесоюзной школе-семинаре по "Информатике и интерактивной компьютерной графике" (Цахкадзор, 16-20 марта 1987 г.) было: "Стандартизация - закон или методология, тормоз или ускорение".
Важно отметить, что в предложениях по стандартизации наряду со стремлением к многофункциональности пакетов очевидно и стремление к минимизации набора стандартизованных примитивных функций, что, вообще говоря, неверно для конкретной области приложений. В последнем случае повышение функционального уровня стандартизации обеспечит как легкость изучения, так и легкость адаптации, которая важна ведь не вообще, а в каждом случае в некотором конкретном классе приложений. Практика написания прикладных систем показывает, что для повышения эффективности прикладных программ требуется набор различных функциональных возможностей из различных, предлагаемых стандартами уровней.
В этой связи, интересным представляется решение, предложенное в , положенное в основу графпакета АТОМ. Система машинной графики представляется в виде совокупности пяти сравнительно слабо связанных подмножеств: средств формирования изображений; средств промежуточного хранения информации; средств ввода; средств преобразований изображений; средств управления графическими устройствами.
Требуемая конфигурация графической системы собирается из отдельных модулей, объединяемых в конвейер. Конвейер собирается либо статически - на этапе проектирования программы, либо динамически, в процессе ее исполнения. Передача данных в конвейере осуществляется через единый межмодульный интерфейс.
Глава 8. Форматы графических файлов
Проблема сохранения изображений для последующей их обработки чрезвычайно важна. С ней сталкиваются пользователи любых графических систем. Изображение может быть обработано несколькими графическими программами прежде, чем примет свой окончательный вид. Например, исходная фотография сначала сканируется, затем улучшается её чёткость и производится коррекция цветов в программе Adobe PhotoShop. После этого изображение может быть экспортировано в программу рисования, такую как CorelDRAW или Adobe Illustrator, для добавления рисованных картинок. Если изображение создаётся для статьи в журнале или книги, то оно должно быть импортировано в издательскую систему QuarkXPress или Adobe PageMaker. Если же изображение должно появиться в мультимедиа-презентации, то оно, вероятнее всего, будет использовано в Microsoft PowerPoint, Macromedia Director или размещено на Web-странице.
Формат графического файла - способ представления и расположения графических данных на внешнем носителе.
Изначально, в условиях отсутствия стандартов каждый разработчик изобретал новый формат для собственных приложений. Поэтому возникали большие проблемы обмена данными между различными программами (текстовыми процессорами, издательскими системами, пакетами иллюстративной графики, программами САПР и др.). Но с начала 80-х гг. официальные группы по стандартам начали создавать общие форматы для различных приложений. Единого формата, пригодного для всех приложений, нет и быть не может, но всё же некоторые форматы стали стандартными для целого ряда предметных областей.
Пользователю графической программы не требуется знать, как именно в том или ином формате хранится информация о графических данных. Однако умение разбираться в особенностях форматов имеет большое значение для эффективного хранения изображений и организации обмена данными между различными приложениями.
Большинство векторных форматов могут так же содержать внедрённые в файл растровые объекты или ссылку на растровый файл (технология OPI). Сложность при передаче данных из одного векторного формата в другой заключается в использовании программами различных алгоритмов, разной математики при построении векторных и описании растровых объектов.
OPI (Open Prepress Interface) технология, разработанная фирмой Aldus, позволяющая импортировать не оригинальные файлы, а их образы, создавая в программе лишь копию низкого разрешения (эскиз) и ссылку на оригинал. В процессе печати на принтер, эскизы подменяются на оригинальные файлы. Применение OPI, вместо простого внедрения, (embedding) дает возможность экономить ресурсы компьютера (прежде всего, память), заметно повышая его производительность. OPI является основной работы с импортированными графическими файлами в таких программах, как FreeHand и QuarkXPress, широко применяется в других продуктах.
Растровый файл устроен проще (для понимания, по крайней мере). Он представляет из себя прямоугольную матрицу (bitmap), разделенную на маленькие квадратики - пикселы (pixel - picture element). Растровые файлы можно разделить на два типа: предназначенные для вывода на экран и для печати.
Разрешение файлов таких форматов как GIF, JPEG, BMP зависит от видеосистемы компьютера. В старых Маках на квадратный дюйм экрана приходилось 72 пиксела (экранное разрешение), на Windows единого стандарта не сложилось, но сегодня чаще всего употребляется значение 96 пикселов на квадратный дюйм экрана. Реально, однако, эти параметры теперь стали довольно условными, так как почти все видеосистемы современных компьютеров позволяют изменять количество отображаемых на экране пикселов. Растровые форматы, предназначенные исключительно для вывода на экран, имеют только экранное разрешение, то есть один пиксел в файле соответствует одному экранному пикселу. На печать они выводятся так же с экранным разрешением.
Растровые файлы, предназначенные для допечатной подготовки изданий имеют, подобно большинству векторных форматов, параметр Print Size - печатный размер. С ним связано понятие печатного разрешения, которое представляет из себя соотношение количества пикселов на один квадратный дюйм страницы (ppi, pixels per inch или dpi - dots per inch, - термин не совсем верный, но часто употребимый). Печатное разрешение может быть от 130 dpi (для газеты) до 300 (высококачественная печать), больше почти никогда не нужно.
Растровые форматы, так же отличаются друг от друга способностью нести дополнительную информацию: различные цветовые модели, вектора, Альфа-каналы или каналы плашковых (spot)-цветов, слои различных типов, интерлиньяж (черезстрочная подгрузка), анимация, возможности сжатия и другое.
8.1 Векторные форматы
Эти графические форматы служат для хранения изображений в виде совокупности геометрических примитивов - линий, дуг, прямоугольников, эллипсов и т. п. Графические форматы этого типа либо состоят из списка примитивов, либо содержат в себе набор инструкций, команд для построения примитивов. Не исключена и комбинация этих способов. В векторном виде хранят информацию системы автоматизированного проектирования, например, AutoCAD, программы, создающие иллюстративную графику, такие как CorelDraw. Векторные плоттеры обрабатывают изображения только в векторных форматах. Векторные форматы могут содержать также либо введенные в файл растровые объекты, либо ссылки на растровые файлы (технология OPI).
Векторные изображения встречаются в Интернете не очень часто, хотя сейчас довольно быстро распространяется формат Shockwave Flash фирмы Macromedia. Этот формат специально разрабатывался для использования в Интернете, он способен хранить гипертекстовые ссылки, графику, анимацию и т. п. Для просмотра Flash-графики нужен специальный программный модуль, который свободно распространяет фирма Macromedia.
Особенности некоторых векторных форматов приведены в Таблице 8. 1.
Таблица 8.1. Веторные форматы
Название формата
Программы, которые могут открывать файлы
WMF
Windows MetaFile
Большинство приложений WINDOWS
EPS
Encapsulated PostScript
Большинство настольных издательских систем и векторных программ, некоторые растровые программы
DXF
Drawing Interchange Format
Все программы САПР, многие векторные редакторы,некоторые настольные издательские системы
CGM
Computer Graphics Metafile
Большинство программ редактирования векторных рисунков, САПР и издательские системы
Краткое описание основных векторных форматов
WMF (Windows Metafile)
Векторный формат WMF использует графический язык Windows и, можно сказать, является ее родным форматом. Служит для передачи векторов через буфер обмена (Clipboard). Понимается практически всеми программами Windows, так или иначе связанными с векторной графикой. Однако, несмотря на кажущуюся простоту и универсальность, пользоваться форматом WMF стоит только в крайних случаях для передачи "голых" векторов. WMF искажает цвет, не может сохранять ряд параметров, которые могут быть присвоены объектам в различных векторных редакторах, не может содержать растровые объекты, не понимается очень многими программами на Макинтош. Из известных автору графических программ, найболее корректно создавать WMF-файлы может только CorelDRAW.
EPS (Encapsulated PostScript)
Формат Encapsulated PostScript можно назвать самым надежным и универсальным способом сохранения данных. Он использует упрощенную версию PostScript: не может содержать в одном файле более одной страницы, не сохраняет ряд установок для принтера. Как и в файлы печати PostScript, в EPS записывают конечный вариант работы, хотя такие программы, как Adobe Illustrator и Adobe Photoshop могут использовать его как рабочий. EPS предназначен для передачи векторов и растра в издательские системы, создается почти всеми программами, работающими с графикой. Использовать его имеет смысл только тогда, когда вывод осуществляется на PostScript-устройстве. EPS поддерживает все необходимые для печати цветовые модели, среди них такая, как Duotone, может записывать, так же, данные в RGB, обтравочный контур, информацию и треппинге и растрах, внедренные шрифты. В формате EPS сохраняют данные в буфере обмена (Clipboard) программы Adobe для обмена между собой.
Вместе с файлом можно сохранить эскиз (image header, preview). Это копия низкого разрешения в формате PICT, TIFF, JPEG или WMF, которая сохраняется вместе с файлом EPS и позволяет увидеть, что внутри, поскольку открыть файл на редакцию могут только Photoshop и Illustrator. Все остальные импортируют эскиз, подменяя его при печати на PostScript-принтере оригинальной информацией. На принтере, не поддерживающем PostScript, выводится на печать сам эскиз. Если вы работаете на Photoshop для Макинтош, сохраняйте эскизы в формате JPEG, остальные маковские программы сохраняют эскизы в формате PICT. Эти и JPEG-эскизы не могут использовать Windows-приложения. Если вы работаете на PC или не знаете, где будет использоваться файл, сохраняйте эскиз в формате TIFF (когда предоставляется выбор). CorelDRAW так же предлагает для эскиза векторный формат WMF, стоит очень осторожно пользоваться этим детищем Microsoft - до добра не доведет.
EPS имеет много разновидностей, что зависит от программы-создателя. Самые надежные EPS создают программы производства Adobe Systems: Photoshop, Illustrator, InDesign. Остальные графические редакторы открывать EPS не могут, мало того, создаваемые ими EPS-файлы иногда оказываются, мягко говоря, особенными. Среди самых проблемных Quark EPS, создаваемый функцией Save Page As EPS и FreeHand editable EPS, создаваемый функцией Save As. Не стоит особенно доверять Corel’овским EPS версии 6 и ниже и EPS из CorelXARA. У EPS-файлов из CorelDRAW 7 и выше сохраняется проблема добавления полей к Bounding Box (условный прямоугольник в PostScript, описывающий все объекты на странице). Прежде, чем экспортировать из CorelDRAW, CorelXARA и, в меньшей степени, из FreeHand'а EPS-файлы стоит конвертировать многие эффекты программ (полупрозрачные заливки, например) в растровые или простые векторные объекты. Толстые контуры (более 2 pt), возможно, имеет смысл конвертировать так же в объекты, когда программа дает такую возможность.
DXF (Drawing Exchange Format)
Формат DXF разработан фирмой AutoDesk в 1982 году для обмена чертежами и другими графическими документами в среде AutoCAD. Несмотря на возраст этого формата и его недостатки, DXF сейчас поддерживается многими программами как формат обмена данными.
Файл DXF состоит из пар:
<код группы>
<команда>
Код группы служит для пояснения того, что помешается в следующей строке. Например, последовательность пар:
0 (означает начало нового элемента) LINE
10 (далее будет значение первой координаты X)
12.354
20 (первая координата Y)
-34
11 (следующая координата X
23.08
21 (следующая координата Y)
5.7
определяет линию.
Приведем несколько кодов группы:
Код группы
Что означает
Начало элемента (LINE, CIRCLE, BLOCK, TABLE и т.п.)
1
Текстовые значения
2
Имя элемента
3-5
Другие текстовые значения или имена
6
Тип линии
7
Имя шрифта
8
Имя слоя
9
Имя переменной
10
Первая координата X
11-18
Другие координаты X
20
Первая координата Y
21-28
Другие координаты Y
30
Первая координата Z
31-37
Другие координаты Z
38
Уровень объекта
4048
Размеры
…
…
999
Комментарий
Общая структура файла DXF такая:
Заголовок (секция HEADER)
Таблицы (секция TABLES)
Примитивы (секция ENTITIES)
Блоки (секция BLOCKS)
Завершитель (EOF)
Каждая секция описывается так:
SECTION
……..(далее идут элементы секции)
ENDSEC
Главным недостатком формата DXF можно считать большой объем файлов. В среде системы AutoCAD для работы с документами используется более компактный формат - DWG, однако, он является внутренним форматом, его не понимают другие программы.
8.2 Растровые форматы
Растровые форматы служат для описания растровой графической информации. Каждый отдельный пиксел изображения представляет самого себя, вне зависимости от его расположения и роли, которую он играет в рисунке. Наиболее распространенные из них: TIFF, BMP, PCX, GIF, JPEG, PNG. Графические компоненты всемирной сети Internet в подавляющем большинстве представлены последними тремя форматами.
Разрешающая способность файлов таких форматов, как BMP, GIF, JPEG, зависит от видеосистемы компьютера. В старых компьютерах Macintosh приходилось 72 пиксела на дюйм экрана (экранная разрешающая способность), для Windows наиболее часто употребляется значение 96 пикселов на дюйм экрана. Однако теперь эти параметры стали довольно условными, так как почти все видеосистемы современных компьютеров позволяют изменять количество отображаемых на экране пикселов. Растровые файлы, предназначенные для подготовки изданий в печать, имеют, подобно большинству векторных форматов, параметр Print Size - печатный размер. Растровые форматы один от другого отличаются следующими свойствами: цветовыми моделями, методами сжатия, максимальным размером обеспечиваемого изображения, поддержкой слоев разных типов, наличием Alpha-канала или канала платковых (8роl)-цветов, возможностью осуществлять анимацию, наличием чересстрочного развертывания и т. п, Некоторые характеристики популярных растровых форматов приведены в таблице 8.2.
Таблица 8.2 Характеристики растровых форматов
Фор-
мат
Фирма-
разработчик
Максимальное
количество цветов
(бит на пиксел)
Максималь-
ный размер
изображения
Метод
сжатия
Запись
нескольких изображений
BMP
Microsoft
16'777'216 (24 бита)
65535x65535
RLE (используется редко)
-
GIF
CompuServe
256 (8 бит)
65535x65535
LZW
+
JPEG
Joint
Photographic
Experts
Group
16'777'216 (24 бита)
65535x65535
JPEG
-
PCX
Z-Soft
16'777'216
(24-бита)
65535x65535
RLE
-
PNG
W3C
281'474'976'710'656 (48 бит)
2147483647* 2147483647
Deflate
-
TGA
Truevision
4'294'967'296
(32 бита)
65535x65535
RLE
-
TIFF
Aldus Corporation
16'777'216
(24-бита)
Всего 4'294'967'295
LZW, RLE, JPEG и прочие
+
В файлах растровых форматов запоминаются:
• размер изображения - количество видеопикселей в рисунке по горизонтали и вертикали
• битовая глубина - число битов, используемых для хранения цвета одного видеопикселя
• данные, описывающие рисунок (цвет каждого видеопикселя рисунка), а также некоторая дополнительная информация.
В файлах растровой графики разных форматов эти характеристики хранятся различными способами.
Поскольку размер изображения хранится в виде отдельной записи, цвета всех видеопикселей рисунка запоминаются как один большой блок данных. Так как растровое представление изображения кораблика достаточно громоздко, рассмотрим как сохраняется в растровом файле простое чёрно-белое изображение (рис. 8.1).
Рис. 8.1. В растровом файле сохраняется информация о цвете каждого видеопикселя
На рис. 8.2 показан результат восстановления изображения по информации, сохранённой в растровом файле, представленном на рис. 8.1. В изображении, восстановленном по файлу, видеопиксели располагаются согласно размеру изображения; а именно, сначала - первая десятка видеопикселей, в следующей строке - вторая десятка и т. д., в десятой строке - последние десять видеопикселей.
Рис. 8.2. Растровый рисунок, восстановленный по файлу растровой графики
Изображения фотографического качества, полученные с помощью сканеров с высокой разрешающей способностью, часто занимают несколько мегабайт. Например, если размер изображения 1766 х 1528, а количество используемых цветов - 16777216, то объём растрового файла составляет около 8 Мб (информация о цвете видеопикселей в файле занимает 1766 х 1528 х 24/8/1024/1024 Мб).
Решением проблемы хранения растровых изображений является сжатие, т. е. уменьшение размера файла за счёт изменения способа организации данных. Никому пока не удалось даже приблизиться к созданию идеального алгоритма сжатия. Каждый алгоритм хорошо сжимает только данные вполне определённой структуры. Основные алгоритмы сжатия рассматриваются ниже.
Краткое описание основных растрвых форматов
BMP (Windows Device Independent Bitmap)
Еще один родной формат Windows. Он поддерживается всеми графическими редакторами, работающими под управлением этой операционной системы. Применяется для хранения растровых изображений, предназначенных для использования в Windows и, по сути, больше ни на что не пригоден. Способен хранить как индексированный (до 256 цветов), так и RGB-цвет (более 16 млн. оттенков). Возможно применение сжатия по принципу RLE, но делать это не рекомендуется, так как очень многие программы таких файлов (они могут иметь расширение .rle) не понимают. Существует разновидность формата ВМР для операционной системы OS/2.
Общая структура BMP-файла такая:
BITMAPFILEHEADER
BITMAPINFOHEADER
Палитра
Битовый массив растрового изображения
Заголовок файла BMP называется BITMAPFILEHEADER. В нем помешается общее описание файла. Заголовок имеет такие поля, приведенные в таблице 8.3.
Таблица 8.3. Поля заголовка формата BMP
Название поля
Длина
в байтах
Что означает
bfType
2
Содержит символы "ВМ". Это код формата.
bfSize
4
Общий размер файла в байтах
bfReservedl
2
Зарезервировано, пока что равняется 0
bfReserved2
2
Зарезервировано, пока что равняется 0
BfOffBits
4
Адрес битового массива в данном файле
Далее в файле идет еще один заголовок - BITMAPINFOHEADER, в котором хранится описание размеров растра и цветового формата пикселов (табл. 8.4).
Таблица 8.4.Описание формата BMP - продолжение
Название поля
Длина в байтах
Что означает
biSize
4
Размер заголовка, равняется 40
biWidth
4
Ширина растра в пикселах
biHeigbt
4
Высота растра в пикселах
biPlanes
2
Должно быть равно1
biBitCount
2
Бит на пиксел. Может быть 1,4,8,16, 24 или 32
biCompression
4
Компрессия:
0 - без компрессии
1 - компрессия RLE8 (8 бит на пиксел)
2 - омпрессия RLE4 (4 бита на пиксел)
3 - без компрессии, для 16, 32 бита на пиксел
biSizelmage
4
Размер в байтах битового массива растра
biXPelsPerMeter
4
Разрешающая способность по X в пикселах на метр
biYPelsPerMeter
4
Разрешающая способность по V в пикселах на метр
biClrUsed
4
Если равняется 0, то используется максимальное число цветов
biClrlmportant
4
Равняется 0, если biClrUsed = 0
Далее в файле помешается палитра в виде нескольких записей RGBQUAD. Каждая запись содержит четыре поля (табл. 8.5).
Таблица 8.5. Описание формата BMP - окончание
Название поля
Длина
в байтах
Что означает
rgbBlue
1
Цветовой компонент В, от 0 до 255
rgbGreen
1
Компонент G, от 0 до 255
rgbRed
1
Компонент R, от 0 до 255
rgbReserved
1
Не используется, равняется 0
Количество записей RGBQUAD равняется количеству используемых цветов, Палитра отсутствует, если число битов на пиксел равняется 24. Также палитра не нужна и для некоторых цветовых форматов 16 и 32 бита на пиксел.
После палитры (если она есть) в файле BMP записывается растр в виде битового (а точнее, байтового массива). В битовом массиве последовательно записываются байты строк растра. Количество байтов в строке должно быть кратным четырем, поэтому, если количество пикселов по горизонтали не соответствует такому условию, то по правую сторону в каждую строку дописывается определенное количество битов (выравнивание строк на границу двойного слова).
Можно сказать, что файлы BMP имеют наибольший размер по сравнению с файлами других растровых форматов, Растр здесь сохраняется почти в том же виде (если не учитывать выравнивания строк по длине, кратной 4 байтам), в котором он записывается в оперативную память для отображения и обработки. Обычно программы так и записывают файлы BMP, хотя в этом формате предусмотрено сжатие, (компрессия, compressing англ.) растра методом RLE. BMP-файлы с компрессией могут иметь расширение .DIB или .RLE.
Существует разновидность формата BMP для операционной системы OS/2.
GIF (CompuServe Graphics Interchange Format)
Независящий от аппаратного обеспечения формат GIF был разработан в 1987 году (GIF87a) фирмой CompuServe для передачи растровых изображений по сетям. В 1989-м формат был модифицирован (GIF89a), были добавлены поддержка прозрачности и анимации. GIF использует LZW-компрессию, что позволяет неплохо сжимать файлы, в которых много однородных заливок (логотипы, надписи, схемы).
GIF позволяет записывать изображение "через строчку" (Interlaced), благодаря чему, имея только часть файла, можно увидеть изображение целиком, но с меньшим разрешением. Это достигается за счет записи, а затем подгрузки, сначала 1, 5, 10 и т.д. строчек пикселов и растягивания данных между ними, вторым проходом следуют 2, 6, 11 строчки, разрешение изображения в интернетовском браузере увеличивается. Таким образом, задолго до окончания загрузки файла пользователь может понять, что внутри и решить, стоит ли ждать, когда файл поднимется весь. Черезстрочная запись незначительно увеличивает размер файла, но это, как правило, оправдывается приобретаемым свойством.
В GIF’e можно назначить один или более цветов прозрачными, они станут невидимыми в интернетовских браузерах и некоторых других программах. Прозрачность обеспечивается за счет дополнительного Alpha-канала, сохраняемого вместе с файлом. Кроме того файл GIF может содержать не одну, а несколько растровых картинок, которые браузеры могут подгружать одну за другой с указанной в файле частотой. Так достигается иллюзия движения (GIF-анимация).
Основное ограничение формата GIF состоит в том, что цветное изображение может быть записано только в режиме 256 цветов.
PNG (Portable Network Graphics)
PNG - разработанный относительно недавно формат для Сети, призванный заменить собой устаревший GIF. Использует сжатие без потерь Deflate, сходное с LZW (именно из-за патентования в 1995-м году алгоритма LZW возник PNG). Сжатые индексированные файлы PNG, как правило, меньше аналогичных GIF'ов, PNG RGB меньше соответствующего файла в формате TIFF.
Глубина цвета файлах PNG может быть любой, вплоть до 48 бит. Используется двумерный interlacing (не только строк, но и столбцов), который, так же, как и в GIF'е, несколько увеличивает размер файла. В отличие от GIF'а, где прозрачность как мед - либо есть, либо нет, PNG поддерживает также полупрозрачные пикселы за счет Альфа-канала с 256 градациями серого.
В файл формата PNG записывается информация о гамма-коррекции. Гамма представляет собой некое число, характеризующее зависимость яркости свечения экрана вашего монитора от напряжения на электродах кинескопа. Это число, считанное из файла, позволяет ввести поправку яркости при отображении. Нужно оно для того, чтобы картинка, созданная на Мас’е, выглядела одинаково и на Windows, и на различных UNIX'ах. Таким образом, эта особенность помогает реализации основной идеи WWW - одинакового отображения информации независимо от аппаратуры пользователя.
PNG поддерживается в Microsoft Internet Explorer начиная с версии 4 для Windows и с версии 4.5 на Макинтош. Netscape добавила поддержку PNG для своего браузера в версиях, начиная с 4.0.4 для обеих платформ. Тем не менее до сих пор не реализована поддержка таких важных функций формата, как плавно переходящая прозрачность и гамма-коррекция.
TIFF (Tagged Image File Format)
Аппаратно независимый формат TIFF появился как внутренний формат программы Aldus PhotoStyler. Его модульная архитектура оказалась настолько удачной, что, успешно пережив смерть родной программы, TIFF и в наши дни продолжает совершенствоваться и развиваться. Сегодня он является одним из самых распространенных и надежных, его поддерживают практически все программы на РС и Макинтош так или иначе связанные с графикой. Как правило, TIFF является лучшим выбором при импорте растровой графики в векторные программы и издательские системы. Ему доступен весь диапазон цветовых моделей от монохромной до RGB, CMYK и дополнительных плашковых цветов. TIFF может содержать обтравочные контуры, Альфа-каналы, слои, другие дополнительные данные.
Исключение, в какой-то мере, составляет FreeHand. Иногда TIFF-файлы в нем могут произвольно менять свое местоположение при создании PostScript-файла или прямо в документе при открытии. Чаще TIFF’ы "прыгают", находясь в обтравочном контуре. С FreeHand’ом, все же, предпочтительнее использовать EPS.
TIFF может сохраняться в двух порядках записи: Macintosh и РС. Это связано с тем, что процессоры Motorola читают и записывают числа слева направо, а процессоры Intel - наоборот. Современные программы могут без проблем использовать оба варианта формата.
В формате TIFF есть возможность сохранения с применением нескольких видов сжатия: JPEG, ZIP, но, как правило используется только LZW-компрессия. Ряд старых программ (например, QuarkXPress 3.x, Adobe Streamline, многие программы-распознаватели текста) не умеют читать сжатые файлы TIFF, однако, если вы пользуетесь новым программным обеспечением, нет причины не использовать компрессию.
PCX
Формат PCX предложен компанией Z-Soft в программе Paintbrush. Может быть использован на платформе Macintosh, хотя был написан для PC. Этот формат применялся многими компаниями, которые специализируются в области программного обеспечения. Он удобен для хранения изображений типа деловой графики (чертежи, диаграммы, схемы и т. п.). Поддерживаются цветовые форматы 1,4,8 и 24 бита на пиксел. К недостаткам PCX следует отнести неприспособленность к записи фотографий, а также наличие многочисленных версий.
8.3 Методы сжатия графических данных
При сжатии методом RLE (Run - Length Encoding) последовательность повторяющихся величин (в нашем случае - набор бит для представления видеопикселя) заменяется парой - повторяющейся величиной и числом её повторений.
RLE - один из самых старых и простых алгоритмов компрессии графики. Основная его идея такова: если в строках растра встречаются цепочки одинаковых пикселов, например
2 2 2 2 2 2 2 135 11 11 11 11,
их можно заменить цепочкой из пары чисел - <счетчик повторений, значение>. Для отдельных пикселов, не входящих в цепочки, счетчик не нужен:
<7 2> 135 <4 11>.
Чем больше цепочек в растре и чем они длиннее, тем больше эффект сжатия.
Как программа может прочитать код RLE? Нужно как-то различать счетчик и значение. Для этого необходимо специальное кодирование. В версии RLE для PCX признаком счетчика служат единицы в двух левых битах (11xxxxxx) текущего байта кодированного мае сива. Соответственно 6 бит, которые остались, означают количество повторов (от 1 до 63) в цепочке следующего за счетчиком значения (второй байт). Таким образом, строка из 63 повторяемых байтов преобразуется в два байта, то есть для таких цепочек достигается сжатие почти в 32 раза.
Метод сжатия RLE включается в некоторые графические форматы, например, в формат PCX.
Программа сжатия файла может сначала записывать количество видеопикселей, а затем их цвет или наоборот. Поэтому возможна такая ситуация, когда программа, считывающая файл, ожидает появления данных в ином порядке, чем программа, сохраняющая этот файл на диске. Если при попытке открыть файл, сжатый методом RLE, появляется сообщение об ошибке или полностью искажённое изображение, нужно считать этот файл с помощью другой программы или преобразовать его в иной формат.
Сжатие методом RLE наиболее эффективно для изображений, которые содержат большие области однотонной закраски, и наименее эффективно - для отсканированных фотографий, так как в них нет длинных последовательностей одинаковых видеопикселей .
Метод сжатия LZW основан на поиске повторяющихся узоров в изображении.
В формате GIF для сжатия растров используется алгоритм LZW. Алгоритм LZW (Lempel-Ziv-Welch) разработан в 1984 г. Уелшем (Terry A. Welch). Этот алгоритм принадлежит к классу LZ-алгоритмов, зачинателями которых были Зив и Лемпель (Jacob Ziv, Abraham Lempel) в 1977 г.
В алгоритмах класса LZ используется словарный метод сжатия. Создается словарь, содержащий повторяемые последовательности символов (фразы), которые находятся в исходном кодируемом массиве символов. Каждая фраза получает код - порядковый номер (индекс) в словаре. Кодирование массива символов выполняется заменой фраз соответствующими индексами этих фраз из словаря.
Приведем пример кодирования. Строка байтовых данных
241 16 72 10 10 10 10 10 241 16 72 13 5
преобразуется в
241 16 72 10 259 259 256 72 13 5,
В таблице 8.6 приведено содержимое словаря для этой строки.
Таблица 8.6 Кодирование методом LZW
Код (индекс)
Содержимое (S + с)
Компактная запись
код S
с
1
1
1
…
…
…
…
255
255
255
256
241 16
241
16
257
16 72
16
72
258
72 10
72
10
259
1010
10
10
260
10 1010
259
10
261
10 10 241
259
241
262
241 16 72
256
72
263
72 13
72
13
264
135
13
5
Сильно насыщенные узорами рисунки могут сжиматься до 0,1 их первоначального размера. Метод сжатия LZW применяется для файлов форматов TIFF и GIF; при этом данные формата GIF сжимаются всегда, а в случае формата TIFF право выбора возможности сжатия предоставляется пользователю. Существуют варианты формата TIFF, которые используют другие методы сжатия. Из-за различных схем сжатия некоторые версии формата TIFF могут оказаться несовместимыми друг с другом. Это означает, что возможна ситуация, когда файл в формате TIFF не может быть прочитан в некоторой графической программе, хотя она должна «понимать» этот формат. Другими словами, не все форматы TIFF одинаковы. Но, несмотря на эту проблему, TIFF является одним из самых популярных растровых форматов в настоящее время.
Хорошо сжимаемое изображение
Плохо сжимаемое изображение
Рис. 8.3. Сжатие методом RLE
Метод сжатия JPEG обеспечивает высокий коэффициент сжатия для рисунков фотографического качества. Формат файла JPEG, использующий этот метод сжатия, разработан объединенной группой экспертов по фотографии (Joint Photographic Experts Group ). Сжатие по методу JPEG сильно уменьшает размер файла с растровым рисунком (возможен коэффициент сжатия 100:1). Высокий коэффициент сжатия достигается за счет сжатия с потерями, при котором в результирующем файле теряется часть исходной информации. Метод JPEG использует тот факт, что человеческий глаз очень чувствителен к изменению яркости, но изменения цвета он замечает хуже. Поэтому при сжатии этим методом запоминается больше информации о разнице между яркостями видеопикселей и меньше - о разнице между их цветами. Так как вероятность заметить минимальные различия в цвете соседних пикселей мала, изображение после восстановления выглядит почти неизменным. Пользователю предоставляется возможность контролировать уровень потерь, указывая степень сжатия. Благодаря этому, можно выбрать наиболее подходящий режим обработки каждого изображения: возможность задания коэффициента сжатия позволяет сделать выбор между качеством изображения и экономией памяти. Если сохраняемое изображение - фотография, предназначенная для высокохудожественного издания , то ни о каких потерях не может быть и речи, так как рисунок должен быть воспроизведён как можно точнее. Если же изображение - фотография, которая будет размещена на поздравительной открытке, то потеря части исходной информации не имеет большого значения. Эксперимент поможет определить наиболее допустимый уровень потерь для каждого изображения.
Теперь рассмотрим метод кодирования изображения, принятый в JPEG, подробнее. Кодирование осуществляется за несколько шагов.
Шаг 1. 24-битное изображение из RGB преобразуется в цветовую модель YCbCr.
Зачем это нужно? Еще со времен зарождения цветного телевидения известно, что канал яркости Y (luminance) содержит значительно больший объем информации сравнительно с двумя цветовыми каналами Сb и Сr (chrominance blue and chrominance red), поэтому в телевизионных системах каналу Y предоставляется больший диапазон частот. В JPEG наибольшему сжатию подвергаются компоненты Сb и Сr.
Шаг 2. Изображение разделяется на блоки размером 8x8 пикселов, и каждый такой блок подвергается двумерному дискретному косинусному преобразованию (ДКП) - Discrete Cosine Transform (DCT).
Преобразование выполняется в отдельности для компонентов Сb и Сr, причем для Y обрабатывается блок пикселов размерностью 8x8, а для Сb и Сr делается прореживание - берется каждый второй пиксел. Что дает ДКП? Оно преобразует пространственное распределение в частотное (подобно преобразованию Фурье). В результате получаем блоки также размерами 8*8, однако, здесь является частотным коэффициентом спектра, причем коэффициенты для нижних частот располагаются в левом верхнем углу, а для высоких частот - в правом нижнем углу. Поскольку основная энергия в спектре - у нижних частот, то максимальное числовое значение будет в левом верхнем углу.
Преобразование ДКП само по себе не приводит к потерям информации, однако, если элементы спектра записываются не как дробные, а округляются до целого, то это уже даст некоторую ошибку при декодировании.
Шаг 3. Квантование. Каждый элемент блока 8*8 после ДКП будет делиться на соответствующий элемент матрицы квантования
После деления выполняется округление до ближайшего целого числа.
В стандарте JPEG имеются рекомендованные таблицы квантования отдельно для Y, Сb и Сr.
Значения коэффициентов квантования меньше в левой верхней части таблиц по сравнению с коэффициентами в правой нижней части. Фактически таблица квантования определяет цифровой фильтр, который ослабляет верхние частоты.
Указанные в стандарте таблицы не являются обязательными - любая программа файлов JPEG может использовать собственные таблицы (понятно, что тогда эти таблицы должны быть записаны в файл, иначе невозможно декодирование).
Квантование - это основной фактор сжатия в соответствии с методом JPEG. В результате деления и округления большинство элементов блока 8*8 будет равняться нулю, что способствует компактности записи блока. Чем больше значение таблицы квантования, тем вероятнее преобразование результата деления в нуль. Однако это приводит к потере информации - чем больше значащих элементов преобразуется в нуль, тем меньше результат декодирования будет похож на исходное изображение.
Шаг 4. Элементы блока 8x8 записываются в виде одномерного вектора байтов. Элементы ты выбираются "зигзагом", как показано на рис. 8.4.
Рис.8.4. Формирование одномерного вектора
Шаг 5. Кодирование вектора. Сначала вектор кодируется методом RLE. Получает код в виде таких пар: <счетчик, значение>. Здесь счетчик задает количество нулей, которые записываются перед байтом значения. Потом выполняется кодирование пар методом Хаффмана. В файл JPEG, кроме сжатых кодов, записывается также таблица Хаффмана для обеспечения дальнейшего декодирования.
Метод сжатия Хаффмана, разработанный в 1952 году, используется как составная часть в ряде схем сжатия, таких как LZ. В соответствии с этим методом сначала для каждого символа вычисляется вероятность его появления. Потом символу приписывается битовый код, длина которого зависит от этой вероятности. Символы, которые чаще встречаются, получают более короткий битовый код, а символы, которые встречаются реже - длинный код.
Существуют подформаты JPEG. Baseline Optimized - файлы несколько лучше сжимаются, но не читаются некоторыми программами. JPEG Baseline Optimized разработан специально для Интернета, все основные браузеры его поддерживают. Progressive JPEG так же разработан специально для Сети, его файлы меньше стандартных, но чуть больше Baseline Optimized. Главная особенность Progressive JPEG в поддержке аналога черезстрочного вывода.
Из сказанного можно сделать следующие выводы. JPEG’ом лучше сжимаются растровые картинки фотографического качества, чем логотипы или схемы - в них больше полутоновых переходов, среди однотонных заливок же появляются нежелательные помехи. Лучше сжимаются и с меньшими потерями большие изображения для web или с высокой печатной резолюцией (200-300 и более dpi), чем с низкой (72-150 dpi), т.к. в каждом квадрате 8х8 пикселов переходы получаются более мягкие, за счет того, что их (квадратов) в таких файлах больше. Нежелательно сохранять с JPEG-сжатием любые изображения, где важны все нюансы цветопередачи (репродукции), так как во время сжатия происходит отбрасывание цветовой информации. В JPEG’е следует сохранять только конечный вариант работы, потому что каждое пересохранение приводит ко все новым потерям (отбрасыванию) данных и превращении исходного изображения с кашу.
Обобщенная информация о методах сжатия, используемых в растровых форматах файлов, приведена в таблице 8.7.
Таблица 8.7. Растровые форматы графических файлов
Название формата
Программы, которые могут открывать файлы
Метод сжатия
BMP
Windows Device
Independent Bitmap
Все программы WINDOWS, которые используют растровую графику
RLE для 16- и 256- цветных изображений (по желанию)
PCX
Z - Soft PaintBrush
Почти все графические приложения для PC
RLE (всегда)
GIF
Graphic Interchange Format
Почти все растровые редакторы; большинство издательских пакетов; векторные редакторы, поддерживающие растровые объекты
LZW (всегда)
TIFF
Tagged Image File Format
Большинство растровых редакторов и настольных издательских систем; векторные редакторы, поддерживающие растровые объекты
LZW (по желанию) и др.
TGA
TrueVision Targa
Программы редактирования растровой графики
RLE (по желанию)
IMG
Digital Research GEM Bitmap
Некоторые настольные издательские системы и редакторы изображений WINDOWS
RLE (всегда)
JPEG
Joint Photographic Experts Group
Последние версии программ редактирования растровой графики; векторные редакторы, поддерживающие растровые объекты
JPEG (можно выбрать степень сжатия)
8.4. 3D-форматы
В настоящее время более 30 компаний-участниц 3DIF (в частности, Intel, Adobe, Microsoft) ведут совместную разработку стандартного промышленного формата хранения 3D графики - U3D (Universal 3D Format). Первая версия формата появилась в 2004 году.
Приведем краткую характеристику некоторых популярных форматов, которые содержат в себе описание трехмерных объектов.
Формат VRML
VRML (язык моделирования виртуальной реальности - Virtual Reality Modeling Language) - графический формат, который базируется на подмножестве Open Inventor фирмы Silicon Graphics. Он предназначен для описания трехмерных изображений и обмена ими в сети World Wide Web.
Язык VRML, разработанный Gavin Bell, Rick Carey, Mark Pesce и Tony Parisi, стал первым языком трехмерного моделирования для Web. В 1995 была создана группа VAG (VRML Authoring Group) и появилась окончательная редакция спецификации VRML 1.0. В 1997 году технологию поддержали в своих браузерах как Microsoft, так и Netscape. ISO одобрила вторую версию спецификации как международный стандарт VRML 97 (или ISO/IEC 14772-1).
VRML-файл имеет расширение .WRL. Он использует формат ASCII и представляет собой обычный текстовый файл со списком объектов, которые названы узлами (nodes). К узлам VRML 2.0, в частности, относятся ЗD-геометрия, свойства света, который создается с помощью VRML, файлы изображений формата JPEG, видеофайлы формата MPEG, звуковые файлы формата MIDI, текстовые документы формата HTML.
Перечень некоторых узлов VRML 2.0 приведен в таблице 8.8.
Таблица 8.8 Перечень узлов VRML
Узлы VRML 2.0
Состав
Grouping Nodes - группируемые узлы (узлы, которые могут иметь в себе несколько узлов)
Anchor, Billboard, Collision, Transform
Special Groups - узлы специальной группы
Inline, LOD, Switch
Common Nodes - общие узлы (узлы, которые могут входить в группируемые узлы)
AudioClip, DirectionalLight, PointLight, Script, Shape, Sound, SpotLighl, Worldlnfo
Sensors - узлы сенсоров
CylinderSensor, PlaneSensor, Proximity-Sensor, SphereSensor, TimeSensor, Touch-Sensor, VisibilitySensor
Geometry - узлы геометрии
Box, Cone, Cylinder, Extrusion, ElevationGrid, IndexedFaceSet, IndexedLineSet, PointSet, Sphere. Text
Формат 3DS
Это один из наиболее распространенных форматов для ЗD-графики. Файлы формата 3DS были стандартными файлами программы 3D Studio, еще когда она работала под DOS.
В 3D Studio MAX появился другой формат сохранения - МАХ, но для разработки игр этотновый формат оказался неудобным. Вместе с тем формат 3DS оказался пригодным для этойцели: кроме самих трехмерных моделей (которые представляют собой каркасные сетки), онхранит их положение в мировых координатах, координаты текстур, цвета вершин, ключевые кадры анимации, данные о свойствах материалов и атмосферные эффекты. С помощью этого формата можно хранить модели и целые карты (только скриптовые команды приходится хранить в отдельности).
Подчеркнем, что при сохранении 3DS-файлов можно указать,
чтобы координаты текстур хранились вместе с моделью. После этой операции наложение текстуры происходит качественнее, хотя все же могут возникать швы на стыках разных текстур. Формат 3DS применим для любых видов игровых моделей. Он широко используется для обмена данными между системами трехмерного моделирования.
Форматы MDL, MD2 и MD3
Эти форматы предназначены для хранения анимационных моделей, в особенности анимации людей. Все три формата открыты, ими может воспользоваться любой желающий. В них хранятся модели и данные про "псевдоскелетную" анимацию (следует заметить, что в MD3 не поддерживается хранение сеток и текстуры в одном файле). Анимации моделей сохраняются в этих форматах в трехмерных кадрах, причем каждому кадру соответствует своя полноценная модель. Размер файлов при этом возрастает пропорционально количеству кадров анимации и может оказаться великоватым для серьезных игр, впрочем, форматы MDL, MD2 и MD3 можно довольно сильно сжать.
Формат SMD
В файлах формата SMD представлется настоящая скелетная анимация. Это приводит к уменьшению размеров файлов и улучшению качества анимации. Система хранения файлов имеет некоторые особенности. Во-первых, необходим ключевой SMD-файл. В нем хранится сама модель без анимации. Его необходимо загружать в первую очередь. Во-вторых, необходимы анимационные данные о модели, которые сохраняются в других файлах (один файл на одну анимацию). Этот формат обеспечивает высокое качество анимации.
Формат X
Microsoft DirectX .X формат файлов - это "родной" формат трехмерных моделей для DirectX. Он использовался только Direct3D:RM, но и Dirеct3D:IM можно было "принудить" работать с этим форматом. Direct3D:Retained Mode (Direct3D:RM) - это набор API, созданный для более легкого программирования трехмерной графики (сравнительно с более низкоуровневым Direct3D:Immediate Mode (Direct3D:IM), на котором основан сам Direct3D:RM). Direct3D:RM имеет набор инструментов для загрузки и манипулирования форматом трехмерных моделей X. С появлением DirectX 8 работать стало значительно проще. Раньше Direct3D был связан с DirectDraw, но, начиная с Direct 8, развитие этого компонента остановлено, и DirectfD стал полностью самодостаточным средством вывода графики в DirectX. Теперь он называется DirectXGraphics. Однако в составе SDK (Software Development Kit) есть файл ddraw.h, чтобы пользователи имели возможность и дальше работать с DirectDraw. В DirectX SDK файлы этого формата имеют расширение .X.
Формат X - структурно - и контекстно-независимый формат. Он управляется шаблоном и может использоваться любой клиентской программой. С его помощью описываются геометрические данные, иерархия фреймов, анимация.
Рассмотрим вкратце особенности формата Х-файла, используя материалы.
Ниже показано, какие слова зарезервированы и не должны использоваться.
ARRAY
DWORD
UCHAR
BINARY
FLOAT
ULONGLONG
BINARY.RESOURCE
SDWORD
UNICODE
CHAR
STRING
WORD
CSTRING
SWORD
DOUBLE
TEMPLATE
В начале потока данных обязательно должен быть заголовок, имеющий переменную длину.
Значения заключены в кавычки, чтобы обратить внимание на то, что значения размером в 4 байта должны иметь 4 символа
Пример заголовка:
Xof 03txt 0064
При создании файлов как в формате 3DS, так и в формате X, вводится только имя текстуры. Сами текстуры (преимущественно в формате BMP) хранят в виде отдельных файлов на диске. Удобство формата X состоит, в частности, в том, что, вы можете рисовать свои модели в Kinetix 3D Studio МАХ, экспортировать их в формат 3DS и получать модели в формате X с помощью утилиты 3dsconv, которая осуществляет конвертирование модели из популярного формата 3DS в формат X.
8.5. Форматы мультимедиа
Вследствие особенностей видеоинформации, сжатие без потерь в цифровой видеозаписи само по себе почти не применяется. Использование, например, методов, подобных тем, что используются в архиваторах типа WinZIP, позволяет уменьшить размер файла не больше, чем на 2/3, хотя, конечно, при этом не происходит ухудшение качества изображения.
Сжатие с потерей качества является основным методом уменьшения размера видеофайлов. Большинство используемых методов основано на определении и удалении из файла той части информации, которую зритель при просмотре фильма, скорее всего, не заметит, Основными форматами цифрового видео, которые используют сжатие с потерями, на сегодняшний день являются Apple QuickTime, AVI, Intel Indeo, MJPEG, MPEG-1, MPEG-2, и MPEG-4.
Сжатие становится более эффективным при одновременной обработке данных нескольких кадров.
Один из приемов, который используется при работе с видеоданными, состоит в вычислении последовательных различий, а именно - в простом вычитании данных следующего кадра из данных предшествующего и сжатии полученных разностей. Как правило, кадры, идущие друг за другом, во многом похожи, поэтому большие фрагменты изображений будут давать нулевую разность. Однако в ряде случаев этот прием оказывается неэффективным, например, при медленном панорамировании сцены с множеством мелких объектов.
Более эффективным приемом является предсказание движения, а именно - программа кодирования ищет блоки пикселов, которые перемещаются, и кодирует только координаты этого блока и его перемещение. Естественно, сравнительно с декодированием процесс самого кодирования (сжатия) при предсказании движения значительно сложнее реализовать. В результате некоторые наилучшие алгоритмы сжатия видеоданных асимметричны, то есть процесс сжатия требует намного больше усилий (времени), чем процесс декодирования. Следует отметить, что, в данном случае, асимметричность алгоритмов не является важным недостатком из-за того, что сжатие видеоданных осуществляется, как правило, один раз в конце работы над ними. Главное, чтобы при просмотре видеоданных обеспечивалась достаточная скорость декодирования.
Очевидно, для первого кадра фильма нельзя использовать метод вычисления последовательных разностей. Следовательно, всегда будет существовать, по крайней мере, один опорный кадр (I-кадр), не требующий знания предшествующего кадра для декодирования. На самом деле такой опорный кадр не один. По всей длине фильма специально размещены опорные кадры. Некоторые из них - естественные опорные кадры, которые возникают, например, при изменении сцены. Наличие многих опорных кадров полезно в ряде случаев: при потере некоторых кадров; при просмотре фильма не с начала; при необходимости в целях синхронизации пропускать несколько нераспакованных кадров (на медленных процессорах).
Рассмотрим некоторые форматы мультимедиа.
• Формат АVI (Audio Video Interleaved), являющийся специальным форматом представления видеофайлов в операционных системах семейства Windows и поэтому широко использующийся в персональных компьютерах. Этот формат создает отдельные моментальные фотографии, фреймы, и потом связывает их в единое целое, причем аудиосигнал может быть частью фреймов. В отличие от других форматов, формат AVI служит как бы оболочкой для программ сжатия видеоданных. Видов сжатия, которые подходят для файлов AV1, очень много. Для создания файла AVI необходимо Использовать соответствующее оборудование, причем возможно использование традиционной аналоговой видеокамеры с последующей оцифровкой аналогового видеосигнала.
• Формат видеофайлов MPEG (Motion Picture Experts Group), сжимающий видеофайлы по алгоритмам, удаляющим избыточную информацию, в частности использующим вычисление последовательных различий и предсказание движения. Так, например, если на протяжении нескольких секунд демонстрируется один и тот же неподвижный объект, то в MPEG файле за это время будут сохранены только один фрейм и информация о том, на протяжении какого времени в этом фрейме не происходили изменения. Именно поэтому размеры MPEG файлов меньше в среднем в три раза, чем размеры других видеофайлов. Обычно для их создания и воспроизведения нужно особое аппаратное и программное обеспечение.
• Формат QuickTime, разработанный фирмой Apple для операционных систем семейств Macintosh и Windows. QuickTime - расширение программного обеспечения System Macintosh. Программы, поддерживающие QuickTime, отображают анимационные или видеоряды точно синхронизированными с высококачественным цифровым звуком. В операционной системе Windows видеофайлы формата QuickTime имеют расширение .MOV. С 1993 по 1998 г. этот формат был доминирующим. Его версия с номером 4.1 позволяет передавать данные в потоковом режиме. Это значит, что нет необходимости целиком загружать файл, чтобы начать просмотр видеофильма. Однако с появлением спецификаций MPEG данный формат постепенно теряет популярность. Одна из проблем состоит в закрытости стандарта QuickTime. Способы, с помощью которых кодируется видео, Apple держит в секрете.
Формат AVI
AVI (Audio Video Interleaved - чередование аудио и видео) - формат файлов, введенный фирмой Microsoft для обеспечения работы с видеоизображениями в среде Windows. В этом формате секторы видеоданных чередуются с секторами звуковых данных таким образом, чтобы видеоплеер мог поддерживать минимальную буферизацию данных.
AVI является специальным случаем формата RIFF (Resource Interchange File Format). RIFF - универсальный формат для обмена данными мультимедиа, совместно разработанный Microsoft и IBM. Фактически, R1FF - это аналог формата IFF, созданного Electronic Arts в 1984 году.
По структуре файл AVI-формата представляет собой вариант файла формата RIFF. Файл этого формата состоит из блоков (chunks), которые, в свою очередь, могут содержать другие вложенные блоки. Если самый "внешний" блок содержит идентификатор формата "avi", это означает, что мы имеем дело с avi-файлом.
В AVI-файле есть по крайней мере два подблока: подблок заголовка и подблок данных.
Подблок заголовка содержит общую информацию о фильме: разрешающую способность изображения, частоту кадров, аудиоформат, длину файла (на запись отведено 32 байта) и т. п. Разрядность последнего параметра означает, что максимально возможный размер файла - около 4 Гб. Как правило, реальная длина AVl-файла стандартного формата, с которым могут работать программы монтажа, не превышает 2Гб. Этого было достаточно, поскольку файловая система FAT 16 не допускала существования логического диска с размером, большим 2Гб, а размер файла, естественно, не может превышать размер логического диска, С появлением FAT 32 верхняя граница размера раздела значительно отодвинулась.
Подблок данных представляет собой последовательность записей, каждая из которой состоит из одного кадра и соответствующего звукового сопровождения. Если для видео распределение на кадры - естественно, то звук - это непрерывный поток, который искусственно распределяется на фрагменты, соотносящиеся с кадрами. Вследствие этого, если звук пишется через звуковую карту, - точная синхронизация изображения и звука отсутствует, и звук может не совпадать с изображением. Если для записи как видео, так и звука используется устройство видеоввода - с синхронизацией обычно проблем нет.
В формате AVI поддерживается ряд палитр:
• 8-битная (256 градаций серого);
• 9-битная YUV (сигнал яркости и два сигнала разности цветов);
• 12-битная YUV, 4:1:1 (4:1:1 - дискретизация сигнала, который вычисляется для конкретного канала как произведение базовой частоты цифрового кодирования на соответствующий коэффициент: 4 - для канала Y и 1 - для каждого из двух каналов разности цветов);
• 16-битная YUY2,4:2:2;
• 8-битная цветная (RGB);
• 15-битная RGB (16-битная, где старший бит - 0, 5 битов отведено для красного, 5 - для зеленого и 5 - для синего цветов);
• 16-битная RGB (5 бит - для красного, 6 - для зеленого и 5 -для синего)
• 24-битная RGB (стандартная RGB палитра; для кодирования каждого из трех цветов отводится 1 байт);
• 32-битная RGB (по информативности полностью соответствует 24-битной: старший байт устанавливается в 0). 32-битное представление цвета не увеличивает точности цветопередачи.
Аудио - и видеопоследовательности в AVI-файле не содержат временных меток и не создают индексы. Кадры размещены в естественном порядке соответственно их последовательному появлению во времени. Программа-видеоплеер должна отображать кадры видео- последовательности и аудиопотока в соответствии с частотой кадров и частотой дискретизации, указанных в заголовке файла.
Запись в формате AVI может осуществляться без или со сжатием. В отличие от других форматов, AVI служит как бы оболочкой для множества программ сжатия видеоданных. Следует отметить, что иногда это отличие формата из достоинства может превратиться в недостаток. Приведем пример. Допустим, при создании игры для сжатия анимации был использован определенный кодек. Но этот же кодек должен обязательно быть на компьютере пользователя. Конечно, можно распространять кодек с игрой, но тут могут появиться проблемы с установкой и настройкой.
Обычно в формате AVI используется Motion JPEG. Также поддерживаются: Microsoft RLE (только 8-битный цвет), Microsoft Video 1 (только 8- и 16-битный цвет), Indco, Cinepak Editable MPEG (использует только кадры). В последнее время все популярнее при записи в формат AVI становится компрессия по стандарту DVD.
Данные в формате AVI можно экспортировать в разные форматы.
Несмотря на значительное распространение форматов MPEG, формат AVI остается популярным для аудио/видео данных на PC. Значительный процент существующих систем захвата кадров и нелинейного монтажа имеют дело с форматом AVI.
В связи с большим количеством ограничений базового стандарта AVI, консорциумом Open Digital Media было разработано расширение формата AVI - OpenDML AVI - с учетом особенностей, необходимых для профессионального производства видео. Это расширение включает поддержку полей (не только кадров), размеры файлов могут быть больше 1 Гб, есть временной код и много Других особенностей. Microsoft включила поддержку OpenDML AVI в DirectShow 5.1 (ActiveMovie 5.1). Это расширение также используется в разных профессиональных программах для производства видео на PC, в частности DigiSuite (Matrox).
Формат QuickTime
Разработанная фирмой Apple система QuickTime состоит из трех частей:
• формат файлов QuickTime Movie file,
• QuickTime Media Abstraction Layer.
• QuickTime media services.
Media Abstraction Layer - это уровень, который определяет способы взаимодействия между программами, аппаратурой компьютера и набором функций QuickTime, то есть он позволяет разработчикам программного и аппаратного обеспечения получить доступ к возможностям QuickTime, в частности, определяет, как аппаратура компьютера может ускорять работу какой-то отдельной части системы QuickTime и т. п.
QuickTime media services - библиотека встроенных медиа-функций QuickTime, которая обеспечивает программный интерфейс.
Фундамент всей системы - формат файлов QuickTime, называемый QuickTime Movie. Формат может содержать практически любые медиа-данные - видео- и аудиодорожки, последовательности MIDI-сообшений (стандартные MIDI-файлы SMF), текст для титров, графику, анимацию и т. п.
Структура movie определяет номер и тип каждой дорожки, и предоставляет информацию о фильме в целом. Дорожки задают продолжительность, последовательность и происхождение данных. И, наконец, носители содержат реальные данные.
Формат QuickTime Movie позволяет хранить всю возможную информацию не только разного типа медиа-дорожек (разного типа аудио- и видеоинформацию), но и информацию о медиа-композиции (наборе медиа-дорожек разного типа) в целом. Это могут быть, например, описания пространственного расположения источников звука на каждой дорожке (панорама) и т. д.
Кроме того, QuickTime Movie - это формат на базе объектов. Он дает пользователям возможность манипулировать данными, например, извлечь из мультимедиа-файла содержимое дорожек разного типа (видео, звук и т.д.) для отдельной обработки, а потом вставить его назад. Можно, например, увеличить или сжать видеовставку (video insert) либо скорректировать ее положения на своем экране. Можно или заменить содержимое дорожек разного типа на другое, или прибавить к существующим дорожкам новую.
QuickTime предоставляет возможность применять практически любой тип видеокомпрессии с помощью Image Compression Manager.
Формат QuickTime может использоваться в разных средах передачи данных, от обычных телефонных модемов со скоростью 14.4 бит/с до спутниковой трансляции или волоконно- оптических сетей с высокой (до 160 Мбит/с) пропускной способностью.
Файлы QuickTime Movie могут синхронизироваться по встроенному таймеру QuickTime, по таймеру других прикладных программ и даже по коду SMPTE аналоговой видеоленты. Файлы версии QuickTime 3 могут иметь несколько дорожек time-code. Эти дорожки могут содержать информацию об источнике отсчета синхронизации, форматы и нумерацию отдельных кадров. Данные хранятся на этих дорожках во внутреннем формате time-code QuickTime, совместимом со всеми современными стандартами, включая тайм-коды SMPTE, PAL, SECAM, NTSC. Один MOVIE-файл может содержать одновременно дорожки в любом из этих форматов. QuickTime, чтобы синхронизировать воспроизведение, сам определит, какие кадры при этом должны "выпасть" (при использовании тайм-кода "с выпадениями").
Файлы QuickTime состоят из серии вложенных атомов. Каждый атом содержит четырех байтовый идентификатор, задающий длину этого атома и следующий четырехбайтовый идентификатор. Программа чтения такого формата просто пропускает нераспознанные атомы. В файле с одной ветвью информация (видеофрагменты, звуковые данные) объединена в один атом mdat. Atom moov содержит в себе атом заголовка фильма mvhd и набор атомов trak, которые описывают каждую дорожку. Эти атомы trak, в свою очередь, содержат атомы mdia, которые задают формат и размещение данных носителя в атоме mdat. Кроме того, атом trak содержит в себе атом заголовка дорожки tkhd, определяющий вид данных на этой дорожке, и атом списка редактирования edts, задающий порядок воспроизведения разных частей дорожки.
QuickTime не требует сохранять файлы только в своем формате, он позволяет открывать файлы других форматов. Формат файлов QuickTime является расширяемым.
Начиная с третьей версии, весь QuickTime для MacOS перенесен на Windows-платформу - стало возможным создавать QuickTime-файлы в системе Windows. С помощью Windows-вере и и Movie Player'a можно прибавлять звуковые, текстовые и MIDI-дорожки к существующему AVI-файлу и проигрывать его.
Особенностью файлов QuickTime, создаваемых на платформе Macintosh, является то, что они содержат в себе два раздела: данные - data fork и ресурсы - resource fork. Чтобы файлы, созданные на платформе MacOS, открывались на платформе Windows, надо сохранять файл, предварительно выбрав опцию "Make movie self-contained" (тогда раздел resource fork не содержит никакой информации, но размер файла заметно увеличивается).
Файлы QuickTime Movies могут распространяться в виде файлов с расширением .MOV (стандартный файл movie), и с расширением -QTR, в котором хранится resource fork - QuickTime Movie Player for Windows обрабатывает файлы именно с таким расширением.
Форматы MPEG
Стандарт MPEG определяет ряд разных форматов. Например, стандарт MPEG-1 определяет один формат для кодируемых видеоданных, три для кодируемого звука и формат для
системного потока, служащий для объединения видео- и аудиоданных. Концепция сжатия видеоизображений в формате MPEG следующая:
• определить, какая именно информация в потоке повторяется хотя бы в течение какого-либо отрезка времени, и принять меры к предотвращению дублирования этой ин формации;
• использовать особенности человеческого зрения при выборе соответствующих методов сжатия и их точности.
Известно, что пиковая зрительная разрешающая способность достигается в участке сетчатки, так называемой центральной ямке, которая охватывает всего лишь два градуса угла зрения. По мере отдаления от центральной ямки плотность фоторецепторов снижается почти по экспонентному закону. Это означает, что для зрителя, который смотрит в центр киноэкрана, разрешающая способность в периферийных зонах изображения почти полностью утрачивает значение (с другой стороны, периферийное зрение характеризуется высокой восприимчивостью к колебаниям яркости). Кроме того, способность человека различать мелкие цветные элементы в движущемся изображении значительно уступает его способности различать изменения яркости - поэтому изменения цветов могут кодироваться значительно грубее, чем изменения яркости.
Объясним, как может реализоваться концепция сжатия видеоизображений на примере следующей сцены: перемещение автомобиля на фоне леса. Фон при этом можно считать неизменным, поскольку основное внимание зрителя обычно обращено на подвижный предмет на переднем плане, даже если появляются какие-то мелкие изменения - зритель едва ли обратит внимание или успеет их заметить. Итак, можно разбить кадр на две составных части - фон, который сохраняется один раз, а потом подставляется при воспроизведении всех кадров, и область с движущимся автомобилем, - ее записывают в отдельности для каждого кадра.
Благодаря реализации этой концепции MPEG-компрессор сжимает видеопоток в десятки и даже сотни раз без значительной потери изображением качества.
Следует отметить, что однозначно оценить качество кодирования какими-то приборами невозможно. Главный критерий - это восприятие человеком декомпрессированной информации. Поэтому правила сжатия видеоданных при MP EG-кодировании разрабатываются на основе модели восприятия человеком видеоизображений (HVS - Human Visual Sense).
Избыточность изображения согласно HVS подразделяется на три основных вида.
• Невидимые человеческому глазу участки изображения. Это, например, места гашения по вертикали и горизонтали. Удаление этой информации никак не сказывается на изображении.
• Статистически избыточные участки изображения. Различают пространственную (участки изображения, на которым соседние пикселы практически одинаковы) и временную (неизменяемые во времени участки изображения) избыточность.
• Избыточные по цвету и яркости участки изображения. Учитывается ограниченная чувствительность человека к небольшим изменениям яркости и в особенности цвета фрагментов изображения.
Рассмотрим, как осуществляется сжатие видеоданных в формате MPEG на примере работы MPEG-1.
Перед началом кодирования происходит анализ видеоинформации, выбираются опорные кадры, которые не будут изменяться при сжатии, а также кадры, при кодировании которых часть информации будет удаляться.
Для удобства кодирования видеоданных весь видеопоток разбивается на группы, которые названы GOP (Group of Pictures- группа изображений). GOP строится, например, следующим способом:
I B B P B B P B B I,
где I - Independent (независимые, опорные) кадры. MPEG-последовательности без этих кадров не может быть. Опорные кадры содержат всю информацию об изображении и не требуют для декодирования никакой дополнительной информации. При компрессии I-ых кадров с помощью метода типа JPEG происходит удаление только пространственной избыточности. Именно с этого кадра начинается декодирование изображения в последовательности.
Р - Predictive кадры. "Предсказанные" кадры, при формировании которых используется разность между предшествующим I - или P-кадром и текущим кадром. Эта разность кодируется и вместе с вектором движения прибавляется к сжатым данным, P-кадр создается с помощью межкадровой компрессии, которая уменьшает как пространственную, так и временную чрезмерность. То есть, при создании P-кадра происходит сжатие, которое учитывает избыточность последовательных кадров. Этот кадр также служит для дальнейшего предсказания изображения.
В - Bi-directional. "Двунаправленные" кадры. Сохраняют только наиболее важную информацию про соседние I- или P-кадры. То есть B-кадры являются промежуточными интерполированными кадрами и имеют высочайшую степень компрессии. Наличие 3-кадров в видеофильме - фактор, благодаря которому MPEG-1 имеет высокий коэффициент сжатия (но не очень высокое качество). Формирование разных 5-кадров в рамках одной GOP может происходить по разным правилам. Разные B-кадры могут использовать информацию (возможно, используя сжатие разности) или об одном, или о двух кадрах (предшествующем и последующем),
Структуру MPEG потока обычно описывают в виде дроби M/N, где М равняется общему числу кадров в G0P, а N показывает, которым по номеру будет очередной P-кадр после предыдущего Р-кадра.
Что касается глубины цвета, то MPEG-1 использует цветовую схему YCbCr, где Y - это плоскость яркости, Сb и Сr - цветовые плоскости. Эти плоскости кодируются с разной разрешающей способностью. Существуют несколько вариантов кодирования.
Как видно из таблицы 8.9, Сb и Сr практически всегда кодируются с меньшей разрешающей способностью, чем Y. Чем меньше разрешающая способность цветовых плоскостей, тем грубее и ненатуральнее цветопередача в видеофильме. Разумеется, самым некачественным, да и самым компактным будет последний вариант.
Таблица 8.9. Варианты кодирования MPEG
Вариант кодирования
Соотношение разрешения Cb/Y (Cr/Y) по горизонтали
Соотношение разрешения Cb/Y (Cr/Y) по вертикали
4:4:4
1:1
1
1
4:2:2
1:2
1
1
4:2:0
1:2
1
2
4:1:1 ,
1:4
1
1
4:1;0
1:4
1
4
Поток данных MPEG состоит из шести иерархических уровней:
• Блок - содержит данные о яркости и цветности для блоков изображения (в MPEG-1 блоки имеют размер 8x8 пикселов). Блоки анализируются по значениям Y, Сb и Сr.
• Макроблок - состоит из 4 простых блоков в окне. В формате 4:2:0 макроблок содержит 4 блока данных Y и по одному Сb и Сr.
• Слой - содержит несколько сопредельных макроблоков.
• Кадр - состоит из группы слоев, содержащих изображение, которое может быть I-,P или В-типа.
• Группа изображений (GOP) - содержит последовательность кадров. Должна обязательно начинаться с I-кадра.
• Видеопоследовательность - содержит минимум одну GOP, а также заголовок в начале последовательности и код конца последовательности.
По окончании разбивки кадров на разные типы начинается процесс подготовки к кодированию.
I-кадры просто разбиваются на блоки.
Для кадров типа Р и В нужна более сложная подготовка, для их более сильного сжатия используется алгоритм предсказания движения.
В качестве входной информации алгоритм предсказания движения получает блок текущего кадра и аналогичные блоки от предшествующих кадров (I - ли Р - типа). На выходе данного алгоритма располагаем следующей информацией о вышеуказанном блоке:
• вектор движения текущего блока относительно предшествующих;
• разность между текущим и предшествующими блоками, которая, собственно, и будет подлежать дальнейшему кодированию.
Понятно, что алгоритм предсказания движения имеет ограничение. В фильмах есть статические сцены, в которых движение незначительное или его совсем нет, следовательно,
есть блоки или целые кадры, для которых невозможно использовать этот алгоритм.
В случае корректного срабатывания алгоритма предсказания движения, объемы кадров разного типа соотносятся друг с другом приблизительно как I : Р : В = 15:5:2. Таким образом, уменьшение объема видеоинформации имеет место уже на стадии подготовки к кодированию.
По окончании этой стадии начинается собственно само кодирование. Используется сжатие с потерями, благодаря чему достигается высокий коэффициент компрессии.
Синхронизация аудио- и. видеоданных осуществляется с помощью специально выделенного потока данных, так называемого System stream. Этот поток имеет 2 слоя - системный слой с встроенным таймером, работающим с частотой 90 КГц, и со служебной информацией для синхронизации кадров и аудиотрека, а также компрессионный слой с видео- и аудиопотоками. Служебная информация - это несколько видов меток, наиболее важные из которых - SCR (System Clock Reference) - инкремент увеличения значения временного счетчика - и PDS (Presentation Data Stamp) - метка начала воспроизведение видеокадра или аудиофрейма.
Порядок распаковывания кадров зависит от наличия S-кадров, которые могут опираться не только на предшествующие, но и на последующие кадры.
О некотоых других форматах
Adobe PostScript
PostScript - язык описания страниц (язык управления лазерными принтерами) фирмы Adobe. Был создан в 80-х годах для реализации принципа WYSIWYG (What You See is What You Get). Файлы этого формата представляют из себя программу с командами на выполнение для выводного устройства. Они имеют расширение .ps или, реже, .prn и получаются с помощью функции Print to File графических программ при использовании драйвера PostScript-принтера. Такие файлы содержат в себе сам документ (только то, что располагалось на страницах), все связанные файлы (как растровые, так и векторные), использованные шрифты, а так же другую информацию: платы цветоделения, дополнительные платы, линиатуру растра и форму растровой точки для каждой платы и другие данные для выводного устройства. Если файл создан правильно, не имеет значения на какой платформе он делался, были использованы шрифты True Type или Adobe Type 1 - все равно. Тем не менее нужно учитывать, что даже в том случае, когда вы сделали верные установки в окне печати, могут возникнуть проблемы связанные с некорректным переводом используемой вами программы ее графического языка на язык PostScript (например, внедрением информации о неиспользуемых шрифтах). Наиболее корректные PS-файлы создают программы Adobe.
Данные в PostScript-файле, как правило, записываются в двоичной кодировке (Binary). Бинарный код занимает вдвое меньше места, чем ASCII. Кодировка ASCII иногда требуется для передачи файлов через сети, для кроссплатформенного обмена, для печати через последовательные кабели. В приведенных случаях двоичная кодировка может исказиться (что сделает файл нечитаемым) или вызвать "странное" поведение файл-сервера. Эти проблемы давно изжиты в современных системах, но старые компьютеры и серверы бывают им подвержены. Сказанное относится ко всем форматам, основанным на языке PostScript: EPS и PDF, которые описываются ниже.
PDF (Portable Document Format)
PDF предложен фирмой Adobe как независимый от платформы формат для создания электронной документации, презентаций, передачи верстки и графики через сети. Используется как внутренний графический формат в Mac OS X.
PDF-файлы создаются путем конвертации из PostScript-файлов или функцией экспорта ряда программ. Для конвертации используется программа Adobe Acrobat Distiller, это лучший способ создания PDF. Создание PDF методом экспорта из программ дает, как правило худший результат - файлы получаются более тяжелыми, часто имеют проблемы со встраиванием шрифтов.
Для создания PDF так же существует программа PDFWriter, работающая как виртуальный принтер. PDFWriter не основан на PostScript и не может корректно обрабатывать графику. Он предназначен для быстрого изготовления простых текстовых документов. У него наблюдается та же проблема со встраиванием шрифтов, что и многих программ, умеющих экспортировать PDF. Самые надежные и максимально близкие к оригиналу PDF создает из PostScript и EPS-файлов программа Acrobat Distiller, поставляемая в пакете Adobe Acrobat.
PDF первоначально проектировался как компактный формат электронной документации. Поэтому все данные в нем могут сжиматься, причем к разного типа информации применяются разные, наиболее подходящие для них типы сжатия: JPEG, RLE, CCITT, ZIP (похожее на LZW и известное еще как Deflate).
Файл PDF может быть оптимизирован. Из него удаляются повторяющиеся элементы, устанавливается постраничный порядок загрузки страниц через web, с приоритетом сначала для текста, потом графика, наконец шрифты. Однако, когда повторяющихся элементов нет, файл, после оптимизации, как правило, несколько увеличивается.
PDF все больше используется для передачи по сетям в компактном виде графики и верстки. Он может сохранять всю информацию для выводного устройства, которая была в исходном PostScript-файле. Это касается PDF версий 1.2 (Acrobat 3) и выше. Однако, версия 1.2 не может включать сведения о треппинге, некоторые другие специфические данные (DSC, например), не использует цветовые профили. Все это реализовано в последующих вариантах формата.
Adobe Photoshop Document
Внутренний формат популярного растрового редактора Photoshop в последнее время стал поддерживаться все большим количеством программ. Он позволяет записывать изображение со многими слоями (до 1000), их масками, дополнительными Альфа-каналами и каналами простых (spot) цветов, корректирующими, векторными, текстовыми слоями, контурами и другой информацией - все, что может сделать Photoshop. В версии 3.0 появляются слои, контуры и RLE-компрессия, в 4-й версии алгоритм улучшается, файлы становятся еще меньше. В версии 5 реализован принципиально иной подход к управлению цветом. В программу была внедрена архитектура управления цветом, основанная на профилях для сканеров, мониторов и принтеров Международного консорциума по цвету (International Color Consortium, ICC). В шестой версии метод управления цветом переработан.
Несмотря на многочисленные дополнения функциями формат Photoshop'a имеет полную совместимость от 3-й до 7-й версии. В Photoshop'e 2.5 не было слоев и контуров, поэтому он выступает, как отдельный подформат.
Однослойный Photoshop Document понимают ряд программ, многослойные могут импортировать Illustrator и InDesidn. Corel Painter и Corel PHOTO-PAINT открывают на редакцию многослойные документы Photoshop.
Adobe Illustrator Document
Adobe Illustrator - самый первый продукт Adobe. Он был создан сразу же после выхода PostScript Level 1, его можно назвать интерфейсом для PostScript. До 9-й версии ядро формата основывалось на EPS, с 9-й в основе лежит ядро PDF. Это дает основание полагать, что в будущем появится, наконец, многостраничность. Формат Illustrator'а напрямую открывается Photoshop'ом, его поддерживают почти все программы Макинтош и Windows так или иначе связанные с векторной графикой и графикой вообще. Все, что создает Adobe Illustrator, совместимо PostScript (исключение составляют, разве что Gradient Meshes, которые нужно растеризовать перед закрытием на печать).
Формат Illustrator’ра является наилучшим посредником при передаче векторов из одной программы в другую, с РС на Macintosh и назад. Наиболее совместимыми можно назвать 3-ю и 4-ю версии. При передаче градиентных заливок между векторными редакторами в редактируемом виде (когда они не конвертируются в последовательность фигур) нужно использовать версии формата, начиная с 6-й. Внедренные или связанные с документом растровые файлы при обмене через формат Illustrator'a во всех программах, кроме FreeHand версии 9 и выше, теряются. Начиная с 9-й версии формат Illustrator'а может содержать внедренные шрифты (включая такие особенные шрифтовые форматы как Adobe Type 3 и Adobe Multiple Master) и ICC-профиль. Illustrator 9 позволяет сориентировать проект на цветовое пространство RGB или CMYK и сохранить это в файле.
CorelDRAW Document
Формат известен в прошлом низкой устойчивостью, плохой совместимостью файлов, искажением цветовых характеристик внедряемых битовых карт, тем не менее пользоваться CorelDRAW чрезвычайно удобно, он имеет неоспоримое лидерство на платформе РС. Многие программы на РС (FreeHand, Illustrator, PageMaker - среди них) могут импортировать файлы CorelDRAW.
Файлы формата CorelDRAW можно применять для переноса/передачи работ на PC, но нежелательно импортировать в программы верстки. На Макинтош файлы CorelDRAW для Windows открывают версия CorelDRAW для Макинтош и Adobe Illustrator 8 и выше.
PICT (Macintosh QuickDraw Picture Format)
PICT - собственный формат Mac OS Classic. Стандарт для буфера обмена, использует графический язык Mac OS. PICT способен нести растровую, векторную информацию, текст и звук, использует RLE-компрессию. Поддерживается на Mac’e всеми программами. Чисто битовые PICT-файлы могут иметь любую глубину битового представления (от Lineart до CMYK). Векторные PICT-файлы, которые почти исчезли из употребления в наши дни, имели странные проблемы с толщиной линии и другими отклонениями при печати. Формат используется для потребностей Mac OS, и при создании определенных типов презентаций только для Макинтош. Вне Макинтош PICT имеет расширение .pic или .pct, читается отдельными программами, но работа с ним редко бывает простой и бесхитростной.
RTF (Microsoft Rich Text Format)
Текстовый формат RTF попал сюда за свои неординарные способности к переносу текстов из одной программы в другую. Он позволяет передавать форматированный текст из программ оптического распознавания символов или текстовых редакторов в графические программы или в любых других направлениях. RTF может оказаться хорошим решением (а, иногда, и единственным выходом) при переброске из программы в программу нелатинского, например, ивритского текста или русского в разных версиях ОС Windows.
Секрет совместимости заключается в использовании специальных тегов форматирования RTF и Unicode. Именно Unicode (использованный как основа формата Microsoft Word 97/98 для Макинтош и PC) позволяет легко переносить русские тексты с PC на Мак и обратно в файлах MS Word. RTF используется как основной в поставляемом вместе с Mac OS X редакторе TextEdit и в прилагаемом к Windows программе WordPad.
О сохранении изображений в собственных и «чужих» форматах
Как правило, графические программы используют свои собственные форматы для сохранения изображений во внешней памяти. Собственный файловый формат - частный и наиболее эффективный формат для хранения файлов отдельного графического приложения. Например, «родной» формат CorelDRAW - CDR , Adobe PhotoShop - PSD, Fractal Design Painter - RIFF, Paint (стандартная программа WINDOWS ) - BMP. При сохранении изображения в файле всегда нужно указывать тип формата. На рис. 8.5 показано диалоговое окно (Ехроrt \Экспорт), используемое в программе CorelDRAW.
Кроме того, для каждого «чужого» графического формата открываются дополнительные диалоговые окна, с помощью которых пользователь устанавливает параметры формата (количество используемых цветов, необходимость сжатия - для BMP и TIFF, коэффициент сжатия - для JPEG и др.).
Рис. 8.5. Диалоговое окно для сохранения в CorelDRAW изображения в формате JPEG
8.6. Преобразование файлов из одного формата в другой
Необходимость преобразования графических файлов из одного формата в другой может возникнуть по разным причинам:
• программа, с которой работает пользователь, не воспринимает формат его файла;
• данные, которые надо передать другому пользователю, должны быть представлены в специальном формате.
Преобразование файлов из растрового формата в векторный
Существуют два способа преобразования файлов из растрового формата в векторный:
1) преобразование растрового файла в растровый объект векторного изображения;
2) трассировка растрового изображения для создания векторного объекта.
Первый способ используется в программе CorelDRAW, которая, как правило, успешно импортирует файлы различных растровых форматов. К примеру, если растровая картинка содержит 16 миллионов цветов, CorelDRAW покажет изображение, приближенное по качеству к телевизионному. Однако, импортируемый растровый объект может становиться довольно большим даже в том случае, если исходный файл невелик. В файлах растровых форматов информация хранится достаточно эффективно, так как часто используются методы сжатия. Векторные форматы такой способностью не обладают. Поэтому растровый объект, хранящийся в векторном файле, может значительно превосходить по размерам исходный растровый файл.
Особенность второго способа преобразования растрового изображения в векторное заключается в следующем. Программа трассировки растровых изображений (например, CorelTRACE) ищет группы пикселей с одинаковым цветом, а затем создает соответствующие им векторные объекты. После трассировки векторизованные рисунки можно редактировать как угодно. На рис. 8.6 показано растровое изображение, которое хорошо преобразуется в векторное. Дело в том, что растровые рисунки, имеющие четко выраженные границы между группами пикселей одинакового цвета, хорошо переводятся в векторные. В то же время результат трассировки растрового изображения фотографического качества со сложными цветовыми переходами выглядит хуже оригинала.
Исходный растровый рисунок
Векторизованный рисунок
Рис. 8.6. Растровый рисунок с четкими границами, преобразованный в векторный формат
Преобразование файлов одного векторного формата в другой
Векторные форматы содержат описания линий, дуг, закрашенных полей, текста и т. д. В различных векторных форматах эти объекты описываются по-разному. Когда программа пытается преобразовать один векторный формат в другой, она действует подобно обычному переводчику, а именно:
• считывает описания объектов на одном векторном языке,
• пытается перевести их на язык нового формата.
Исходное растровыое изображение
Векторизованное изображение
Рис.8.7. Растровое изображение фотографического качества, преобразованное в векторный формат
Если программа-переводчик считает описание объекта, для которого в новом формате нет точного соответствия, этот объект может быть либо описан похожими командами нового языка, либо не описан вообще. Таким образом, некоторые части рисунка могут исказиться или исчезнуть. Всё зависит от сложности исходного изображения. На рис. 8.7 представлен один из возможных результатов преобразования файла из одного векторного формата в другие. Исходный рисунок создан в программе CorelDRAW и состоит из следующих элементов: импортированная растровая картинка в формате JPEG , рамка вокруг растровой картинки, текст, прямоугольник с конической заливкой.
При преобразовании рисунка 8.8а в формат CGM сохранились все исходные элементы. Формат DXF проигнорировал растровую картинку, исказил контур вокруг нее, коническую заливку, а также увеличил размер шрифта. Дело в том, что этот формат предназначен для конструкторских разработок и, следовательно, в нём отсутствуют команды для описания различных художественных эффектов.
а) Исходное изображение в формате CDR
б) Результат преобразования в векторный форамат CGM
в) Результат преобразования в векторный форамат DXF
Рис. 8.8. Результаты преобразования одного векторного формата в другой
Преобразование файлов из векторного формата в растровый
Преобразование изображений из векторного формата в растровый (этот процесс часто называют растрированием векторного изображения) встречается очень часто. Прежде, чем разместить рисованную (векторную) картинку на фотографии, её необходимо экспортировать в растровый формат. Например, изображение окна на рис. 8.9 было отсканировано и сохранено в файле формата JPEG. Рисунок котенка создан в векторной программе CorelDRAW и затем экспортирован в файл формата TIFF. Монтаж двух растровых изображений выполнен в программе Adobe PhotoShop.
Рис. 8.9. Рисованная картинка, вставленная в фотографию
Каждый раз, когда векторный рисунок направляется на устройство вывода (в частности, монитор или принтер), он подвергается растрированию - преобразованию в набор видеопикселей или точек.
При экспорте векторных файлов в растровый формат может быть потеряна информация, связанная с цветом исходного изображения. Это объясняется тем, что в ряде растровых форматов количество цветов ограничено (например, формат GIF использует не более 256 цветов).
Преобразование файлов одного растрового формата в другой
Этот вид преобразования обычно самый простой и заключается в чтении информации из исходного файла и записи ее в новом файле, где данные о размере изображения, битовой глубине и цвете каждого видеопикселя хранятся другим способом. Если старый формат использует больше цветов, чем новый, то возможна потеря информации. Преобразование файла с 24-битовым цветом (16777216 цветов) в файл с 8-битовым цветом (256 цветов) требует изменения цвета почти каждого пикселя. В простейшем случае это делается так: для каждого пикселя исходного файла ищется наиболее близкий к нему цвет из нового ограниченного набора цветов. При таком способе возможны нежелательные эффекты, когда часть рисунка, содержащая большое количество элементов, оказывается закрашенной одним цветом или когда плавные переходы цвета становятся резкими. На рис. 8.10 показано, к каким результатам может привести уменьшение количества цветов изображения.
исходное изображение
результат преобразования в новый формат с меньшим количеством цветов
Рис. 8.10. При уменьшении количества цветов появляются дефекты в изображении
Для преобразования файлов из одного формата в другой используются специальные программы - преобразователи (конверторы) форматов. Однако большинство графических программ (CorelDRAW, Adobe Illustrator, Adobe PhotoShop и др.) могут читать и создавать файлы различных форматов, т. е. являются преобразователями форматов.
Глава 9. Технические средства КГ (оборудование КГ)
Чаще всего, после того, как изображение возникло на мониторе, пользователь каким-либо образом должен взаимодействовать с ним: модифицировать, передвигать, управлять. Для этого существует ряд устройств, о которых будет рассказано в этой главе.
9.1 Видеоадаптеры
Видеоадаптер (графическая карта, видеокарта) реализует вывод информации на монитор. От ее качества зависят:
• скорость обработки информации;
• четкость изображения и размеры;
• цветность (количество воспроизводимых цветов) рабочего поля экрана.
Важной чертой архитектуры персонального компьютера с позиций графики является то, что контроллер видеосистемы - видеоадаптер - расположен рядом с процессором и оперативной памятью и подключен к системной шине через быструю локальную шину. Это дает возможность быстро вести обмен данными между оперативной памятью и видеопамятью (для вывода графических изображений, в особенности в режиме анимации, нужна высочайшая скорость передачи данных). В отличие от этого, в больших компьютерах (мейн-фреймах) данные к дисплеям передавались через интерфейс канала ввода-вывода, который работает намного медленнее системной шины. Большие компьютеры, как правило, работали со многими дисплеями, расположенными на значительном расстоянии.
Первый компьютер IBM PC был оснащен видеоадаптером MDA (Monochrome Display Adapter). Видеосистема была предназначена для работы в текстовом режиме - отображались 25 строк по 80 символов в каждой строке.
Через год небольшая фирма Hercules выпустила видеоадаптер Hercules Graphic Card. Он поддерживал также и графический черно-белый режим 720x350.
Следующим шагом был видеоадаптер CGA (Color Graphic Adapter). Это первая цветная модель для IBM PC. Адаптер CGA позволял работать в цветных текстовом или в графическом режимах. Далее мы будем рассматривать только графические режимы видеоадаптеров. Графических режимов для CGA было два: черно-белый 640x200 и цветной 320x200. В цветном режиме можно было отображать одновременно только четыре цвета (2 бита на пиксел).
В 1984 году появился адаптер EGA (Enhanced Graphic Adapter). Это было значительное достижение для персональных компьютеров рассматриваемого типа. Появился графический 16-цветный видеорежим 640x350 пикселов. Цвета можно было выбирать из палитры 64 цветов. В это время начали распространяться компьютерные игры с более или менее качественной графикой и графические программы для работы. Однако шестнадцати цветов явно мало для отображения фотографий, а разрешающая способность недостаточна для графических пакетов типа САПР. Кроме того, видеорежим 640x350 имеет еще один недостаток - разная разрешающая способность по горизонтали и вертикали - "неквадратные пикселы".
В 1987 году появились видеоадаптеры MCGA {Multi-Color Graphic Array) и VGA (Video Graphic Array). Они обеспечивали уже 256-цветные видеорежимы.
Более популярным стал видеоадаптер VGA. Адаптер VGA имел 256-цветный графический видеорежим с размерами растра 320x200. Цвета можно было выбирать из палитры в 256 тысяч цветов. Это дало возможность полностью удовлетворить потребности отображения черно-белых (в 256 градациях серого) фотографий. Цветные фотографии отображались достаточно качественно, однако 256 цветов мало, поэтому в компьютерных играх и графических пакетах активно использовался дизеринг. Кроме того, режим 320x200 тоже имеет разную разрешающую способность по горизонтали и вертикали. Для мониторов, которые использовались в персональных компьютерах типа IBM PC, необходимо, чтобы количество пикселов по горизонтали и вертикали было в пропорции 4:3. То есть, не 320x200, а 320x240. Такого документированного видеорежима для VGA нет, однако в литературе приведен пример, как создать 256-цветный видеорежим 320x240 на видеосистеме VGA. Можно запрограммировать видеоадаптер, записав в его регистры соответствующие значения, и получить видеорежим "X" (не путать с XGA).
Видеоадаптер VGA также имел 16-цветовой видеорежим 640x480. Это соответствует "квадратным пикселам". Увеличение разрешающей способности в сравнении с EGA не очень большое, но ощутимое, что дало новый толчок для развития графических программ на персональных компьютерах.
Дальнейшее развитие видеоадаптеров для компьютеров типа IBM PC связано с увеличением разрешающей способности и количества цветов. Можно отметить видеосистему IBM 8514, которая была предназначена для работы с пакетами САПР. Начали появляться видеоадаптеры разных фирм, которые обеспечивали сначала видеорежимы 800x600, а потом и 1024x768 при 16-ти цветах, а также видеорежимы 640x480, 800x600 и более - для 256 цветов. Эти видеоадаптеры стали называть SuperVGA, Чуть позже появился видеоадаптер IBM XGA.
Первой достигла глубины цвета в 24-6ит фирма Truevision с видеоадаптером Targa 24, что позволило получить на персональных компьютерах IBM PC видеорежим True Color. Такое достижение можно считать началом профессиональной графики на персональных компьютерах этого типа. Там, где раньше использовали графические рабочие станции или персональные компьютеры Apple Macintosh, отныне постепенно переходили на более дешевые компьютеры IBM PC. Одной из таких областей было компьютерное "настольное" издательство.
Сейчас на персональных компьютерах используется много типов видеоадаптеров. Все видеосистемы - растрового типа. Они позволяют устанавливать глубину цвета до 32 битов на пиксел при размерах растра 1600x1200 и больше. Существуют стандарты на видеорежимы, регламентированные VESA (Video Electronic Standards Association).
Современный видеоадаптер состоит из двух частей:
Видеопамяти - предназначена для хранения двоичного кода изображения, выводимого на экран;
Дисплейного процессора – читает содержимое видеопамяти и в соответствии с ней управляет работой дисплея.
Рис. 9.1.Видеоадаптер
В зависимости от количества поддерживаемых цветовых оттенков различают следующие режимы работы видеоадаптеров:
• 16 цветов;
• 256 цветов;
• High Color (16 бит);
• True Color (24 бит);
• True Color (32 бит).
Основными параметрами видеоадаптеров являются величина разрешения экрана и тип развертки монитора, которые они способны поддерживать.
При комплектовании компьютера в первую очередь следует обратить внимание на следующие важные характеристики видеокарты:
• чипсет;
• RAMDAC;
• частота регенерации;
• разрешение экрана;
• память видеокарты.
Чипсет (chipset) - набор микросхем, фактически главный компонент видеокарты и от того, насколько хорошо он реализован, зависят и ценность, и возможности вашей карты. Одной из главных характеристик чипсета является его пропускная способность (bandwidth). Сегодня на рынке комплектующих можно встретить 64-битные и 128-битные видеокарты. Естественно, что последние более быстрые и более дорогие.
RAMDAC (Random Access Memory Digital to Analog Converter) - частота преобразования цифровых данных в аналоговые. Нормальной частотой сегодня следует считать 250 МГц, то есть произведение системой 250 миллионов операций в секунду. Что это означает на практике? Каждый раз, когда генерируется картинка, она обрабатывается RAMDAC и выводится на монитор. Даже если картинка не меняется, все равно изображение на мониторе нужно постоянно и с очень большой скоростью обновлять. Поэтому чем выше частота RAMDAC, тем изображение качественнее, то есть более четкое и устойчивое, а производительность системы в целом - более высокая. От значения частоты RAMDAC зависит также частота регенерации. Нужную частоту RAMDAC можно вычислить по следующей формуле:
Частота = вертикальное разрешение х горизонтальное разрешение х частоту регенерации х 1,32 (коэффициент, связанный с той временной задержкой, с которой лучи доходят от катода до поверхности люминофора).
Например, чтобы получить разрешение 1600 х 1200 с частотой регенерации экрана 85 МГц, нам потребуется RAMDAC с частотой 215424 000 Гц, или 215,4 МГц.
Частота регенерации (refresh rate) показывает, сколько раз в секунду будет обновляться картинка на экране дисплея. Чем выше его значение - тем лучше. От него зависит, как сильно будет мерцать монитор и, соответственно, насколько будут уставать ваши глаза при длительном сидении за компьютером. Минимальная приемлемая частота для 14"-15" монитора при максимально возможном разрешении 75 Гц. Лучше, если монитор способен работать при частоте 80-85 Гц. Видеокарта должна давать солидный запас прочности, то есть при разрешении 1024 х 768 она должна обеспечивать 120 Гц (если вы не собираетесь использовать при этом монитор размером больше 21 дюйма по диагонали). Но лучше еще больше - 150-170 Гц.
Разрешение экрана (resolution) выше 1024 х 768 используют сегодня только профессионалы, занимающиеся графикой, и владельцы больших мониторов. Тем не менее хорошо, если видеокарта в силах выдерживать разрешение 1600 х 1200 при нормальной (75 Гц) частоте регенерации. Правило: больше - лучше.
Для обычной, двухмерной графики достаточно памяти видеокарты 8-16 Мбайт. Это позволит обеспечить максимально возможное разрешение 1600 х 1200 при 24-битовой глубине (16,7 млн. цветов). Однако в последних моделях видеокарт со встроенными 3D-ускорителями используется дополнительная память - как минимум еще 8 Мбайт. На картах следующего поколения установлены уже 32 Мбайт памяти, и это, видимо, не предел целесообразности. Память на современных видеокартах встречается в основном двух видов - SDRAM и SGRAM, из которых последняя выполнена по более сложной технологии и поэтому стоит дороже, хотя характеристики и быстродействие у них очень схожие.
Все видеоданные должны быть доставлены к месту назначения по широкой (64-128-разрядной) и быстрой магистрали. За пропускную способность шин, на которых работают видеокарты, отвечают спецификации ISA, PCI, AGP.
Адреса, по которым процессор обращается к видеопамяти, находятся в общем адресном пространстве. Например, для многих видеорежимов VGA адрес первого байта видеопамяти равняется А0000. Для некоторых видеорежимов старых образцов используется другой адрес, например, В8000 для CGA 320x200.
Кроме физической организации памяти компьютера - в виде одномерного вектора байтов в общем адресном пространстве, необходимо учитывать логическую организацию
Рис.9.2. Один байт на пиксел для VGA 320x200
видеопамяти. Следует отметить, что названия "физическая" и "логическая" организация могут означать совсем разные вещи для разных уровней рассмотрения. Например, если говорить о физической организации памяти, то она в микросхемах выглядит совсем не как одномерный вектор байтов, а как матрица битов. Логическая организация видеопамяти зависит от видеорежима. В качестве примера на рис. 9.2 приведена логическая организация для видеорежима VGA 256 цветов 320x200 (его код 13h).
Намного сложнее логическая организация видеопамяти для видеорежима
Рис. 9.3. Четыре битовых плоскости для видеорежима 16 цветов 40x480
VGA 16 цветов 640x480 (код 12h), которая показана на рис. 9.3.
Каждая битовая плоскость имеет 80 байтов в одном строке. Плоскости имеют одинаковый адрес в памяти, для доступа к отдельной плоскости необходимо устанавливать индекс плоскости в соответствующем регистре видеоадаптера. Подобный способ организации видеопамяти используется во многих других видеорежимах, он позволяет, например, быстро копировать массивы пикселов.
В этом видеорежиме используются четыре массива байтов памяти. Каждый массив назван битовой плоскостью, для любого пиксела используются одинаковые биты данных разных плоскостей. Для хранения нескольких кадров изображения в некоторых видеорежимах предусматриваются отдельные страницы видеопамяти с одинаковой логической организацией. Тогда можно изменять стартовый адрес видеопамяти - это приводит к сдвигу изображения на экране. Во всех графических видеорежимах стартовый адрес видеопамяти соответствует левому верхнему пикселу на экране. Поэтому координатная система с центром координат (0,0) в левом верхнем углу растра часто используется в качестве основной (или устанавливается по умолчанию) во многих графических интерфейсах программирования, например, в GDI API Windows.
Обмен данными по системной шине для видеосистемы обеспечивают процессор, видеоадаптер и контроллер локальной шины. До недавнего времени для подключения видеоадаптеров использовалась локальная шина PCI (Peripheral Component Interconnect local bus). Шина PCI предназначена не только для графики, она является стандартом присоединения разнообразнейших устройств, например, модемов, сетевых контроллеров, контроллеров интерфейсов. Эта шина - 32-битная, работает на частоте 33 Мгц, скорость обмена до 132 Мбайт/с.
Современные видеоадаптеры представляют собой сложные графические устройства. На плате видеоадаптера Processor Unit), который по сложности приближается к центральному процессору. Кроме визуализации кадрового буфера графический процессор видеоадаптера выполняет как относительно простые растровые операции (копирование массивов пикселов, манипуляции с цветами пикселов), так и более сложные. Там, где раньше использовался исключительно центральный процессор, теперь все чаще применяется графический процессор видеоадаптера, например, для выполнения операций графического вывода линий, полигонов. Первые графические процессоры видеоадаптеров выполняли преимущественно операции рисования плоских элементов. Современные графические процессоры выполняют уже много базовых операций ЗD-графики, например, поддержку Z-буфера, наложение текстур и т. п. Видеоадаптер выполняет эти операции аппаратно, что позволяет намного ускорить их в сравнении с программной реализацией данных операций центральным процессором. Так появился термин графические акселераторы. Быстродействие таких видеоадаптеров часто измеряется количеством графических элементов, которые рисуются за одну секунду. Современные графические акселераторы способны рисовать миллионы треугольников за секунду. Этим "интеллектуальность" видеоадаптеров не ограничивается. Недавно появились модели, которые, кроме относительно простых неизменных базовых операций, способны сами выполнять небольшие программы, которые могут составлять пользователи. Эти программы называются "шейдерами" (shaders). Такие возможности графических акселераторов сейчас активно используются разработчиками компьютерных игр.
На рис.9.4 представим общую структуру видеоадаптера.
Рис. 9.4. Общая структура видеоадаптера
Номенклатура видеоадаптеров для персональных компьютеров широка. Несколько примеров: видеоадаптеры Matrox (качественная двумерная графика), ATI Radeon, NVidia (профессиональные и игровые ЗD-акселераторы).
Использование программистами графических возможностей видеосистемы может осуществляться по-разному. Во-первых, простейшие операции, такие, как определение графического видеорежима, вывод пиксела на экран и некоторые другие, поддерживаются BIOS. Во-вторых, можно использовать функции операционной системы. Разные операционные системы могут предоставлять разные возможности. Например, в MS-DOS графических функций почти не было, однако программисту был разрешен свободный доступ ко всем аппаратным ресурсам компьютера. В быстродействующих графических программах часто использовался непосредственный доступ к видеопамяти. В отличие от этого, операционная система Windows запрещает прикладным программам непосредственный доступ к аппаратным ресурсам, однако можно применять несколько сотен графических функций операционной системы - интерфейс GDI API. В-третьих, можно использовать специализированные графические интерфейсы, которые поддерживают аппаратные возможности современных графических процессоров.
Один из известнейших графических интерфейсов - OpenGL. Этот интерфейс в виде библиотеки графических функций был разработан Silicon Graphics и поддерживается многими операционными системами (в том числе Windows) и производителями графических акселераторов. Интерфейс OpenGL для графического отображения использует взаимодействие типа клиент-сервер.
Другим известным графическим интерфейсом является DirectX. Этот интерфейс разработан Microsoft и предназначен только для ОС Windows.
9.2 Манипуляторы
Первые персональные компьютеры располагали для ввода информации и управления работой компьютера единственным устройством — клавиатурой. Для реализации более простого управления нужно было создать дополнительную, параллельную клавиатуре, систему. Эту задачу решил Дуглас Энджелбарт из Стенфордского исследовательского института (США). В 1970 году им был получен патент на манипулятор. Вначале такой манипулятор назывался «индикатор позиции X-Y». Он явился прообразом современной мыши. Позже были созданы и другие типы манипуляторов - трекболы и джойстики.
Мышь
Мышь является важнейшим средством ввода графической информации в компьютер. В современных программных продуктах, имеющих сложную графическую оболочку, мышь (см. рис. 9.5) является основным инструментом управления программой.
В наиболее распространенных конструкциях мыши в качестве элемента, следящего за ее движением, используется шарик, сделанный из плотного резинопластика. В процессе перемещения мыши по поверхности шарик вращается и передает вращение двум металлическим валикам, которые также вращаются: один вдоль направления движения мыши, а другой - поперек. Вращение валиков регистрируется специальными устройствами, позволяющими выделять направления вдоль оси X и вдоль оси Y. Таким образом, в каждый момент времени положение мыши фиксируется с помощью координат X и Y в условной координатной плоскости. Эти координаты передаются в компьютер, после чего электроника компьютера устанавливает курсор на экране в соответствии с этими координатами. Для обеспечения оптимального функционирования мышь необходимо перемещать по ровной поверхности - специальному коврику (mouse pad). При этом указатель мыши передвигается по экрану синхронно с движением мыши по коврику. Устройством ввода мыши являются кнопки (клавиши). Большинство манипуляторов этого типа имеют две кнопки (рис. 9.5). Существуют также 3-кнопочные мыши и мыши, имеющие большее количество кнопок (Бывают также и мыши, имеющие всего одну кнопку, и при этом неплохо справляющиеся со своими функциональными обязанностями.).
Одной из важных характеристик мыши является ее разрешение, измеряемое в dpi (dpi - dots per inch - количество точек на дюйм). Эта характеристика определяет минимальное перемещение, которое способен почувствовать контроллер мыши. Чем больше разрешение, тем точнее позиционируется мышь, тем с более мелкими объектами можно работать. Нормальное разрешение мыши лежит в диапазоне от 300 до 900 dpi. В усовершенствованных мышах используют переменный баллистический эффект скорости, заключающийся в том, что при небольших перемещениях скорость смещения курсора небольшая, а при значительных перемещениях существенно увеличивается. Это позволяет эффективнее работать в графических пакетах, когда приходится обрабатывать мелкие детали.
Рис. 9.5. Манипулятор мышь
В настоящее время разработано несколько разновидностей бесхвостых мышей, то есть не связанных кабелем с компьютером. Бесконтактные мыши используют инфракрасную связь, аналогично пультам дистанционного управления (требует визуального контакта с приемником), либо радиосвязь.
Художнику-дизайнеру удобнее работать с профессиональным вариантом мыши, называемой 4D-MOUSE (например, А4ТЕСН 4-Way Scroll). Ее вертикальное и горизонтальное колесики удобны для перемещений по осям X-Y, боковая кнопка воспроизводит режим экранной лупы, верхняя третья кнопка позволяет задавать режим выхода из приложения, закреплять за кнопкой комбинацию альтернативных клавиш любой команды и т. д. Более подробную информацию об А4ТЕСН можно получить по адресу www.a4tech.com.tw.
Трекболы
Трекбол - это устройство ввода информации, которое можно представить в виде перевернутой мыши с шариком большого размера. Принцип действия и способ передачи данных трекбола такой же, как и мыши. Наибольшее распространение получил оптико-механический принцип регистрации положения шарика. Трекбол чаще всего используют в компактных компьютерах типа Laptop или Notebook. Подключение трекбола, как правило, осуществляется через последовательный порт.
Джойстики
Джойстик является координатным устройством ввода информации и наиболее часто применяется в области компьютерных игр и компьютерных тренажеров. В последнем случае обычно используются аналоговые джойстики, тогда как в игровых компьютерах - цифровые. Аналоговые джойстики обеспечивают более точное управление, что очень важно для программных приложений, в которых объекты должны точно позиционироваться. Для удобства работы конструкция джойстика должна быть достаточно прочной и устойчивой. Джойстик подключают к внешнему разъему карты расширения, имеющей соответствующий порт.
Рис. 9.6. Манипулятор джойстик
Дигитайзер
Дигитайзер или планшет, как его тоже называют, состоит из двух основных элементов: основания и курсора, двигающегося по его поверхности. Это устройство, изначально предназначенное для оцифровки изображений. При нажатии на кнопку курсора его местоположение на поверхности планшета фиксируется основанием, а его координаты передаются в компьютер.
Рис. 9.7. Манипулятор дигитайзер
Сейчас дигитайзер также часто ассоциируют с управлением командами в «Автокаде» и аналогичных системах при помощи накладных меню. Команды в меню расположены на разных местах на поверхности дигитайзера. При выборе курсором одной из команд специальный программный драйвер интерпретирует координаты указанного места, посылая соответствующую команду на выполнение. Не последнее место занимает применение планшетов для создания на компьютере рисунков и набросков. Художник создает изображение на экране, но его рука водит пером по планшету. Наконец, дигитайзер можно использовать просто как аналог манипулятора «мышь».
Перчатки и виртуальный шлем
Специальные перчатки чаще всего используют вкупе с виртуальным шлемом. Они позволяют «взять» некий виртуальный камень (или другой предмет), который пользователь видит перед собой в шлеме, повернуть его, не выпуская из рук, и даже почувствовать его неправильную, угловатую или, наоборот, обтекаемую форму. Cпециальные датчики, закрепленные на перчатке, считывают положение пальцев пользователя, компьютер обрабатывает эти сигналы, преобразует их в картинку для виртуального шлема, а также посылает управляющие сигналы выполненным из специального материала подушечкам перчатки, которые принимают ту или иную форму и давят с разной силой на различные участки ладони пользователя, создавая иллюзию сжатия предмета.
Рис. 9.8. Виртуальный шлем
В виртуальном шлеме имеется два экрана, каждый из которых выводит свое изображение для левого и правого глаза пользователя. Ни левый, ни правый глаз не видит, что происходит на соседнем экране, так как этому мешает перегородка виртуального шлема. В мозгу смотрящего принятые изображения складываются в единую трехмерную картину.
Штурвал и педали
Интересными разновидностями джойстиков можно считать штурвал и педали. Такие вещи больше всего используются в симуляторах различных полетов.
Рис. 9.9. Педали и штурвал
Штурвал представляет из себя контроллер, имеющий 3 оси (тангаж, крен, газ), а также целую россыпь кнопок: 3 кнопки, два 2-позиционных качающихся переключателя, 4-позиционный хэт, а также два рычажка (закрылки и шасси), один из которых 1-позиционный, а другой - 2-позиционный.
Особенностью педалей является наличие дополнительной функции педальных тормозов: помимо скользящего движения, характерного для управления рулем поворота в воздухе, каждая педальная площадка имеет качающееся движение, для имитации подтормаживания одной или обеих стоек шасси, используемого при рулении на земле.
9.3 Оборудование мультимедиа
Мультимедиа - это комплексное представление информации - вывод данных в текстовом, графическом, видео-, аудио- и мультипликационном видах.
Мультимедийный набор- это:
• звуковая карта;
• звуковые колонки;
• микрофон;
• CD-ROM;
• кабели
Рис. 9.10. Оборудование для мультимедиа
И многое, многое другое:
• чувствительный экран (touch-панель)
• световое перо
• контактный, акустический, лазерный щуп (перо)
• считыватель-обработчик штрих-кодов
• цифровая камера
• dvd-проигрыватель
• спутниковая плата
• программируемая клавиатура
• ультразвуковая мышка («Сова»)
Текст
Под текстом понимается любой набор символов из той или иной кодовой страницы. Текст использовался в компьютерах еще задолго до того, как появилось само слово «мультимедиа». Но и сейчас, и в будущем текст останется важным компонентом мультимедиа, так как он является простым, но чрезвычайно эффективным средством для представления и передачи информации.
Текст может быть представлен различными кодовыми страницами. Кодовая страница - это взаимно однозначное соответствие между изображением символа и его порядковым номером (кодом) в кодовой таблице.
Первоначально кодовые страницы состояли 128 символов, в число которых входили только строчные и прописные латинские символы, цифры, управляющие символы и символы псевдографики. По мере распространения персональных компьютеров стали появлятся кодовые страницы с символами национальных алфавитов (в том числе и с символами кириллицы). Разные кодовые таблицы имеют свои названия. Старейшая кодовая страница с русскими символами - KOI8-R, которая используется в операционных системах Unix. В ОС DOS использовалась кодировка cp866; в ОС Windows используется кодировка Windows-1251. Последняя из разрабатываемых кодовых страниц - Unicode (UTF-8), которая содержит 64 тыс. символов всех национальных алфавитов, математические, химические и другие знаки; Unicode в той или иной степени поддерживется многими современными операционными системами.
Графика
По принципу представления графика далится на растровую и векторную. Изображение в растровой графике строится как набор элементарных точек, раскрашенных тем или иным цветом. Векторная графика строится по правилам векторной алгебры из точек, линий, поверхностей.
Растровая графика характеризуется следующими параметрами:
• размер картинки (измеряется в пикселах, миллиметрах, дюймах и т. д.);
• разрешение - количество точек на единицу (обычно дюйм);
• количество передаваемых цветов или глубина цвета. Чем большее количество информации отводится для запоминания каждой отдельной точки, тем красочнее картинка и больше размер файла. Стандартные значения:
• 2 цвета (1 бит на точку);
• 16 цветов (4 бита на точку);
• 256 цветов (8 бит на точку);
• 16777216 цветов (24 бита на точку);
• 4294967296 цветов (32 бита на точку);
• формат записи (BMP, PCX, GIF, TIF, JPG, TGA и др.) - способы хранения графической информации с элементами (или без них) сжатия.
Векторную графика подразделяется на двумерную и трехмерную. Она имеет характеристики аналогичные математическим, а именно: координаты (декартовы, сферические, цилиндрические и др.), системы отсчета, размеры... Векторная графика может быть преобразована в растровую путем получения плоского изображения одной из проекций. Обратное преобразование невозможно или крайне сложно.
Видео
Видео-изображение - это последовательность растровых картинок, сменяющихся с большой скоростью аналогично принципу, используемому в кинематографе или телевидении. С помощью специальных аппаратных средств обычные видеозаписи переводятся в компьютерный формат. Это дает возможность производить нелинейный монтаж и применять к изображениям различные компьютерные эффекты. После этого видео снова может быть выведено на пленку.
Компьютерное видео характеризуется следующими параметрами:
• количество кадров в секунду (15, 24, 25...);
• поток данных (килобайт/с);
• формат файла (avi, mov...);
• способ сжатия (Microsoft Video for Windows, MPEG, MPEG-I, MPEG-2, Moution JPEG).
Видео кодируется двумя основными способами: сжимается каждый кадр (картинка) в отдельности и составляется видео фильм либо создаются опорные кадры, а затем записываются изменения между этими опорными кадрами.
Компьютерное видео создается редакторами 3D анимации, монтажными пакетами, оцифровыванием видео-изображения.
Анимация
Отличается от видео тем, что получается чисто компьютерным способом. Может быть записана в тех же форматах, что и видео, и выведена на видеопленку. Анимация делится на двумерную и трехмерную. Анимация создается редакторами двумерной и трехмерной графики, сканированием и оцифровыванием изображения.
Цифровой звук
Аналоговый звуковой сигнал непрерывен по амплитуде и времени. Простейшая звуковая волна представляется обычно напряжением или током, изменяющимся во времени по синусоидальному закону. Амплитуда соответствует громкости звука, частота - высоте звука. Для представления в цифровом виде аналоговый сигнал перекодируют, запоминая параметры звука через определенные промежутки времени в структуре данных определенного размера.
Качество записи характеризуется: частотой дискретизации (Гц), размером структуры данных (бит), количеством каналов (стерео, моно, квадро), обобщающим параметром - потоком (бит/с).
Наиболее часто звук записывается в формате PCM (Pulse Code Modulation). Такие звуковые файлы еще называют WAV-файлами. Основные частоты дискретизации: 8, 11, 22, 44 кГц, основные размеры: 8, 16, 32, 64 бит. Сочетая эти параметры различным образом, можно широко варьировать как качество звука, так и размеры получаемых файлов.
Для воспроизведения цифрового звука применяют обратное преобразование в аналоговый сигнал из цифрового или синтез аналогового сигнала на основе цифровой записи. Для уменьшения размера звукового файла используют специальные форматы записи звука (DPCM, ADPCM) с дополнительной компрессией. В последнее время огромную популярность получил звук в формате MP3 (MPEG 1 Layer 3). Это схема сильного сжатия аудиоинформации с потерями качества звучания. Популярность этого формата объясняется тем, что при относительно высоком качестве звучания размер звукового фрагмента для наиболее часто используемого потока 128 килобит/с на порядок ниже исходного звукового фрагмента. Однако качество Audio-CD при записи в MP3 достигается на гораздо более высоких потоках, и лишь плохая воспроизводящая аппаратура не позволяет заметить артефактов MP3 на потоках от 128 килобит/с и ниже. Основная идея, на которой основана данная методика сжатия - отказ от кодирования тонких деталей звучания, лежащих вне пределов возможностей человеческого слуха. В общем случае объем и степень ощутимости потерь определяются, с одной стороны, потоком, а с другой - психоакyстической моделью возможностей слуха, использованной в каждом конкретном кодере.
Запись мелодий в формате MIDI
Для записи звучания инструментальных композиций используется формат MIDI, позволяющий описывать звучание того или иного инструмента с помощью нотной грамоты и заранее заданных характеристик этого инструмента. Плюсом является то, что выходной файл получается небольшим: десятки, редко - сотни килобайт. Большой недостаток в использовании этой методики заключается в том, что нигде заранее не было оговорено, как должен звучать, к примеру, орган или клавесин. Поэтому производители музыкальных плат настраивали звучание того или иного инструмента так, как считали нужным. Поэтому одна и та же MIDI-мелодия может звучать абсолютно по-разному на звуковых платах разных производителей.
9.4 Мониторы
Монитор компьютера (рис. 9.11) предназначен для вывода на экран текстовой и графической информации. Это практически единственный элемент компьютера, который нельзя в дальнейшем модернизировать. Он покупается для долговременного использования. От его качества и безопасности напрямую зависит ваше здоровье, прежде всего зрение. В то же время монитор - один из самых «консервативных» компонентов компьютерной системы. Производительность процессоров, емкость винчестеров и банков оперативной памяти увеличиваются в несколько раз в течение года, но монитор практически не меняет своего облика, поэтому к покупке монитора для своего домашнего ПК следует подходить очень серьезно. Ибо, подключив к высокопроизводительной системе маленький и некачественный монитор, вы лишитесь всей радости от приобретения нового компьютера. Что должен уметь монитор?
Прежде всего он должен нормально работать на разрешении 1280 х 1024 при частоте вертикальной развертки хотя бы 85 Гц. Хороший монитор должен поддерживать частоту обновления как минимум 85 Гц. Лучше, конечно, больше - 100-120 Гц, так как многие на частоте 85 Гц все еще ощущают мерцание. Кроме всего прочего, запас частоты говорит о классе монитора - у дорогих и качественных моделей частотные характеристики лучше.
Второй немаловажный фактор - это размер точки или ширина ячейки апертурной решетки. Он должен быть не более 0,24 - 0,25 мм.
Рис. 9.11. Ж/к мониторы
Практически в каждой развитой стране существует достаточное количество национальных стандартов, регламентирующих уровень излучений монитора. Но особую популярность во всем мире завоевали стандарты, разработанные в Швеции - MPR II и TCO.
Характеристики мониторов
В настоящее время существует большое разнообразие типов мониторов. Их можно охарактеризовать следующими основными параметрами.
Тип экрана:
▪ электронно-лучевая трубка или ЭЛТ (CRT) - практически сняты с производства, но еще активно используются;
▪ жидкокристаллический дисплей (ЖКД);
▪ плазменный дисплей.
Размер по диагонали (обычно от 14'до 2 Г).
Цветность (цветные или монохромные).
Размер зерна (обычно от 0,24 до 0,31 мм).
Частота кадров (обычно от 50 до 100 Гц),
Видеосигнал (цифровой или аналоговый).
Прочие характеристики (функции управления растром, система энергосбережения, защита от излучения, вес, габариты, потребляемая мощность).
Размер монитора связан с разрешением. Разрешение выражается в количестве точек (пикселов) по горизонтали и по вертикали отображаемого изображения. Например, если говорят, что монитор имеет разрешение 640 х 480 - это означает, что на экране можно целиком разместить изображение, состоящее из 640 х 480 - 307 200 точек. Возможность использования конкретного разрешения зависит от различных факторов, среди которых в первую очередь следует отметить размер по диагонали и размер точки самого монитора, характеристики видеокарты и объем доступной видеопамяти, которая ограничивает число отображаемых цветов. Максимальная разрешающая способность - одна из основных характеристик монитора. Чем больше разрешение, тем больше информации умещается на экране.
На современных мониторах используются такие размеры графической сетки:
• 640 х 480
• 1024 х 768
• 1280 х 1024
Для работы с компьютерными рисунками подойдёт монитор с диагональю 15", но профессионалы используют мониторы с диагоналями 17", 19", 21" и даже больше.
Важной характеристикой также является частота регенерации экрана. Этот параметр определяет частоту обновления (перерисовывания) изображения на экране. Частота регенерации измеряется в Гц (Герцах, Hz). У мониторов на основе ЭЛТ время свечения люминофорных элементов очень мало, поэтому электронный луч должен проходить через каждый элемент люминофорного слоя достаточно часто, чтобы не было заметно мерцания изображения. Если частота такого обхода экрана становится меньше 70 Гц, то инерционности зрения будет недостаточно для того, чтобы изображение не мерцало. Чем выше частота регенерации, тем более устойчивым выглядит изображение на экране. Мерцание изображения приводит к утомлению глаз, головным болям и даже к ухудшению зрения. Заметим, что чем больше экран монитора, тем более заметно мерцание, особенно периферийным зрением, так как угол обзора изображения увеличивается. Значение частоты регенерации зависит от используемого разрешения, от электрических параметров монитора и от возможностей видеоадаптера. Минимально безопасной частотой кадров считается 75 Гц. Мониторы бывают с чересстрочной разверткой и построчной разверткой. Чересстрочные и построчные развертки - два способа регенерации изображения на экране монитора. Монитор с чересстрочной разверткой регенерирует изображение на экране за два прохода электронного луча. Первый проход воспроизводит нечетные строки, а второй - четные. Монитор с построчной разверткой воспроизводит полное изображение на экране за один проход электронного луча. Мониторы с построчной разверткой обладают лучшими характеристиками, так как они воспроизводят изображение на экране быстрее и без мерцания. Они также имеют более резкие и четкие изображения. Все мониторы высокого качества отображают изображения во всех режимах разрешения с построчной разверткой, Мониторы, имеющие «штатные» режимы с чересстрочной разверткой, ни одной из ведущих фирм-производителей не выпускаются.
Аналоговые мониторы
Электронно-лучевая трубка мониторов данного типа управляется аналоговыми сигналами, поступающими от видеоадаптера. Принцип работы электронно-лучевой трубки монитора такой же, как у телевизионной трубки. Аналоговые мониторы способны поддерживать разрешение стандарта VGA (640 х 480 пикселов) и выше.
Все современные аналоговые мониторы условно можно разделить на следующие типы:
• традиционные с фиксированной частотой развертки,
• с несколькими фиксированными частотами и многочастотные (мулътичастотные).
Эти мониторы обладают способностью настраиваться на произвольные значения частот синхронизации из некоторого заданного диапазона, например 30-64 кГц для строчной и 50-100 Гц для кадровой развертки.
Достоинства аналогового монитора:
• хорошее качество изображения;
• сравнительно невысокая цена.
Недостатки аналогового монитора:
• вредное воздействие на здоровье человека.
Жидкокристаллические дисплеи
Экран жидкокристаллического дисплея (ЖКД) состоит из двух стеклянных пластин, между которыми находится масса, содержащая жидкие кристаллы. Кристаллы изменяют свои оптические свойства в зависимости от прилагаемого электрического заряда. Жидкие кристаллы сами не светятся, поэтому ЖКД нуждаются в подсветке или во внешнем освещении. Основным достоинством ЖКД являются их габариты (экран плоский, толщиной 5-6 см). К недостаткам можно отнести низкое быстродействие при изменении изображения на экране, что особенно заметно при перемещении курсора мыши, а также зависимость резкости и яркости изображения от угла зрения.
Газоплазменные мониторы
Газоплазменные мониторы состоят из двух пластин, между которыми находится газовая смесь, светящаяся под воздействием электрических импульсов. Такие мониторы не имеют недостатков, присущих ЖКД, однако их нельзя использовать в переносных компьютерах с аккумуляторным и батарейным питанием, так как они потребляют большой ток.
LCD-панель (жидкокристаллическая индикаторная панель), как правило, работает во взаимодействии с эпидиаскопическим проектором или диапроектором. Панель помещается поверх проектора, который проецирует компьютерное изображение на экран. В последние годы качество изображения LCD-панелей значительно улучшилось. Панели более старых моделей не могли обеспечить резкое и чистое цветное изображение.
Проектор. Если вы создаете мультимедиа-презентацию и не хотите быть связанным возможностями эпидиаскопического проектора, то есть вариант с использованием проектора на жидких кристаллах (ЖК-проектор). Это самодостаточное устройство, способное проецировать не только видео-, но и аудиоданные из компьютера. ЖК-проекторы обычно стоят от 2000 до 6000$. Производителями таких проекторов являются фирмы Focus Systems и Proxima.
Внешний декодер. Если вам необходимо провести презентацию на телевизионном мониторе, то стоимость подключения будет намного ниже, чем покупка LCD-панели или проектора. Целый ряд фирм-производителей изготавливают декодирующие сканирующие преобразователи (encoding scan converters), которые преобразуют сигнал вашего компьютера в сигнал, подходящий для чтения обычным телевизором. Более подробную информацию можно найти в рекламных каталогах торгующих компьютерным оборудованием фирм.
Функции графического ускорителя
Графический ускоритель нужен для ускорения прорисовки экрана. Это связано с тем, что при работе с изображениями (особенно в векторной графике) перерисовка занимает значительную часть ресурсов компьютера. Когда речь идет о работе с двухмерной графикой, то практически любые графические карты последнего поколения, а также и многие карты, созданные уже довольно давно, демонстрируют превосходные эксплуатационные показатели и прекрасную работу. Карты типа ATI Rage Pro, Intel i740 и nVidia Riva 128 - это вполне приемлемый выбор для тех, кто планирует пользоваться Adobe Photoshop или CorelDRAW. Данный вывод обусловлен тем, что все эти карты имеют 8-64 Мбайт оперативной видеопамяти, которой вполне достаточно для обработки большого количества цветов с высокой разрешающей способностью. Можно посоветовать самое последнее поколение графических карт и ускорителей, которое включает 3Dfx Voodoo Banshee и VoodooS, nVidia Riva TNT и TNT2, ATI Rage 128, Matrox G200 и G400 или S3 Savage и Savage 4. Они будут также нуждаться по крайней мере в 16 Мбайт оперативной видеопамяти, чтобы обрабатывать текстурные файлы с нормальным уровнем качества и достаточно быстро. У каждого компьютерного фотохудожника могут быть свои собственные предпочтения. Например, чип SDfx's 3-D-only Voodoo2 имеет ярко выраженную специализацию для работы с трехмерной графикой высокого уровня. Поэтому его могут использовать те пользователи, которые работают с AutoCAD 2000 и 3D-MAX.
9.5 Видеобластеры
Видеобластер (видеокарта ввода-вывода) - это устройство, предназначенное для ввода в персональный компьютер видеоинформации, а также для вывода из компьютера видеоинформации на внешние устройства (например, видеомагнитофон). Видеобластер не заменяет видеоадаптер, служащий для вывода информации на экран монитора, а устанавливается дополнительно.
Частным случаем видеобластеров являются TV-конвертеры. Наиболее простые и дешевые TV-конвертеры, или платы видеовывода, подключаются между видеоадаптером и монитором.
9.6 Периферия
Периферийные устройства служат для расширения функциональных возможностей персонального компьютера, удобства управления им и представления информации в различных формах в процессе ее обработки, хранения и отображения. К периферийным устройствам относятся: принтеры, модемы, сканеры, CD-ROM, магнитооптические диски, стримеры, графические планшеты, плоттеры, устройства мультимедиа (видеобластеры, звуковые платы и акустические системы), трекболы, джойстики и другие желательные, но не обязательные устройства. Подсоединение периферийных устройств к компьютеру производится через устройства сопряжения (адаптеры), на которых реализованы стандартные или специальные интерфейсы. Обычно адаптеры выполняются в виде отдельных плат ввода/вывода, вставляемых в разъемы расширения на системной плате. Интерфейс определяет тип и вид соединителя (вилка или розетка, male или female), протоколы обмена, уровни и длительности электрических сигналов.
Последовательный и параллельный интерфейсы называют также портами ввода-вывода. Последовательные порты используются для подключения мыши, удаленного принтера, внешнего модема, плоттера и т. п. Параллельные порты используются для подключения принтера, сканера, плоттера.
9.6.1 Принтеры
Кроме мониторов к устройствам вывода графических данных относятся и принтеры. Принтер (printer), или печатающее устройство, предназначен для вывода информации на бумагу. Все современные принтеры могут выводить текстовую информацию, а также рисунки и другие изображения. В настоящее время известно несколько тысяч моделей принтеров, которые могут быть разделены на четыре основных типа - матричные, струйные, лазерные и светодиодные.
Матричные принтеры
До недавнего времени матричные (игольчатые) принтеры являлись основным стандартным устройством вывода информации для персональных компьютеров, поскольку струйные принтеры работали еще неудовлетворительно, а цена лазерных была достаточно высока. В настоящее время матричные принтеры применяются все реже. Достоинства этих принтеров: удовлетворительная скорость печати и универсальность, заключающаяся в способности работать с любой бумагой, а также низкая стоимость печати. Недостаток: низкое качество печатной продукции, особенно графической. Другой недостаток: игольчатый принтер - механическое устройство, а работа механических узлов всегда сопровождается шумом.
Производительность работы матричных принтеров оценивают но количеству печатаемых знаков в секунду (cps - characters per second). Обычными режимами работы матричных принтеров являются:
• draft - режим черновой печати;
• normal - режим обычной печати;
• NLQ (Near Letter Quality) - обеспечивает качество печати, близкое к качеству пишущей машинки.
Матричный принтер формирует знаки несколькими иголками, расположенными в головке принтера. Бумага втягивается с помощью вала, а между бумагой и головкой принтера располагается красящая лента. При ударе иголки но этой ленте на бумаге остается закрашенная точка. Иголки, расположенные внутри головки, обычно активизируются электромагнитным методом. Головка движется по горизонтальной направляющей и управляется шаговым двигателем.
Так как напечатанные знаки внешне представляют собой матрицу, а воспроизводит эту матрицу игольчатый принтер, то часто его называют матричным принтером. Среди матричных принтеров существуют 9-игольчатые и 24-игольчатые. В головке 9-игольчатого принтера находятся 9 иголок, которые, как правило, располагаются вертикально в один ряд. Благодаря горизонтальному движению головки принтера и активизации отдельных иголок напечатанный знак образует как бы матрицу, причем отдельные буквы, цифры и знаки «заложены» внутри принтера в виде бинарных кодов.
В 24-игольчатом принтере используется технология последовательного расположения иголок в два ряда по 12 штук. Вследствие того что иголки в соседних рядах сдвинуты по вертикали, точки на распечатке перекрываются таким образом, что их невозможно различить. Имеется возможность перемещения головки дважды по одной и той же строке, чтобы знаки пропечатывались еще раз с небольшим смещением. Такое качество печати обозначают как LQ (Letter Quality - машинописное качество), в этом режиме скорость печати уменьшается незначительно, так как головка печатает при движении слева направо и справа налево. Изготовители обычно указывают теоретическую скорость печати, то есть максимально возможную скорость чернового (draft) режима. При этом качество печати не играет роли. LQ-печать у игольчатых принтеров длится дольше.
Режим печати графики является самым медленным. Это связано с тем, что в данном случае набор знаков не читается из внутренней памяти (ROM) принтера, а рассчитывается для каждой печатаемой точки. Игольчатые принтеры оборудованы внутренней памятью (буфером) до 64 Кбайт и более, который принимает данные от персонального компьютера.
Струйные принтеры
В струйных принтерах изображение формируется микроскопическими каплями специальных чернил, вылетающих на бумагу через маленькие отверстия. В качестве элементов, выталкивающих струи чернил, используются пьезокристаллы. В основе их работы лежит эффект расширения под действием электричества. По сравнению с матричными принтерами этот способ печати обеспечивает лучшее качество печати и более высокую производительность. К тому же он очень удобен для реализации цветной печати.
Цветное изображение формируется с помощью использования (наложения друг на друга) четырех основных цветов. Уровень шума струйных принтеров значительно ниже, чем игольчатых, поскольку его источником является только двигатель, управляющий перемещением печатающей головки.
При черновой печати скорость струйного принтера значительно выше, чем игольчатого. Скорость печати в режиме LQ составляет 3-4 (до 10) страницы в минуту. Качество печати зависит от количества сопел в печатающей головке - чем их больше, тем выше качество. Большое значение имеют качество и толщина бумаги. Для струйных принтеров выпускается специальная бумага, но можно печатать и на обычной бумаге плотностью от 60 до 135 r/м2. В некоторых моделях для быстрого высыхания чернил применяется подогрев бумаги. Разрешение струйных принтеров при печати графики составляет от 300 х 300 до 720 х 720 dpi. Основные недостатки струйного принтера - большая стоимость расходных материалов и возможность засыхания чернил внутри сопла, что приводит к необходимости замены печатающей головки.
Лазерные и светодиодные принтеры
Лазерные принтеры обеспечивают в настоящее время наилучшее качество печати. В них для печати используются лазерный луч, управляемый компьютером. В лазерном принтере имеется валик, покрытый полупроводниковым веществом, которое электризуется от попадания лазерного света. Луч при помощи поворотного зеркала направляется в то место валика, где должно быть изображение. Это место электризуется и к нему «прилипают» мельчайшие частицы сухой краски, которая находится в контейнере под валиком. После этого валик прокатывается по листу бумаги и краска переходит на бумагу. Для закрепления на бумаге красящего порошка ее пропускают через нагревательный элемент, что приводит к спеканию краски.
К основным параметрам лазерных принтеров относятся:
• разрешающая способность, dpi (dots per inch - точек на дюйм);
• производительность (страниц в минуту);
• формат используемой бумаги;
• объем собственной оперативной памяти.
Стоимость цветного лазерного принтера значительно выше, чем черно-белого, а скорость печати - ниже. Лазерные принтеры со средними возможностями печатают 4-8 страниц в минуту. Высокопроизводительные сетевые лазерные принтеры могут печатать до 48 и более страниц в минуту. Печать сложных графических изображений занимает больше времени.
Разрешение по вертикали соответствует шагу барабана и составляет от 1/300 до 1/600 дюйма. Разрешение по горизонтали определяется точностью наведения лазерного луча и количеством точек в строке и составляет, как правило, от 1/300 до 1/1200 дюйма.
Лазерный принтер обрабатывает целые страницы, что связано с большим количеством вычислений. Минимальный объем памяти лазерного принтера не менее 1 Мбайт. Наиболее часто используется память от 4 до 16 Мбайт. Цветные принтеры требуют для работы еще большей памяти.
Память лазерного принтера может быть увеличена путем установки специальных карт с DRAM или SIMM модулями. Большинство лазерных принтеров могут печатать на бумаге формата А4, реже - A3. Некоторые принтеры могут печатать на обеих сторонах листа, но они стоят существенно дороже.
В светодиодных принтерах вместо лазера имеется полоса, состоящая из большого количества светодиодов, свет которых электризует полупроводниковый барабан. Все остальное происходит так же, как в лазерном принтере. Светодиоды - это полупроводниковые элементы, которые излучают свет при подаче на них напряжения. Разрешающая способность как светодиодных, так и лазерных принтеров находится в диапазоне от 300 до 1200 точек на дюйм.
9.6.2 Имиджсеттеры
Фотонаборные машины с цифровым формированием изображения, или имиджсеттеры, производят вывод на печать с высоким разрешением - от 1000 до 3000 точек на дюйм (dpi). Для черно-белой издательской продукции имиджсеттеры обеспечивают вывод печати и графики с максимальным количеством оттенков серого - 256. Для цветного вывода имиджсеттеры создают четыре пленочных негатива, каждый из которых передает свой цвет (C+M+Y+K). Контрольные оттиски могут быть выведены с негативов, при этом полученные цвета будут полностью соответствовать тем, что выйдут из типографии в конечном варианте. После того как процесс получения пробного оттиска завершен, негативы пересылают на коммерческий принтер, на котором создаются печатные формы с негативов.
9.6.3 Плоттеры
Плоттер (plotter), или графопостроитель, - это устройство для вывода различных чертежей, географических карт, плакатов и других изображений на бумагу большого формата. Плоттеры бывают монохромными и цветными. По технологии нанесения изображения плоттеры делятся на перьевые и струйные.
Большинство плоттеров имеют пишущий узел перьевого типа (pen-plotter). Они используют специальные фломастеры или ручки с возможностью их автоматической замены.
Существуют разновидности плоттеров с пишущим узлом струйного типа, а также использующие эффект притягивания частиц краски электростатическим зарядом. Большинство струйных аппаратов обеспечивают печать графических файлов формата TIFF, BMP, PCX. Стандартным языком управления для плоттеров является HP-GL (Hewlett-Packard Grafics Language), а типовым интерфейсом - последовательный RS232 (скорость передачи данных - до 38,4 Кбайт/с). На базе перьевых плоттеров было создано еще одно периферийное устройство - cutter, в котором пишущий узел заменен на режущий инструмент. Такое устройство использует специальную полимерную пленку или бумагу на самоклеющейся основе и применяется для создания рекламно-информационной продукции (ярлыки, наклейки и т. п.).
9.7 Модемы
Модем (модулятор-демодулятор, modem) - устройство для подключения компьютера к глобальной компьютерной сети или для связи с другими компьютерами по телефонной линии. Модем состоит из двух частей - передатчика (модулятора) и приемника (демодулятора). Модулятор передает в низкочастотную телефонную сеть цифровую информацию от компьютера в виде аналоговых сигналов звукового диапазона частот. Демодулятор преобразует эти аналоговые сигналы л цифровые значения, которые может интерпретировать компьютер. Таким образом, модем преобразует аналоговый телефонный сигнал в цифровой компьютерный и наоборот.
Основной характеристикой модема является его скорость работы или скорость передачи данных. Для работы в Интернете рекомендуются модемы со скоростью, на которой работает ваш провайдер (обычно это 56 Кбит в секунду). Модемы бывают внутренними (плата, вставляемая в гнездо расширения) и внешними, подключаемыми к одному из портов компьютера.
9.8 Звуковые карты
Звуковая карта вставляется в свободный слот расширения компьютера и позволяет осуществлять запись, воспроизведение и синтез звука. Встроенный синтезатор помогает воспроизводить сложные звуковые эффекты, не загружая при этом центральный процессор. К таким картам обычно можно подключить микрофон, колонки, наушники, джойстик и привод компакт-диска. При записи звука в PC звуковая карта осуществляет преобразование непрерывного электрического аналогового сигнала, несущего информацию о звуке, в двоичный цифровой код. Преобразование аналогового сигнала в цифровую форму осуществляется с помощью аналого-цифрового преобразователя, основными характеристиками которого являются частота и разрядность квантования:
Частота квантования показывает, сколько раз в секунду происходит измерение сигнала. Обычно она лежит в пределах от 4 до 48 кГц.
Разрядность определяет точность преобразования. Так, например, 8-разрядные звуковые карты могут измерять сигнал с точностью 1/256 от его максимальной величины. Наибольшее распространение получили 16-разрядные звуковые карты.
На звуковой карте размещены два принципиально различных устройства воспроизведения звука - синтезатор и плеер:
• плеер воспроизводит звук аналогично цифровой аудиотехнике, используя обратное преобразование цифрового кода в аналоговый сигнал с помощью цифро-аналогового преобразователя;
• синтезатор служит для синтеза звуков и может использовать либо FM-синтез, либо WT-синтез. Характеристики синтезатора можно определить по тому, какому стандарту соответствует звуковая карта: GM, GS или XG.
9.9 Сканеры
Сканер (scaner) - устройство для копирования графической и текстовой информации и ввода ее в компьютер. Персональные сканеры бывают трех типов - ручные, планшетные и барабанные. Основными элементами сканера являются полупроводниковый лазер и полупроводниковый фотоприемник. Когда сканер ведут по тексту или изображению, лазерный луч пробегает по листу, сканирует его и отражает на светочувствительный полупроводниковый элемент. Фотоэлемент преобразует световой сигнал в электрический, который затем по шине передается в компьютер. В нем сигнал преобразуется в цифровую форму, содержащую информацию о координатах и цвете каждого пиксела изображения. И наконец, на последней стадии полученная об изображении информация записывается на диск в виде файла.
Основным элементом сканера является массив фоточувствительных кремниевых ячеек (приборов с зарядовой связью, ПЗС), выполняющих функции датчиков для измерения интенсивности светового потока, отраженного от сканируемого оригинала или прошедшего сквозь него. С помощью аналого-цифрового преобразователя результаты измерений подразделяются на яркостные (цветовые) уровни (например, 256 уровней для каждого из основных цветов при использовании сканера с глубиной цвета 24 бит) и сохраняются в виде последовательности двоичных символов, которые вы впоследствии можете рассматривать и преобразовывать с помощью вашего компьютера.
Цветные сканеры работают по принципу сложения цветов, при котором цветное изображение создается путем смешения трех цветов: красного, зеленого и синего. Технически это реализуется одним из двух способов:
• в процессе сканирования цветной оригинал освещается белым цветом, а отраженный свет попадает на ПЗС-матрицу через систему специальных фильтров, разлагающих его на три компонента: красный, зеленый, синий, каждый из которых улавливается своим набором фотоэлементов;
• цветной оригинал освещается не белым светом, а последовательно красным, зеленым и синим, для каждого из которых осуществляется своя процедура сканирования. Полученная таким образом информация предварительно обрабатывается и передается в компьютер.
Планшетные сканеры
Планшетные сканеры предназначены для ввода графической информации с прозрачного или непрозрачного листового материала, Принцип действия этих устройств состоит в том, что луч света, отраженный от поверхности материала (или прошедший сквозь прозрачный материал), фиксируется специальными элементами, называемыми приборами с зарядовой связью (ПЗС). Обычно элементы ПЗС конструктивно оформляют в виде линейки, располагаемой по ширине исходного материала. Перемещение линейки относительно листа бумаги выполняется механическим протягиванием линейки при неподвижной установке листа или протягиванием листа при неподвижной установке линейки. Под крышку такого сканера «лицом» на стекло может закладываться не только отдельный лист или страница, а целая развернутая книга или журнал. Этим планшетные сканеры напоминают копировальные аппараты.
Рис. 9.12. Планшетный и ручной сканеры
Основными эксплуатационными параметрами планшетных сканеров являются:
• разрешающая способность;
• производительность сканера;
• динамический диапазон;
• максимальный размер сканируемого материала.
Значение разрешающей способности зависит от плотности размещения ячеек ПЗС на линейке, а также от точности механического позиционирования линейки при сканировании. Типичный показатель для офисного применения - 600-1200 dpi (dpi - dots per inch - количество точек на дюйм). Для профессионального применения характерны показатели 1200-3000 dpi.
Производительность сканера характеризуется продолжительностью сканирования листа бумаги стандартного формата и зависит как от совершенства механической части устройства, так и от типа интерфейса, использованного для сопряжения с компьютером.
Динамический диапазон определяется логарифмом отношения яркости наиболее светлых участков изображения к яркости наиболее темных участков. Типовой показатель для сканеров офисного применения составляет 1,8-2,0, а для сканеров профессионального применения - от 2,5 (для непрозрачных материалов) до 3,5 (для прозрачных материалов).
Ручные сканеры
Ручные сканеры - это относительно недорогие устройства небольшого размера. Они удобны для оперативного сканирования изображений из книг и журналов. Ширина полосы сканирования обычно не превышает 105 мм, стандартное разрешение 300-400 dpi. К недостаткам ручного сканера можно отнести зависимость качества сканирования от навыков пользователя и невозможность сканирования относительно больших изображений целиком.
Барабанные сканеры
В барабанных сканерах исходный материал закрепляется на цилиндрической поверхности барабана, вращающегося с высокой скоростью. Устройства этого типа обеспечивают наивысшее разрешение в диапазоне 2400-5000 dpi. Это связано с использованием в них в качестве чувствительных элементов фотоэлектронных умножителей (ФЭУ вместо ПЗС). В настоящее время барабанные сканеры используются только в типографском производстве.
Сканирование слайдов (слайд-адаптер)
Существуют специальные сканеры, предназначенные для оцифровки слайдов и негативов. Основными производителями таких устройств являются компании Nicon и Polaroid. Слайдовые сканеры намного дороже планшетных или ручных сканеров. Поэтому их применение оправдано только при необходимости получения большого количества снимков.
Стандарт TWAIN
Этот стандарт разработан для осуществления обмена данными между прикладной программой и внешним устройством (в частности, сканером). Он привлекателен тем, что любая прикладная программа, поддерживающая TWAIN, будет работать с любым TWAIN-совместимым сканером независимо от его конструкции, типа используемого аппаратного интерфейса, параметров сканирования и прочего. Поэтому производитель TWAIN-совместимого сканера может не беспокоиться о программной поддержке своего сканера. Главная его задача - качественно написать TWAIN-совместимый драйвер сканера. Сделать это не так сложно, поскольку TWAIN - открытый и качественно документированный стандарт.
В настоящее время стандарт TWAIN поддерживается большинством современных программных средств, включая:
• популярные графические пакеты, такие как Adobe PageMaker, CorelDRAW, Adobe Photoshop, PhotoStyler, PicturePubliher и т. п.;
• программы оптического распознавания символов;
• факс-приложения (так как некоторые сканеры могут выполнять еще и функции копировального аппарата и факса).
9.10. Цифровые фотоаппараты и фотокамеры
Цифровая фотокамера - это еще один тип устройства оцифровывания графики и ввода изображений в ПК. В отличие от обычного фотоаппарата в его цифровом аналоге изображение проецируется не на фотопленку, а на полупроводниковую светочувствительную матрицу из ПЗС-ячеек. После этого изображение переводится в цифровую форму и записывается в память фотокамеры. Главным достоинством и основным преимуществом цифровой фотографии является оперативность. Снятый вами кадр буквально через минуту может быть помещен в компьютер и отправлен через Интернет на край света, что очень важно для событийных съемок. Главным же недостатком цифровых фотоаппаратов (с точки зрения фотографа-профессионала) является сложность получения отпечатка большого размера на обычной бумаге.
Каков в самом упрощенном виде принцип действия цифровой камеры? Свет, прошедший через объектив, попадает на светочувствительную матрицу (занимающую место пленки), представляющую собой совокупность сенсоров - ПЗС (CCD) или КМОП (CMOS), которые, в свою очередь, и выполняют оцифровку изображения. Светочувствительная матрица (сенсоры) является одним из главных (и самых дорогих) компонентов цифровой камеры. Качество последующей картинки во многом определяется характеристиками сенсоров. Наиболее простые на сегодняшний момент цифровые камеры дают разрешение 640 х 480 пикселов. Более «продвинутые» - 800 х 600. Кроме того, есть еще класс гибридных камер, представляющих собой взятые за основу известные пленочные прототипы с пристегнутой на месте задней крышки матрицей. Как правило, это кодаковские приставки к камерам Nikon и Canon. В результате мы имеем камеру, совместимую со всей данной системой (включая оптику и аксессуары), но, тем не менее, являющуюся цифровой. Такие камеры имеют разрешение порядка 1500 х 1200 пикселов.
После того как мы получили фотокартинку, ее необходимо записать в память. Для этого чаще всего используются форматы JPEG или TIFF. Для фотографа не столько важен формат записи, сколько возможности разных режимов сжатия (естественно, с потерей качества), а также количество памяти в камере. Указанные форматы являются наиболее распространенными в компьютерном мире, а стало быть, обычно совместимы со множеством программ. Что касается памяти, то она может быть встроенной (например, жесткий диск в 1 или 4 Гб ) или съемной. Чем больше у вас с собой «памяти», тем большее количество кадров вы можете сиять и сохранить «без перезарядки» (то есть без перекачивания изображений из камеры в компьютер).
Еще одним из достоинств цифровых камер является наличие жидкокристаллического дисплея (экрана), на котором можно посмотреть то, что вы уже сняли, а в некоторых случаях использовать его в качестве видоискателя. Не понравившуюся вам картинку вы можете тут же стереть, освободив часть памяти.
Большое количество энергопотребляющих частей камеры приводит к быстрому истощению батарей или аккумуляторов, но за все надо платить.
Ниже приведена классификация цифровых камер.
Экономичные. Разрешение: в пределах 480 х 640 пикселов. Демонстрируют хорошее качество при размере фотографии примерно до 5 х 7 см.
Любительские. Разрешение: в пределах 600 х 800 пикселов. Хорошее качество при размере фотографии примерно до 10 х 15 см.
Полупрофессиональные. Разрешение: от 1280 х 960 пикселов. Хорошее качество при размере фотографии примерно до 20 х 30 см.
Профессиональные. Разрешение: от 1500 х 1200 пикселов и выше. Хорошее качество при размере фотографии примерно до 30 х 45 см.
Литература
1. М. Н. Петров, В. П. Молочков. Компьютерная графика. Учебник. Серия: Учебник для вузов. - СПб.:Питер, 2004 г.
2. Марк Кэмпбелл. Компьютерная графика. The Complete Idiot's Guide ti Computer Illustration. Серия: The Complete Idiot's Guide. Периодическое издание. -М.: АСТ, 2007 г.
3. П. Я. Пантюхин, А. В. Быков, А. В. Репинская. Компьютерная графика. В 2 частях. Серия: Профессиональное образование. - M.: Инфра-М, 2007 г.
4. В. П. Каминский, Е. И. Иващенко. Инженерная и компьютерная графика для строителей. Серия: Высшее образование. - М.: Феникс, 2008 г.
5. Н. В. Максимов, И. И. Попов, Т. Л. Партыка. Архитектура ЭВМ и вычислительные системы. Серия: Профессиональное образование. - - М.: Форум, 2008 г.
Шикин Т.В., Борисков А.В. "Компьютерная графика: динамика и реалистические изображения". - М.: "Диалог-МИФИ", 1996 г.
6. Смородинский А.В., Моисеев В.А.. "Библия ACAD 2004". – М.: "Компьютер", 2005 г.
7. Стевол К., Вильямс Н. Графический пакет 3D Studio и правила работы в нем. - М.: "Диалог-МИФИ", 2003 г.
8. Дональд Херн, М. Паулин Бейкер. Компьютерная графика и стандарт OpenGL. Computer Graphics with OpenGL. М.: Вильямс, 2005 г.
9. Алексей Поляков, Виталий Брусенцев. Методы и алгоритмы компьютерной графики в примерах на Visual C++ (+ CD-ROM). Серия: Мастер программ. СПб.: БХВ-Петербург, 2003 г.
10. В. М. Дегтярев, В. П. Затыльникова. Инженерная и компьютерная графика. Серия: Высшее профессиональное образование. - М.:
1. Академия, 2010 г.