Автор работы: Пользователь скрыл имя, 26 Сентября 2013 в 20:01, курс лекций
Целью преподавания дисциплины "Компьютерная графика" является изучение студентами основ интерактивной машинной графики, программно-аппаратной организации компьютеров и основ их программирования, алгоритмов и методов двумерной и трехмерной машинной графики, а также получение представлений об основных направлениях компьютерной графики.
При изучении этой дисциплины закладываются основы знаний и практических навыков, позволяющих реализовать возможности компьютерной графики на персональных компьютерах и использовать их во всех сферах деятельности пользователей.
Введение в компьютерную графику.
Основные направления компьютерной графики:
Виды компьютерной графики
Фрактальная графика
Растровая графика
Векторная графика
Математические основы векторной графики
Кодирование ASCII
Цвет в векторной графике
Трехмерная графика
Области применения компьютерной графики
Представление графических данных. Форматы графических данных.
Цвет и цветовые модели
Цветовая модель RGB
Системы цветов HSB и HSL
Цветовая модель HSB
Цветовая модель CIE Lab
Цветовая модель CMYK, цветоделение
Индексированный цвет, работа с палитрой
Программное обеспечение для работы с графикой
Программные средства создания растровых изображений
Программы векторной графики
Программы верстки
Особенности графической информации и способы ее кодирования
Графическая информация
Обработка изображений с помощью ЭВМ .
Основные понятия трехмерной графики
Средства обработки трехмерной графики
Устройства ввода, обработки, распознавания, хранения, вывода, отображения информации.
Визуализация экономической информации.
В общем случае уравнение кривой третьего порядка можно записать так:
x3+a1y3+a2x2y+a3xy2+a4x2+a5y2+
Таким образом, кривая третьего порядка описывается девятью параметрами.
Описание ее отрезка потребует на два параметра больше.
Рисунок 6 Кривая третьего порядка (слева) и кривая Безье (справа)
Кривые Безье. Это особый, упрощенный вид кривых третьего порядка (см. рис. 6). Метод построения кривой Безье (Bezier) основан на использовании пары касательных, проведенных к отрезку линии в ее окончаниях. Отрезки кривых Безье описываются восемью параметрами, поэтому работать с ними удобнее. На форму линии влияет угол наклона касательной и длина ее отрезка. Таким образом, касательные играют роль виртуальных “рычагов”, с помощью которых управляют кривой.
ASCII - компьютерный код для
Различные векторные форматы обладают различными цветовыми возможностями. Простейшие форматы, которые могут не содержать вообще никакой информации о цвете, используют цвет по умолчанию тех устройств, на которые они выводятся, другие форматы способны сохранять данные о полном тридцати двух битном цвете. Какую бы цветовую модель не применял бы векторный формат, на размер файла он не влияет, кроме тех случаев, когда файл содержит растровые образы. В обычных векторных объектах значение цвета относится ко всему объекту в целом. Цвет объекта хранится в виде части его векторного описания. Некоторые векторные файлы могут создать растровый эскиз изображений хранящихся в них. Эти растровые картинки, иногда называемые краткими описаниями изображений, обычно представляют собой эскизы векторных рисунков в целом. Краткое описание изображения, особенно полезно в ситуациях, когда вы не хотите открывать весь файл, чтобы посмотреть, что в нем хранится или когда вы не можете видеть векторный рисунок во время его использования. Первая ситуация возникает, когда вам необходимо найти файл с помощью одной из многих специально разработанных для этого программ. Для облегчения поиска нужного векторного файла такие программы могут считывать растровый эскиз изображения и другие характеристики, например, векторный формат, время создания, битовую глубину изображения и так далее. Вторая ситуация возникает, когда в каком-либо издательском пакете помещается на страницу векторный рисунок. Изображение, которое вы увидите, будет растровым эскизом настоящего векторного рисунка, у которого нельзя изменить размер, обрезать или как-то иначе обработать изображение. За эскизы изображения приходится расплачиваться памятью, т.к. эскизы - это растровая версия рисунков, а растровые данные используют много памяти компьютера.
Достоинства векторной графики
Самая сильная сторона векторной графики в том, что она использует все преимущества разрешающей способности любого устройства вывода. Это позволяет изменять размеры векторного рисунка без потери его качества. Векторные команды просто сообщают устройству вывода, что необходимо нарисовать объект заданного размера, используя столько точек сколько возможно. Другими словами, чем больше точек сможет использовать устройство вывода для создания объекта, тем лучше он будет выглядеть. Растровый формат файла точно определяет, сколько необходимо создать пикселов и это количество изменяется вместе с разрешающей способностью устройства вывода. Вместо этого происходит одно из двух либо при увеличении разрешающей способности, размер растровой окружности уменьшается, так как уменьшается размер точки составляющих пиксел; либо размер окружности остается одинаковым, но принтеры с высокой разрешающей способностью используют больше точек для любого пиксела. Векторная графика обладает еще одним важным преимуществом, здесь можно редактировать отдельные части рисунка не оказывая влияния на остальные, например, если нужно сделать больше или меньше только один объект на некотором изображении, необходимо просто выбрать его и осуществить задуманное. Объекты на рисунке могут перекрываться без всякого воздействия друг на друга. Векторное изображение, не содержащее растровых объектов, занимает относительно не большое место в памяти компьютера. Даже очень детализированные векторные рисунки, состоящие из 1000 объектов, редко превышают несколько сотен килобайт.
Недостатки векторной графики
Природа избегает прямых линий. К сожалению, они являются основными компонентами векторных рисунков. До недавнего времени это означало, что уделом векторной графики были изображения, которые никогда не старались выглядеть естественно, например, двухмерные чертежи и круговые диаграммы, созданные специальными программами САПР, двух и трех мерные технические иллюстрации, стилизованные рисунки и значки, состоящие из прямых линий и областей, закрашенных однотонным цветом. Векторные рисунки состоят из различных команд посылаемых от компьютера к устройствам вывода (принтеру). Принтеры содержат свои собственные микропроцессоры, которые интерпретируют эти команды и пытаются их перевести в точки на листе бумаги. Иногда из-за проблем связи между двумя процессорами принтер не может распечатать отдельные детали рисунков. В зависимости от типов принтера случаются проблемы, и у вас может оказаться чистый лист бумаги, частично напечатанный рисунок или сообщение об ошибке
Растровая и векторная графика
Таким образом, выбор растрового или векторного формата зависит от целей и задач работы с изображением. Если нужна фотографическая точность цветопередачи, то предпочтительнее растр. Логотипы, схемы, элементы оформления удобнее представлять в векторном формате. Понятно, что и в растровом и в векторном представлении графика (как и текст) выводятся на экран монитора или печатное устройство в виде совокупности точек. В Интернете графика представляется в одном из растровых форматов, понимаемых браузерами без установки дополнительных модулей – GIF, JPG, PNG.
Без дополнительных плагинов (дополнений) наиболее распространенные браузеры понимают только растровые форматы – .gif, .jpg и .png (последний пока мало распространен). На первый взгляд, использование векторных редакторов становится неактуальным. Однако большинство таких редакторов обеспечивают экспорт в .gif или .jpg с выбираемым Вами разрешением. А рисовать начинающим художникам проще именно в векторных средах – если рука дрогнула и линия пошла не туда, получившийся элемент легко редактируется. При рисование в растровом режиме Вы рискуете непоправимо испортить фон.
Из-за описанных выше особенностей представления изображения, для каждого типа приходится использовать отдельный графический редактор – растровый или векторный. Разумеется, у них есть общие черты – возможность открывать и сохранять файлы в различных форматах, использование инструментов с одинаковыми названиями (карандаш, перо и т.д.) или функциями (выделение, перемещение, масштабирование и т.д.), выбирать нужный цвет или оттенок... Однако принципы реализации процессов рисования и редактирования различны и обусловлены природой соответствующего формата. Так, если в растровых редакторах говорят о выделении объекта, то имеют в виду совокупность точек в виде области сложной формы. Процесс выделения очень часто является трудоемкой и кропотливой работой. При перемещении такого выделения появляется «дырка». В векторном же редакторе объект представляет совокупность графических примитивов и для его выделения достаточно выбрать мышкой каждый из них. А если эти примитивы были сгруппированы соответствующей командой, то достаточно «щелкнуть» один раз в любой из точек сгруппированного объекта. Перемещение выделенного объекта обнажает нижележащие элементы.
Тем не менее, существует тенденция к сближению. Большинство современных векторных редакторов способны использовать растровые картинки в качестве фона, а то и переводить в векторный формат части изображения встроенными средствами (трассировка). Причем обычно имеются средства редактирования загруженного фонового изображения хотя бы на уровне различных встроенных или устанавливаемых фильтров. Illustrator способен загружать .psd-файлы Photoshop'a и использовать каждый из полученных слоев. Кроме того, для использования тех же фильтров, может осуществляться непосредственный перевод сформированного векторного изображения в растровый формат и дальнейшее использование как нередактируемого растрового элемента. Причем, все это помимо обычно имеющихся конвертеров из векторного формата в растровый с получением соответствующего файла.
Трехмерная графика
Трехмерная
графика нашла широкое
В упрощенном виде
для пространственного
Для создания реалистичной модели объекта используют геометрические примитивы (прямоугольник, куб, шар, конус и прочие) и гладкие, так называемые сплайновые поверхности. В последнем случае применяют чаще всего метод бикубических рациональных В-сплайнов на неравномерной сетке (NURBS).
Вид поверхности при этом определяется расположенной в пространстве сеткой опорных точек. Каждой точке присваивается коэффициент, величина которого определяет степень ее влияния на часть поверхности, проходящей вблизи точки. От взаимного расположения точек и величины коэффициентов зависит форма и “гладкость” поверхности в целом.
После формирования “скелета” объекта необходимо покрыть его поверхность материалами. Все многообразие свойств в компьютерном моделировании сводится к визуализации поверхности, то есть к расчету коэффициента прозрачности поверхности и угла преломления лучей света на границе материала и окружающего пространства.
Закраска поверхностей осуществляется методами Гуро (Gouraud) или Фонга (Phong). В первом случае цвет примитива рассчитывается лишь в его вершинах, а затем линейно интерполируется по поверхности. Во втором случае строится нормаль к объекту в целом, ее вектор интерполируется по поверхности составляющих примитивов и освещение рассчитывается для каждой точки.
Свет, уходящий с поверхности в конкретной точке в сторону наблюдателя, представляет собой сумму компонентов, умноженных на коэффициент, связанный с материалом и цветом поверхности в данной точке. К таковым компонентам относятся:
Следующим этапом является наложение (“проектирование”) текстур на определенные участки каркаса объекта. При этом необходимо учитывать их взаимное влияние на границах примитивов. Проектирование материалов на объект – задача трудно формализуемая, она сродни художественному процессу и требует от исполнителя хотя бы минимальных творческих способностей.
После завершения конструирования и визуализации объекта приступают к его “оживлению”, то есть заданию параметров движения. Компьютерная анимация базируется на ключевых кадрах. В первом кадре объект выставляется в исходное положение. Через определенный промежуток (например, в восьмом кадре) задается новое положение объекта и так далее до конечного положения.
Промежуточные значения вычисляет программа по специальному алгоритму. При этом происходит не просто линейная аппроксимация, а плавное изменение положения опорных точек объекта в соответствии с заданными условиями. Эти условия определяются иерархией объектов (то есть законами их взаимодействия между собой), разрешенными плоскостями движения, предельными углами поворотов, величинами ускорений и скоростей. Такой подход называют методом инверсной кинематики движения. Он хорошо работает при моделировании механических устройств. В случае с имитацией живых объектов используют так называемые скелетные модели. То есть, создается некий каркас, подвижный в точках, характерных для моделируемого объекта. Движения точек просчитываются предыдущим методом. Затем на каркас накладывается оболочка, состоящая из смоделированных поверхностей, для которых каркас является
набором контрольных точек, то есть создается каркасная модель. Каркасная модель визуализуется наложением поверхностных текстур с учетом условий освещения. В ходе перемещения объекта получается весьма правдоподобная имитация движений живых существ.