Урок из книги: "Трехмерная (3D) графика и анимация". Расширенные возможности моделирования


Отрывок из книги
Трехмерная (3D) графика и анимация, 2-е издание
Марк Джамбруно
Издательский дом "Вильямс"

 

 

ГЛАВА 4

Расширенные возможности моделирования

Эта модель De Tomaso Mangusta была создана с помощью полигонального моделирования в программе 3ds max. ©2000 Майкл Джонс (Michael Jones)

а падет на него проклятье Митрака! — воскликнул ученик. — Все это по-прежнему выглядит ужасно”. Вздохнув, он посмотрел на форму, парящую над Сияющим Бассейном. Всю ночь и целый день ученик пытался создать поселившегося на крепостном валу стража, который стал бы единственным обитателем пока еще не заселенной модели замка. К сожалению, из собранных им для построения искусственного стража грубых объектов получались только неуклюжие чурбаны, изувеченные швами. “Сильно напоминает бестолковых щелкунчиков”, — проворчал он под нос.

“Проблемы, юноша? — раздался голос Учителя с другой стороны комнаты. — Я предупреждал тебя о подобных трудностях...”.

“Да, но я все равно буду пытаться, ведь только так можно научиться, не правда ли?” — Ученик встал и подошел к старику.

“Совершенно верно, — сказал Учитель, улыбнувшись. — Например, если я покажу тебе одну из своих моделей, то она, возможно, тебе поможет”.

“О, это было бы здорово!” — Парень поспешно уселся перед Сияющим Бассейном около Учителя

“Очень хорошо, — ответил Учитель, закрыв глаза и вздохнув. — Дизкман Ээмайл Колекткал!”. Учитель таинственно взмахнул руками, и внезапно перед ним появилась парящая в воздухе человеческая фигура.

Ученик был ошеломлен. Он ожидал увидеть очень детальную и точную модель, но эта была лишь чуточку лучше его собственных, слепленных из фрагментов пробных моделей. Конечно, она была более детализированной и пропорциональной, однако также походила на гибрид мозаики и чудовища Ôðаíêåíøòåéíа.

“Ну как? — спросил Учитель с усмешкой. — Это одна из самых ранних работ, однако она до сих пор мне нравится”.

Юноша встал и повернулся к своему Бассейну. “Я не считаю, что это так плохо... Я... я имею в виду, что теперь, вроде бы, все понимаю”, — закончил он, улыбаясь и медленно отходя назад.

“Да неужели? — Учитель поднял густую бровь. — Тогда почему же ты покидаешь меня, не дождавшись окончания?”.

“Что?”.

“Хээтламп куизунарте ваазолеен”, — прошептал старик; швы и выступы на фигуре сгладились и исчезли, в результате чего получилась очень подробная и реалистичная модель.

“Ничего себе!” — воскликнул ученик и хлопнул себя по лбу.

Справочная информация и точность моделирования

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

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

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

Конкретные рекомендации по поиску и использованию справочных материалов представлены в приложении Ж, “Планирование и организация”.

Мозаичное преобразование и оптимизация каркасных сеток

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

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

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

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

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

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

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

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

Благодаря оптимизации был в свое время спасен проект Daedalus, в котором для создания и модификации органических моделей высокого разрешения в 3D Studio R4 (DOS) планировалось использовать большое количество полигонов. С помощью сменного модуля Optimize компании Yost Group после окончания моделирования плотность каркасных сеток сцены была уменьшена на 50% и более. Это существенно повлияло на скорость визуализации сцен, поскольку использование каркасов без оптимизации приводило к чрезмерному потреблению виртуальной памяти.

Рис. 4.2. Результат оптимизации каркасной сетки. а) Исходный каркас. б) Первоначальное наложение текстуры. в) Исходная визуализация изображения. г) Каркасная сетка сокращена оптимизацией на 50%. д) Смешанное наложение текстуры в результате оптимизации. е) Оптимизированное изображение после визуализации

Закругленные радиусы и скосы

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

Рис. 4.3. Непрямоугольные края помогают улавливать световые лучи и выглядят более реалистично. а) Плоский скос. б) Скос со сглаженными нормалями. в) Закругленные ребра

