
- •Компьютерная графика Курс лекций
- •Оглавление
- •Предисловие
- •Лекция 1. Введение
- •1.1. История компьютерной графики
- •1.2.Области применения компьютерной графики
- •1.3. Классификация графических изображений
- •1.4. Виды компьютерной графики
- •1.4.1. Растровая графика
- •1.4.2. Векторная графика
- •1.4.3. Фрактальная графика
- •Лекция 2. Аппаратная база машинной графики
- •2.1. Видеосистема персонального компьютера
- •2.2. Цвет
- •2.3. Форматы графических файлов
- •Лекция 3. Отображение геометрических объектов
- •1. Двумя точками ( а и в ).
- •Лекция 4. Аппарат проецирования
- •4.1. Аксонометрические проекции
- •4.2. Способы преобразования комплексного чертежа
- •Лекция 5. Представление объектов и их машинная генерация
- •5.1. Аффинные преобразования на плоскости
- •5.2. Растровая развертка отрезка
- •3.1 Растровая развертка отрезка
- •5.3. Алгоритм вывода окружности
- •5.4. Кривая Безье
- •5.5. Отсечение отрезка
- •5.6. Закраска области, заданной цветом границы
- •5.7. Удаление невидимых линий и поверхностей
- •Алгоритм робертса
- •Лекция 6. Фрактальная графика
- •6.1. Алгоритм построения фрактала
- •6.2. Природные фракталы
- •6.3. Геометрические фракталы
- •6.4. Алгебраические фракталы
- •6 .5. Стохастические фракталы
- •Лекция 7. Графические редакторы
- •Лекция 8. СЖатие изображений
- •8.1. Необратимое сжатие
- •8.2. Обратимое сжатие
- •8.3. Общие положения алгоритмов сжатия изображений
- •8.4. Алгоритмы архивации без потерь
- •8.5. Алгоритмы архивации с потерями
- •Литература
Лекция 7. Графические редакторы
7.1. Adobe PhotoShop
Назначение
Создание фотореалистических изображений, работа с цветными сканированными изображениями, ретуширование, цветокоррекция, коллажирование, трансформации и цветоделение и другое.
Adobe PhotoShop располагает всеми традиционными методами работы с растровыми изображениями, при этом имеет возможность работы со слоями и использует контуры.
Программа позволяет легко изменять цветовое представление документов (битовое, в градациях серого, дуплекс, индексированные цвета, RGB или CMYK).
A
dobe
PhotoShop - это программа растровой графики,
то есть любой элемент изображения
строится по точкам (пикселям).
Рис. 90. Рабочий стол
Создание нового изображения
При создании нового изображения, выбираются единицы измерения (точки, пиксели или см).
Затем выбирается разрешение, то есть чем выше разрешение тем выше качество изображения.
Если в буфере обмена есть какое-нибудь изображение, и выбрана операция "создание нового файла", то в этом случае размеры вновь создаваемого изображения и его разрешение будет соответствовать значению, которое соответствует изображению, находящемуся в буфере обмена.
Чтобы игнорировать информацию буфера обмена необходимо держать нажатой клавишу Alt.
Сохранение изображения
Для вновь созданного изображения необходимо выбрать пункт Сохранить как в меню Файл. В появившемся диалоговом окне необходимо указать папку, в которой будет сохранено изображение, и указать имя файла.
В поле Сохранить выбирается графический формат файла.
Для дальнейшей работы с многослойными изображениями следует выбрать формат PhotoShop (PSD).
При работе с офисными приложениями - MS Word, MS Excel, MS Access, MS PowerPoint можно использовать форматы PCX (занимает меньше места на диске, но не всегда корректно отображается на экране), BMP (занимает больше места на диске) или др.
Для формата JPEG (JPG) можно выбрать несколько вариантов, определяющих соотношение качество/размер.
Р
абота
со слоями
Рис. 91. Панель слоев
Изображение в PhotoShop может состоять из нескольких слоев. Слои могут быть частично или полностью прозрачными. Для работы со слоями следует выбрать палитру "слои".
Чтобы создать новый слой, нажмите кнопку с изображением листа с отогнутым углом. В появившемся диалоговом окне необходимо указать имя нового слоя (по умолчанию предлагаются имена: Слой 1, Слой 2 и т.д.). Можно установить дополнительные свойства для этого слоя: непрозрачность, режим.
Для удаления существующего слоя следует выделить этот слой, нажать левую кнопку мыши и перетащить прямоугольник на изображение мусорной корзины.
Порядок расположения слоев в "стопке" изменяется перетаскиванием. Выделите слой, нажмите левую кнопку мыши и, не отпуская ее, перетащите слой на другое место. Замечание: задний план нельзя поменять местами с другими слоями.
Изменение прозрачности слоя выполняется с помощью треугольного бегунка "непрозрачности". Можно применить дополнительные режимы отображения слоя, выбрав нужный из списка эффектов.
Пиктограмма "Глаз" - обозначает, что данный слой является видимым: он выводится в окне основного рисунка с учетом параметров слоя (режима наложения пикселей, непрозрачности и т. д.). Слой можно временно отключать. Для этого следует щелкнуть на пиктограмме "Глаз". Для включения слоя следует щелкнуть в левой колонке рядом с уменьшенным изображением слоя (появление пиктограммы глаза обозначает, что слой стал видимым). Если слоев несколько, то чтобы включить один слой и отключить все остальные следует щелкнуть на этом слое с нажатой клавишей <Alt>.
Опция Сохранить прозрачные области позволяет при редактировании слоя сохранить прозрачные области без изменения. Инструменты "Карандаш", "Кисть", " Аэрограф", "Штамп", "Заливка", "Градиент" оказывают влияние только на непрозрачные области слоя.
Опция Сгруппировать с другим слоем позволяет создавать группы, в которых один слой является маской для одного или нескольких слоев над ним. В этой группе нижний слой (он называется базовым) определяет непрозрачность и режим наложения пикселей. В группу могут входить только последовательно расположенные слои. Группа ограничивается в списке жирными линиями, слои в группе разделяются точечными линиями. Имя базового слоя группы выделяется подчеркиванием. Образовать группу можно вручную. Для этого следует нажать клавишу <Alt>, подвести курсор к разделительной линии в списке слоев, найти положение, когда курсор изменит форму, и щелкнуть на линии. Первый щелчок включает слой в группу с предыдущим, второй - исключает из группы.
Режимы наложения пикселей
При работе с выделенной областью, со слоями, а также с инструментами "Заливка", "Градиент", "Линия", "Карандаш", "Аэрограф", "Кисть", "Штамп", "Палец", "Фокус" можно использовать режимы взаимодействия (наложения или замены) пикселей.
В процессе участвуют три составляющих: исходный цвет (цвет пикселей основного рисунка), вносимый цвет (цвет пикселей накладываемой выделенной области, вносимых инструментами или пикселей другого слоя) и результирующий цвет (цвет пикселей в результате наложения исходных и вносимых пикселей).
При этом оказывают влияние установки цветового допуска и непрозрачности.
Рис. 92. Панель инструментов
Список режимов представлен на многих диалоговых окнах, например, на палитрах параметров.
Н
ормальный
режим -
полностью заменяет исходный цвет на
вносимый.
Растворение - делает замену исходного цвета на вносимый со случайным распределением и учетом прозрачности.
Подложка - доступна только при работе со слоями, имеющими прозрачные ткани, которые полностью заменяются пикселами вносимого цвета.
Очистка - доступна при работе со слоями. Исходящие цвета заменяются прозрачными при использовании инструментов "линия" и "заливка".
Умножение - перемножает исходные и вносимые цвета. Результирующий цвет всегда темнее исходящего. И если вносится черный цвет, результат черный. Если белый, то изменений нет.
Рис.93
Осветление – деление исходящего и вносимого цветов, результат – светлее исходящего. Если вносится белый цвет – результат белый, если черный – ничего не произойдет.
Перекрытие – усиливает или ослабевает цвет в зависимости от исходного цвета. Вносимый цвет не заменяется, а накладывается на исходный, при этом соотношение цветов и теней сохраняется.
Мягкий свет – усиливает или ослабляет свет (наполняет освещение рассеянным светом). Если вносимый свет светлее 50% серого, то исходящий цвет разбеливается, если вносимый цвет темнее 50% серого, то цвет затемняется.
Жесткий свет – усиливает или ослабляет цвет, аналогично мягкому свету, но наполняет освещение резким светом.
Замена темным – заменяет вносимым цветом исходные цвета, которые светлее вносимого. Таким образом, цвета темнее вносимого остаются без изменений.
Замена светлым – заменяет вносимым цветом исходные цвета, которые темнее вносимого. Точки цвета светлее вносимого остаются без изменения.
Разница – задает результирующий цвет, яркость которого равна разнице в яркости исходных и вносимых цветов.
Цветовой тон – результирующий цвет с цветовым тоном вносимого тона, но значение яркости и насыщенности исходного цвета.
Цветность – в этом случае результирующий цвет с яркостью исходного, но с цветовым тоном и насыщенностью вносимого.
Насыщенность – задает результирующий цвет с насыщенностью вносимого, но с оттенком и яркостью исходного. Для серой шкалы несущественно.
Яркость – задает результирующий цвет с цветовым тоном и насыщенностью исходного цвета, но с яркостью вносимого.
В программе имеется много всевозможных встроенных фильтров и эффектов, обеспечивающих изменение резкости, стилистики, степени деформации и других характеристик изображений. Кроме того, существует возможность подключения фильтров, разработанных другими фирмами.
7.2. GIMP
Рис.94. Рабочий стол
GNU Image Manipulation Program или GIMP (Гимп) — растровый графический редактор, программа для создания и обработки растровой графики. Частично поддерживается векторная графика. Проект основан в 1995 году Спенсером Кимбеллом и Питером Маттисом как дипломный проект, в настоящий момент поддерживается группой добровольцев. Распространяется на условиях GNU General Public License.
Типичные задачи, которые можно решать при помощи GIMP, включают в себя создание графики и логотипов, масштабирование и кадрирование фотографий, раскраска, комбинирование изображений с использованием слоёв, ретуширование и преобразования изображений в различные форматы.
В течение продолжительного времени GIMP создавался с учётом пожеланий пользователей, но по большей части согласно предпочтениям разработчиков и без привлечения экспертов по эргономике. Целостное видение проекта отсутствовало как факт. Чтобы решить накопившиеся в результате этого проблемы, был предпринят ряд мер.
На конференции Libre Graphics Meeting в марте 2006 года состоялась первая встреча представителей OpenUsability и команды разработчиков GIMP, в ходе которой было определено видение GIMP как продукта для конечных пользователей:
GIMP является свободным ПО;
GIMP является высококачественным приложением для фоторетуши и позволяет создание оригинальных изображений;
GIMP является высококачественным приложением для создания экранной и веб-графики;
GIMP является платформой для создания мощных и современных алгоритмов обработки графики учёными и дизайнерами;
GIMP позволяет автоматизировать выполнение повторяющихся действий;
GIMP легко расширяем за счёт простой установки дополнений.
Эти тезисы определяют дальнейшее развитие GIMP.
Работа с фотографиями
В GIMP присутствует достаточно неплохой набор инструментов цветокоррекции:
кривые;
уровни;
микшер каналов;
постеризация;
тон-насыщенность;
баланс цветов;
яркость-контраст;
обесцвечивание.
При помощи фильтров, инструментов, масок и слоёв с разными типами наложения (всего 22) можно:
выравнивать заваленный горизонт;
убирать искажения, вносимые оптикой;
корректировать перспективу;
выполнять клонирование объектов с учётом перспективы;
кадрировать фотографии;
удалять дефекты вроде пыли на матрице (штамп, лечебная кисть);
имитировать использование различных цветофильтров;
«вытаскивать» потерянную детализацию в тенях;
многое другое.
Рисование
несколько рисующих инструментов;
свободно масштабируемые кисти;
поддержка графических планшетов;
Экранные фильтры
Дополнительные возможности по коррекции изображений на протяжении всей работы реализованы в виде экранных фильтров. К ним относятся:
имитация разных типов дальтонизма (протанопия, дейтеронопия, тританопия);
гамма-коррекция;
коррекция контраста;
управление цветом.
Настраиваемый интерфейс
плавающие палитры легко группируются и перегруппируются;
возможна полная перенастройка клавиатурных комбинаций, действий мыши, а также устройств ввода вроде Griffin Powermate;
любое меню можно превратить в свободно перемещаемое окно (GNU/Linux/UNIX).
7.3. Adobe Illustrator
Р
ис.
95. Рабочий стол
Adobe Illustrator - программа для работы с векторной графикой. Эта программа разработана той же фирмой, что и программы PhotoShop и PageMaker. Поэтому существует тесная связь с этими программами. Illustrator позволяет редактировать и экспортировать файлы PDF, имеет улучшенные средства управления цветами и поддерживает ColorSync для Mac и Kodak Digital Science CMS для Windows.
В 7-ю версию встроена поддержка цветоделения. В программе порядка 50 фильтров. Фильтры позволяют создать спецэффекты и имитировать различные манеры художников. В этой программе используются свободно компонуемые палитры. Палитра Gradient создает линейные или радиальные переходы двумя или несколькими цветами.
Существуют следующие стандартные фигуры: звезда, спираль, многоугольник.
Кроме того, палитру инструментов можно расширить за счет инструментов, созданных другими фирмами. Возможны импорт и экспорт файлов в различных форматах (BMP, TIF и т.д.) Кроме того, возможен импорт и экспорт текстовых файлов, включая такие форматы как ASCII, RTF, Microsoft Word.
Для точного позиционирования графических объектов и текста есть вспомогательные сетки.
Можно создать вертикальный текст, по контуру, в том числе, возможность изменять масштаб и ориентацию отдельных символов, верстку текста.
Есть возможность редактирования цветов.
Существует до 200 уровней "отменить-повторить", причем реальное число ограничено только объемом памяти.
Рекомендуемая система - Pentium, 32 Мб ОЗУ, 64 Мб на жестком диске.
7.4. Corel Draw
Р
ис.
96. Рабочий стол
Рис.97
В состав пакета входит Photopaint (рис.97). Инструменты Corel Draw! Позволяют к объектам применять напрямую процедуры коррекции и эффекты.
Сейчас можно редактировать объекты по базовым узлам, или трансформировать их при помощи любого инструмента создания объекта.
Новые растровые возможности делают размещение объекта и его изображение более плавным.
Панели инструментов и горячие клавиши можно перенастроить, при этом пакет позволяет сохранять несколько конфигураций рабочего стола.
Имеется возможность обзора архивных файлов в хронологическом порядке.
Когда на экране слишком много окон, навигацию по ним можно упростить, для этого можно сложить их в виде стопки страниц, у которых будут ярлычки.
7.5. 3D Studio Max
Со времен DOS программы 3D Studio довольно конкурентоспособны. Версия 3D Studio VIZ – ориентирована в основном на проектные задачи. Часть возможностей существующих в 3D Studio MAX 1.х были исключены, но включены новые средства, существенно увеличивающие производительность, объектные привязки в стиле «AutoCAD», CAD-подобные средства работы со сплайнами, удобная работа с текстурами, совмещение объектов сцены с растровой фоновой подложкой, условий солнечного освещения, средства контроля над масштабом присваиваемых объекту текстур и материалов, поддержка файлов в формате DWG. 3D Studio Max R2 содержит все средства, что и 3D Studio VIZ плюс ряд дополнительных возможностей (всего добавлено около 1000 новых функций).
Избирательная лучевая трассировка (Selective Raytracing) – это опция сканирующего рендеринга. Она может быть присвоена отдельным объектам сцены для воспроизведения эффектов отражения, преломления и геометрически точных теней, учитывающих степень прозрачности объекта. Новый вариант включает эффект расфокусировки, связанный с удаленностью объекта.
Р
ис.
98. Трассировка лучей
Физические взаимодействия (Integrated Dynamics). Этот инструмент использует законы физики жестких взаимодействий для воспроизведения динамических взаимодействий объектов сцены без учета деформации.
NURBS – моделирование.
Р
ис.
99. NURBS-поверхность
NURBS поверхности является особым типом сплайновых поверхностей, которые позволяют весьма точно создать и анимировать плавные изгибы, характерные для тканей или кожных покровов животных. NURBS поверхности дают плавные бесшовные соединения между собой или с полигональными объектами. Чрезвычайно точно воспроизводятся при рендеринге. Очень легко управляются и анимируются.
Сложные системы частиц могут использоваться для создания эффектов языков пламени, текущей воды, пчелиного роя и т.д.
Оптические эффекты линз - с помощью этого средства можно добавлять в сцену различные свечения, вспышки и другие визуальные эффекты, связанные с горением или взрывом.
Camera Matching (совмещение камеры) - это средство позволяет расположить и выровнять камеру в сцене в соответствии с условиями натурной съемки фотоизображения или последовательности кинокадров, используется в качестве фонового изображения.
Camera Mapping - карта фронтальной проекции. Позволяет выровнять растровое изображение по видовой проекции объекта для точного выравнивания текстур или фотоизображений объектов по объектам сцены.
Макропрограммирование. MAXScript - встроенный язык, который имеет программа. Достаточно легкий синтаксис. Существует, чтобы оптимизировать часто повторяющиеся действия. Есть набор готовых макросов. Макросы позволяют управлять всеми параметрами объектов и, кроме того, обеспечивают связь с внешними источниками данных, например с таблицами Excel.
Weighted morphing - улучшенный морфинг. Позволяет использовать множество целей и таким образом создавать сложнейшие эффекты, в том числе: мимику лица персонажа. При этом используются ключи влияния, объединяющие все цели морфинга.
Рендеринг - позволяет выбирать между скоростью и качеством рендеринга. Есть 2 установки для качества: окончательная и предварительная и 3 метода для создания эффекта размытости изображения при движении: быстрый, сглаженный и зависящий от скорости. Интерактивная визуализация в реальном времени обеспечивается поддержкой технологии аппаратного ускорения Open GL и Direct 3D. Рендеринг может осуществляться и контролироваться на рабочей станции с использованием TCP/IP - протокола обмена данными.
В Video Post реальные отснятые на натуре сцены могут интегрироваться с 3-х мерными компьютерными объектами и маскированными изображениями. Поддерживаются различные типы масок, включая Alpha канал, RGB фильтры и свечение. Встроенные фильтры могут генерировать эффекты типа звездных систем или анимируемого пламени. Возможно применение видеоэффектов из Adobe Premier. Есть возможность имитации старения и потертостей. Имеется фильтр глубины резкости.
7.6. Blender
Рис. 100. Рабочий стол
Blender - пакет для создания трёхмерной компьютерной графики, включающий в себя средства моделирования, анимации, рендеринга, постобработки видео, а также создания интерактивных игр. Программа является свободным программным обеспечением и распространяется под лицензией GNU GPL.
Blender был разработан как рабочий инструмент голландской анимационной студией NeoGeo. В июне 1998 года автор Blender’а, Тон Розендаль (Ton Roosendaal), основал компанию Not a Number (NaN) с целью дальнейшего развития и сопровождения Blender. Программа распространялась по принципу shareware.
В настоящее время Blender является проектом с открытым исходным кодом и развивается при активной поддержке Blender Foundation.
Характерной особенностью пакета Blender является его небольшой размер. Установленный пакет занимает около 10 МБ. В дистрибутив не входит развёрнутая документация и большое количество демонстрационных сцен.
Функции пакета:
Поддержка разнообразных геометрических примитивов, включая полигональные модели, систему быстрого моделирования в режиме subdivision surface, кривые Безье, NURBS surfaces, metaballs, высечение полигонов и векторные шрифты.
Универсальные встроенные механизмы рендеринга и интеграция с YafRay.
Инструменты анимации, среди которых inverse kinematics, арматурная (скелетная) и сеточная деформация, ключевые кадры, нелинейная анимация, timeline, vertex weighting, constraints, динамика мягких тел включая определение коллизий формы объектов при взаимодействии, динамика жидкостей, Bullet динамика твердых тел, система волос на основе частиц и система частиц при определении коллизий объектов.
Python используется как средство создания инструментов и прототипов, системы логики в играх, как средство импорта/экспорта файлов (например COLLADA), автоматизации задач.
Основа системы нелинейного редактирования видео и работы с музыкой.
Game Blender — подпроект Blender, предоставляющий интерактивные функции, такие как определение коллизий, движок динамики и программируемая логика. Также он позволяет создавать отдельные real-time приложения начиная от архитектурной визуализации до видео игр.
Расширенные возможности
В Blender Объект (который представляет из себя сущность, взаимодействующую с окружающим миром) и его Данные (определённая форма/функции объекта) разделяемы. Отношение Объект-Данные представляется отношением m:n (термин, относящийся к теории баз данных, обозначает возможность нескольких объектов использовать одни и те же данные) и динамически связанны между собой, позволяя использовать некоторые процессы быстрого моделирования, уникальные для Blender.
Внутренняя файловая система, позволяющая хранить несколько сцен в едином файле (называемом .blend файл).
Все «.blend» файлы совместимы как с более старыми, так и с более новыми версиями Blender. Так же, все они переносимы с одной платформы на другую. И могут использоваться как средство переноса созданного ранее контента.
Blender делает резервные копии проектов во время всей работы программы, что позволяет сохранить данные при непредвиденных обстоятельствах.
Все сцены, объекты, материалы, текстуры (только собственные, не импортированные), звуки, изображения, post-production эффекты могут быть сохранены в единый «.blend» файл.
Настройки рабочей среды могут быть сохранены в «.blend» файл, благодаря чему, при загрузке файла вы получите именно то, что сохранили в него. Файл можно сохранить как «пользовательский по умолчанию», и каждый раз при запуске Blender вы будете получать необходимый набор объектов и подготовленный к работе интерфейс.
Тем не менее, внутреннее содержание «.blend» файла менее похоже на структурированное описание объектов и их взаимоотношений, и более близко к прямому дампу области памяти программы. Это делает практически невозможным преобразование «.blend» файлов в другие форматы. При этом следует заметить весьма продвинутый механизм экспорта в разнообразные форматы, такие как obj, dxf, stl, 3ds и прочие (список постепенно растет).
Интерфейс пользователя
Blender имел репутацию программы сложной для изучения. Практически каждая функция имеет соответствующее ей сочетание клавиш, и учитывая количество возможностей, предоставляемых Blender, каждая клавиша включена в более чем одно сочетание (shortcut). C тех пор как Blender стал проектом с открытым исходным кодом, были добавлены полные контекстные меню ко всем функциям, а использование инструментов сделано более логичным и гибким. Прибавим сюда дальнейшее улучшение пользовательского интерфейса с введением цветовых схем, прозрачных плавающих элементов, новой системой просмотра дерева объектов и разными мелкими изменениями.
Пользовательский интерфейс Blender’а следует следующим отличительным концепциям:
Режимы редактирования. Два основных режима Объектный режим (Object mode) и Режим редактирования (Edit mode), которые переключаются клавишей Tab. Объектный режим в основном используется для манипуляций с индивидуальными объектами, в то время как режим редактирования — для манипуляций с фактическими данными объекта. К примеру, для полигональной модели в объектном режиме мы можем перемещать, изменять размер и вращать модель целиком, а режим редактирования используется для манипуляции отдельных вершин конкретной модели. Также имеются несколько других режимов, таких как Vertex Paint и UV Face select.
Широкое использование горячих клавиш. Большинство команд выполняется с клавиатуры. До появления 2.x и особенно 2.3x версии, это был единственный путь выполнять команды, и это было самой большой причиной создание репутации Blender’y как сложной для изучения программы. Новая версия имеет более полное графическое меню.
Управление рабочим пространством. Графический интерфейс Blender’а состоит из одного или нескольких экранов, каждый из которых может быть разделён на секции и подсекции, которые могут быть любой частью интерфейса Blender’a. Графические элементы каждой секции могут контролироваться теми же инструментами, что и для манипуляции в 3D пространстве, для примера можно уменьшать и увеличивать кнопки инструментов тем же путём, что и в 3D просмотре. Пользователь полностью контролирует расположение и организацию графического интерфейса, это делает возможным настройку интерфейса под конкретные задачи, такие как редактирование видео, UV mapping и текстурирование, и спрятать элементы интерфейса которые не нужны для данной задачи. Этот стиль графического интерфейса очень похож на стиль, используемый в редакторе UnrealEd карт для игры Unreal Tournament.
Хотя Blender’y (для версии 2.41) ещё недостаёт возможностей патентованного программного обеспечения (таких как N-гон моделирование), рабочее пространство Blender’а считается находящимся среди самых новаторских концепций графического интерфейса для графических инструментов и вдохновлённым дизайном графического интерфейса патентованных программ, таких как Luxology’s Modo.