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

Автор: Пользователь скрыл имя, 23 Ноября 2012 в 22:50, доклад

Описание работы

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

Работа содержит 1 файл

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

— 854.50 Кб (Скачать)

 

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

 

 

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

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

Для получения трёхмерного  изображения на плоскости требуются  следующие шаги: 

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

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

Схема проецирования  сцены на экран компьютера.

 

Моделирование

Сцена (виртуальное пространство моделирования) включает в себя несколько категорий объектов:

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

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

Рендеринг

На этом этапе математическая (векторная) пространственная модель превращается в плоскую (растровую) картинку. Если требуется создать фильм, то рендерится последовательность таких картинок — кадров. Как структура данных, изображение на экране представлено матрицей точек, где каждая точка определена по крайней мере тремя числами: интенсивностью красного, синего и зелёного цвета. Таким образом рендеринг преобразует трёхмерную векторную структуру данных в плоскую матрицу пикселов. Этот шаг часто требует очень сложных вычислений, особенно если требуется создать иллюзию реальности. Самый простой вид рендеринга — это построить контуры моделей на экране компьютера с помощью проекции, как показано выше. Обычно этого недостаточно и нужно создать иллюзию материалов, из которых изготовлены объекты, а также рассчитать искажения этих объектов за счёт прозрачных сред (например, жидкости в стакане).

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

  • Z-буфер (используется в OpenGL и DirectX 10);
  • Сканлайн (scanline) — он же Ray casting («бросание луча», упрощенный алгоритм обратной трассировки лучей) — расчёт цвета каждой точки картинки построением луча из точки зрения наблюдателя через воображаемое отверстие в экране на месте этого пиксела «в сцену» до пересечения с первой поверхностью. Цвет пиксела будет таким же, как цвет этой поверхности (иногда с учётом освещения и т. д.);
  • Трассировка лучей (рейтрейсинг, англ. raytracing) — то же, что и сканлайн, но цвет пиксела уточняется за счёт построения дополнительных лучей (отражённых, преломлённых и т. д.) от точки пересечения луча взгляда. Несмотря на название, применяется только обратная трассировка лучей (то есть как раз от наблюдателя к источнику света), прямая крайне неэффективна и потребляет слишком много ресурсов для получения качественной картинки;
  • Глобальное освещение (англ. global illumination, radiosity) — расчёт взаимодействия поверхностей и сред в видимом спектре излучения с помощью интегральных уравнений.

Грань между алгоритмами  трассировки лучей в настоящее время практически стёрлась. Так, в 3D Studio Max стандартный визуализатор называется Default scanline renderer, но он считает не только вклад диффузного, отражённого и собственного (цвета самосвечения) света, но и сглаженные тени. По этой причине, чаще понятие Raycasting относится к обратной трассировке лучей, а Raytracing — к прямой.

Наиболее популярными системами  рендеринга являются:

  • PhotoRealistic RenderMan (PRMan)
  • Mental ray
  • V-Ray
  • FinalRender
  • Brazil R/S
  • BusyRay
  • Turtle
  • Maxwell Render
  • Fryrender
  • Indigo Renderer
  • LuxRender
  • YafaRay
  • POV-Ray

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

  • Refractive Software Octane Render
  • AAA studio FurryBall
  • RandomControl ARION (гибридная)

Многие производители систем рендеринга для CPU также планируют ввести поддержку GPU (LuxRender, YafaRay, mental images iray).

Самые передовые достижения и идеи трёхмерной графики (и компьютерной графики вообще) докладываются и  обсуждаются на ежегодном симпозиуме SIGGRAPH, традиционно проводимом в США.

Связь с физическим представлением физических обьектов

