Компьютерная графика что такое? Виды компьютерной графики. Элементы компьютерной графики Основные разделы компьютерной графики

Изучив материал данной главы, студент должен:

знать

  • историю развития программных средств для работы с графикой;
  • области применения компьютерной графики;
  • классификацию компьютерной графики, типы представления графической информации;
  • основные виды описания графики, их достоинства и недостатки;

уметь

  • разбираться в графических форматах;
  • ориентироваться в среде различной цифровой графики и оптимально ее использовать;
  • применять полученные знания для освоения графических программ;

владеть

  • необходимой терминологией;
  • сведениями, используемыми в практической работе с цифровыми изображениями.

Понятие, история развития, области применения и виды компьютерной графики

Понятие и история компьютерной графики

Компьютерная графика (машинная, цифровая графика) – область деятельности, в которой компьютеры используются в качестве инструмента для создания изображений, а также для обработки визуальной информации, полученной из реального мира. Также компьютерной графикой называют и результат этой деятельности.

История компьютерной графики. Первые вычислительные машины не имели специальных средств для работы с графикой, однако уже использовались для получения и обработки изображений. Программируя память первых электронных машин, построенную на основе матрицы ламп, можно было получать узоры.

В 1961 г. программист С. Рассел возглавил проект по созданию первой компьютерной игры с графикой. Игра Spacewar была создана на машине PDP-1.

В 1963 г. американский ученый Айвен Сазерленд создал программноаппаратный комплекс Sketchpad , который позволял рисовать точки, линии и окружности на трубке цифровым пером (световое перо (англ. light реп ) – один из инструментов ввода графических данных в компьютер, разновидность манипуляторов). Поддерживались базовые действия с примитивами – перемещение, копирование и др. По сути, это был первый векторный редактор , реализованный на компьютере. Также программу можно назвать первым графическим интерфейсом, причем она являлась таковой еще до появления самого термина.

В середине 1960-х гг. появились разработки в промышленных приложениях компьютерной графики. Так, под руководством Т. Мофетта и Н. Тейлора фирма Itek разработала цифровую электронную чертежную машину. В 1964 г. General Motors представила систему автоматизированного проектирования DAC-1, разработанную совместно с IBM.

В 1964 г. группой под руководством II. II. Константинова была создана компьютерная математическая модель движения кошки. Машина БЭСМ-4, выполняя написанную программу решения дифференциальных уравнений, рисовала мультфильм "Кошечка", который для своего времени являлся прорывом. Для визуализации использовался алфавитно-цифровой принтер.

В 1968 г. существенного прогресса компьютерная графика достигла с появлением возможности запоминать изображения и выводить их на компьютерном дисплее, электронно-лучевой трубке.

Области применения цифровой графики

Научная графика – первые компьютеры использовались лишь для решения научных и производственных задач. Чтобы лучше представить полученные результаты, производилась их графическая обработка, строились графики, диаграммы, чертежи рассчитанных конструкций. Первые графики на машине получали в режиме символьной печати. Затем появились специальные устройства – графопостроители (плоттеры) для вычерчивания чертежей и графиков чернильным пером на бумаге. Современная научная компьютерная графика дает возможность проводить вычислительные эксперименты с наглядным представлением их результатов.

Деловая графика – область компьютерной графики, предназначенная для наглядного представления различных показателей работы учреждений. Плановые показатели, отчетная документация, статистические сводки – для них с помощью компьютерной графики создаются иллюстративные материалы. Программные средства деловой графики включаются в состав электронных таблиц.

Конструкторская графика используется в работе инженеров-конструкторов, архитекторов, изобретателей новой техники. Этот вид компьютерной графики является обязательным элементом САПР (систем автоматизации проектирования). Средствами конструкторской графики можно получать как плоские изображения (проекции, сечения), так и пространственные трехмерные изображения.

Иллюстративная графика – рисование, черчение, моделирование на экране компьютера. Пакеты иллюстративной графики относятся к прикладному программному обеспечению общего назначения. Программные средства иллюстративной графики называются графическими редакторами.

Художественная и рекламная графика популярна во многом благодаря развитию фотографии, рекламы и телевидения. С помощью компьютера создаются печатные материалы, различного рода рекламная продукция, мультфильмы, компьютерные игры, интерактивные и видеоуроки, слайд- и видеопрезентации. Кроме графических редакторов, для этих целей используются графические пакеты, требующие больших ресурсов компьютера по быстродействию и памяти. Отличительной особенностью этих графических пакетов является возможность создания реалистических изображений и движущихся картинок. Получение рисунков трехмерных объектов, их повороты, приближения, удаления, деформации связаны с большим объемом вычислений. Передача освещенности объекта в зависимости от положения источника света, расположения теней, фактуры поверхности требует расчетов, учитывающих законы оптики.

Компьютерная анимация – создание движущихся изображений. Художник создает на экране рисунки начального и конечного положения движущихся объектов, все промежуточные состояния рассчитывает и изображает компьютер, выполняя расчеты, опирающиеся на математическое описание данного вида движения. Полученные рисунки, выводимые последовательно на экран с определенной частотой, создают иллюзию движения.

Мультимедиа – объединение высококачественного изображения на экране компьютера со звуковым сопровождением. Наибольшее распространение системы мультимедиа получили в области обучения, рекламы, развлечений.

Научная работа. Компьютерная графика является также одной из областей научной деятельности. В области компьютерной графики защищаются диссертации, а также проводятся различные конференции. На факультете вычислительной математики и кибернетики (ВМиК) МГУ им. М. В. Ломоносова действует лаборатория компьютерной графики.

Виды компьютерной графики

По способам задания изображений компьютерную графику можно разделить на категории. Три основных категории – растровая, векторная и трехмерная графика.

Двумерная графика (2D – от англ. two dimensions два измерения) – это изображение на плоскости, имеющее длину и ширину. Двумерная компьютерная графика классифицируется по типу представления графической информации и следующими из него алгоритмами обработки изображений. Обычно компьютерную графику разделяют на векторную и растровую, хотя обособляют еще и фрактальный тип представления изображений.

В растровой графике всякое изображение рассматривается как совокупность точек разного цвета. В векторной графике изображение является совокупностью простых элементов: прямых линий, дуг, окружностей, эллипсов, прямоугольников, закрасок и др., которые называются графическими примитивами.

  • Примитив (графический примитив) – простейшая геометрическая фигура.
  • Векторный редактор – программа для создания и редактирования векторных изображений.
  • Фрактал (от лат. fractus – состоящий из фрагментов) – структура, формирующаяся из нерегулярных отдельных элементов, которые подобны целому. Описать такой объект можно всего лишь несколькими математическими уравнениями.

Компьютерная графика (так же машинная графика ) - область деятельности, в которой компьютеры наряду со специальным программным обеспечением используются в качестве инструмента, как для создания (синтеза) и редактирования изображений, так и для оцифровки визуальной информации, полученной из реального мира с целью дальнейшей её обработки и хранения.

Первые вычислительные машины не имели отдельных средств для работы с графикой, однако уже использовались для получения и обработки изображений. Программируя память первых электронных машин, построенную на основе матрицы ламп, можно было получать узоры.

В 1950 году в военном компьютере Whirlwind-I (рус. Вихрь), встроенный в систему SAGE противовоздушной обороны США, впервые был применён монитор - как средство отображения визуальной и графической информации.

В 1957 году Рассел Кирш создал первый сканер для компьютера и получил на нём первое цифровое изображение - маленького сына Владлена.

В 1961 году программист С. Рассел возглавил проект по созданию первой компьютерной игры с графикой. Создание игры («Spacewar!») заняло около 200 человеко-часов. Игра была создана на машине PDP-1.

В 1963 году американский учёный Айвен Сазерленд создал программно-аппаратный комплекс Sketchpad, который позволял рисовать точки, линии и окружности на трубке цифровым пером. Поддерживались базовые действия с примитивами: перемещение, копирование и др. По сути, это был первый векторный редактор, реализованный на компьютере.

В середине 1960-х гг. появились разработки в промышленных приложениях компьютерной графики. Так, под руководством Т. Мофетта и Н. Тейлора фирма Itek разработала цифровую электронную чертёжную машину. В 1964 году General Motors представила систему автоматизированного проектирования DAC-1, разработанную совместно с IBM.

В 1964 году Эдвард Зейджек создал первую компьютерную анимацию - движение спутника вокруг земли.

В 1968 году группой под руководством Н. Н. Константинова была создана компьютерная математическая модель движения кошки. Машина БЭСМ-4, выполняя написанную программу решения дифференциальных уравнений, рисовала мультфильм «Кошечка», который для своего времени являлся прорывом. Для визуализации использовался алфавитно-цифровой принтер.

В 1968 году существенный прогресс компьютерная графика испытала с появлением возможности запоминать изображения и выводить их на компьютерном дисплее, электронно-лучевой трубке.

Основные области применения

