Интернет-курс
«3D-графика»
Алехина Г.В., Козлов М.В., Спивакова Н.Я.
Интернет-курс
«3D-графика»
Глава 1. Основные понятия трехмерного моделирования и анимации
Трёхмерная графика (3D, 3 Dimensions, русск. 3 измерения) — раздел компьютерной графики, совокупность приемов и инструментов (как программных, так и аппаратных), призванных обеспечить пространственно-временную непрерывность получаемых изображений. Больше всего применяется для создания изображений в архитектурной визуализации, кинематографе, телевидении, компьютерных играх, печатной продукции, а также в науке.
Трёхмерное изображение отличается от плоского построением геометрической проекции трёхмерной модели сцены на экране компьютера с помощью специализированных программ.
При этом модель может как соответствовать объектам из реального мира (автомобили, здания, ураган, астероид), так и быть полностью абстрактной (проекция четырёхмерного фрактала).
Для получения трёхмерного изображения требуются следующие шаги:
· моделирование — создание математической модели сцены и объектов в ней.
· рендеринг — построение проекции в соответствии с выбранной физической моделью.
Сцена (виртуальное пространство моделирования) включает в себя несколько категорий объектов:
· Геометрия (построенная с помощью различных техник модель, например здание)
· Материалы (информация о визуальных свойствах модели, например цвет стен и отражающая/преломляющая способность окон)
· Источники света (настройки направления, мощности, спектра освещения)
· Виртуальные камеры (выбор точки и угла построения проекции)
· Силы и воздействия (настройки динамических искажений объектов, применяется в основном в анимации)
· Дополнительные эффекты (объекты, имитирующие атмосферные явления: свет в тумане, облака, пламя и пр.)
Задача трёхмерного моделирования — описать эти объекты и разместить их в сцене с помощью геометрических преобразований в соответствии с требованиями к будущему изображению.
Ре́ндеринг (англ. rendering — «визуализация») в компьютерной графике — процесс получения изображения по модели с помощью компьютерной программы. Здесь модель — это описание любых объектов или явлений на строго определённом языке или в виде структуры данных. Такое описание может содержать геометрические данные, положение точки наблюдателя, информацию об освещении, степени наличия какого-то вещества, напряжённость физического поля и пр.
Примером визуализации могут служить радарные космические снимки, представляющие в виде изображения данные, полученные посредством радиолокационного сканирования поверхности космического тела, в диапазоне электро-магнитных волн, невидимых человеческим глазом.
Часто в компьютерной графике (художественной и технической) под рендерингом понимают создание плоского изображения (картинки) по разработанной 3D-сцене. Изображение — это цифровое растровое изображение. Синонимом в данном контексте является визуализация.
Визуализация — один из наиболее важных разделов в компьютерной графике, и на практике он тесным образом связан с остальными. Обычно, программные пакеты трехмерного моделирования и анимации включают в себя также и функцию рендеринга. Существуют отдельные программные продукты, выполняющие рендеринг.
В зависимости от цели, различают пре-рендеринг, как достаточно медленный процесс визуализации, применяющийся в основном при создании видео, и рендеринг в реальном режиме, применяемый в компьютерных играх. Рендеринг часто использует 3D-ускорители.
На этапе рендеринга математическая (векторная) пространственная модель превращается в плоскую картинку. Если требуется создать фильм, то рендерится последовательность таких картинок, по одной для каждого кадра. Как структура данных, изображение на экране представлено матрицей точек, где каждая точка определена по крайней мере тремя числами: интенсивностью красного, синего и зелёного цвета. Таким образом, рендеринг преобразует трёхмерную векторную структуру данных в плоскую матрицу пикселов. Этот шаг часто требует очень сложных вычислений, особенно если требуется создать иллюзию реальности.
Самый простой вид рендеринга — это построить контуры моделей на экране компьютера с помощью проекции. Обычно этого недостаточно и нужно создать иллюзию материалов, из которых изготовлены объекты, а также рассчитать искажения этих объектов за счёт прозрачных сред (например, жидкости в стакане).
Трассирование каждого луча света в сцене непрактично и занимает неприемлемо длительные периоды времени. Даже трассирование малого количества лучей, достаточного, чтобы получить изображение, занимает чрезмерное количество времени, если не применяется аппроксимация (семплирование).
Было разработано несколько методов, более эффективных, чем моделирование всех лучей света, освещающих сцену. Существует несколько технологий рендеринга, часто комбинируемых вместе.
· Z-буфер (используется в OpenGL и DirectX);
· растеризация (англ. rasterization) и метод сканирования строк (англ. scanline rendering). Визуализация производится проецированием объектов сцены на экран без рассмотрения эффекта перспективы относительно наблюдателя. При использовании метода сканирования строк происходит расчёт цвета каждой точки картинки построением луча из точки зрения наблюдателя через воображаемое отверстие в экране на месте этого пиксела «в сцену» до пересечения с первой поверхностью. Цвет пиксела будет таким же, как цвет этой поверхности. Визуализация производится проецированием объектов сцены на экран без рассмотрения эффекта перспективы относительно наблюдателя;
· метод бросания лучей (англ. ray casting). Сцена рассматривается, как наблюдаемая из определённой точки. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пикселя на двумерном экране. При этом лучи прекращают своё распространение (в отличие от метода обратного трассирования), когда достигают любого объекта сцены либо её фона.
· трассировка лучей (англ. raytracing) — то же, что и сканлайн, но цвет пиксела уточняется за счёт построения дополнительных лучей (отражённых, преломлённых и т. д.) от точки пересечения луча взгляда. Метод похож на метод бросания лучей. Из точки наблюдения на объекты сцены направляются лучи, с помощью которых определяется цвет пиксела на двумерном экране. Но при этом луч не прекращает своё распространение, а разделяется на три компоненты, луча, каждый из которых вносит свой вклад в цвет пиксела на двумерном экране: отражённый, теневой и преломленный. Количество таких разделений на компоненты определяет глубину трассирования и влияет на качество и фотореалистичность изображения. Благодаря своим концептуальным особенностям, метод позволяет получить очень фотореалистичные изображения, но при этом он очень ресурсоёмкий и процесс визуализации занимает значительные периоды времени.
· глобальная иллюминация (англ. global illumination, radiosity) — расчёт взаимодействия поверхностей и сред в видимом спектре излучения с помощью интегральных уравнений. Использует математику конечных элементов, чтобы симулировать диффузное распространение света от поверхностей и при этом достигать эффектов «мягкости» освещения.
Существующее программное обеспечение может использовать несколько алгоритмов для получения конечного изображения (Рис. 1.42, Рис. 1.43, Рис. 1.44, Рис. 1.45, Рис. 1.46, Рис. 1.47, Рис. 1.48).
Рис. 1.42. Трехмерная графика (пример 1)
Рис. 1.43. Трехмерная графика (пример 2)
Рис. 1.44. Трехмерная графика (пример 3)
Рис. 1.45. Трехмерная графика (пример 4)
Рис. 1.46. Трехмерная графика (пример 5)
Рис. 1.47. Трехмерная графика (пример 6)
Рис. 1.48. Трехмерная графика (пример 7)
Трёхмерная графика обычно имеет дело с виртуальным, воображаемым трёхмерным пространством, которое отображается на плоской, двухмерной поверхности дисплея или листа бумаги.
В настоящее время известно несколько способов отображения трехмерной информации в объемном виде, хотя большинство из них представляет объемные характеристики весьма условно, поскольку работают со стереоизображением. Из этой области можно отметить стереоочки, виртуальные шлемы, 3D−дисплеи, способные демонстрировать трехмерное изображение.
Несколько производителей продемонстрировали готовые к серийному производству трехмерные дисплеи. Но чтобы насладиться объемной картинкой, зрителю необходимо расположиться строго по центру. Шаг вправо, шаг влево, равно как и неосторожный поворот головы, карается превращением трехмерности в несимпатичное зазубренное изображение. Решение этой проблемы уже созрело в научных лабораториях.
Германский Институт Фраунгофера демонстрировал 3D−дисплей, при помощи двух камер отслеживающий положение глаз зрителя и соответствующим образом подстраивающий изображение, в этом году пошел еще дальше. Теперь отслеживается положение не только глаз, но и пальца, которым можно «нажимать» трехмерные кнопки. Таким образом, становится возможным не только видеть объемную картинку, но и взаимодействовать с изображенными на ней предметами.
Развивающиеся с 1990-х годов технологии быстрого прототипирования ликвидируют этот пробел. Следует заметить, что в технологиях быстрого прототипирования используется представление математической модели объекта в виде твердого тела (так называемое твердотельное моделирование).
В настоящее время появляются телевизоры, позволяющие видеть глубокое объемное изображение, не используя стереоскопические или иные очки. В будущем такие телевизоры смогут появиться в домах и будут предназначены для трансляции телеканалов, а сейчас редкие экземпляры используются в основном для рекламы.
Сейчас трудно представить себе области, в которых не применялась бы интерактивная компьютерная графика и анимация. Интерактивная машинная графика становится все более доступным и популярным средством общения человека с компьютером. Знание азов компьютерной графики и умение их использовать на простейшем бытовом уровне становятся неотъемлемыми элементами грамотности и культуры современного человека.
Основные направления использования интерактивной графики:
1) Компьютерные игры. Индустрия компьютерных игр занимает важное место в IT продукции. Психологи все еще спорят о вреде и пользе компьютерных игр для человека, но их польза в компьютеризации общества неоспорима. Кроме того, индустрия компьютерных игр является мощным стимулятором обновления компьютерного парка домашних компьютеров.
2) Развитие графического интерфейса приложений и браузеров. Все чаще в различных приложениях используются интерактивные инструменты или демонстрируются результаты их применения.
3) Электронное обучение. Методы интерактивного обучения с успехом применяются уже многими учащимися:
· использование компьютера в режиме обратной связи с обучающимся позволяет сильно повысить эффективность обучения. Это связано с гибким выбором заданий, при котором ученик не теряет интереса, выбирая сам методы обучения. Тут нет «любимчиков» и забытых учеников.
· использование 3-мерных компьютерных моделей дает возможность создавать тренажеры, полностью имитирующие дорогостоящее или опасное оборудование. Будущие водители, врачи, летчики начинают обучение с компьютерных тренажеров.
4) Визуализация результатов. Интерактивная машинная графика позволяет дизайнеру формировать геометрические объекты и наблюдать на экране дисплея их образы в различных ракурсах на всех этапах творческого процесса. Использование математического моделирования позволяет в режиме диалога менять параметры конструкторского образца и проверять его характеристики. Математические модели экономических, политических, социальных явлений содержат огромное число параметров. Возможность совмещения пакетной обработки данных и интерактивного анализа позволяют упростить восприятие информации исследователем.
С интерактивной графикой неразрывно связана компьютерная анимация. Сфера ее применения не менее широка.
1) Искусство. Мы достаточно подробно рассмотрели применение компьютерной анимации в мультипликации. Огромную роль играет 3-мерная анимация и в создании спецэффектов, без которых уже трудно представить современное кино. Компьютерная анимация стала доступной и для огромного числа любителей, для которых это такое же хобби, как 50 лет назад была фотография.
2) Бизнес. Не менее широк рынок бизнес анимации: рекламные ролики, баннеры, анимированные заставки на сайтах компаний, анимированные презентации и т.д.
3) Наука. Анимация позволяет человеку наиболее быстро получать и обработать информацию. Компьютер строит модели и мультипликационные кадры, отображающие физические и химические процессы, структуры молекул, конфигурации электромагнитных полей.
4) Моделирование процессов. Крэш-тесты моделей автомобиля, «врезавшихся» в модель стены, позволяет инженеру проанализировать, что произошло с моделями пассажиров, и усовершенствовать конструкцию автомобиля. Огромные массивы расчетных данных при моделировании движений воздушных масс для прогнозов погоды, моделировании взрывов и т.д. возможно воспринять только в виде анимационных кадров.
5) Обучение. Мы говорили о тренажерах как примерах интерактивной графики. Однако водителю, летчику важно не просто следить за показаниями приборов, но и уметь оценивать ситуацию вокруг. И здесь уже не обойтись без компьютерной анимации. Анимационные интерактивные деловые игры используются в обучении персонала, занятого в работе с клиентами. Поведение «несимпатичными» клиентов зависит от поведения обучающегося. Запись такого диалога позволит работодателю «подсмотреть» манеры сотрудника. Такой способ гораздо дешевле, чем использование «подставных» проверяющих, от которых требуются недюжинные артистические способности.
6) Когнитивная анимация. Когнитивная компьютерная графика - это совокупность приемов и методов образного представления условий задачи, которое позволяет либо сразу увидеть решение, либо получить подсказку для его нахождения. Д.А. Поспелов так характеризует это вид графики:
· создание таких моделей представления знаний, в которых была бы возможность однообразными средствами представлять как объекты, характерные для логического мышления, так и образы-картины, с которыми оперирует образное мышление,
· визуализация тех человеческих знаний, для которых пока невозможно подобрать текстовые описания,
· поиск путей перехода от наблюдаемых образов-картин к формулировке некоторой гипотезы о тех механизмах и процессах, которые скрыты за динамикой наблюдаемых картин.
Если обычная визуализация в виде графиков и схем несет информативный характер, то смена образов вызывает поток ассоциаций и усиливает роль образного мышления.
7) Захват движения. Современные пакеты захвата движения позволяют в режиме реального времени передавать мимику и жесты видеоизображениям. Одна из компаний, выпускающая подобную программу, так рекламирует ее использование для создания аватар: «Вы можете сидеть на пляже и вести переговоры в режиме телеконференции. На экранах ваших собеседников будет виден ваш аватар, сидящий в шикарном офисе в деловом костюме, и абсолютно точно копирующий вашу артикуляцию, мимику и жесты».
Компью́терная анима́ция — вид анимации, создаваемый при помощи компьютера. На сегодня получила широкое применение как в области развлечений, так и в производственной, научной и деловой сферах. Являясь производной от компьютерной графики, анимация наследует те же способы создания изображений:
· Векторный
· Растровый
· Фрактальный
· 3D
По принципу анимирования можно выделить несколько видов компьютерной анимации.
1) Анимация по ключевым кадрам
Расстановка ключевых кадров производится аниматором. Промежуточные же кадры генерирует специальная компьютерная программа. Этот способ наиболее близок к традиционной рисованной анимации, только роль фазовщика берет на себя компьютер, а не человек.
2) Запись движения
Данные анимации записываются специальным оборудованием с реально двигающихся объектов и переносятся на их имитацию в компьютере. Распространенный пример такой техники — Захват движений («Motion Capture»). Актеры в специальных костюмах с датчиками, совершают перемещения по студии, а их движение записывается камерами и анализируется специальным программным обеспечением. Итоговые данные о перемещении суставов и конечностей актеров применяют к трехмерным скелетам виртуальных персонажей, чем добиваются высокого уровня достоверности их движения.
Такой же метод используют для переноса мимики живого актера на его трехмерный аналог в компьютере.
3) Процедуральная анимация
Такая анимация полностью или частично рассчитывается компьютером. Сюда можно включить следующие её виды:
· Симуляция физического взаимодействия твердых тел.
· Имитация движения систем частиц, жидкостей и газов.
· Имитация взаимодействия мягких тел (ткани, волос).
· Расчет движения иерархической структуры связей (скелета персонажа) под внешним воздействием.
· Имитация автономного (самостоятельного) движения персонажа.
4) Программы для создания анимации с помощью цифрового фотоаппарата
Программное обеспечение, позволяющее задействовать цифровой фотоаппарат для съемки анимации, применяется также часто, как и, ставшие привычными, 3D или 2D пакеты. Любая программа такого типа обеспечивает управление цифровым фотоаппаратом через компьютер и работу с полученными кадрами.
Анимированные рисованные фильмы появились до появления кино: на барабан наклеивали рисунки, показывающие разные фазы движения персонажей. При вращении барабана картинки поочередно через маленькое окошко демонстрировались зрителю, и передним разыгрывалась короткая сценка (Рис. 1.49).
Рис. 1.49. Праксиноскоп
Позже появилось отдельная ветвь кинематографии – рисованные мультипликационные фильмы. Над созданием таких фильмов трудилась целая бригада: художник-мультипликатор, который создавал фильм, рисовал только начало фазы, а промежуточные кадры рисовали его помощники. При этом каждая картинка рисовалась заново. При этом могла быть достигнута не только полная реалистичность самих персонажей, но и абсолютная естественность их движений. Самыми знаменитыми представителями этой школы являются студия Диснея и мастерская российского мультипликатора Норнштейн (Рис. 1.50).
Рис. 1.50. Кадр из мультфильма Ю. Норнштейна «Ежик в тумане»
Однако такой способ мультипликации очень трудоемкий: на создание полнометражных мультфильмов уходили годы. Поэтому в послевоенный период возникает так называемая «редуцированная» анимация, с использованием статичных кадров и упрощенной до 4-х кадров в секунду фазовки.
Она включает:
· сохранение большей части картинки неизменной с перерисовкой лишь отдельных её частей;
· упрощённое изображение человеческих лиц и фигур;
· отсутствие промежуточной анимации — состояния объекта (например, эмоции на лице персонажа) сменяют друг друга моментально;
· зацикливание нескольких кадров с целью создания видимости непрерывного движения.
Эти приемы получили еще более широкое применение в компьютерной анимации.
Разумеется, активное использование таких приёмов заметно, а чрезмерное — бросается в глаза, поэтому говорить об отсутствии потери в качестве, строго говоря, нельзя. Однако многие считают, что созданные таким образом произведения сохраняют достаточно выразительный визуальный ряд.
Редуцированная анимация активно используется при создании аниме, а также — в различных своих видах — в американской мультипликационной продукции. При этом большая ее часть создается на основе компьютерной графики.
Аниме (от англ. animation — анимация) — японская анимация. В отличие от анимации других стран, предназначаемой в основном для просмотра детьми, бо́льшая часть выпускаемого аниме рассчитана на подростковую и взрослую аудитории, и во многом за счёт этого имеет высокую популярность в мире. Аниме часто (но не всегда) отличается характерной манерой отрисовки персонажей и фонов. Издаётся в форме телевизионных сериалов, а также фильмов, распространяемых на видеоносителях или предназначенных для кинопоказа. Сюжеты могут описывать множество персонажей, отличаться разнообразием мест и эпох, жанров и стилей (Рис. 1.51, Рис. 1.52).
Рис. 1.51. Персонаж аниме (пример 1)
Рис. 1.52. Персонаж аниме (пример 2)
Параллельно с рисованной мультипликацией развивались и кукольные мультфильмы. С развитием 3-мерной компьютерной графики вместо кукол стали использовать 3d-персонажи (Рис. 1.53).
Рис. 1.53. Кадр из мультфильма У. Диснея «Вольт»
Есть несколько разных путей подготовки компьютерной анимации. Один из них - использование специального программного обеспечения трехмерной или двухмерной анимации. Подобные программы позволяют создавать модели объектов, задавать движение, освещение, материальные свойства объектов и выполнять рендеринг.
Наиболее распространенным способом создания анимации является метод ключевых или опорных кадров (keyframing). При использовании этого метода объекты вручную устанавливаются в требуемые положения, соответствующие моментам времени ключевых кадров, а система компьютерной анимации автоматически строит все недостающие кадры между опорными, изображая объекты на промежуточных стадиях их движения.
Для моделирования движений, или эффектов, которые трудно воспроизвести с помощью ключевых кадров, используется процедурная анимация. Процедурные контроллеры анимации рассчитывают текущие значения параметров анимации, основываясь на начальных значениях, заданных пользователем, и на математических выражениях, описывающих изменение параметров во времени. Этот метод позволяет выполнять качественные анимации.
Другой путь для создания компьютерной анимации - это использование стандартных средств компьютерной графики (графических редакторов) для рисования одиночных кадров и компоновки их в необходимой последовательности. Одиночные кадры могут быть позднее сохранены в необходимом компьютерном формате или выведены на видео.
Еще один метод создания компьютерной анимации – это использование переходов и других специальных эффектов, таких как морфинг для внесения изменений в существующие графические изображения и видео.
Растровая анимация - это наиболее простой и старый способ компьютерной анимации. Растровая анимация является набором растровых картинок. В простейшем случае на каждый кадр анимации приходится одна картинка. Естественно, это означает пропорциональное увеличение размеров файла в зависимости от длительности анимации. То есть, если одна картинка имеет объем 500 килобайт, то четырехсекундная последовательность при 25 кадрах в секунду (телевизионный стандарт PAL) будет занимать уже 50 мегабайт.
С самого начала появления компьютерной анимации пытались как-то уменьшать размеры файла путем применения различных методов компрессии, экономии на паузах и другими подобными хитростями. Но все же характерной особенностью растровой анимации является ее большой объем.
Размер картинки на экране также пропорционально связан с размерами файла. И для экономии можно уменьшать линейные размеры кадра. Однако даже крохотные анимационные фильмы для сети с размерами кадра 120 на 90 точек изображения, при jpeg компрессии с потерями, вытягивают на целые мегабайты. Это не существенно для современных компьютеров с их большими дисками на несколько десятков гигабайт, но это очень существенно для каналов связи Интернета.
Растровая анимация стала раньше всего использоваться профессиональными аниматорами. Но поначалу это было лишь вспомогательное использование. Качество ее было недостаточно для большого экрана. Выглядело это примерно так. Делались обычным способом наброски и кальки. Потом это оцифровывалось с помощью телекамеры или сканера (сканеры появились чуть позднее).
Сборка такой черновой анимации часто производилась на компьютере типа Amiga, весьма эффективном и дешевом, а потому доступном для студий любого уровня. Этот компьютер стал своеобразным этапом в развитии компьютерной графики для телевидения вообще. Уже первые его модели, у которых иногда даже не было винчестера, позволяли весьма бойко крутить простую анимацию на полном экране и имели встроенный выход телевизионного сигнала в одном из мировых стандартов PAL или NTSC без преобразования видеосигнала.
Видеоподсистема Amiga работала на частотах этих стандартов, что обеспечивало удивительное по тем временам быстродействие. Именно это и использовалось для просмотра анимации в контуре.
У профессиональных аниматоров предварительный просмотр анимации долгое время был проблемой. Снимать промежуточные результаты кинокамерой было делом долгим и дорогим. Переделывать мультипликат на последних этапах еще дороже. Предварительный просмотр на компьютере существенно упрощал решение этой проблемы.
Со временем появлялось все больше программ, которые позволяли удобно работать с растровой анимацией, применять различные эффекты, комбинировать рисованную анимацию с реальным видео. На сегодня существует несколько классов подобного программного обеспечения.
Пакеты начального уровня мало отличаются от игрушек и обычно не используются профессионалами. В них часто реализована некая интересная идея, которая при этом недостаточно хорошо проработана. Набор средств рисования и редактирования бывает довольно ограничен. Средства импорта / экспорта либо отсутствуют вообще, либо примитивны. Работать в таких программах может почти любой. Но редко результаты этой работы используются для серьезных целей. Часто эти программы написаны одним-двумя программистами.
Пакеты среднего уровня могут использоваться для создания уже вполне профессиональной анимации для телевидения, рекламы, презентаций, небольших авторских работ. Набор средств подобных пакетов может быть весьма разнообразен. Они содержат достаточные средства для импорта и экспорта анимации. Их отличительной особенностью является направленность на одиночного пользователя. То есть один человек может, в принципе, создать законченную работу с помощью такой программы. Однако эти программы позволяют организовывать и работу в команде на уровне обмена файлами и разделения общей работы на отдельные фрагменты.
Пакеты профессионального уровня стоят на порядок дороже пакетов описанных выше и предназначены для коллективной работы. Они могут содержать несколько вполне автономных модулей, каждый для своих задач (контуровка, заливка, монтаж). Часто обладают открытой архитектурой и богатыми возможностями по импорту и экспорту. Это пакеты для студий анимации, и они используются при создании полнометражных анимационных фильмов. Обычно они допускают использование различных типов графики при создании фильма, но конечный результат получается только в растровом формате. Для эффективного использования подобных пакетов иногда требуется конвейер из нескольких десятков художников. Но и результаты, получаемые при использовании подобных средств, поистине великолепны. Это могут быть самые удивительные сочетания живого видео, трехмерной графики и традиционной классической анимации. Причем трехмерные вкрапления зачастую трудно отличить от обычной рисованной анимации. Есть специальные средства для стилизации 3D картинки под рисованный мультипликат.
В основе создания векторных изображений всегда лежит сравнительно сложный математический аппарат. Векторная графика подразделяется на трехмерную 3D и двухмерную 2D. Некоторым может показаться, что 2D является всего лишь частным случаем 3D. С точки зрения математики это, возможно, так и есть. Но способы реализации двухмерной и трехмерной векторной графики существенно отличаются.
Если провести эксперименты в редакторе Flash, то можно заметить, что описание простого сплайна укладывается (с учетом компрессии) в 12-15 байт. При этом линия может менять свою форму в достаточно широких пределах. Она может изменяться от прямой линии до петли, пересекающей саму себя (во Flash это будет уже объект из нескольких сплайнов). Реальные линии состоят из нескольких элементарных кривых.
Трехмерная графика тоже использует кривые. Но гораздо важнее в 3D графике понятие полигона. Полигон может быть треугольным или четырехугольным, двухсторонним или односторонним. И если трехмерный объект моделируется с помощью сплайнов, то на конечном этапе он, как правило, преобразуется в полигональную модель. Полигональный способ описания трехмерных объектов более универсален и понимается абсолютным большинством 3D редакторов. Но что более важно - этот способ представления позволяет проще обмениваться объектами между различными программами.
Любой редактор векторной графики, будь то 2D или 3D, работает с объектами, и этапы создания объекта и его визуализации на экране можно четко разделить. Один и тот же объект может отображаться в различных режимах начиная от простого контурного представления и заканчивая тончайшим просчетом освещения и текстурирования (для 3D). В продвинутых системах это позволяет иметь одну копию объекта, которая используется многократно. Это экономит память и иногда даже сокращает время визуализации (для двухмерных редакторов).
С точки зрения анимации это означает еще более важный факт. Нам вовсе не обязательно описывать объект каждый раз заново для нового кадра. Достаточно давать описание изменения его характеристик во времени. В большинстве случаев это приводит к колоссальной экономии на требуемом для описания объеме данных. Кроме того, это упрощает редактирование движения.
Кадры, в которых делается описание изменившихся параметров объекта, называют ключевыми. Промежуточные кадры при этом не несут никакой информации, кроме задания временного промежутка между ключевыми кадрами. Поэтому промежуточные кадры могут добавляться и удаляться совершенно безболезненно в любой момент. При визуализации редактор будет просчитывать изменения объекта, полагаясь на информацию только в ключевых кадрах. Положение в каждом из промежуточных кадров будет рассчитано как экстраполяция между ключевыми кадрами.
Если систематизировать основные подходы создания компьютерной анимации, то получится схема, представленная на Рис. 1.54.
Рис. 1.54. Подходы к созданию компьютерной анимации
Прокомментируем схему.
Автоматическая анимация движения (tweening) упрощает работу аниматора интерполяцией промежуточных кадров между двумя ключевыми. Под движением понимается как перемещение объекта, так и ряд других аффинных преобразований (Рис. 1.55).
Рис. 1.55. Пример Tweeninig между 1-м и 7-м кадрами.
«Морфинг» - методы, в которых аниматор создает произвольные иллюстрации в ключевых кадрах, а промежуточные кадры рассчитываются программой. Морфинг применяется как в растровой, так и в 2- и 3-мерной векторной анимации.
Одной из технологий морфинга для анимации мимики и артикуляции является захват движения. Этот метод изначально применялся при создании виртуальной реальности. Специальные костюмы с датчиками, расположенными в контрольных точках, фиксировали перемещение датчиков и передавали значения перемещения соответствующим точкам 3d-модели. Для анимации мимики 2-мерных персонажей используются кадры видеозаписи, по которым вычисляются контрольные точки, и по этим точкам осуществляется морфинг (Рис. 1.56 и Рис. 1.57).
Рис. 1.56. Морфинг (пример 1)
Рис. 1.57. Морфинг (пример 2)
Анимация камеры. В 3-мерной графике камеры обладают широким спектром средств управления, которые можно анимировать. Среди них команды управления окном проекции, фокусное расстояние объектива, положения плоскостей отсечения и диапазон внешней среды. Анимировать камеру можно также методом ключевых кадров или назначая для нее путь движения.
Анимацию камеры применяют и при создании 2d-визуализации обычных фотографий. В этом случае автоматически пересчитываются угол обзора. Редактируются задние планы и текстуры.
Рис. 1.58. Анимация камеры
Для создания естественной анимации сложных сочлененных структур недостаточно нарисовать оболочку - необходимо учитывать связь отдельных частей. Моделирование и анимация персонажа включает в себя несколько этапов: проектирование оболочки модели, создание скелета, настройка весов в иерархии скелета и непосредственно анимация.
Оболочка так и останется статичной оболочкой, которую нельзя реалистично анимировать. Однако достаточно легко можно заставить персонаж выглядеть естественно с помощью инструмента Bone (Кость), позволяющего создать кости, соединяющие различные части тела и образующие скелет.
Создание костей и привязка к ним оболочки применяется и в 2 – в 3-мерной графике.
Для того, чтобы задать взаимосвязи между различными костями, необходимо настроить иерархию элементов скелета, а чтобы определить степень влияния каждой кости на вершины сетки, необходимо настроить вес костей.
Настройка анимации во многом зависит от выбранного метода анимации:
· прямая кинематика (Forward Kinematics), при которой рисуются последовательно кадр за кадром анимации;
· обратная кинематика (Inverse Kinematics), при которой создаются ключевые кадры, а потом дорисовываются промежуточные;
Этот метод мультипликации не следует путать с инверсной кинематикой, применяемой при создании анимируемых моделей в пакетах трехмерной графики. Инверсная кинематика позволяет управлять цепочкой связанных объектов, перемещая только один из объектов-потомков.
Захват движения (motion capture) – способ автоматической анимации, при котором движение опорных точек движущегося реального объекта переносится на аналогичные точки изображения. Для «захвата» требуется специальная аппаратура: костюм для виртуальной реальности или 3d-сканер (Рис. 1.59).
Рис. 1.59. Захват движения
Процедурная анимация – методы создания фильма, в которых и изображение, и его изменения создаются программным способом. Такую 3d-анимацию можно создать, например, в OpenGL или с помощью языка сценариев во Flash.
Следует обратить внимание и на определение такого термина, как мультимедиа. Мультимедиа - это объединение высококачественного изображения на экране компьютера со звуковым сопровождением. Наибольшее распространение системы мультимедиа получили в области обучения, рекламы, развлечений.
Таким образом, под компьютерной анимацией понимают получение движущихся изображений на экране дисплее. Художник создает на экране рисунке начального и конечного положения движущихся объектов, все промежуточные состояния рассчитывает и изображает компьютер, выполняя расчеты, опирающиеся на математическое описание данного вида движения. Полученные рисунки, выводимые последовательно на экран с определенной частотой, создают иллюзию движения.
Можно определить следующие основные направления применения анимации.
Анимационные заставки (анимация заставки) – подобные продукты можно использовать как анимацию заставку для корпоративных фильмов, можно как анимированную заставку на сайт. Это универсальный продукт, который можно задействовать для любого носителя. Особенно популярны/актуальны – трехмерные заставки (3D заставки). Данные вид позволяет добавить ролик реалистичности – трехмерности изображения.
Анимация или анимационные вставки – в данном случае анимационные ролики могут быть использованы в качестве web анимации для сайта, для рекламных роликов и корпоративных фильмов в качестве анимации специальных эффектов, для flash презентаций, как анимация презентации и т.д. В любом случае вставки анимации добавят любому продукты жизненности и эффектности.
Презентационный ролик (имиджевый ролик) – идеален для использования при проведении или участии в любых мероприятия. Презентационный ролик легко адаптируем под плазменные панели, проекционные экраны – фактически любые видео носители. С помощью имиджевого ролика, можно «украсить» доклад, оживить выставочный стенд.
Анимация открытки (создание Flash открытки) – данный вариант анимации подходит если необходимо создать уникальную корпоративную открытку. Эта открытка будет не только ярким динамичным поздравлением, но и фактически реальным подарком, который получатель с удовольствием сможет продемонстрировать коллегам.
Теперь перейдем к рассмотрению понятия интерактивной компьютерной графики. Как уже было сказано в самом начале этого интерактивного учебного пособия, под компьютерной графикой понимают автоматизацию процессов подготовки, преобразования, хранения и воспроизведения графической информации с помощью компьютера. Под графической информацией понимаются модели объектов и их изображения.
Интерактивная компьютерная графика - это так же использование компьютеров для подготовки и воспроизведения изображений, но при этом пользователь имеет возможность оперативно вносить изменения в изображение непосредственно в процессе его воспроизведения, т.е. предполагается возможность работы с графикой в режиме диалога в реальном масштабе времени.
Интерактивная графика представляет собой важный раздел компьютерной графики, когда пользователь может динамически управлять содержимым изображения, его формой, размером и цветом на поверхности дисплея с помощью интерактивных устройств управления.
Программы моделирования позволяют довольно естественно представить некую реальность с помощью движущегося изображения и звука в сочетании с интерактивной способностью такой системы. Такие системы в начале своего существования были весьма сложны и дороги, поэтому использовались лишь для военных нужд.
С помощью такой системы танковые сражения, воздушные битвы проводились «всухую». Такое применение выгодно и в финансовом плане, если подумать об огромных затратах на один час реального (на природе) учения (материалы, персонал, боеприпасы, горючее и - не надо забывать о возмещении ущерба).
Система моделирования для использования в гражданских условиях возникла как «продукт отходов» (например, в компаниях гражданского воздушного сообщения). Здесь точно также можно проигрывать ситуации (происшествия, конъюнктуру), близкие к реальной жизни, находить ошибки и проводить тренировки.
Область, в которой возникает взаимодействие человека и компьютера и которая проявляется в создании виртуальной (кажущейся) реальности - называемая также CYBErSPACE (кибернетическое пространство) - расширяет и обогащает это новое направление применения мультимедиа. Этот виртуальный трехмерный изображаемый мир динамично реагирует на интерактивное общение с пользователем.
Такие виртуальные миры создаются, как правило, на базе компьютера и программ CAD (Computer Aided Design - проектирование с помощью компьютера). Используя специальные сооружения и соответствующее оборудование, зритель может передвигаться в таком пространстве.
Но эта идея совсем не нова. Уже в конце шестидесятых - начале семидесятых годов в Америке была создана интерактивная система, которая, например, регистрировала присутствие человека в помещении с помощью видеокамеры и датчиков перемещения, затем передавала данные в компьютер, который производил соответствующие эффекты.
После серьезных успехов в деле миниатюризации приборостроения были созданы комфортабельные условия для дальнейшего творчества. Специальный шлем, по размерам несколько больший, чем обычный шлем мотоциклиста, был оборудован двумя маленькими мониторами, расположенными прямо против глаз. Эти мониторы служат для пользователя «глазами в мир», предоставляя полный электронный обзор. Если пользователь поворачивает голову, изображение на мониторах также отслеживает смену направления взгляда без заметной задержки.
Перчатки с датчиком дополняют «вооружение» пользователя. Эти перчатки при помощи датчиков преобразуют движение руки или даже отдельных пальцев в электрические импульсы. Датчики регистрируют положение рук и направление их движения. Кабель из стекловолокна, проложенный между двух слоев ткани внутри перчаток, реагирует, даже если пошевелить пальцем. Комплексное движение передается некой виртуальной руке в компьютере, и там решается вопрос об ответных действиях и реакции. Дальнейшее развитие идея перчаток нашла в разработке полностью укомплектованного датчиками костюма.
В его конструкцию заложен тот же принцип преобразования движений тела в электрические сигналы. Главным образом поддержку этим разработкам оказывало американское космическое ведомство NASA, которое хотело с помощью этих конструкций управлять, например, роботами.
Таким образом, можно отметить, что в машинной графике существует два направления: режим пакетной обработки графики и интерактивная машинная графика.
При пакетной обработке графической информации система машинной графики обеспечивает выдачу графической информации на экран дисплея без участия пользователя. Эту выдачу обеспечивают графопостроитель, устройство микрофильмирования и другие устройства, которые позволяют получать графические документы.
Интерактивная машинная графика позволяет использовать средства вычислительной техники для организации оперативного, в основном диалогового взаимодействия пользователя с компьютером. В этой системе применяются графические дисплеи, оснащенные «мышью», световым пером, функциональной клавиатурой, кодирующим планшетом и другими устройствами обратной связи разработчика с компьютером, позволяющими ему в диалоге изменять графическое изображение, выводимое на экран дисплея.
Графическая система — это система программных и технических средств, автоматизирующая решение графических и геометрических задач. Графические системы делятся на системы общего назначения и специализированные графические системы.
В графических системах общего назначения реализуются процедуры обработки графической информации различного типа: для машиностроения, архитектуры, разработки РЭС. Пользователь этих систем — прикладной программист. К таким системам относятся ГРАФОР (графическое расширение Фортрана), базовые графические системы (например, GKS).
Специализированные графические системы предназначены для реализации процессов обработки графической информации о некоторой специальной области. Существуют отличия систем в зависимости от области применения программ: в САПР РЭС — графические зависимости, характеристики, схемы, конструкции; в САПР СБИС — плоские изображения; в САПР авиа- и судостроения — объемные аналитические поверхности. Пользователь специализированных графических систем — непосредственный разработчик устройств, изделий, аппаратуры.
Контрольные вопросы по материалу 1 части:
1. Какие категории объектов включает в себя сцена в трехмерной графике?
2. Какие шаги необходимо выполнить, чтобы получить трёхмерное изображение?
3. Какие технологии рендеринга Вы знаете? В чем их особенности?
4. Что понимается под «компьютерной анимацией»?
5. Какие виды компьютерной анимации Вы знаете?
6. Перечислите области применения компьютерной анимации.
7. Какие способы подготовки компьютерной анимации Вы знаете? Охарактеризуйте каждый известный Вам способ.
8. Сформулируйте определение такого понятия как «морфинг».
9. Каково назначение процедурной анимации?
10. Что понимается под термином «графическая система»?
11. Перечислите и охарактеризуйте основные направления использования интерактивной графики.