Трёхмерная графика обычно имеет  дело с виртуальным, воображаемым трёхмерным пространством, которое отображается на плоской, двухмерной поверхности  дисплея или листа бумаги. В настоящее время известно несколько способов отображения трехмерной информации в объемном виде, хотя большинство из них представляет объемные характеристики весьма условно, поскольку работают со стереоизображением. Из этой области можно отметить стереоочки, виртуальные шлемы, 3D-дисплеи, способные демонстрировать трехмерное изображение. Несколько производителей продемонстрировали готовые к серийному производству трехмерные дисплеи. Но чтобы насладиться объемной картинкой, зрителю необходимо расположиться строго по центру. Шаг вправо, шаг влево, равно как и неосторожный поворот головы, карается превращением трехмерности в несимпатичное зазубренное изображение. Решение этой проблемы уже созрело в научных лабораториях. Германский Институт Фраунгофера демонстрировал 3D-дисплей, при помощи двух камер отслеживающий положение глаз зрителя и соответствующим образом подстраивающий изображение, в этом году пошел еще дальше. Теперь отслеживается положение не только глаз, но и пальца, которым можно «нажимать» трехмерные кнопки. А команда исследователей Токийского Университета создали систему позволяющую почувствовать изображение. Излучатель фокусируется на точке где находится палец человека и в зависимости от его положения меняет силу акустического давления. Таким образом, становится возможным не только видеть объемную картинку, но и взаимодействовать с изображенными на ней предметами.

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

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


 

Компьютерные технологии создания трехмерной анимации


Работа с трехмерной графикой без  знания основных принципов и соответствующей  теории моделирования может иметь печальный результат. Само собой, нет ничего более интересного, чем исследование функциональных возможностей программного обеспечения, однако понимание основ сохранит время, а также оградит от неприятностей в будущем. 
С технической точки зрения, анимация (animation) — это любое изменение объекта, освещения, материала или камеры по истечении определенного промежутка времени. Однако, как мы уже успели выяснить, суть анимации заключается не только в перемещении объектов по сцене. Анимация, по сути, необходима для "оживления" объектов или персонажей, то есть холодному и бездушному, математически определенному объекту присваиваются характерные признаки и индивидуальные черты.  
В этом пункте главы мы рассматриваем технологии трехмерной анимации, начиная от основных концепций кадрирования и заканчивая процедурным движением. Отдельное внимание уделяется искусству анимирования людей, что справедливо считается наиболее сложным (и, в тоже время, интересным) элементом трехмерного моделирования.  
Частота смены кадров 
Хотя анимация представляет собой последовательность неподвижных изображений, называемых кадрами (frames), человеческое восприятие обладает такой особенностью, как инерция зрения. Это склонность человеческих глаз видеть изображение еще долю секунды после того, как изменилась точка обзора. В кинофильмах и телевизионных передачах такая особенность используется для создания иллюзии непрерывного движения кадров, несмотря на то, что фильмы и телепередачи состоят из набора неподвижных кадров. Именно инерция зрения возводит мост между движением и неподвижностью. Скорость вывода изображений на экран называется частотой смены кадров и измеряется кадрами в секунду (frames per second — fps).  
Как правило, минимальная частота смены кадров для плавного отображения анимации составляет 15 кадр/с, что довольно небольшой показатель. Поэтому зрение успевает уловить набор отдельных изображений (эффект мерцания), но анимацию, хотя и с минимальным комфортом, все равно можно будет смотреть.  
Обычная частота смены кадров для высококачественной анимации составляет 30 кадр/с  для компьютера и 29,97 кадр/с для стандарта NTSC (National Television Standards Committee — Национальный комитет по телевизионным стандартам), поскольку при такой скорости не видно мерцания изображения. В европейских и некоторые азиатских стандартах наилучшей частотой является 25 кадр/с. В наши дни большинство мультимедийных компьютеров в состоянии проигрывать анимацию и видео с частотой 30 кадр/с. Поэтому,  можно принять этот показатель за основной стандарт,  при дальнейшей работе. Если создаваемая анимация будет использоваться в качестве фильма, то основной частотой, применяемой в кинокамерах и проекторах, считается показатель 24 кадр/с.  
Кадрирование 
Для управления процессом анимации в большинстве программ используется метод, называемый кадрированием (keyframmg), при котором объекты располагаются в основных позициях соответствующих ключевых кадров (keyframe). С помощью построения промежуточных изображений (tweenmg) компьютер вычисляет местоположение объекта относительно каждого промежуточного кадра, в результате чего объект плавно переходит с одной позиции в другую. 
Определение ключевых кадров  
Как уже говорилось ранее, количество кадров, используемое для перемещения мяча, напрямую зависит от анимационной частоты смены кадров и продолжительности каждого действия. Для создания ключевого кадра необходимо выбрать номер кадра и затем переместить объект в нужном направлении. В некоторых программах больше ничего и не потребуется, в то время как в других придется поработать со специальным режимом анимации, с помощью которого программа запишет движения объекта или определит ключевой кадр после щелчка мышью на специальной кнопке. 
Управление траекторией перемещения объекта осуществляется не только с помощью кадрирования. Еще один метод заключается в создании линии с помощью инструментария по работе со сплайнами и благодаря последующей настройке объекта (объектов) для перемещения вдоль этой линии. Метод анимации вдоль пути перемещения (path animation) используется для того, чтобы объект точно перемещался по контурам модели.  
Для управления информацией относительно перемещения объектов в большинстве программ имеется анимационный интерфейс временной шкалы (timeline interface). Горизонтальная ось разделяется на временные единицы и/или номера кадров, в то время как вертикальная ось состоит из иерархического списка объектов и освещения с параметрами анимации. На исходящей от имени параметра линии поставлены маркеры, обозначающие ключевые кадры, а временная шкала внизу отображает расположение ключевых кадров в соответствующих номерах кадров. Интерфейс позволяет добавлять, удалять или перемещать ключевые кадры для настройки временного промежутка, в котором проводится анимация.  
Анимационные контроллеры ключевых кадров  
Для изменения траектории движения объекта возле ключевого кадра используются управляющие регуляторы. В зависимости от программы, может поддерживаться несколько типов регуляторов ключевых кадров, которые также называются анимационными контроллерами (animation controller).  
Среди наиболее распространенных контроллеров можно назвать линейный регулятор (linear weighting), при котором объект перемещается из одного ключевого кадра в другой по абсолютно прямой линии, что годится лишь для механического перемещения и едва ли чего-то еще.  
Контроллер ТСВ (tension, continuity and bias — напряженность, непрерывность и наклон) является одним из самых популярных управляющих регуляторов.  
 Функциональная кривая (functional curve) — это графический метод отображения трансформации объекта Часто она представлена в виде трех разноцветных сплайнов, каждый из которых относится к отдельной оси.  Если сплайны прямолинейные, значит, на данной оси не происходит никакого движения. В противном случае, уровень кривизны и местоположение сплайнов показывают степень изменений на этой оси и то, какой временной точке эти изменения имели место.  
