Компьютерная графика и программы ее обработки. Что такое компьютерная графика и ее виды Представление цветов в компьютере

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Подобные документы

    Понятия компьютерной графики. Преимущества формата GIF. Отличительные особенности программы "Corel Draw". Команды главного меню Adobe Photoshop. Инструменты и их действия. Описание применения графического редактора Photoshop для обработки снимков.

    курсовая работа , добавлен 18.04.2015

    Понятие векторной и растровой графики, форматы растровых изображений TIF, JPG, GIF. Характеристика программ графики Adobe PhotoDeluxe, Paint Shop Pro, Adobe Photoshop, CorelDraw, AutoCAD. Создание приложений по расчету стоимости продукции с учетом скидки.

    курсовая работа , добавлен 08.12.2010

    Общие сведения о графических редакторах, понятия компьютерной растровой и векторной графики, форматов. Обзор и сравнительный анализ современных программ обработки и просмотра графических изображений: Paint, Corel Draw, Adobe Photoshop, MS PowerPoint.

    дипломная работа , добавлен 09.08.2010

    Технология компьютерной графики, форматы графических файлов. Общие сведения о компании и программных продуктах Adobe Systems Inc, элементы интерфейса. Краткое описание учебника Adobe Photoshop CS3, программное обеспечение, используемое для его создания.

    дипломная работа , добавлен 23.06.2010

    Импорт и копирование растровых образов в CorelDRAW. Преобразование объектов CorelDRAW в растровые образы. Эффекты растровых образов. Применение растровых цветовых масок.

    реферат , добавлен 21.12.2003

    Виды компьютерной графики. Photoshop – программа для создания и обработки растровой графики. Пакет программ для работы с векторной графикой CorelDraw. Обработка растровых изображений с использованием Photoshop. Этапы создания коллажа на тему "Музыка".

    курсовая работа , добавлен 27.12.2014

    Средства для работы с растровой графикой. Источники получения растровых изображений, их преимущества и недостатки. Растровые графические редакторы: Paint, Microsoft Picture-It, Adobe PhotoDeluxe, Paint Shop Pro, Microsoft PhotoDraw, Adobe Photoshop.

    презентация , добавлен 12.02.2014

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

    курсовая работа , добавлен 10.06.2014

Введение

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

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

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

Предмет - компьютерная графика и один из ее видов - спецэффект.

1. Проанализировать литературы про спецэффекты и компьютерную графику.

2. Исследовать компьютерную графику на протяжении всего развития.

3. Рассмотреть развитие спецэффектов от начала их формирования и до наших дней.

4. Показать на практике использование компьютерной графики и спецэффектов.

Гипотеза: Существует ли граница в создании спецэффектов и развитии компьютерной графики?

Что такое компьютерная графика и ее виды

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

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

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

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

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

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

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

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

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

цветовое пространство (цветовая модель). Например - RBG;

разрешение -- справочная величина, говорящая о рекомендуемом размере пикселя изображения.

Наименьшим элементом является точка.

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

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

линия.

Преимущества векторного способа описания графики над растровой графикой:

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

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

Параметры объектов хранятся и могут быть легко изменены.

Также это означает что перемещение, масштабирование, вращение, заполнение и т. д. не ухудшает качества рисунка.

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

Недостатки векторной графики

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

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

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

Трехмерная графика

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

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

Наименьшим элементом является плоскость.

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

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

Увеличение масштаба не ведёт к упрощению структуры, на всех шкалах мы увидим одинаково сложную картину.

Является самоподобной или приближённо самоподобной.

Обладает дробной размерностью.

Наименьшим элементом является треугольник.

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

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

Первые примеры фрактальной графики с необычными свойствами появились в XIX веке. Термин «фрактал» был введён Бенуа Мандельбротом в 1975 году и получил широкую популярность с выходом в 1977 году его книги «Фрактальная геометрия природы».

Символьная графика устарела и на сегодняшний день практически не используется.

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

Текущее состояние

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

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

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

Научная работа

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

  • конференция Siggraph , проводится в США
  • конференция Графикон , проводится в России
  • CG-событие , проводится в России
  • CG Wave , проводится в России

На факультете ВМиК МГУ существует лаборатория компьютерной графики .

Техническая сторона

По способам задания изображений графику можно разделить на категории:

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

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

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

Пример растрового рисунка

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

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

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

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

Фрактальное дерево

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

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