Научная графика - первые компьютеры использовались лишь для решения научных и производственных задач. Чтобы лучше понять полученные результаты, производили их графическую обработку, строили графики, диаграммы, чертежи рассчитанных конструкций. Первые графики на машине получали в режиме символьной печати. Затем появились специальные устройства - графопостроители (плоттеры) для вычерчивания чертежей и графиков чернильным пером на бумаге. Современная научная компьютерная графика дает возможность проводить вычислительные эксперименты с наглядным представлением их результатов.

Деловая графика - область компьютерной графики, предназначенная для наглядного представления различных показателей работы учреждений. Плановые показатели, отчётная документация, статистические сводки - вот объекты, для которых с помощью деловой графики создаются иллюстративные материалы.

Конструкторская графика используется в работе инженеров-конструкторов, архитекторов, изобретателей новой техники. Этот вид компьютерной графики является обязательным элементом САПР (систем автоматизации проектирования). Средствами конструкторской графики можно получать как плоские изображения (проекции, сечения), так и пространственные трёхмерные изображения.

Иллюстративная графика - это произвольное рисование и черчение на экране компьютера. Пакеты иллюстративной графики относятся к прикладному программному обеспечению общего назначения. Простейшие программные средства иллюстративной графики называются графическими редакторами.

Художественная и рекламная графика - ставшая популярной во многом благодаря телевидению. С помощью компьютера создаются рекламные ролики, мультфильмы, компьютерные игры, видеоуроки, видеопрезентации. Графические пакеты для этих целей требуют больших ресурсов компьютера по быстродействию и памяти. Отличительной особенностью этих графических пакетов является возможность создания реалистических изображений и «движущихся картинок». Получение рисунков трёхмерных объектов, их повороты, приближения, удаления, деформации связано с большим объёмом вычислений. Передача освещённости объекта в зависимости от положения источника света, от расположения теней, от фактуры поверхности, требует расчётов, учитывающих законы оптики.

Компьютерная анимация - это получение движущихся изображений на экране дисплея. Художник создает на экране рисунки начального и конечного положения движущихся объектов, все промежуточные состояния рассчитывает и изображает компьютер, выполняя расчёты, опирающиеся на математическое описание данного вида движения. Полученные рисунки, выводимые последовательно на экран с определённой частотой, создают иллюзию движения.

Мультимедиа - это объединение высококачественного изображения на экране компьютера со звуковым сопровождением. Наибольшее распространение системы мультимедиа получили в области обучения, рекламы, развлечений.

Научная работа . Компьютерная графика является также одной из областей научной деятельности. В области компьютерной графики защищаются диссертации, а также проводятся различные конференции

Двумерная (2D - от англ. two dimensions - «два измерения») компьютерная графика классифицируется по типу представления графической информации, и следующими из него алгоритмами обработки изображений. Обычно компьютерную графику разделяют на векторную и растровую.

Векторная графика

  • Векторная графика представляет изображение как набор геометрических примитивов. Обычно в качестве них выбираются точки, прямые, окружности, прямоугольники, а также кривые некоторого порядка. Объектам присваиваются некоторые атрибуты, например, толщина линий, цвет заполнения. Рисунок хранится как набор координат, векторов и других чисел, характеризующих набор примитивов.
    Изображение в векторном формате даёт простор для редактирования: оно может без потерь масштабироваться, поворачиваться, деформироваться; также имитация трёхмерности в векторной графике проще, чем в растровой.
    Такой способ представления хорош для схем, используется для масштабируемых шрифтов, деловой графики, очень широко используется для создания мультфильмов и просто роликов разного содержания.
  • Растровая графика всегда оперирует двумерным массивом (матрицей) пикселей. Каждому пикселю сопоставляется значение яркости, цвета, прозрачности - или комбинация этих значений. Растровый образ имеет некоторое число строк и столбцов.
    В растровом виде представимо любое изображение, однако этот способ хранения имеет свои недостатки: больший объём памяти, необходимый для работы с изображениями, потери при редактировании.

Растровая графика

Фрактальная графика

Фрактальная графика основана на использовании фракталов - объектов, отдельные элементы которых наследуют свойства родительских структур. Поскольку более детальное описание элементов меньшего масштаба происходит по простому алгоритму, описать такой объект можно всего лишь несколькими математическими уравнениями.

Трёхмерная графика (3D - от англ. three dimensions - «три измерения») оперирует с объектами в трёхмерном пространстве. Обычно результаты представляют собой плоскую картинку, проекцию. Трёхмерная компьютерная графика широко используется в кино, компьютерных играх.

Трехмерная графика бывает полигональной и воксельной . Воксельная графика аналогична растровой. Объект состоит из набора трехмерных фигур, чаще всего кубов. А в полигональной компьютерной графике все объекты обычно представляются как набор поверхностей, минимальную поверхность называют полигоном. В качестве полигона обычно выбирают треугольники.

CGI (англ. computer-generated imagery , букв. «изображения, сгенерированные компьютером») - неподвижные и движущиеся изображения, сгенерированные при помощи трёхмерной компьютерной графики и использующиеся в изобразительном искусстве, печати, кинематографических спецэффектах, на телевидении и в симуляторах.

Созданием движущихся изображений занимается компьютерная анимация, представляющая собой более узкую область графики CGI, применимую, в том числе в кинематографе, где позволяет создавать эффекты, которые невозможно получить при помощи традиционного грима и аниматроники. Компьютерная анимация может заменить работу каскадёров и статистов, а также декорации.

§18. Компьютерная графика
§21. Растровая и векторная графика

Основные темы параграфа:

История компьютерной графики;
- научная графика;
- деловая графика;
- конструкторская графика;
- иллюстративная графика;
- трехмерная графика;
- компьютерная анимация.

Изучаемые вопросы:




- Растровая графика
- Векторная графика.

В наше время редко найдется школьник, который бы не играл в компьютерные игры или хотя бы не видел, как в них играют другие. На экране монитора, как на телеэкране, бегают человечки, летают самолеты, мчатся гоночные машины... Чего только нет! Причем качество цветного изображения на современном персональном компьютере бывает лучше, чем у телевизора.

Раздел информатики, занимающийся проблемами создания и обработки на компьютере графических изображений, называется компьютерной графикой.

Как же получаются все эти «картинки» на экране компьютера? Вы уже хорошо знаете, что любую работу компьютер выполняет по определенным программам, которые обрабатывают определенную информацию. Монитор - это устройство вывода информации , хранящейся в памяти компьютера. Значит, и «картинки» на экране - это отображение информации, находящейся в компьютерной памяти .

История компьютерной графики

Результатами расчетов на первых компьютерах являлись длинные колонки чисел, напечатанных на бумаге. Для того чтобы осознать полученные результаты, человек брал бумагу, карандаши, линейки и другие чертежные инструменты и чертил графики, диаграммы, чертежи рассчитанных конструкций. Иначе говоря, человек вручную производил графическую обработку результатов вычислений. В графическом виде такие результаты становятся более наглядными и понятными. Таково уж свойство человеческой психики: наглядность - важнейшее условие для понимания.

Возникла идея поручить графическую обработку самой машине . Первоначально программисты научились получать рисунки в режиме символьной печати. На бумажных листах с помощью символов (звездочек, точек, крестиков, букв) получались рисунки, напоминающие мозаику. Так печатались графики функций, изображения течений жидкостей и газов, электрических и магнитных полей (рис. 4.1).

С помощью символьной печати программисты умудрялись получать даже художественные изображения. В редком компьютерном центре стены не украшались распечатками с портретами Эйнштейна, репродукциями Джоконды и другой машинной живописью.

Затем появились специальные устройства для графического вывода на бумагу - графопостроители (другое название - плоттеры ). С помощью такого устройства на лист бумаги чернильным пером наносятся графические изображения: графики, диаграммы, технические чертежи и пр. Для управления работой графопостроителей стали создавать специальное программное обеспечение.

Настоящая революция в компьютерной графике произошла с появлением графических дисплеев. На экране графического дисплея стало возможным получать рисунки и чертежи в таком же виде, как на бумаге с помощью карандашей, красок, чертежных инструментов.

Рисунок из памяти компьютера может быть выведен не только на экран, но и на бумагу с помощью принтера. Существуют принтеры цветной печати, дающие качество рисунков на уровне фотографии.

Приложения компьютерной графики очень разнообразны. Для каждого направления создается специальное программное обеспечение, которое называют графическими программами, или графическими пакетами.

Научная графика

Это направление появилось самым первым. Назначение - визуализация (т. е. наглядное изображение) объектов научных исследований , графическая обработка результатов расчетов, проведение вычислительных экспериментов с наглядным представлением их результатов (рис. 4.2).


Эта область компьютерной графики предназначена для создания иллюстраций , часто используемых в работе различных учреждений. Плановые показатели, отчетная документация, статистические сводки - вот объекты, для которых с помощью деловой графики создаются иллюстративные материалы (рис. 4.3).

Программные средства деловой графики обычно включаются в состав табличных процессоров (электронных таблиц), с которыми мы познакомимся позже.