Если изменить управляющий регулятор с прямолинейного на регулятор Безье, то станет возможным графическое управление перемещением объекта при его пересечении избранных ключевых кадров Использование анимационного сплайнового контроллера Безье (Bezier spline weighting) подобно методам модифицирования двухмерных сплайнов, которые известны пользователям, работавшим ранее с чертежными программами или моделированием трехмерных объектов. Метки (handle) контрольных точек позволяют управлять практически теми же параметрами, что и контроллеры ТСВ, однако, более удобным способом.   
Оси и центры вращения 
В анимационном процессе объект можно трансформировать вдоль какой-либо оси или в соответствии с определенным центром вращения. Центр вращения/опорная точка (pivot point), как понятно из названия, зачастую располагается в центре объекта, что зависит от планируемого метода анимации объекта. В частности, центр вращения для левой руки персонажа следует переместить в верхней части локтя руки. Чтобы объекты вращались вокруг нелокальных осей, расположенных в другом объекте или в открытом трехмерном пространстве, центр вращения также следует переместить.

Предварительный просмотр 
В определенный момент анимации возникает необходимость в просмотре того, как объекты перемещаются. В большей части программ есть специальный режим предварительного просмотра (preview mode), отображающий упрощенную версию сцены в режиме реального времени или же выводящий анимацию после быстрой визуализации. Не забывайте о том, что просмотр является лишь приблизительным, поэтому вывод качественно созданной анимации можно сделать только после нормальной визуализации.  
Связи и цепочки объектов 
Для создания полноценных персонажей, механических устройств или других объектов, которые состоят из многочисленных элементов, двигающихся по отношению друг к другу, следует организовать взаимодействие между компонентными объектами с помощью связей. Связь (link) — это соединение (сочленение) между двумя объектами, при котором анимирование одного объекта отражается на другом. Когда взаимосвязь определена, первый объект называется родительским/главным (parent), а осуществляемые с ним операции автоматически передаются второму объекту, называемому дочерним/подчиненным (child).  
Нулевые объекты 
Нулевые объекты (nulls/dummies) применяются в качестве невидимых компонентов цепи (группы) или же как невидимые объекты, обеспечивающие точку вращения других объектов. При редактировании анимации подобные объекты имеют вид куба или других простых геометрических форм, которые не визуализируются и поэтому считаются невидимыми. Нулевые объекты зачастую входят в комплект инструментария по созданию объектов или же присутствуют в панели анимационных средств управления.  
Как правило, нулевые объекты создаются достаточно большими (чтобы охватить сложные взаимосвязанные группы элементов). Они определяются в качестве родительского объекта для группы объектов, что позволяет перемещать ее в качестве единого элемента и помогает избежать ошибки, состоящей в случайном выборе дочернего объекта вместо родительского во взаимосвязанной цепи.  
Скелетная деформация 
Скелетная деформация (bone deformation) — это технология анимирования объектов (как правило, людей) путем настройки и анимирования внутреннего скелета, который автоматически искажает окружающую каркасную сетку. По отношению к человеческим персонажам внутренний скелет является довольно упрощенным вариантом нашего собственного скелета, с костями рук, пальцев, ног, ступней, позвоночника и т.д. Пользователь имеет возможность анимировать кости (bones) скелета, а предопределенные области окружающей каркасной сетки, т.е. "кожа", затем реалистично анимируются в соответствии с движением скелета.  
Скелетная деформация считается не только наилучшим методом анимации самых разнообразных движений для бесшовных каркасных моделей, но и отлично подходит для незначительного искажения той, же каркасной сетки, позволяя "раздувать" мышцы, поднимать грудную клетку при вздохе и т.д., не говоря уже о широких возможностях по реализации реалистичных выражений лица.  
Прямая и обратная кинематика 
Прямая кинематика (forward kinematics) — это основной метод анимации взаимосвязанных объектов, при котором движение родительского объекта отражается на всех потомственных объектах иерархической цепи, то есть при повороте родительского объекта поворачивается и его дочерний объект. Поскольку у дочернего объекта нет обратного соединения с родительским, он также может перемещаться независимо, следовательно, при перемещении дочернего элемента в каркасной сетке образуется брешь.  
Подобный метод анимации чаще всего применяется для механических устройств, которые работают по принципу, отражающему главную концепцию прямой кинематики — "это перемещает то". Для анимации персонажей, например ходьбы, прямую кинематику лучше не использовать, поскольку в первую очередь перемещается тело персонажа, после чего все конечности настраиваются на расположение в новом месте. В результате, проявляется эффект скольжения (skating), при котором ноги персонажа скользят по поверхности, вместо того, чтобы быть неподвижными.  
Обратная кинематика (inverse kinematics) — это метод управления взаимосвязанными объектами путем перемещения самого дальнего конца цепи и последующего согласования этого движения с остальными элементами, что немного напоминает "хвост, виляющий собакой".  
Данный вид кинематики можно использовать с любым нормально соединенным объектом, включая персонажи с сочленениями конечностей и скелеты.  
Морфинг 
Морфинг (morphing) — в сфере трехмерной анимации так называется технология, позволяющая осуществлять сглаженные изменения формы объекта путем копирования базовой (изначальной) каркасной сетки и модификации ее в другую форму или целевой объект (morph target). Среди классических примеров морфинга можно привести трансформацию робота из жидкого металла в фильме "Терминатор 2: Судный день". Морфинг предоставляет широчайшие возможности по преобразованию одной формы в другую, а также для натуральной анимации органических форм, вроде плавного скольжения змеи или изменения выражений лица, например, во время речи персонажей.  
Перед тем, как скелетная деформация обрела популярность, морфинг был одним из немногих методов анимирования персонажей без взаимосвязанных объектов. Иногда он по-прежнему используется в этом качестве, поскольку скелетная деформация не всегда позволяет получить достаточно точные результаты трансформации объекта.  
В большинстве программ модифицируемые морфингом формы (целевые объекты) должны иметь одинаковое количество вершин, ориентированных по единому направлению, благодаря чему программа точно определяет начало и конец анимации каждой вершины.  
Если целевые объекты создаются по отдельности, то у подобного морфинга могут возникнуть определенные проблемы, поэтому пользователи зачастую сначала создают один целевой объект, а после этого вершина за вершиной копируют и трансформируют его в следующий целевой объект. Кроме того, поскольку в программах для перемещения вершин с первоначальной к конечной позиции используется прямолинейная траектория, с целью предотвращения разрушения элементов каркасной сетки зачастую требуются промежуточные объекты. Они же понадобятся для того, чтобы каркасная сетка не искажалась во время анимации.  
Деформационные сетки 
Деформационные сетки (deformation grids) или пространственная деформация (space warp) используются для определения специальной области трехмерного пространства, оказывающей автоматическое воздействие на проходящие сквозь нее объекты. В зависимости от типа выбранной деформации объект может подвергнуться влиянию гравитации, стать волнообразным, исчезнуть или изменить направление движения.  
Деформационные сетки облегчают задачу воздействия на объект в определенной точке пространства, например, объект может сплющиваться при ударе об пол. Таким же образом осуществляются цикличные искажения, необходимые при анимировании, например, лодки, качающейся на бушующих волнах.  
Системы частиц 
Во многих программных пакетах поддерживаются встроенные или добавляемые отдельно системы частиц. Системы частиц (particle systems) — это трехмерные анимационные модули, позволяющие создавать множество объектов очень малого размера и управлять ими, благодаря чему симулируются такие природные эффекты, как рябая поверхность воды, огонь, искры или пузырьки в стакане. Подобные системы также используются для достоверного создания стаи птиц, хоровода бабочек или косяков рыб. Частицы присоединяются к моделям экземпляров этих существ и в дальнейшем контролируют их перемещение.  
Процедурное движение 
Так как параметры деформационных сеток и систем частиц определяются формулами, настройками и не доступны для непосредственного кадрирования (то есть определения ключевых кадров), процесс перемещения систем частиц иногда называется процедурным движением (procedural motion), причем этот термин имеет отношение и к другим технологиям. Например, контроллер шума (noise controller) — это разновидность анимационной утилиты, в которой используется сгенерированный случайным образом шум для изменения местоположения или размера объекта. Этот контроллер может пригодиться для визуализации элемента оборудования, сотрясающегося от сильной вибрации. Аудиоконтроллер (audio controller) позволяет управлять трансформацией, цветом и значениями параметров объекта в зависимости от изменения амплитуды звукового файла.  
Контроллер выражений (expression controller) — это еще один источник данных анимации, в котором для управления действиями объекта на сцене используются вводимые пользователем математические формулы.  
Объектно-ориентированные контроллеры поведения (behaviour controllers), такие как посмотреть на (look at), прыжок (bounce), вращение (spin) и т.д., существенно упрощают процесс анимации. Назначение типа поведения определенного объекта позволяет управлять им в автоматическом режиме, а значит, создавать более сложные движения.  
Сценарная анимация 
Наравне с процедурной анимацией, посредством сценарной анимации осуществляется управление объектами или параметрами сцены, для чего не требуется непосредственного вмешательства дизайнера или аниматора. Управления сценарной анимацией (scripted animation) зависит от текстового сценария, созданного с помощью специального языка сценариев (scripting language), например, MAXScript для 3DS MAX, Lscript для LightWave или MEL для Мауа.  
Написание сценариев позволяет аниматорам создавать математически точные движения объектов, а также движения, которые в случае их ручного создания займут немало времени и ресурсов системы. 
Анимация персонажей 
Анимация персонажей (character animation) — это процесс, ставящий своей целью достичь реалистичности движения объектов или наделить их индивидуальными характеристиками. Обратите внимание, что в предыдущем предложении говорилось об "объектах", а не "персонажах". Все дело в том, что трехмерные объекты, даже обычный куб, в зависимости от определенного аниматором типа перемещения, могут иметь собственную индивидуальность. В свою очередь, даже самые детализированные и реалистичные человеческие модели могут выглядеть безжизненными куклами из-за механического или неестественного движения. Главная задача аниматора состоит в "оживлении" своих персонажей, для чего используется несколько различных технологий — от простого "взгляда в зеркало" до профессиональной аппаратуры захвата движения.  
Анализ движения 
Для создания естественной анимации необходимо проанализировать объект и возможный характер его движения в реальном мире. Даже если движение умышленно искажено и больше напоминает карикатурную пародию, то для его создания наверняка использовались реальные физические законы, слегка измененные впоследствии. Для гиперболизации нормального перемещения персонажа или объектов, зачастую осуществляется трансформация с помощью операций размягчения и растяжения.  
Представим себе бейсбольного игрока, тренирующегося напротив подающей мячи машины. В реальном мире игрок подходит к обозначенной площадке и готовится отбивать мячи. Он сгибает ноги, слегка отклоняет туловище и отводит биту назад для удара. Назовем это позицией готовности (ready position). Когда мяч приближается, игрок целится, отводит тело еще дальше от мяча и с размахом бьет битой по мячу, усиливая воздействие удара. В терминах анимации последняя минута приготовления к главному действию, то есть удару биты, называется предварительной позицией (antic — anticipation). Как правило, это медленное перемещение в обратную от основного действия сторону, позволяющее определить, что вот-вот начнется главное действие.  
Обратим внимание, что показатель предварительной позиции обратно пропорционален показателю силы основного движения персонажа; другими словами, если игрок намеревается несильно отбить мяч, то предварительное перемещение будет небольшим. И, наоборот, при сильном ударе предварительное перемещение будет более существенным.  
Подобный тип перемещения является весьма важным элементом компьютерной анимации, однако зачастую повсеместно игнорируется. В результате, финальной анимации не хватает то самой "изюминки", что и делает ее естественной и натуральной, а не скучно-механистической.  
Итак, игрок наносит удар битой по кривой дуге, пытаясь ударить по мячу. Назовем это главным движением (primary motion).  
Примерно посередине между предварительной позицией и областью столкновения биты с мячом находится точка, которую традиционные аниматоры величают точкой распределения (breakdown) или промежуточной позицией (passing position). В келевой анимации дизайнеры продолжили бы подразделение пути перемещения мяча, добавляя точки распределения до тех пор, пока перемещение не станет реалистичным. Область столкновения мяча с битой называется контактной позицией (contact position).