Скос (bevel) или диагональное сопряжение (chamfer) — это плоская переходная поверхность между двумя другими поверхностями, обычно расположенная под углом, равным половине разницы углов между ними. Иначе говоря, для угла в 90° скос будет равен 45°.

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

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

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

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

Рис. 4.4. Благодаря использованию скосов и отделочных колец эта булава выглядит созданной с большим разрешением, чем в действительности. Изображение Марка Джамбруно (Mark Giambruno)/Mondo Media для игры Zork: Nemesis ©1996 Activision

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

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

Модификаторы деформации

Модификаторы деформации (deform modifier) — это параметры трансформации (такие, как масштабирование, скручивание, скос, сгибание и деформация/подгонка), которые применяются с формами поперечного сечения по мере их развертки вдоль пути. Другими словами, они модифицируют объект простой (в противном случае) развертки. Это дает возможность изменять размер и ориентацию поперечных сечений, как, например, меха похожего на аккордеон музыкального инструмента Wertmizer из игры Zork: Nemesis (рис. 4.6).

Рис. 4.6. Меха похожего на аккордеон музыкального инструмента Wertmizer были создана с помощью масштабируемого модификатора поперечного сечения по мере его растяжения вдоль кривой. Изображение Марка Джамбруно (Mark Giambruno)/Mondo Media для игры Zork: Nemesis ©1996 Activision

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

Модификатор деформации: масштаб

Средства управления модификатора деформации масштаба (scale deform), равно как и других модификаторов, представляют собой график, который можно изменять, задавая с помощью универсальных величин или процентов степень требуемой деформации (рис. 4.7). В данном случае развернутое поперечное сечение (круг) остается неизменным (масштаб 100%) на протяжении 1/4 части пути, затем его размер увеличивается до 150% по мере продвижения к центру пути. К моменту прохождения 3/4 пути его размер уменьшается до -50% и к концу пути возвращается к 100%. Деформация может быть как пропорциональной, затрагивающей обе оси — X и Y, так и асимметричной, воздействующей лишь на одну из них.

Рис. 4.7. Объект, подвергнутый деформации масштаба. а) В графике определяется положение и процент масштабирования поперечного сечения.б-в) Завершенный объект

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

Модификатор деформации: скручивание (поворот)

Следующий модификатор деформации часто называют скручиванием (twist) или поворотом (rotate). По мере выдавливания он вращает поперечное сечение вокруг заданного пути (рис. 4.8).

Рис. 4.8. Объект, подвергнутый деформации методом поворота (или скручивания). а) В графике определяется положение и процент скручивания или поворота поперечного сечения. б-г) Завершенный объект

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

Модификатор деформации: колебание

Сгибание (teeter) — это модификатор деформации, вращающий поперечное сечение вокруг его локальной оси по мере выдавливания (рис. 4.9).

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

Рис. 4.9. Деформированный сгибанием объект. а) В графике определяется положение и процент колебания поперечного сечения. б-г) Завершенный объект.

Модификатор деформации: искажение/выравнивание

В некоторых программах имеется модификатор искажения/выравнивания (deform/fit), позволяющий задавать форму объекта с помощью осевых контуров Х, Y и одного или более поперечных сечений. Хотя такой вид моделирования может иметь определенные ограничения в зависимости от реализации в конкретной программе, с его помощью довольно легко создаются сложные формы, например, фюзеляж самолета или деревянная рукоятка мушкета, как, например, в игре Zork: Nemesis (рис. 4.10).

Визуальная настройка модификатора подгонки/искажения может привести в некоторое замешательство. Совет — представьте, что создается литейная форма из осевых форм X и Y, а затем в нее “заливается” форма поперечного сечения.

Рис. 4.10. Использование выравнивания. а) Определенные осевые контуры X и Y рукоятки мушкета, а также сглаженное поперечное сечение. б) Конечный объект формируется растяжкой поперечного сечения вдоль прямого пути, причем поперечное сечение должно оставаться в границах контура. Изображение Марка Джамбруно (Mark Giambruno)/Mondo Media для игры Zork: Nemesis ©1996 Activision