Она применяется в работе инженеров-конструкторов, изобретателей новой техники. Этот вид компьютерной графики является обязательным элементом систем автоматизации проектирования (САПР). Графика в САПР используется для подготовки технических чертежей проектируемых устройств (рис. 4.4).

Графика в сочетании с расчетами позволяет проводить в наглядной форме поиск оптимальной конструкции, наиболее удачной компоновки деталей, прогнозировать последствия, к которым могут привести изменения в конструкции. Средствами конструкторской графики можно получать плоские изображения (проекции, сечения) и пространственные, трехмерные изображения.

Программные средства иллюстративной графики позволяют человеку использовать компьютер для произвольного рисования и черчения подобно тому, как он это делает на бумаге с помощью карандашей, кисточек, красок, циркулей, линеек и других инструментов. Пакеты иллюстративной графики не имеют какой-то производственной направленности, поэтому они относятся к прикладному программному обеспечению общего назначения.

Простейшие программные средства иллюстративной графики называются графическими редакторами. Подробнее о графических редакторах речь пойдет ниже.

Трехмерной графикой (3D-графикой) называют технологию, позволяющую получать на устройствах вывода компьютера объемные изображения. Программы для работы с трехмерной графикой называют программами трехмерного моделирования. Эти программы позволяют создавать высококачественные изображения, очень похожие на фотографии. В самом названии «трехмерный» заложено указание на то, что объект рассматривается в трех измерениях (ширина, высота и глубина). В то же время экранное изображение трехмерных объектов, как и печатное, является всего лишь их двумерным образом. Эти образы на экране выглядят вполне реально благодаря наличию источников света, естественной окраске, присутствию теней и бликов, придающих изображению глубину и делающих его визуально правдоподобным (рис. 4.5).

Таким образом, основная задача пользователя программы трехмерного моделирования - создать сцену - совокупность образов трехмерных объектов.

Широкое применение 3D-графика находит в архитектурном и техническом проектировании, рекламе, кинематографии, различных учебных и тренажерных системах, компьютерных играх.

Создание изображений в программах трехмерного моделирования состоит из пяти этапов.

1. Моделирование - создание формы трехмерного объекта.
2. Наложение материалов . Материалы - краски и текстуры, которыми покрываются объекты. Кроме того, материалы определяют такие свойства объектов, как шероховатость, блеск, прозрачность.
3. Расстановка источников света . Освещение придает сцене ощущение объемности и реальности, так как источники света способны создавать тени, когда их лучи падают на объекты.
4. Установка камер . Программы трехмерного моделирования предоставляют возможность рассматривать сцену через виртуальную съемочную камеру (фотоаппарат). Камера может устанавливаться в разных позициях, что дает возможность отражать сцену в различных ракурсах.
5. Визуализация - формирование изображения. Визуализация выполняется специальным программным обеспечением и может занимать довольно продолжительное время, зависящее от сложности сцены и быстродействия компьютера. Именно на этом этапе программа рассчитывает и наносит на изображение все тени, блики и отражения объектов.

На первых четырех этапах используются законы векторной графики. В результате визуализации создается растровое изображение.

Получение движущихся изображений на мониторе компьютера называется компьютерной анимацией . Слово «анимация» означает «оживление».

В недавнем прошлом художники-мультипликаторы создавали свои фильмы вручную. Чтобы передать движение, им приходилось делать тысячи рисунков, отличающихся друг от друга небольшими изменениями. Затем эти рисунки переснимались на кинопленку. Существуют системы, в которых используется покадровая анимация, основанная на ключевых (наиболее важных) кадрах. Компьютерный художник создает на экране лишь изображения объектов в ключевых кадрах, а все положения объектов в промежуточных кадрах рассчитываются специальными программами.

Такая работа связана с расчетами, опирающимися на математическое описание данного типа движения. Полученные рисунки, выводимые последовательно на экран с определенной частотой, создают иллюзию движения (рис. 4.6).

Многие современные анимационные фильмы создаются в технологии трехмерной графики. В некоторых игровых фильмах наряду с «живыми» артистами и реальными декорациями участвуют персонажи, созданные на компьютере. Одним из первых известных фильмов такого рода были «Звездные войны». Многие компьютерные игры построены в технологии 3D-анимации.

В начале появления 3D-анимации такая работа была по силам только суперкомпьютерам. Позже для персональных компьютеров были разработаны устройства под названием 3D-акселераторы (ускорители трехмерной графики). На современных ПК эти устройства делают доступными для пользователей трехмерные игры.

Коротко о главном

Область информатики, занимающаяся проблемами получения различных изображений (рисунков, чертежей, мультипликации) на компьютере.

Для создания графических изображений требуется специальное программное обеспечение - графические пакеты .

Основные области применения компьютерной графики : научная графика, деловая графика, конструкторская графика, иллюстративная графика, трехмерная графика.

Это получение движущихся изображений на экране монитора.

Вопросы и задания

1. Что называют компьютерной графикой?

2. Каким способом создавали рисунки на ЭВМ до появления аппаратных и программных средств компьютерной графики?

3. На какие устройства производится вывод графических изображений?

4. В чем преимущество графического дисплея перед другими устройствами графического вывода?

5. Опишите основные области применения компьютерной графики.

6. Что такое компьютерная анимация?

Растровая и векторная графика

Основные темы параграфа:

Два принципа представления изображения;
- растровая графика;
- векторная графика.

Изучаемые вопросы:

История компьютерной графики
- Области применения компьютерной графики.
- Два принципа представления изображения.
- Растровая графика
- Векторная графика.

Два принципа представления изображения

В компьютерной графике существуют два различных подхода к представлению графической информации. Они называются, соответственно, растровым и векторным. С растровым подходом вы уже знакомы. Суть его в том, что всякое изображение рассматривается как совокупность точек разного цвета. Векторный подход рассматривает изображение как совокупность простых элементов: прямых линий, дуг, окружностей, эллипсов, прямоугольников, закрасок и пр., которые называются графическими примитивами .

В растровой графике графическая информация - это совокупность данных о цветах пикселей на экране. В векторной графике графическая информация - это данные, однозначно определяющие все графические примитивы, составляющие рисунок.

Положение и форма графических примитивов задаются в системе графических координат , связанных с экраном. Обычно начало координат расположено в верхнем левом углу экрана. Сетка пикселей совпадает с координатной сеткой. Горизонтальная ось X направлена слева направо; вертикальная ось Y - сверху вниз .

Отрезок прямой линии однозначно определяется указанием координат его концов; окружность - координатами центра и радиусом; многоугольник - координатами его вершин; закрашенная область - граничной линией и цветом закраски и пр.

Для примера рассмотрим «маленький монитор» с растровой сеткой размером 10 х 10 и черно-белым изображением. На рисунке 4.11 одна клетка соответствует пикселю. Приведено изображение буквы «К». Для кодирования изображения в растровой форме на таком экране требуется 100 битов (1 бит на пиксель).

На рисунке 4.12 этот код представлен в виде битовой матрицы, в которой строки и столбцы соответствуют строкам и столбцам растровой сетки (1 обозначает закрашенный пиксель, а 0 - незакрашенный).

В векторном представлении буква «К» - это три линии. Всякая линия описывается указанием координат ее концов в таком виде:

ЛИНИЯ (X1,Y1,X2,Y2)

Изображение буквы «К» на рис. 4.11 описывается следующим образом:

ЛИНИЯ (4,2,4,8)

ЛИНИЯ (5,5,8,2)

ЛИНИЯ (5,5,8,8)

Для цветного изображения кроме координат указывается еще один параметр - цвет линии .

Для создания рисунков на компьютере используются графические редакторы . Графические редакторы бывают растровыми и векторными * . Графическая информация о рисунках, созданных с помощью редактора, сохраняется в файлах на диске. Существуют разнообразные форматы графических файлов. Их также можно разделить на растровые и векторные форматы. Растровые графические файлы хранят информацию о цвете каждого пикселя изображения на экране. В графических файлах векторного формата содержатся описания графических примитивов, составляющих рисунок.

*
Графический редактор Paint является растровым, a CorelDraw - векторным.

Растровая графика

Растровые графические редакторы называют программами «картинного стиля», поскольку в них есть инструменты, которые используют художники при рисовании картин: «кисти», «краски», «ластики» и др. При создании растрового изображения пользователь словно водит кистью по «электронному полотну», закрашивая каждый пиксель рисунка, или стирает закраску пикселей, используя «ластик».

При вводе изображений с помощью сканера (фотографий, рисунков, документов) также формируются графические файлы растрового формата. При выводе таких изображений на экран достигается их высокое качество (рис. 4.13). Это основное достоинство растровой графики.

Основной недостаток растровой графики - большой размер графических файлов. Простые растровые картинки занимают несколько десятков или сотен килобайтов. Реалистические изображения, полученные с помощью сканеров с высокой разрешающей способностью, могут занимать несколько мегабайтов. По этой причине информация в файлах растрового формата, как правило, хранится в сжатом виде. Для сжатия графической информации используются специальные методы, позволяющие сократить ее объем в десятки раз.