Область применения двухмерной и трехмерной графики невероятно широка, она простирается от промышленной индустрии до сферы  образования. Как правило, для создания анимационных  проектов, фильмов, широковещательных передач и игровых приложений требуется гораздо больше аниматоров и разработчиков трехмерных моделей, чем в каких-либо исследовательских лабораториях. Приятно осознавать, что возможности данной отрасли настолько многогранны и различны. 
Прекрасной сферой создания визуально привлекательного материала с помощью компьютерной графики является реклама. В этой области особенно популярен морфинг, посредством, которого, дети засасываются в бутылки с содовой или автомобиль превращается в бегущего тигра. Кроме того, анимация объектов, от танцующих автомобилей и газовых насосов до ехидных конфеток M&Ms, стала обязательным элементом рекламы (и столь долгожданной возможностью), что широко используется множеством производителей товаров. 
Менее очевидным для стороннего зрителя является использование трехмерных моделей товаров для рекламы продукции в коммерческих передачах. Благодаря компьютерной графике, вместо традиционной (и, возможно, более дорогой) студийной фотографии, даже обычная бутылка с жидкостью для мытья посуды имеет вид небесного совершенства, без единого шва на пластмассе корпуса, с идеально гладкой наклейкой или красивыми воздушными пузырьками.


 