Трёхмерная графика

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

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

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

  • матрица сдвига
  • матрица масштабирования

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

Ежегодно проходят конкурсы трехмерной графики, такие как Magick next-gen или Dominance War.

CGI графика

Основная статья: CGI (кино)

Представление цветов в компьютере

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

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

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

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

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

См. также

  • Графический интерфейс пользователя
  • Фрактальная монотипия

Ссылки

  • Селиверстов М. «3D кино - новое или хорошо забытое старое?»
  • 3D Компьютерная графика в каталоге ссылок Open Directory Project (dmoz).

Примечания

Литература

  • Никулин Е. А. Компьютерная геометрия и алгоритмы машинной графики. - СПб: БХВ-Петербург, 2003. - 560 с. - 3000 экз. - ISBN 5-94157-264-6
  • Компьютер рисует фантастические миры (ч.2) // Компьютер обретает разум = Artificial Intelligence Computer Images / под ред. В.Л. Стефанюка. - М .: Мир , 1990. - 240 с. - 100 000 экз. - ISBN 5-03-001277-X (рус.); 7054 0915 5 (англ.)
  • Дональд Херн, М. Паулин Бейкер. Компьютерная графика и стандарт OpenGL = Computer Graphics with OpenGL. - 3-е изд. - М .: «Вильямс», 2005. - С. 1168. - ISBN 5-8459-0772-1
  • Эдвард Энджел. Интерактивная компьютерная графика. Вводный курс на базе OpenGL = Interactive Computer Graphics. A Top-Down Approach with Open GL. - 2-е изд. - М .: «Вильямс», 2001. - С. 592. - ISBN 5-8459-0209-6
  • Сергеев Александр Петрович, Кущенко Сергей Владимирович. Основы компьютерной графики. Adobe Photoshop и CorelDRAW - два в одном. Самоучитель. - М .: «Диалектика», 2006. - С. 544. -

За последний десяток лет графические карты, позже названные 3D-акселераторами ,
прошли немалый путь развития — от первых SVGA-ускорителей, о 3D вообще ничего
не знавших, и до самых современных игровых "монстров", берущих на себя
все функции, связанные с подготовкой и формированием трехмерного изображения,
которое производители именуют "кинематографическим". Естественно, с
каждым новым поколением видеокарт создатели добавляли им не только дополнительные
мегагерцы и мегабайты видеопамяти, но и множество самых разных функций и эффектов.
Давайте же посмотрим, чему , а главное, зачем научились акселераторы
последних лет, и что это дает нам, любителям трехмерных игр.

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

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

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

Рассмотрим трансформацию координат . У нас имеется трехмерный мир, в котором расположены разные трехмерные же объекты, а в итоге нужно получить двумерное плоское изображение этого мира на мониторе. Поэтому все объекты проходят несколько стадий преобразования в разные системы координат, называемых еще пространствами (spaces ). Вначале локальные, или модельные, координаты каждого объекта преобразовываются в глобальные , или мировые, координаты. То есть, используя информацию о расположении, ориентации, масштабе и текущем кадре анимации каждого объекта, программа получает уже набор треугольников в единой системе координат. Затем следует преобразование в систему координат камеры (camera space ), с помощью которой мы смотрим на моделируемый мир. После чего отсчет будет начинаться из фокуса этой камеры — по сути как бы "из глаз" наблюдателя. Теперь легче всего исключить из дальнейшей обработки целиком невидимые (отбраковка, или culling ) и "обрезать" частично видимые (отсечение, или clipping ) для наблюдателя фрагменты сцены.

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

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

Теперь, когда нам понятно устройство 3D-конвейера в общем виде, давайте взглянем
на архитектурные различия разных поколений 3D-ускорителей. Каждая стадия 3D-конвейера
очень ресурсоемка, требует миллионов и миллиардов операций для получения одного
кадра изображения, причем двумерные этапы текстурирования и растеризации гораздо
"прожорливее" геометрической обработки на ранних, векторных, стадиях
конвейера. Так что перенос как можно большего количества стадий в "видеожелезо"
благотворно влияет на скорость обработки 3D-графики и значительно разгружает CPU.
Первое поколение ускорителей брало на свои плечи только последний этап — текстурирование
и растеризацию, все предыдущие шаги программа должна была просчитать сама с помощью
CPU. Рендеринг происходил куда быстрее, чем при полном отсутствии 3D-акселерации,
ведь видеокарта уже выполняла наиболее тяжелую часть работы. Но все же с увеличением
сложности сцен в 3D-играх программная трансформация и освещение становились узким
горлышком, препятствующим увеличению скорости. Поэтому в 3D-акселераторы начиная
с первых моделей NVidia GeForce и ATI Radeon был добавлен блок, именуемый T &L-блоком .
Как видно из названия, он отвечает за трансформацию и освещение ,
т. е. теперь и за начальные стадии 3D-конвейера. Его даже правильнее называть
TCL-блоком (Transformation Clipping Lighting ), поскольку
отсечение — тоже его задача. Таким образом, игра, использующая аппаратный T&L,
практически полностью освобождает центральный процессор от работы над графикой,
а значит, появляется возможность "нагрузить" его другими расчетами,
будь то физика или искусственный интеллект.