Еще одним недостатком растровых изображений является их искажение, возникающее при изменении размеров, вращении и других преобразованиях. Картинка, которая прекрасно выглядела при одном размере, после масштабирования или вращения может потерять свою привлекательность. Например, в областях однотонной закраски могут появиться ненужные узоры; кривые и прямые линии могут приобрести пилообразную форму и т. п.

Векторная графика

Векторные изображения получаются с помощью графических редакторов векторного типа - редакторов иллюстративной графики. Эти редакторы предоставляют в распоряжение пользователя набор инструментов и команд, с помощью которых создаются рисунки. Прямые линии, окружности, эллипсы и дуги являются основными компонентами векторных изображений. Одновременно с процессом рисования специальное программное обеспечение формирует описания графических примитивов, из которых строится рисунок. Эти описания сохраняются в графическом файле.

На рисунке 4.14 показан экран векторного редактора OpenOffice.org Draw (ОС Linux).

К достоинствам векторной графики можно отнести следующие ее свойства.

Графические файлы векторного типа имеют относительно небольшие размеры. Рисунки, состоящие из тысяч примитивов, занимают дисковую память, объем которой не превышает нескольких сотен килобайтов. Аналогичный растровый рисунок требует в 10 - 1000 раз большую память.

Векторные изображения легко масштабируются без потери качества. Чтобы изменить размер векторного рисунка, нужно исправить его описание. Например, для увеличения или уменьшения эллипса достаточно в его описании изменить координаты левого верхнего и правого нижнего углов прямоугольника, ограничивающего эллипс. И снова для рисования объекта будет использовано максимально возможное число пикселей.

Следует понимать, что различие в представлении графической информации в растровом и векторном форматах существует лишь для файлов. При выводе на экран любого изображения в видеопамяти формируется информация, содержащая данные о цвете каждого пикселя экрана.

Коротко о главном

Существуют два подхода к представлению изображения на компьютере: растровый и векторный .

Растровая графическая информация - это сведения о цвете каждого пикселя при выводе изображения на экран.

Векторная графическая информация - это описания графических элементов (примитивов), из которых составлен рисунок: прямых линий, дуг, эллипсов, прямогоугольников, закрасок и пр.

Растровые графические редакторы формируют графические файлы с данными растрового типа . Векторные редакторы формируют графические файлы векторных форматов.

При сканировании изображений формируется графическая информация растрового типа.

Растровый формат позволяет получать изображения фотографического качества; растровые графические файлы имеют большой размер и обычно подвергаются сжатию.

Файлы векторного формата относительно невелики. Векторное изображение хорошо поддается растяжению и сжатию, не теряя при этом качества .

Вопросы и задания

1. В чем разница между растровым и векторным способами представления изображения?

2. Что такое графические примитивы?

3. Какая информация хранится в файлах растрового типа и в файлах векторного типа?

4. Что такое система графических координат?

5. С помощью каких средств (программных, технических) получается растровая и векторная графическая информация? Подготовьте доклад.

6. Какой способ представления графической информации экономнее по использованию памяти?

7. Для чего производится сжатие файлов растрового типа?

8. Как реагируют растровые и векторные изображения на изменение размеров, вращения?

9. Получите растровые коды и векторы описания для изображения букв «Н», «Л», «Т» на черно-белом экране с графической сеткой размером 8 x 8 .

Электронное приложение к уроку


Cкачать материалы урока

1. Компьютерная графика - область деятельности, в которой компьютеры используются в качестве инструмента, как для создания изображений, так и для обработки визуальной информации, полученной из реального мира.

Конечным продуктом компьютерной графики является изображение. Это изображение может использоваться в различных сферах, например, оно может быть техническим чертежом, иллюстрацией с изображением детали в руководстве по эксплуатации, простой диаграммой, архитектурным видом предполагаемой конструкции или проектным заданием, рекламной иллюстрацией или кадром из мультфильма.

В компьютерной графике рассматриваются следующие задачи:

1. Представление изображения в компьютерной графике;

2. Подготовка изображения к визуализации;

3. Создание изображения;

4. Осуществление действий с изображением.

2. История развития компьютерной графики началось уже в 20 веке и продолжается сегодня. Не секрет то, что именно графика способствовала быстрому росту быстродействию компьютеров.

1940-1970гг. – время больших компьютеров (эра до персональных компьютеров). Графикой занимались только при выводе на принтер. В этот период заложены математические основы. Особенности: пользователь не имел доступа к монитору, графика развивалась на математическом уровне и выводилась в виде текста, напоминающего на большом расстоянии изображение. Графопостроители появились в конце 60-х годов и практически были не известны.

1971-1985гг. – появились персональные компьютеры, т.е. появился доступ пользователя к дисплеям. Роль графики резко возросла, но наблюдалось очень низкое быстродействие компьютера. Программы писались на ассемблере. Появилось цветное изображение. Особенности: этот период характеризовался зарождением реальной графики.

1986-1990гг. – появление технологии Multimedia (Мультимедиа). К графике добавились обработка звука и видеоизображения, общение пользователя с компьютером расширилось. Особенности: появление диалога пользователя с персональным компьютером; появление анимации и возможности выводить цветное изображение.

1991г.-наше время – появление графики нашего дня VirtualReality. Появились датчики перемещения, благодаря которым компьютер меняет изображения при помощи сигналов посылаемых на него. Появление стереоочков (монитор на каждый глаз), благодаря высокому быстродействию которых, производится имитация реального мира. Замедление развития этой технологии из-за опасения медиков, т.к. благодаря VirtualReality можно очень сильно нарушить психику человека, благодаря мощному воздействию цвета на неё.

3. Научная графика - первые компьютеры использовались лишь для решения научных и производственных задач. Чтобы лучше понять полученные результаты, производили их графическую обработку, строили графики, диаграммы, чертежи рассчитанных конструкций. Первые графики на машине получали в режиме символьной печати. Затем появились специальные устройства - графопостроители (плоттеры) для вычерчивания чертежей и графиков чернильным пером на бумаге. Современная научная компьютерная графика дает возможность проводить вычислительные эксперименты с наглядным представлением их результатов.

Деловая графика - область компьютерной графики, предназначенная для наглядного представления различных показателей работы учреждений. Плановые показатели, отчётная документация, статистические сводки - вот объекты, для которых с помощью деловой графики создаются иллюстративные материалы. Программные средства деловой графики включаются в состав электронных таблиц.

Конструкторская графика используется в работе инженеров-конструкторов, архитекторов, изобретателей новой техники. Этот вид компьютерной графики является обязательным элементом САПР (систем автоматизации проектирования). Средствами конструкторской графики можно получать как плоские изображения (проекции, сечения), так и пространственные трёхмерные изображения.

Иллюстративная графика - это произвольное рисование и черчение на экране компьютера. Пакеты иллюстративной графики относятся к прикладному программному обеспечению общего назначения. Простейшие программные средства иллюстративной графики называются графическими редакторами.

Художественная и рекламная графика - ставшая популярной во многом благодаря телевидению. С помощью компьютера создаются рекламные ролики, мультфильмы, компьютерные игры, видеоуроки, видеопрезентации. Графические пакеты для этих целей требуют больших ресурсов компьютера по быстродействию и памяти. Отличительной особенностью этих графических пакетов является возможность создания реалистических изображений и «движущихся картинок». Получение рисунков трёхмерных объектов, их повороты, приближения, удаления, деформации связано с большим объёмом вычислений. Передача освещённости объекта в зависимости от положения источника света, от расположения теней, от фактуры поверхности, требует расчётов, учитывающих законы оптики.

Компьютерная анимация - это получение движущихся изображений на экране дисплее. Художник создает на экране рисунки начального и конечного положения движущихся объектов, все промежуточные состояния рассчитывает и изображает компьютер, выполняя расчёты, опирающиеся на математическое описание данного вида движения. Полученные рисунки, выводимые последовательно на экран с определённой частотой, создают иллюзию движения.

Мультимедиа - это объединение высококачественного изображения на экране компьютера со звуковым сопровождением. Наибольшее распространение системы мультимедиа получили в области обучения, рекламы, развлечений.

Лекция №2. Виды компьютерной графики. Графические редакторы.

1) Виды КГ.

2) Графические редакторы.

3) Основные понятия КГ.

1. Существует несколько разновидностей КГ:

Двумерная графика,

Трехмерная (3D) графика.

Двумерная компьютерная графика классифицируется по типу представления графической информации, и следующими из него алгоритмами обработки изображений. Обычно, компьютерную графику разделяют на:

Векторную

Растровую,

Фрактальную.

Они отличаются принципами формирования изображения при отображении на экране монитора или при печати на бумаге.