Глава 1 
Что такое 3D-графика и анимация 
Первое знакомство с компьютерной 3D-графикой 
Этапы работы над трехмерной сценой 
Начальные сведения об анимации 
Области применения 3D-графики 
Варианты отображения трехмерных объектов 
Системы координат 3ds max 5 
Раскраска объектов трехмерного мира

Итак, мы приступаем к освоению 3ds max 5 - одной  из лучших и наиболее популярных программ для моделирования трехмерной компьютерной графики или, как ее еще называют, 3D-графики (от слов "3 Dimensional" - трехмерная). Чем же так привлекательна трехмерная графика, что заставляет множество компаний во всем мире выпускать все новые, более совершенные версии программ для ее моделирования, а множество пользователей - стремиться к их освоению, подобно вам, уважаемый читатель? В первой главе мы постараемся найти ответ на этот вопрос, а также получить те начальные сведения о 3D-графике, которые послужат более эффективному изучению и практическому усвоению материала последующих глав. Возможно, при этом вам потребуется вспомнить некоторые сведения из школьного курса черчения.

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

    

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

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

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

Предварительная подготовка 
На этом этапе продумывается состав сцены (домик, живая изгородь, пасущаяся корова и т. п.). Следует предусмотреть все объекты и их детали, которые будут видны с предполагаемых направлений наблюдения. При этом полезно бывает нарисовать один или несколько эскизов будущей сцены, подобных показанным на рис. 1.1. 
Если по предусмотренному сценарию взгляд зрителя должен будет проникать и внутрь домика, то следует продумать состав предметов обстановки: мебель (хотя бы стол и стул), светильники (скажем, настольная лампа), предметы быта, посуду и т. п.

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

    