Казалось бы, все хорошо и чего еще желать? Но не стоит забывать, что любой перенос функций "в железо" означает отказ от гибкости, присущей программным решениям. И с появлением аппаратного T&L у программистов и дизайнеров, желающих реализовать какой-то необычный эффект, осталось лишь три варианта действий: они могли либо полностью отказаться от T&L и вернуться к медленным, но гибким программным алгоритмам, либо пытаться вмешиваться в этот процесс, выполняя постобработку изображения (что не всегда возможно и уж точно очень медленно)… либо ждать реализации нужной функции в следующем поколении видеокарт. Производителей аппаратуры такой расклад тоже не устраивал — ведь каждое дополнительное T&L-расширение приводит к усложнению графического чипа и "раздуванию" драйверов видеокарт.

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

По своим функциям шейдеры делятся на две группы: вершинные (vertex shaders )
и пиксельные (pixel shaders ). Первые заменяют собой всю функциональность
T&L-блока видеокарты и, как видно из названия, работают с вершинами треугольников.
В последних моделях акселераторов этот блок фактически убран — его эмулирует
видеодрайвер с помощью вершинных шейдеров. Пиксельные же шейдеры предоставляют
гибкие возможности для программирования блока мультитекстурирования и работают
уже с отдельными пикселами экрана.

Шейдеры также характеризуются номером версии — каждая последующая добавляет к предыдущим все новые и новые возможности. Наиболее свежей спецификацией пиксельных и вершинных шейдеров на сегодняшний день является версия 2.0, поддерживаемая DirectX 9, — на нее и будут ориентироваться как производители акселераторов, так и разработчики новых игр. На их поддержку аппаратурой стоит обращать внимание и пользователям, желающим приобрести современную игровую видеокарту. Тем не менее экспансия игр, построенных на шейдерных технологиях, только начинается, так что и более старые вершинные шейдеры (1.1), и пиксельные (1.3 и 1.4) будут использоваться еще как минимум год, хотя бы для создания сравнительно простых эффектов — пока DirectX 9-совместимые акселераторы не получат большего распространения.

Первые шейдеры состояли всего из нескольких команд, и их нетрудно было написать на низкоуровневом языке ассемблера. Но с ростом сложности шейдерных эффектов, насчитывающих иногда десятки и сотни команд, возникла необходимость в более удобном, высокоуровневом языке написания шейдеров. Их появилось сразу два: NVidia Cg (C for graphics) и Microsoft HLSL (High Level Shading Language) — последний является частью стандарта DirectX 9. Достоинства и недостатки этих языков и прочие нюансы будут интересны только программистам, так что подробнее на них мы останавливаться не станем.

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

  • самая свежая версия DirectX, на данный момент это DirectX 9.0b;
  • видеокарта с поддержкой DirectX 9;
  • самые свежие драйверы видеокарты (в более старых некоторые функции могут отсутствовать);
  • игра, использующая все эти возможности.

Тут же хотелось бы развеять вероятные заблуждения. Некоторые трактуют популярный ныне термин "DirectX 9-совместимая видеокарта" следующим образом: "такая видеокарта будет работать и раскрывать все свои возможности только под API DirectX 9", или же "DirectX 9 стоит устанавливать на компьютер только с такой видеокартой". Это не совсем верно. Подобное определение скорее означает: "данная видеокарта обладает возможностями, требуемыми от нее спецификацией DirectX 9".

Глоссарий 3D-графики

Имитация меха с помощью шейдеров

Набор библиотек, интерфейсов и соглашений для работы с 3D-графикой. Сейчас широко
используются два 3D API: открытый и кросс-платформенный OpenGL (Open Graphics
Library) и Microsoft Direct3D (он же DirectX Graphics), являющийся частью универсального
мультимедийного API DirectX.