Растровую графику применяют при разработке электронных (мультимедийных) и полиграфических изданий. Иллюстрации, выполненные средствами растровой графики, редко создают вручную с помощью компьютерных программ. Для этой цели сканируют иллюстрации, подготовленные художником на бумаге, или фотографии. В последнее время для ввода растровых изображений в компьютер нашли широкое применение цифровые фото- и видеокамеры. В Интернете пока применяются только растровые иллюстрации. В растровой графике тоже существуют линии, но там они рассматриваются как комбинации точек. Для каждой точки линии отводится одна или несколько ячеек памяти (чем больше цветов могут иметь точки, тем больше ячеек им выделяется). Соответственно, чем длиннее растровая линия, тем больше памяти она занимает.

В векторной графике основным элементом изображения является линия, при этом не важно, прямая это линия или кривая. Объем памяти, занимаемый линией, не зависит от размеров линии, поскольку линия представляется в виде формулы, а точнее говоря, в виде нескольких параметров. Чтобы ни делали с этой линией, меняются только ее параметры, хранящиеся в ячейках памяти. Количество же ячеек остается неизменным для любой линии. Все, что есть в векторной иллюстрации, состоит из линий. Простейшие объекты объединяются в более сложные, например, объект четырехугольник можно рассматривать как четыре связанные линии, а объект куб еще более сложен: его можно рассматривать либо как двенадцать связанных линий, либо как шесть связанных четырехугольников. Из-за такого подхода векторную графику часто называют объектно-ориентированной графикой.

Объекты векторной графики хранятся в памяти в виде набора параметров, но надо помнить о том, что на экран все изображения все равно выводятся в виде точек. Перед выводом на экран каждого объекта программа производит вычисления координат экранных точек в изображении объекта, поэтому векторную графику иногда называют вычисляемой графикой. Аналогичные вычисления производятся и при выводе объектов на принтер.

Программные средства для работы с векторной графикой, наоборот, предназначены для создания иллюстраций и в меньшей степени для их обработки. Такие средства широко используют в рекламных агентствах, дизайнерских бюро, редакциях и издательствах. Оформительские работы, основанные на применении шрифтов и простейших геометрических элементов, решаются средствами векторной графики проще. Имеются примеры высокохудожественных произведений, созданных средствами векторной графики, но они скорее исключение, чем правило.

Фрактальная графика, как и векторная, основана на математических вычислениях. Однако базовым элементом фрактальной графики является сама математическая формула, то есть никаких объектов в памяти компьютера не хранится и изображение строится исключительно по уравнениям. Таким способом строят как простейшие регулярные структуры, так и сложные иллюстрации, имитирующие природные ландшафты и трехмерные объекты.

Программные средства для работы с фрактальной графикой предназначены для автоматической генерации изображений путем математических расчетов. Создание фрактальной художественной композиции состоит не в рисовании или оформлении, а в программировании. Фрактальную графику чаще используют в развлекательных программах.

Трёхмерная графика (3D) и анимация. Трёхмерная графика оперирует с объектами в трехмерном пространстве. Обычно результаты представляют собой плоскую картинку, проекцию. Трёхмерная компьютерная графика широко используется в кино, компьютерных играх.

В трехмерной компьютерной графике все объекты обычно представляются как набор поверхностей или частиц. Минимальную поверхность называют полигоном. В качестве полигона обычно выбирают треугольники. Всеми визуальными преобразованиями в 3D-графике управляют матрицы.

2. Графический редактор - программа, позволяющая создавать и редактировать изображения с помощью компьютера. Существует два вида графических редакторов: растровые и векторные. К растровым относятся Paint, Adobe Photoshop, Photostyler, GIMP и др.

Ряд растровых редакторов, например, Paint, ориентирован непосредственно на процесс рисования. В них акцент сделан на использование удобных инструментов рисования и на создание новых художественных инструментов и материалов.

Некоторый класс растровых графических редакторов предназначен не для создания изображений «с нуля», а для обработки готовых рисунков с целью улучшения их качества и реализации творческих идей. К таким программам, в частности, относятся Adobe Photoshop, Photostyler, GIMP и др.

Векторные графические редакторы позволяют проделывать очень сложные трансформации формы рисунка, сжатия и растяжения, любые изменения размера, преобразования контуров. В них легко сочетать изображения с разного рода надписями, произвольным образом размещенными. Но для обработки фотоизображений они непригодны. Используют их при изготовлении всех видов эмблем, товарных знаков, в книжной, журнальной и рекламной вёрстке любой сложности, для создания чертежей и проектов. Растровые программы используют, когда надо обрабатывать сканированные изображения, рисунки, фотографии. Основной упор делается на ретуширование изображений, коррекцию цветов, подбор цветов, подбор оптимального контраста, яркости, чёткости, на разного, составление коллажей. Но с формой объектов они работают плохо.

К простейшим векторным графическим редакторам относятся Kompas, Auto Cad, Adobe Illustrator, CorelDraw и др.

Определение и основные виды компьютерной графики

Компьютерная графика - раздел информатики, который изучает средства и способы создания, обработки и передачи графической цифровой инофрмации.

Существует 3 основных вида КГ:

1) Растровая – вид КГ, в котором изучается работа растром (прямоугольная матрица одинаковых элементов, образующая изображение)

2) Векторная – вид КГ, в котором изучаются изображения созданные на основе элементарных геометрических объектов, таких как: точки, линии, сплайны и многоугольники.

3) Фрактальная – раздел КГ, в котором изучаются изображения построенные на основе фракталов (самоповторяющийся рисунок)

Основные области применения компьютерной графики

1) Графические интерфейсы

2) Визуализация данных

3) Компьютерные игры

4) Системы автоматизированного проектирования

5) Искусство – дизайн, кинематограф

Фрактальная графика

Фрактальная графика – раздел КГ, в котором изучаются изображения построенные на основе фракталов (самоповторяющийся рисунок)

Двухмерная и трёхмерная компьютерная графика

Двухмерная (2D - от англ. two dimensions - «два измерения») компьютерная графика классифицируется по типу представления графической информации, и следующими из него алгоритмами обработки изображений. Обычно компьютерную графику разделяют на векторную и растровую, хотя обособляют ещё и фрактальный тип представления изображений.

Трёхмерная графика (3D - от англ. three dimensions - «три измерения») оперирует с объектами в трёхмерном пространстве. Обычно результаты представляют собой плоскую картинку, проекцию. Трёхмерная компьютерная графика широко используется в кино, компьютерных играх.

Трехмерная графика бывает полигональной и воксельной. Воксельная графика, аналогична растровой. Объект состоит из набора трехмерных фигур, чаще всего кубов. А в полигональной компьютерной графике все объекты обычно представляются как набор поверхностей, минимальную поверхность называют полигоном. В качестве полигона обычно выбирают треугольники.

Любой полигон можно представить в виде набора из координат его вершин. Так, у треугольника будет 3 вершины. Координаты каждой вершины представляют собой вектор (x, y, z). Умножив вектор на соответствующую матрицу, мы получим новый вектор. Сделав такое преобразование со всеми вершинами полигона, получим новый полигон, а преобразовав все полигоны, получим новый объект, повёрнутый/сдвинутый/масштабированный относительно исходного.

5. Дополнительные виды компьютерной графики (пиксельная, ASCII, псевдографика)

Пи́ксельная гра́фика (от англ. pixel - сокращение от pix element) - форма цифрового изображения, созданного на компьютере с помощью растрового графического редактора, где изображение редактируется на уровне пикселей (точек), а разрешение изображения настолько мало, что отдельные пиксели чётко видны. На старых (или на неполнофункциональных) компьютерах, в играх для Game Boy, играх для старых игровых приставок и многих играх для мобильных телефонов в основном используется пиксельная графика, так как это единственный способ сделать чётким небольшое изображение при малом разрешении экранов, характерном для этих устройств.

ASCII графика (от англ. ASCII artwork) - форма изобразительного искусства, использующая символы ASCII на моноширинном экране компьютерного терминала (терминальный сервер) или принтера для представления изображений. При создании такого изображения используется палитра, состоящая из буквенных, цифровых символов и символов знаков пунктуации из числа 95 символов таблицы ASCII. По причине высокой вероятности различий в представлении на системах с национальными вариантами таблицы остальные 160 символов, как правило, не используются.Двухмерная и трёхмерная компьютерная графика

6. Определение и основные понятия растровой графики

Элементы растра:

1) Для вывода 2D растровой графики на экран используется пиксель (picture element). Как правило пиксель имеет форму многоугольника, так как в такую фигуру проще вписать элемент вывода.

2) Если растр выводится на печатающее устройство, то используется термин точка (dot).

3) В 3D графике используется термин воксель (voxel) – объемный пиксель.

Разрешение растра…

Глубина цвета – диапазон цветовой гаммы, который используется для закрашивания растра.

Объем растра – произведение разрешения на глубину цвета.

Разрешение растрового изображения

Разрешение растра – количество элементов растра в самом растре.

Измерения разрешения:

1) Принятое измерение разрешение экрана выводимое на монитор (320х240px)

2) Плотность пикселей – ppi – pixel per inch

3) Реальное количество пикселей Mpx, Gxp

4) Плотность вывода точек на печать – DPI – dot’s per inch

Разрешение цифрового видео, развёртка и соотношение сторон кадра