Рис. 1.2. Геометрические модели объектов сцены  с деревенским домиком при  взгляде снаружи (а) и изнутри помещения (б)

ЗАМЕЧАНИЕ

 

Использованная  в данной сцене трехмерная модель коровы разработана компанией Viewpoint Datalabs International. Эта модель в виде файла  под именем Cow.max помещена в папку Meshes компакт-диска, прилагающегося к  нашему изданию. В папке этого же компакт-диска Scenes\Glava_01 вы найдете файл Ris1-02.max с моделью трехмерной сцены, показанной на рис. 1.2. Можете поэкспериментировать с этой сценой после того, как в последующих главах научитесь загружать файлы сцен 3ds max и осматривать их с разных сторон.

 

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

Работа над композицией: свет и  камеры 
На этом этапе с использованием соответствующих средств программы 3ds max 5 производится настройка моделей источников освещения создаваемой сцены и расстановка моделей съемочных камер. Правильный подбор источников света позволяет выполнять имитацию фотографирования сцены в любых условиях освещенности, как показано на рис. 1.3. При этом освещенность всех объектов, отбрасываемые ими тени и блики света рассчитываются программой автоматически. 
Следует отметить, что по части освещения программа 3ds max 5 коренным образом отличается от своих предшествующих версий. Впервые в ней обеспечена возможность расчета так называемой глобальной освещенности (global illumination), при которой учитывается подсветка объектов сцены не только прямыми лучами света от воображаемых осветителей, но и лучами света, многократно отраженными от других объектов сцены. Это позволяет, к примеру, осветить всю сцену единственным источником, имитирующим свет от затянутого облаками неба, создав атмосферу неяркого пасмурного дня (рис. 1.4). 
Модели съемочных камер дают возможность осматривать трехмерную сцену и выполнять ее съемку под любым выбранным углом зрения (рис. 1.5). Если же вы потрудились смоделировать внутри домика определенную обстановку, скажем, стул, стол со скатертью, на котором стоит лампа и лежит шахматная доска с расставленными фигурами, то съемочные камеры позволят заглянуть внутрь домика и рассмотреть все это в подробностях (рис. 1.6). Гибкость возможностей, предоставляемых программой 3ds max 5 в части настройки параметров освещения сцены и ее съемки, не может не вызывать восхищения, в чем вам предстоит убедиться в третьей части книги.

Информация о работе Трехмерная графика