3D-акселератор, или 3D-ускоритель (3D-accelerator)

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

3D-конвейер, или конвейер рендеринга (3D-pipeline, или rendering pipeline)

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

3D-сцена

Часть виртуального трехмерного мира, подлежащая рендерингу в данный момент времени.

Depth of Field (глубина резкости)

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

Displacement mapping (текстурирование картами смещения)

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

MIP-mapping

Вспомогательный метод улучшения качества и повышения скорости текстурирования, заключающийся в создании нескольких вариантов текстуры с уменьшенным разрешением (например, 128 128, 64 64, 32 32 и т. д.), называемых MIP-уровнями. По мере удаления объекта будут выбираться все более "мелкие" варианты текстуры.

Motion-blur (он же временной антиалиасинг)

Довольно новая методика более реалистичной передачи движения за счет "смазывания" изображения объектов в направлении их перемещения. Зрители привыкли к данному эффекту, характерному для кино, поэтому без него картинка кажется неживой даже при высоких FPS. Реализуется motion-blur через многократную отрисовку объекта в кадр в разных фазах его движения или же "размазыванием" изображения уже на пиксельном уровне.

Z-буфер (Z-buffer)

Z-буферизация — один из методов удаления невидимых участков изображения. При
его использовании для каждого пиксела на экране в видеопамяти хранится расстояние
от этой точки до наблюдателя. Само расстояние называется глубиной сцены, а этот
участок памяти — Z-буфером. При выводе очередного пиксела на экран его глубина
сравнивается с сохраненной в Z-буфере глубиной предыдущего пиксела с такими же
координатами, и если она больше, то текущий пиксел не рисуется — он будет невидимым.
Если же меньше, то его цвет заносится в буфер кадра (frame buffer), а новая глубина
— в Z-буфер. Таким образом гарантируется перекрывание дальних объектов более
близкими.

Альфа-канал (alpha channel) и альфа-смешивание (alpha-blending).

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

Антиалиасинг (antialiasing)

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

Детальные текстуры (detail textures)

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

Кадровый буфер (frame buffer)

Участок видеопамяти, в котором производится работа по формированию изображения. Обычно используются два (реже три) буфера кадра: один (передний, или front-buffer) отображается на экране, а во второй (задний, или back-buffer) выполняется рендеринг. Как только очередной кадр изображения будет готов, они поменяются ролями: второй буфер будет показан на экране, а первый перерисован заново.

Карты освещенности (lightmap)

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

Карты среды (environment mapping)

Имитация отражающих поверхностей с помощью специальной текстуры — карты среды, представляющей собой изображение окружающего объект мира.

Мультитекстурирование (multitexturing)

Наложение нескольких текстур за один проход акселератора. Например, основной текстуры,
карты освещенности и карты с детальной текстурой. Современные видеокарты умеют
обрабатывать как минимум 3—4 текстуры за раз. Если мультитекстурирование не поддерживается
(или необходимо наложить больше слоев текстур, чем это может сделать акселератор
"в один прием"), то используется несколько проходов, что, естественно,
гораздо медленнее.

Освещение (lighting)

Процесс расчета цвета и степени освещенности пиксела каждого треугольника
в зависимости от расположенных рядом источников света с использованием одного
из методов затенения. Часто применяются следующие методы:

  • плоское затенение (flat shading). Треугольники имеют одинаковую освещенность по всей поверхности;
  • затенение Гуро (Gouraud shading). Информация об уровне освещенности и цвете, рассчитанная для отдельных вершин треугольника, просто интерполируется по поверхности всего треугольника;
  • затенение Фонга (Phong shading). Освещение рассчитывается индивидуально для каждого пиксела. Наиболее качественный метод.

Пиксел (pixel)

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

Пространство (space), или система координат

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

Процедурные текстуры

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

Рельефное текстурирование (bump mapping)

Эффект придания поверхности шероховатостей рельефа с помощью дополнительной текстуры, называемой картой рельефа (bump map). Геометрия поверхности при этом не меняется, так что эффект хорошо различим только при наличии динамических источников света.

Рендеринг (rendering)

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

Тексел (texel)

Пиксел, но не экрана, а текстуры. Минимальный ее элемент.

Текстурирование, или наложение текстур (texturing, или texture mapping)

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

Текстура (texture)