Трехмерные булевы операции

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

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

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

¨   С помощью булевого вычитания (Boolean subtract) из первого объекта удаляются любые перекрывающиеся с ним элементы второго объекта. Это подобно использованию второго объекта в качестве сверла или ковша для вырезания части первого объекта.

¨   Посредством булевого пересечения (Boolean intersect) удаляются все перекрывающиеся элементы каждого из объектов. Другими словами, новый объект создается из совпадающих частей двух объектов.

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

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

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

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

Редактирование каркасной сетки

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

В главе 2, “Погружение в киберпространство”, описывались методы использования редактирования на уровне вершин для корректировки двухмерных форм. Такие низкоуровневые полигональные операции, как редактирование вершин, ребер, граней, также могут применяться и с трехмерными объектами. Процесс корректировки на уровне вершин часто называют вытягиванием точек (pulling point). С его помощью очень удобно создавать и улучшать объект, добавляя мелкие детали и устраняя дефекты каркасной сетки.

Операции с вершинами

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

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

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

В некоторых программах имеется магнитный инструментарий (magnet tool), разработанный для облегчения создания рельефа. При его использовании вершины притягиваются или отталкиваются по мере приближения инструмента к объекту. С помощью подобных средств ускоряется процесс выбора набора точек, корректировки всей группы и создания более сглаженных, естественных выступов и углублений. Эти же принципы применяются со сглаженной выборкой (soft selection), где дополнительные точки перемещаются по разным направлениям, в зависимости от их удаленности от центральной группы выбранных вершин (рис. 4.12).

В качестве примера редактирования на уровне вершин рассмотрим метод, с помощью которого были созданы магические кристаллы для игры Zork: Nemesis. Проект осуществлялся с помощью программы 3D Studio R4 (DOS), поэтому кристаллический эффект пришлось реализовывать без надежды на эффект преломления, так как программа не поддерживала трассировку лучей.

Рис. 4.12. Сглаженная выборка и магнитный инструментарий позволяют пользователям влиять на целую область вершин. а) Параметры быстрого выделения приводят к сужению и растягиванию избранной области. б) Куполообразный результат более медленных параметров выделения

На основе эскиза, сделанного Коди Чанселором (Cody Chancellor), было создано несколько листовидных сплайновых форм, которые выдавливались (extrude) со скосом на каждом крае для улавливания света. В результате, получился набор стеклоподобных блоков, однако без внутреннего “свечения”, присущего драгоценным камням. Причина в том, что драгоценные камни улавливающие свет, имеют внутренние грани, которые отсутствуют в каркасной сетке модели на этом этапе. Используя редактирование на уровне вершин для перетягивания точек граней внутрь кристалла и создав несколько дополнительных полигонов, нам удалось сформировать определенные внутренние конструкции, приблизительно соответствующие внутренним граням драгоценных камней (рис. 4.13).

Для доработки кристалла применялся дополнительный, очень прозрачный голубоватый материал (подробности смотрите в главе 6, “Наложение текстур”), а в центре сцены для усиления яркости и увеличения отблесков объектов был размещен всенаправленный источник света.

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

Рис. 4.13. Отражающие поверхности внутри кристаллов свободной формы из игры Zork: Nemesis были созданы путем вытягивания точек и добавления дополнительных полигонов. Изображение Марка Джамбруно (Mark Giambruno)/Mechadeus ©1996 Activision

Операции с ребрами

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

¨    Выдавливание ребра (edge extrude). Копия выбранного ребра вытягивается от оригинала и добавляются многоугольники, заполняющие промежуток. В результате появляется подобная плавнику проекция, вытягивающаяся от исходного ребра (рис. 4.14,б).

¨    Разделение ребра (edge divide). Мозаичное преобразование на уровне полигона, при котором ребро разбивается путем создания новой вершины в указанной пользователем точке, образуя тем самым дополнительные полигоны (рис. 4.14, в).

¨    Поворот ребра (edge turn). Поворот избранного ребра между доступными вершинами. Это обычно делается для воздействия на нормали полигона для того, чтобы полученный объект стал более сглаженным (рис. 4.14,г).