Цифровое видео – вид растровой графики, в котором используется растровое изображение, состоящее из нескольких кадров. Основной характеристикой цифрового видео является разрешение. DVD – 576i, 480i; PAL – 720x576; NTSC – 720x480. «i» говорит о том, что вывод строк при воспроизведении происходит через одну. Каждый кадр содержит либо четные, либо нечетные строки. Это называется черезстрочная развертка кадра. «р» - прогрессивная развертка кадров, при ней происходит вывод каждой строки в кадре.

Представление цветов в компьютерной графике, цветовая модель

Цветовая модель - математическая модель описания представления цветов. Все возможные значения цветов, задаваемые моделью, определяют цветовое пространство. Цветовая модель обычно используется для хранения и обработки цветов в дискретном виде, при представлении ее в вычислительных устройствах, в частности, ЭВМ. Цветовая модель задаёт соответствие между воспринимаемыми человеком цветами, хранимыми в памяти, и цветами, формируемым на устройствах вывода (возможно, при заданных условиях).

Аддитивные и субтрактивные цветовые модели

Аддитивное смешение цветов - метод синтеза цвета, основанный на сложении аддитивных цветов , то есть цветов непосредственно излучающих объектов.

Смешивая три основных цвета: красный, зелёный и синий - в определенном соотношении, можно воспроизвести большинство воспринимаемых человеком цветов.

Один из примеров использования аддитивного синтеза - компьютерный монитор, цветное изображение на котором основано на цветовом пространстве RGB и получается из красных, зеленых и синих точек.

В противоположность аддитивному смешению цветов существуют схемы субтрактивного синтеза. В этом случае цвет формируется за счет вычитания из отраженного от бумаги (или проходящего через прозрачный носитель) света определенных цветов. Самая распространенная модель субтрактивного синтеза - CMYK, широко применяющаяся в полиграфии.

Цветовая модель RGB

Цветовая модель соответствует физической модели восприятия цвета человеком(красном, заленом и синем).

Человеческий глаз наиболее восприимчив к зеленому цвету, затем к красному, и в последнюю очередь к синему.

Для записи цвета используется, как правило, значение до 8 бит в десятиричной или шестнадцатиричной форме.

Числовое представление RGB

Цветовая модель RGB используется для кодирования и синтеза цвета, передаваемых с помощью светоизлучения.

(0,0,0) #000000 – черный

(255,255,255) #FFFFFF – белый

В RGB отводится по 2 бита на каждый из цветов(8бит/ RGB=2бита), при этом цвета делятся в соотношении красный:зеленый:синий = 3:3:2

В SVGA – Super-VGA отводится по 8 бит на каждый цвет, так как на цветовую модель отводится 24 бита.

8 бит = 256 цветов

24 бита = 16 777 216 цветов = True Color

16 бит = 65 536 цветов = Hight Color

Человек в среднем воспринимает от 7 до 8 миллионов оттенков.

RGBA –четырехканальная цветовая модель, в котором четвертый канал – это a канал и служит для определения прозрачности.

Компрессия цифрового видео

Чтобы ввести в компьютер и записать на диск видео с аналогового источника - телевизора, видеомагнитофона, аналоговой камеры, - сигнал необходимо преобразовать в цифровую форму - оцифровать. Эта операция осуществляется с помощью электронного устройства, называемого аналогово-цифровым преобразователем (АЦП).

Если же видео вводится в компьютер с цифровой камеры, то такую операцию принято называть захватом (capture). Впрочем, оцифровку аналоговых записей также часто называют термином «захват». В процессе захвата цифровой сигнал может быть преобразован в другой формат.

Одна секунда «захваченной» видеозаписи без звука занимает свыше 30 Мбайт дискового пространства. Это означает, что двухчасовой фильм займет свыше 100 Гбайт, а на диске DVD емкостью 4,7 Гбайт поместится всего 156 секунд видео. Кроме того, для воспроизведения такого фильма необходимо обеспечить скорость передачи данных свыше 200 Мбит/сек, что является весьма сложной задачей для современной аппаратуры. Поэтому для уменьшения объема цифровых данных видеосигнал при захвате перед записью на жесткий диск подвергается сжатию (компрессии). При этом используется преимущественно компрессия по алгоритмам MPEG.

Стандарты MPEG разработаны Экспертной группой кинематографии (Moving Picture Experts Group - MPEG). MPEG - это стандарт сжатия звука и видео в более удобный для хранения, загрузки или пересылки, например через Интернет, формат.
MPEG состоит из трех частей: Audio, Video, System (объединение и синхронизация двух других). Существуют разные стандарты: MPEG-1, MPEG-2, MPEG-3, MPEG-4, MPEG-7.
Компрессия MPEG-1 используется в основном на дисках VideoCD HXVCD. Более совершенный стандарт - MPEG-2, обеспечивающий значительно лучшее качество, стал не только нормой европейского цифрового телевещания, но и был принят как стандарт сжатия для записи изображения на DVD. Этот стандарт используется также для записи дисков Super VideoCD, CVD, XSVCD и некоторых других. Для записи видеодисков формата DivX используется компрессия MPEG-4.

Алгоритм де Кастельжопа

В вычислительной математике алгоритм де Кастельжо, названный в честь его изобретателя Поля де Кастельжо - рекурсивный метод определения формы многочленов Бернштейна или кривых Безье. Алгоритм де Кастельжо также может быть использован для разделения кривой Безье на две части по произвольному значению параметра.

Достоинством алгоритма является его более высокая вычислительная устойчивость по сравнению с прямым методом.

Линейные кривые

Параметр t в функции, описывающей линейный случай кривой Безье, определяет, где именно на расстоянии от P0 до P1 находится B(t). Например, при t = 0,25 значение функции B(t) соответствует четверти расстояния между точками P0 и P1. Параметр t изменяется от 0 до 1, а B(t) описывает отрезок прямой между точкамиP0 и P1.

Квадратичные кривые

Для построения квадратичных кривых Безье требуется выделение двух промежуточных точек Q0 и Q1 из условия, чтобы параметр t изменялся от 0 до 1:

Кривые высших степеней

Для построения кривых высших порядков соответственно требуется и больше промежуточных точек. Для кубической кривой это промежуточные точки Q0, Q1 и Q2, описывающие линейные кривые, а также точки R0 и R1, которые описывают квадратичные кривые: более простое уравнение p0q0/p0q1=q1p1/p1p2=bq0/q1q0

33. Аффинное преобразование и его матричное представление

Аффинным называется преобразование плоскости, переводящее каждую прямую в прямую и параллельные прямые а параллельные.

Преобразование называется взаимно однозначным, если

Разные точки переходят в разные;

В каждую точку переходит какая-то точка.

Например, сжатие 0 разжатие, поворот, перенос и тд

Матрица 3x3, последний столбец которой равен (0 0 1)T, задает аффинное преобразование плоскости:

По одному из свойств, аффинное преобразование можно записать в виде:

f(x) = x * R + t,

где R – обратимая матрица 2x2, а t – произвольный вектор.

34. Виды аффинных преобразований

Сжатие, растяжение, поворот, перенос, движение, наклон, отображение

Кривые поверхности

Обычно под кривыми поверхностями понимается полигональная модель.

Полигональная модель – кривая поверхность построенная с помощью графических примитивов, обычно треугольник или четырёх угнольник.

Примитивы – геометрические объекты, объёмные поля, которые составляют векторный рисунок:

· Многоугольник;

· Тела вращения.

Уравнение рендеринга

· - длина волны света.

· - время.

· - количество излучения заданной длины волны исходящего вдоль направления во время , из заданой точки

· - излучённый свет.

· - интеграл по полусфере входящих направлений.

· - двунаправленная функция распределения отражения, количество излучения отражённого от к в точке , во время , на длине волны

· - длина волны по входящему направление к точке из направления во время .

· - поглощение входящего излучения по заданному углу.

Графический конвейер

Графический конвейер (graphic pipeline) - это некоторое программно-аппаратное средство, которое преобразует описание объектов в «мире» приложения в матрицу ячеек видеопамяти растрового дисплея. Его задача - создать иллюзию, о которой говорили выше.
В глобальных координатах приложение создает объекты, состоящие из трехмерных примитивов. В этом же пространстве располагаются источники освещения, а также определяются точка зрения и направление взгляда наблюдателя. Естественно, что наблюдателю видна только часть объектов: любое тело имеет как видимую (обращенную к наблюдателю), так и невидимую (обратную) сторону. Кроме того, тела могут полностью или частично перекрывать друг друга. Взаимное расположение объектов относительно друг друга и их видимость для зафиксированного наблюдателя обрабатываются на первой стадии графического конвейера, называемой трансформацией (transformation). На этой стадии выполняются вращение, перемещение и масштабирование объектов, а затем и преобразование из глобального пространства в пространство наблюдения (world-to-viewspace transform), а из него и преобразование в «окно» наблюдения (viewspace-to-window transform), включая и проецирование с учетом перспективы. Попутно с преобразованием из глобального пространства в пространство наблюдения (до него или после) происходит удаление невидимых поверхностей, что значительно сокращает объем информации, участвующей в дальнейшей обработке. На следующей стадии конвейера (lighting) определяется освещенность (и цвет) каждой точки проекции объектов, обусловленная установленными источниками освещения и свойствами поверхностей объектов. И наконец, на стадии растеризации (rasterization) формируется растровый образ в видеопамяти. На этой стадии на изображения поверхностей наносятся текстуры и выполняется интерполяция интенсивности цвета точек, улучшающая восприятие сформированного изображения. Весь процесс создания растрового изображения трехмерных объектов называется рендерингом (rendering).