Двумерное изображение — bitmap, "натягиваемое" на 3D-объект. С помощью текстур задаются самые различные параметры материала, из которого состоит объект: его рисунок (наиболее традиционное применение), степень освещенности разных его частей (карта освещенности, или lightmap), способность отражать свет (specular map) и рассеивать его (diffuse map), неровности (bump map) и др.

Тесселяция (tesselation)

Процесс деления сложных полигонов и кривых поверхностей, описанных математическими функциями, на приемлемые для 3D-акселератора треугольники. Шаг этот зачастую необязательный, скажем, 3D-модели в большинстве игр обычно и так уже состоят из треугольников. Но вот, например, закругленные стены в Quake III: Arena — пример объекта, для которого тесселяция необходима.

Точка, или вершина (vertex)

Точка в пространстве, заданная тремя координатами (x, y, z). Отдельные точки редко используются, но они являются основой для более сложных объектов: линий, треугольников, точечных спрайтов. Кроме самих координат, к точке могут "привязываться" другие данные: координаты текстуры, свойства освещения и тумана и т. д.

Трансформация

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

Треугольник (triangle)

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

Фильтрация текстур (texture filtering)

Метод улучшения качества текстурирования при изменении расстояния до наблюдателя. Простейший метод — билинейная (bilinear) фильтрация — использует усредненное значение цвета четырех смежных текселов текстуры. Более сложный — трилинейная (trilinear) фильтрация — задействует также информацию из MIP-уровней. Самый современный и качественный (а заодно и самый медленный) метод — анизотропная (anisotropic) фильтрация, который подсчитывает результирующее значение, применяя целый набор (обычно от 8 до 32) текселов, расположенных рядом.

Шейдер (шейдер)

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

Некоторые возможности, реализуемые

С помощью шейдеров

  • Оптически точное (попиксельное) освещение и мягкие тени от всех объектов,
    произвольные модели освещения;
  • различные эффекты отражения и преломления лучей для моделирования
    воды, льда, стекла, витражей, подводных бликов и т. д.;
  • реалистичная рябь и волны на воде;
  • "кинематографические" эффекты Depth of Field (глубина
    резкости
    ) и Motion blur ;
  • качественная, детальная анимация скелетных моделей (состоящих из системы
    управляющих анимацией модели "косточек"), мимика;
  • так называемый "нефотореалистичный рендеринг" (Non-Photorealistic
    Rendering, NPR): имитация стилей рисования различных художников, эффект
    карандашного наброска или классической, рисованной 2D-анимации;
  • реалистичная имитация ткани, меха и волос;
  • процедурные текстуры (в том числе анимационные), не требующие затрат
    CPU и загрузки каждого кадра в видеопамять;
  • полноэкранные фильтры постобработки изображения: дымка, гало, капли
    дождя на стекле, шумовой эффект и т. д.;
  • объемный рендеринг: более реалистичные дым и огонь;
  • многое другое.
Интересные ссылки

www.scene.org
Громадный архив творчества сотен "демомейкерских" групп и отдельных
мастеров демо-сцены за последние годы. Для тех, кто не знаком с этим явлением,
поясним: "demo" в данном случае называется программа, генерирующая
в реальном времени небольшой (обычно 5—10 минут) ролик с графикой, звуком
и музыкой. Демо последних лет активно используют самые свежие технические
наработки и, конечно же, шейдеры.

www.nvidia.com/view.asp?PAGE=demo_catalog
Каталог "больших" технологических демок от NVidia.

www.nvidia.com/search.asp?keywords=Demo
Все технодемки NVidia, в том числе очень простые, состоящие из одного
эффекта.

www.cgshaders.org
Примеры шейдерных эффектов, написанных на языке Cg.

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

Пиксельная графика

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

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

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

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

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

Рис. 8.5.

Фрактальная графика незаменима при создании искусственных гор, облаков, морских волн. Благодаря фракталам легко изображаются сложные объекты, образы которых похожи на природные. Фракталы позволяют описывать целые классы изображений, для детального описания которых требуется относительно мало памяти (рис. 8.5). С другой стороны, фракталы слабо применимы к изображениям вне этих классов.

Трехмерная графика

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

Рис. 8.6.

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

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

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

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

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

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

-графика

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

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

Инфографика

Термином "инфографика" (от лат. informatio – осведомление, разъяснение, изложение; и др.-греч. graphike – письменный, от grapho – пишу) обозначают графический способ подачи информации, данных и знаний.

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

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

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

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