¨    Видимое/невидимое ребро (visible/invisible edge). Переключение видимости ребра. Видимость ребра оказывает влияние на нормали (а, следовательно, и на гладкость) создаваемого итогового изображения. Видимость также помогает определить, какие грани в данной области принадлежат отдельному полигону. Когда ребро скрыто, пара треугольных полигонов становится четырехугольником. (рис. 4.14,д).

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

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

Операции с гранями

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

Разделение грани (face divide) осуществляется аналогично разделению ребра, за исключением того, что для образования новой вершины пользователь может выбрать произвольную точку внутри полигона (рис. 4.15).

Еще одним полезным средством является выдавливание грани (face extrude) — процесс, при котором выбранная грань (или грани) выдавливаются наружу или внутрь по отношению к их текущему местоположению (рис. 4.16).

Рис. 4.15. Разделение грани. а) Неизмененный треугольный полигон. б) При делении грани к любой выбранной пользователем точке внутри грани добавляется новая вершина. Существующая грань разбивается на три части, соединенные с новой вершиной

Рис. 4.16. Выдавливание граней. а) Цилиндр с неизмененными гранями. б) Группа выбранных граней, выдавленных наружу. в) Изображение затененных объектов

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

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

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

Операции с полигонами

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

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

Операции с элементами

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

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

Карты смещения

Еще одним инструментом в арсенале манипуляций с каркасными сетками являются карты смещения (displacement mapping). В отличие от карт выдавливания (bump mapping), которые на уровне материала воздействуют на нормали поверхности и создают иллюзию того, что объект выглядит как имеющий выступы и впадины, карты деформации (deformation mapping) действительно влияют на каркасную сетку, сдвигая ее наружу или вовнутрь (рис. 4.17). Они используется точно так же, как и карты выдавливания — в виде растрового рисунка (более подробно см. главу 6, “Наложение текстур”). В зависимости от программы, темные пиксели не оказывают влияния, а белые — создают наибольший эффект смещения, или же совершенно наоборот.

Рис. 4.17. Карты смещения. а) Решетчатый объект. б) Наклонное растровое изображение, используемое с целью задать относительное смещение вершин. в) Деформированная сетка после смещения

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

Рис. 4.18. Модели местности часто создаются с помощью карт смещения. Некоторые программы, например TruFlite, для получения более точных результатов генерируют модели на основе карт геологических съемок. ©1996 Мартин Д. Адамайкер (Martin D. Adamiker)

Определение

Решетчатый объект

Плоский полигон, разбитый на треугольные или квадратные грани.

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

Параметр уровня смещения (displacement level) или силы смещения (displacement strength) указывает на степень смещения каркасной сетки и модификатор диапазона полутонов, предоставляемый растровой картой смещения. Другим фактором, оказывающим влияние на операцию смещения, являются координаты наложения, которые рассматриваются более подробно в главе 6.

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

Создание органических форм

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

35 0 850 12
5
2007-08-07
по моему для новичков тут нет конкретики чтобы изучить, а профи и так все это знают...
2007-09-04
на самом деле сплошная вода..
2007-09-28
Кому может быть интерестным это мыло?
2007-11-14
Отличная книга для новичков. Когда-то я с нее начинала. Ценна легким введением в комп. графику, множеством интервью с дизайнерами и аниматорами (т.е. книга для тех, кто только начинает знакомиться с 3D графикой). Единственный минус - основана на ранних версиях 3D редакторов, поэтому для практики не очень актуальна.
2008-04-25
Полностью не согласен с deaff, Михаилом Коровянским и Sanya3D в случае, если они про книгу вцелом! Если читать эту книгу в бумаге, то толк есть. Дело в том, что к ней прилагается отличный диск, на котором (при знании англ языка) можно найти большой урок (очень толковый ИМХО) по созданию диражабля (Maya, LightWave3D, 3DS Max). Я начинал LW именно с этой книги (сейчас правда не занимаюсь LW, а перешел на maya, но это совсем другая история). А книга интересна тем, что разъясняет то, что новичек не может понять, если просто сделает из конкретного урока по определенному продукту.
RENDER.RU