Шейдеры, шейдерные языки

Ше́йдер (англ. Shader; схема затемнения, программа построения теней) - это программа для одной из ступеней графического конвейера, используемая втрёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затемнение, смещение поверхности и эффекты пост-обработки.

Программируемые шейдеры гибки и эффективны. Сложные с виду поверхности могут быть визуализированы при помощи простых геометрических форм. Например, шейдеры могут быть использованы для рисования поверхности из трёхмерной керамической плитки на абсолютно плоской поверхности.

Чтобы понять, что такое шейдер, разберемся для начала, как видео карта рисует примитивы (треугольники, полигоны и др.) На вход поступают данные о каждой вершине примитива. Например, положение вершины в пространстве, нормаль и текстурные координаты. Эти данные называются вершинными атрибутами (vertex attributes). GPU на их основе вычисляет выходные значения: положение вершины в экранных координатах, цвет вершины, рассчитанный в зависимости от освещения и т.д. До выхода видео карт GeForce 3 и Radeon 8500 этот процесс был неуправляемым. Если вас, например, не устраивали те формулы, по которым считается освещение в OpenGL, и вы хотели применить свои, то ничего нельзя было поделать. Приходилось либо довольствоваться тем, что умеет GPU, либо выполнять расчеты для каждой вершины на процессоре, что намного медленнее. Решением этой проблемы стали вертексные программы (в Direct3D они называются вертексные шейдеры). Вертексная программа - это программа, написанная на специальном языке низкого уровня, которая выполняется на GPU и преобразует входные вертексные атрибуты в выходные, которые поступают на вход пиксельного шейдера. Важной особенностью вертексных и пиксельных программ является то, что все инструкции работают с векторами. Например, чтобы посчитать скалярное произведение, надо выполнить всего лишь одну инструкцию, а не 5 (2 сложения и 3 умножения), как на CPU. Благодаря этому можно выполнить массу операций небольшим числом инструкций. Например, умножение матрицы на вектор - всего 4 инструкции. А если инструкций мало, то скорость выполнения такой программы довольно высокая.
Значения, вычисленные в вертексном шейдере, интерполируются по треугольнику. На видео картах, не поддерживающих пиксельные шейдеры, для каждого пикселя определяется его цвет и цвет текстуры (или нескольких текстур) в данной точке. Потом эти цвета умножаются или складываются, в зависимости от параметров выполненной ранее функции glTexEnv(), и результат записывается в буфер кадра. Если же видео карта поддерживает пиксельные шейдеры, то все намного интереснее. Интерполированные по треугольнику значения поступают на вход некоторой программы, называемой пиксельным шейдером. Это программа, состоящая из ряда арифметических и других инструкций, рассчитывает цвет пикселя, который записывается в буфер кадра. По сравнения с вертексными программами, скорость выполнения пиксельных шейдеров намного выше. Можно почти моментально выполнять штук 10 векторных инструкций для каждого пикселя! На CPU такое сделать просто невозможно.
Пиксельные и вертексные шейдеры позволяют на аппаратном уровне создавать потрясающие эффекты: освещение на пиксельном уровне, bump mapping, отражение и преломление, волны на воде, скелетная анимация персонажей, тени и многое другое!

Шейдерные языки

Впервые использованные в системе RenderMan компании Pixar, шейдеры получали всё большее распространение со снижением цен на компьютеры. Основное преимущество от использования шейдеров - их гибкость, упрощающая и удешевляющая цикл разработки программы, и при том повышающая сложность и реалистичность визуализируемых сцен.

Шейдерные языки обычно содержат специальные типы данных, такие как матрицы, семплеры, векторы, а также набор встроенных переменных и констант для удобной интеграции со стандартной функциональностью 3D API. Поскольку компьютерная графика имеет множество сфер приложения, для удовлетворения различных потребностей рынка было создано большое количество шейдерных языков.

Профессиональный рендеринг

Данные шейдерные языки ориентированы на достижение максимального качества визуализации. Описание свойств материалов сделано на максимально абстрактном уровне, для работы не требуется особых навыков программирования или знания аппаратной части. Такие шейдеры обычно создаются художниками с целью обеспечить «правильный вид», подобно наложению текстуры, источников света и другим аспектам их работы.

Обработка таких шейдеров обычно представляет собой ресурсоёмкую задачу. Совокупная вычислительная мощность, необходимая для обеспечения их работы, может быть очень велика, так как используется для создания фотореалистичных изображений. Основная часть вычислений при подобной визуализации выполняется большими компьютерными кластерами.

Шейдерный язык RenderMan

Шейдерный язык RenderMan, описанный в Спецификации интерфейса RenderMan, является фактическим стандартом для профессионального рендеринга. APIRenderMan, разработанный Робом Куком, используется во всех работах студии Pixar. Он также является первым из реализованных шейдерных языков.

Шейдерный язык Gelato

NVIDIA Gelato представляет собой оригинальную гибридную систему рендеринга изображений и анимации трехмерных сцен и объектов, использующую для расчетов центральные процессоры и аппаратные возможности профессиональных видеокарт серии Quadro FX.

Основополагающим принципом, которого неукоснительно придерживаются разработчики, является бескомпромиссное качество финального изображения, не ограниченное ничем, в том числе - современными возможностями видеокарт. Как производственный инструмент, способный создавать конечный продукт высокого качества, Gelato предназначен для профессионального использования в таких областях как кино, телевидение, промышленный дизайн и архитектурные визуализации.

Open Shading Language

Open Shading Language (OSL) - представляет собой небольшой, но богатый язык для программируемых шейдеров в развитых рендерах и других приложениях, идеально подходит для описывающих материалов, света, перемещения и получения изображения.

OSL - был разработан Sony Pictures Imageworks для использования в своем внутреннем рендере и используется для анимационных фильмов и визуальных эффектов.

OSL используется в пакете для создания трёхмерной компьютерной графики Blender.

Шейдерный язык Cg

Разработан nVidia совместно с Microsoft (такой же по сути язык от Microsoft называется HLSL, включён в DirectX 9). Cg расшифровывается как C for Graphics. Язык действительно очень похож на C, он использует схожие типы (int, float, а также специальный 16-битный тип с плавающей запятой - half). Поддерживаются функции и структуры. Язык обладает своеобразными оптимизациями в виде упакованных массивов (packed arrays) - объявления типа «float a» и «float4 a» в нём соответствуют разным типам. Второе объявление и есть упакованный массив, операции с упакованным массивом выполняются быстрее, чем с обычными. Несмотря на то, что язык разработан nVidia, он без проблем работает и с видеокартами ATI. Однако следует учесть, что все шейдерные программы обладают своими особенностями, о которых можно узнать из специализированных источников.

Шейдерные языки DirectX

Типы шейдеров

В настоящее время шейдеры делятся на три типа: вершинные, геометрические и фрагментные (пиксельные).
Вершинные шейдеры (Vertex Shader)
Вершинный шейдер оперирует данными, сопоставленными с вершинами многогранников. К таким данным, в частности, относятся координаты вершины в пространстве, текстурные координаты, тангенс-вектор, вектор бинормали, вектор нормали. Вершинный шейдер может быть использован для видового и перспективного преобразования вершин, генерации текстурных координат, расчета освещения и т. д.
Геометрические шейдеры (Geometry Shader)
Геометрический шейдер, в отличие от вершинного, способен обработать не только одну вершину, но и целый примитив. Это может быть отрезок (две вершины) и треугольник (три вершины), а при наличии информации о смежных вершинах (adjacency) может быть обработано до шести вершин для треугольного примитива. Кроме того, геометрический шейдер способен генерировать примитивы «на лету», не задействуя при этом центральный процессор. Впервые начал использоваться на видеокартах Nvidia серии 8.
Пиксельные шейдеры (Pixel Shader)
Фрагментный шейдер работает с фрагментами изображения. Под фрагментом изображения в данном случае понимается пиксель, которому поставлен в соответствие некоторый набор атрибутов, таких как цвет, глубина, текстурные координаты. Фрагментный шейдер используется на последней стадии графического конвейера для формирования фрагмента изображения.

57. Определение, основные понятия и методы текстурирования

Тексту́ра - растровое изображение, накладываемое на поверхность полигональной модели для придания ей цвета, окраски или иллюзии рельефа. Приблизительно использование текстур можно легко представить как рисунок на поверхности скульптурного изображения. Использование текстур позволяет воспроизвести малые объекты поверхности, создание которых полигонами оказалось бы чрезмерно ресурсоёмким. Например, шрамы на коже, складки на одежде, мелкие камни и прочие предметы на поверхности стен и почвы.

Качество текстурированной поверхности определяется текселями - количеством пикселей на минимальную единицу текстуры. Так как сама по себе текстура является изображением, разрешение текстуры и её формат играют большую роль, которая впоследствии сказывается на общем впечатлении от качества графики в 3D-приложении.

Традиционно термином texture mapping или тектурирование в трехмерном моделировании называют процесс наложения двухмерной текстуры на трехмерный объект (текстура как бы натягивается на объект) для придания ему соответствующего внешнего вида. Таким образом, например, производится "раскрашивание" моделей монстров и игроков в трехмерных играх типа Quake и др.

Методы текстурирования

Bump mapping(рельефное текстурирование) - простой способ создания эффекта рельефной поверхности с детализацией большей, чем позволяет полигональная поверхность. Эффект главным образом достигается за счет освещения поверхности источником света и черно-белой (одноканальной) карты высот, путем виртуального смещения пикселя (как при методе Displace mapping) как если бы там был вертекс(только без физического и визуального сдвига), за счет чего таким же образом изменяется ориентация нормалей использующихся для расчета освещенности пикселя (затенение по Фонгу), в результате получаются по-разному освещенные и затененные участки. Как правило Bump mapping позволяет создать не очень сложные бугристые поверхности, плоские выступы или впадины, на этом его использование заканчивается. Для более детальных эффектов в последствии был придуман Normal mapping.

MIP-текстурирование (англ. MIP mapping) - метод текстурирования, использующий несколько копий одной текстуры с разной детализацией. Название происходит от лат. multum in parvo - «много в малом».

Изображение лучше всего выглядит, когда детализация текстуры близка к разрешению экрана. Если разрешение экрана высокое (текстура слишком маленькая/объект очень близко), получается размытое изображение. Если же разрешение текстуры слишком высокое (текстура слишком велика/объект очень далеко), получаем случайные пиксели - а значит, потерю мелких деталей, мерцание и большой проценткэш-промахов. Получается, что лучше иметь несколько текстур разной детализации и накладывать на объект ту, которая наиболее подходит в данной ситуации.

Принцип действия

Создаётся так называемая MIP-пирамида - последовательность текстур с разрешением от максимального до 1×1. Например: 1×1, 2×2, 4×4, 8×8, 16×16, 32×32, 64×64, 128×128, 256×256, 512×512 и 1024×1024. Каждая из этих текстур называется MIP-уровнем (англ. MIP level) или уровнем детализации - LOD (англ. level of detail).

На всех этих текстурах находится одно и то же изображение. Таким образом, MIP-текстурирование увеличивает расход видеопамяти на треть:

.

При наложении текстур вычисляется расстояние до объекта и номер текстуры находится по формуле:

где resolution - разрешение виртуальной камеры (количество пикселей, которое будет в объекте размером в 1 ед., расположенном в 1 ед. от камеры), texelsize - размер текселя в единицах трёхмерного мира, dist - расстояние до объекта в тех же единицах, mip bias - число, позволяющее выбирать более или менее детальную текстуру, чем даёт формула.

Эта цифра округляется до целого, и текстура с соответствующим номером (нулевая - самая детальная, первая - вдвое меньшая и т. д.) накладывается на объект.

Недостатки

Расход видеопамяти увеличивается на треть. Впрочем, типичные объемы видеопамяти в начале 2010ых составляют 1-3 ГБ. К тому же, если объект далеко, его детальную текстуру можно выгрузить в оперативную память.

MIP-текстурирование не решает проблему текстур, находящихся под острым углом к зрителю (например, дорога в автосимуляторе). У таких текстур разрешение по одной оси сильно отличается от разрешения по другой - и, например, по оси X изображение явно размыто, в то время как по оси Y видны мерцания, свойственные завышенному разрешению текстуры. Есть сразу несколько способов решения этого (начиная с наименее качественного):

Установить в видеодрайвере наиболее комфортное значение mip bias - числа́, которое отвечает за выбор номера текстуры в пирамиде. Если оно отрицательное, видеоплата берёт более детальные текстуры, если положительное - менее детальные.

Многие игры сами устанавливают подходящий mip bias для разных типов объектов. Например, в Live for Speed mip bias устанавливается пользователем отдельно для автомобилей, препятствий и дороги.

Воспользоваться анизотропной фильтрацией - методом текстурирования, который направлен именно на решение этой проблемы.

Наконец, видна чёткая граница между MIP-уровнями. Это решается трилинейной фильтрацией.

Процедурное текстурирование - метод создания текстур, при котором изображение текстуры создается с помощью какого-либо алгоритма (процедурного алгоритма).

Лучше всего процесс процедурного текстурирования представить в виде блоков (операторов). Существует три типа блоков:

генераторы

вспомогательные

Каждый генератор и фильтр реализует какой-либо процедурный алгоритм. Каждый блок имеет совокупность параметров. Даже если не использовать такую схему все равно она сводится к этому общему случаю.

Для создания «природных» текстур, таких как дерево, гранит, металл, камни, лава в качестве фильтров используютсяфрактальный шум (англ. fractal noise) и ячеистые текстуры (англ. cellular textures).

Свойства процедурных текстур:

Обратимость. В процедурной текстуре сохраняется вся история ее создания.

Малый размер (если в качестве исходных данных к процедурным алгоритмам выступают только числовые значения).

Неограниченное количество вариаций при использовании стохастических (использующих генератор псевдослучайных чисел) алгоритмов.

Масштабируемость до любого размера (зависит от процедурного движка/библиотеки).

Одновременно с итоговой текстурой очень легко получаются alpha-, bump-, reflect-карты.

Детальное текстурирование (англ. Detail mapping) - программная техника в трёхмерной компьютерной графике, которая позволяет улучшить детализацию текстур на близком расстоянии от камеры. Конечный результат создаёт иллюзию использования текстуры огромного разрешения.

При приближении камеры к полигональной модели текстура становится размытой. В случае достаточного объема свободной памяти размытие может быть устранено увеличением разрешения текстуры. Однако хранение каждой текстуры в огромном разрешении не является практичным решением. Детальное текстурирование решает проблему другим путём:

Базовая текстура оставляется в разумном среднем разрешении

Создаётся детальная текстура с крупномасштабным изображением мелких деталей (отдельные травинки, галька, структура древесины и т. д.)

Полученная текстура обесцвечивается

Фильтром верхних частот удаляется всё, кроме самых мелких деталей

Фильтром коррекции гистограммы устанавливается средняя яркость на уровне 0.5

Обе текстуры смешиваются в пиксельном шейдере

Перед смешиванием текстурные координаты детальной текстуры масштабируются, чтобы детальная текстура повторялась в несколько раз чаще базовой

Для снижения заметности повторений детальной текстуры масштаб выбирается нецелочисленным

Цвет базовой текстуры умножается на цвет детальной, умноженный на 2 (для сохранения исходной яркости)

Рельефное текстурирование

Рельефное текстурирование - метод в компьютерной графике для придания более реалистичного и насыщенного вида поверхности объектов.

Bump mapping - простой способ создания эффекта рельефной поверхности с детализацией большей, чем позволяет полигональная поверхность. Эффект главным образом достигается за счет освещения поверхности источником света и черно-белой (одноканальной) карты высот, путем виртуального смещения пикселя (как при методе Displace mapping) как если бы там был вертекс(только без физического и визуального сдвига), за счет чего таким же образом изменяется ориентация нормалей использующихся для расчета освещенности пикселя (затенение по Фонгу), в результате получаются по-разному освещенные и затененные участки. Как правило Bump mapping позволяет создать не очень сложные бугристые поверхности, плоские выступы или впадины, на этом его использование заканчивается. Для более детальных эффектов в последствии был придуман Normal mapping.

Normal mapping - техника, позволяющая изменять нормаль отображаемого пикселя основываясь на цветной карте нормалей, в которой эти отклонения хранятся в виде текселя, цветовые составляющие которого интерпретируются в оси вектора , на основе которого вычисляется нормаль, используемая для расчета освещенности пикселя. Благодаря тому, что в карте нормалей задействуются 3 канала текстуры, этот метод дает большую точность, чем Bump mapping, в котором используется только один канал и нормали, по сути, всего лишь интерпретируются в зависимости от "высоты".

Карты нормалей обычно бывают двух типов:

object-space - используется для не деформирующихся объектов, таких как стены, двери, оружие и т.п.

tangent-space - применяется для возможности деформировать объекты, например персонажей.

Для создания карт нормалей обычно используется высокополигональная и низкополигональная модели, их сравнение дает нужные отклонения нормалей для последней.

Parallax mapping

Данная технология также использует карты нормалей, но, в отличие от normal mapping, она реализует не только освещение с учётом рельефа, но и сдвигает координаты диффузной текстуры. Этим достигается наиболее полный эффект рельефа, особенно при взгляде на поверхность под углом.