Table of Contents

ГЛАВА 15

Сложные модификаторы

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

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

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

Некоторые из наиболее разносторонних модификаторов - это работающие с различной геометрией. К такому типу принадлежат модификаторы осевых деформаций (Bend, Taper, Twist, Stretch, Skew), описанные в главе 8, "Моделирование на уровне объектов".К этому списку мы добавляем Displace, Noise, Wave, Ripple и FFD. Каждый из них немного сложнее модификаторов, описанных ранее, но каждый привносит с собой невероятные возможности моделирования.

Использование Displace

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

СОВЕТ

Клавиша Escape прекращает Displace во время длительных вычислений и возвращает вас к предыдущим параметрам.

Параметр Strength, задаваемый в единицах, управляет дистанцией, на которую перемещаются затрагиваемые вершины в соответствии с проекцией отображения. Координаты отображения, расположенные по нормали по отношению к поверхности, под 90°, смещают вершины на дистанцию, равную величине Strength. Рисунок 15.1 показывает эффект использования проекций Spherical и Planar модификатора Displace со значением Strength равным 5 на коробке с шириной 10. Планарная проекция смещает на 5 весь квадрат, тогда как при сферической проекции смещение 5 получает только область по центру сферы.

ПРИМЕЧАНИЕ

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

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

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

Опция Center Luminance (центрировать яркость) влияет на параметр Strenght и используется тогда, когда необходимо, чтобы битовая матрица смещало поверхность как в одном, так и в другом направлениях. При включенной опции белое и черное рассматриваются как равное, но с противоположным действием. Белое теперь составляет 50% параметра Strength, черное -50%, среднее серое влияния не оказывает и светло-серое или темно-серое имеет пропорциональный эффект. Рисунок 15.3 показывает влияние данной опции в нижних видовых окнах, где прежде гладкая черная область теперь вырезала углубление, а 50%-ная серая область осталась на уровне с исходной поверхностью. Если вы не используете битовой матрицы, то установка Center Luminance усекает Strength наполовину, но не форсирует отрицательного смещения.

ПРИМЕЧАНИЕ

3D Studio MAX использует такой объем RAM, который необходим для обработки цветовой глубины битовых матриц. При ссылке на матрицу интенсивности 8-битовая версия оттенков серого требует одну треть RAM по сравнению с тем же самым образом в 24-битовом цвете. Образы в оттенках серого более интуитивны, поскольку глубину серого сравнить проще, нежели вообразить серые эквиваленты цвета цветов.

Опция Blur принимает значения от 0 до 10 и влияет на битовую матрицу, пропуская ее через размывающий фильтр. Эффект похож на размывание, получаемое в Materials Editor, когда контрастные ребра образа смягчаются. Верхние окна на рисунке 15.3 показывают, как небольшое значение размывки предотвращает появление грубых ступенчатых ребер. Нижние виды на рисунке показывают, как большие значения размывания полностью выветривает смещение.

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

При включении опции Use Existing Mapping текущая проекция Displace игнорируется и существующие координаты отображения - они могут быть уже применены - используются для управления смещением. Рисунок 15.5 показывает смещение сферического образа с различными степенями мозаичности. Два отображаемых типа, которые не допускает Displace (Box и Cylindrical Cap), также представлены. Кроме того, как показано на рисунке 15.6, существующая опция отображения предоставляет возможность смещаться в соответствии с очень изощренными координатами, независимо от того, были ли они выстроены искусственно или получились в результате многочисленных деформаций.

ПРИМЕЧАНИЕ

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

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

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

СОВЕТ

Часто проще установить очень высокое значение Strenght для того, чтобы видно было влияние Decay, и затем уменьшить Strength до получения желаемого результата.

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

При работе с существующим отображением текущий Displace Map Туре влияет на его интерпретацию. Если установить Displace Map Type в Planar, только первый шаг мозаики имеет отношение. Таким образом можно управлять размерами предыдущего отображения, выбирая форму элемента Displace.

Опция Apply Mapping включается тогда, когда необходимо быстро применить отображение внутри Displace в качестве актуальных координат для материалов (или будущих модификаторов). С этой целью обеспечивается только поле W Tile, поскольку оно не оказывает влияния на сам Displace. Опции Alignment внутри Displace идентичны таким же опциям модификатора UVW Mapping.

СОВЕТ

Можно выполнить анимацию элемента Displace, присвоив ему путь или контроллер Look At. Такой прием часто дает большую степень управления, нежели использование версии искажения пространства (space warp) модификатора в мировом пространстве.

На практике для получения необходимых деталей для Displace приходится использовать предельно мелкие элементы каркаса. Данные детали могут получаться из параметров поверхности объекта, мозаики EditMesh или из модификатора MeshSmooth. После того, как Displace выполняет свою деформацию, за ним часто следует модификатор Optimize (обсуждаемый позже в разделе "Каркасные модификаторы"), сокращающий накладные расходы на геометрию. Модификатор Smooth также является частым спутником, следующим за Displace или Optimize, обеспечивая правильное назначение групп сглаживания для вновь смоделированной геометрии. Таким образом распространен следующий порядок применения Displace в стеке модификаторов:
MeshSmooth, Displace, Optimize, Smooth.

Использование Noise

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

Параметры Strength управляют величиной шумового смещения вдоль заданных осей. Значение Strength -это максимальная дистанция (в единицах), на которую будет происходить смещение (когда Scale установлено в 100%). Каждая вершина смещается в соответствии с осевым значением Strength и глобальными параметрами Seed и Scale. Применение масштаба вдоль одной оси перемещает вдоль нее все вершины.

Нижний левый (Тор) вид на рисунке 15.8 показывает, что шум не виден, если смотреть вдоль активной оси, в данном случае оси Z. Эффект виден при просмотре с двух других сторон. Noise выполняет свое стандартное смещение - синусоидальную кривую по осям Х и Y. Когда каждой оси соответствует одно и то же значение Strenght, то как показано на верхних картинках рисунка 15.8, вдоль каждой оси посылается синусоидальная волна. Начальная фаза кривой управляется значением Seed, поэтому изменение значения Seed является быстрым способом придания сходным объектам разных шумовых смещений. Ограничиться смещением вдоль одной оси невозможно (для того, чтобы это сделать смотрите модификатор Wave).

ПРИМЕЧАНИЕ

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

Параметр Scale влияет на значения Strength вдоль всех осей. Его следует рассматривать как способ настройки всех трех осей. Scale начинается со 100 (процентов) с нижними значениями, уменьшающими смещение кривой, и верхними значениями, увеличивающими смещение. Если требуется сохранить дистанцию смещения, то по мере сглаживания кривой следует компенсировать гладкость за счет увеличения Strength. To же самое справедливо для нижних значений.

Когда включена опция Fractal, то к исходно гладкой синусоидальной кривой добавляется фрактальная кривая. Результат такого добавления показан на рисунке 15.9. На практике это является наиболее распространенным применением модификатора Noise, поскольку создание и анимация подобного эффекта вручную предельно утомительно. С Noise данный эффект является просто делом интерактивной настройки нескольких параметров. Фрактальные ландшафты обычно генерируются только вдоль одной оси, поскольку использование двух или трех осей сместило бы вершины горизонтально. Параметр Iterations управляет тем, сколько "пиков" образуется вдоль синусоидальной кривой, где 1.0 не делает ничего (потому что начальная синусоидальная волна и является первой итерацией), и 10.0 дает девять дополнительных вариаций. Будьте внимательны с большими каркасами, поскольку возрастание итераций увеличивает время вычислений. Сопровождающий параметр Roughness настраивает изломанность фрактальной кривой и действует как вертикальная настройка смещения вершин. Чем выше Roughness, тем резче шум.

СОВЕТ

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

В отличие от контроллера Noise не существует графа, который бы описывал функцию шума. Вместо этого кривую шума достаточно хорошо представляет гизмо модификатора. Манипулирование центром гизмо очень похоже на настройку значений Seed или Phase, и анимация элемента порождает деформации гладкости. С целью влияния на фазу переместите центр перпендикулярно оси, которую хотите модулировать (например, если это ось Z, переместите центр в плоскости XY). Масштабирование гизмо похоже на одновременную настройку параметров Scale и Strenght. Вращение гизмо изменяет направление вытягивания вершин. Для анимаций лучше всего использовать гизмо и его центр, а не Seed, который приводит к очень резким изменениям на интервал. Как показано на рисунке 15.10, анимация гизмо шума и его центра предоставляет множество интересных возможностей.

Анимация шума управляется опцией Animate Noise. Когда опция включена, Phase упраляет циклом анимации смещаемых кривых. Когда Animate Noise включается впервые, в каждый конец активного сегмента времени помещается ключ. Потом можно обычными способами добавить дополнительные ключи. Если Animate Noise отключить, Track View будет игнорировать дорожку. При включенном Animate Noise ключи возвращаются в активное состояние. Хотя сопровождающий параметр Frequency анимировать нельзя, однако он влияет на "скорость" заданной фазы.

ПРИМЕЧАНИЕ

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

Использование модификатора Wave

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

Значение Amplitude выражает расстояние от гребня волны до исходной поверхности. Как показано в верхней части рисунка 15.11 установленные в одно и то же значение Amplitude 1 и Amplitude 2 порождают унифицированную волну. Amplitude 1 управляет высотой у центра гизмо и Amplitude 2 определяет высоту волны у двух ребер. Обратите внимание на то, что ширина волны всегда занимает всю ширину выборки. Модификатор Wave повторяется только вдоль главной оси. Амплитуды предоставляют возможность модулировать эту одну волну по ее ширине - важное замечание при моделировании ската.

Кривая ширины определяется Amplitude 1 и (по умолчанию вдоль оси Х объекта) является бесконечной неповторяющейся кривой. Как показано на рисунке 15.12, центр гизмо определяет центр кривой. Высота, задаваемая Amplitude 2, является относительной только тогда, когда центр находится в середине ширины гизмо. Рисунок 15.12 также показывает, что перемещение центра к любой из сторон "сдвигает" кривую и значительно изменяет высоту ребра. Таким образом центр гизмо устанавливает позицию и центр первой волны с амплитудами, определяющими высоту.

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

Параметр Decay (затухание) предоставляет возможность гасить волну (если он меньше 1.0) или усиливать ее (если он больше 1.0). Значения Decay имеют тенденцию быть очень маленькими (часто менее 0.1) и управлять затуханием только по длине волны, поскольку высота волны постоянна вдоль ширины и модулируется только параметрами амплитуды. Источником затухания является центр гизмо, поэтому его правильное размещение играет большую роль. Нижние виды рисунка 15.13 показывают результаты использования Decay. Как демонстрируют два верхних вида того же рисунка, манипулирование центром гизмо дает еще большее число вариантов того, что можно создать. Дело в том, что вращение гизмо ориентирует или искажает волны.

Использование модификатора Ripple

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

По умолчанию Ripple модифицирует ось Z объекта с Amplitude 1, влияющей на ось X, и Amplitude 2, влияющей на ось Y. Практически для всех пульсации жидкости данные значения должны оставаться одинаковыми. Различающиеся значения обычно означают, что вы моделируете эффект, подобный показанному на рисунке 15.14 на нижнем правом виде (здесь для усиления эффекта гизмо был неровно масштабирован).

Параметры Wave Length, Phase и Decay похожи на соответствующие параметры модификатора Wave. Влияние положения центра гизмо гораздо понятнее, поскольку он определяет центр пульсации. Его можно представлять как камешек, брошенный на поверхность жидкости. Как всегда ориентация гизмо существенно влияет на деформацию. Используя несколько модификаторов Ripple и Wave, которые сталкиваются друг с другом, можно создавать убедительно выглядящую воду или пятнистые поверхности.

Использование Free Form Deformation

Модификаторы Free Form Deformation (FFD) являются относительно недавним дополнением 3DS МАХ, которые можно бесплатно получить из www.ktx.com после заключения юридических соглашений с Viewpoint DataLabs (владелец патента на концепцию FFD). В поставку включены три модификатора FFD с различными плотностями решеток (2 х2 х2,3 хЗ х3и4 х4х4). Модификаторы FFD действуют на вершины независимо от того, каркасы это, лоскуты или даже сплайны.

ПРЕДУПРЕЖДЕНИЕ

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

В принципе смещение FFD элегантно и просто. На поверхности размещается решетка управляющих точек и при перемещении управляющей точки поверхность деформируется. Как показано на рисунке 15.15, при использовании решетки 4х4х4 деформация соотносится с кривой Безье. При решетке 4х4х4 конечные управляющие точки "приклеены" к поверхности, а промежуточные управляющие точки при перемещении формируют кривую Безье. Модификатор 3х3х3 работает в основном похоже, за исключением того, что в нем имеется только одна средняя точка для интерполяции. Модификатор 2х2х2 имеет лишь угловые управляющие точки и генерирует линейную интерполяцию.

ПРИМЕЧАНИЕ

С появлением FFD утратили свою важность несколько других модификаторов 3DS МАХ. Модификатор 2х2х2 устраняет потребность в использовании Skew, a 4 х 4 х 4 сокращает частоту применения Wave.

Сила FFD заключается в их способности к локализации своего эффекта. При масштабировании решетки, пока активна опция Deform/Only In Volume, будут деформироваться только вершины в объеме решетки (см. верхние видовые окна на рис 15.16). Объем решетки определяет выделения прежде чем будут перемещены любые управляющие точки. Это предоставляет возможность перемещать управляющие точки в любом направлении, не влияя на выделение. Нижние видовые окна на рисунке 15.16 показывают, что при масштабировании решетки до небольшой области и затем переключении выбора на All Vertices, результирующее смещение из-за интерполяции может оказаться достаточно большим.

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

СОВЕТ

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

Если вы не хотите знать о протяженности решетки, можете определить подобъектную выборку (посредством модификаторов Edit или Volume Select) и после этого присвоить модификатор FFD. Модификаторы FFD, как и большинство других модификаторов 3DS МАХ, учитывают активную выборку. Выбор Deform/All Vertices игнорирует размеры решетки и влияет на все вершины, которые находятся внутри текущей активной выборки. Вероятно данная опция при работе с выборками подобъектов понравится вам больше других. Модификаторы FFD могут также укладываться в стек и каждый работать с отдельной выборкой. Это предоставляет возможность помещать деформацию FFD именно там, где она нужна, и настолько часто, насколько это необходимо. Рисунок 15.17 показывает, как размещаются три модификатора FFD для целей анимации тонкостей движения уха и ноздрей.

Модификаторы FFD также можно анимировать на уровне решетки или управляющей точки. Аяимация решетки перемещает управляющие точки и их влияние. Это позволяет перемещать решетку по объекту для организации специальных анимационных эффектов. До тех пор, пока недоступно искажение пространства FFD, такая технология необходима для эффектов "сквозь замочную скважину". Но реальная сила FFD заключена в анимации управляющих точек. При активной кнопке Animate каждая выполняемая трансформация управляющей точки генерирует ключ (см. рис. 15.18). Анимационные треки управляющих точек не добавляются до тех пор, пока не будет выполнена анимация точек, подобно добавлению треков к деформационным сеткам Lofter при их анимации. Анимация управляющих точек, особенно на локальных дискретных выделениях, предоставляет возможность тонкого управления. Модификаторы FFD следует использовать всегда, когда требуется выполнить анимацию ряда вещей, которые в 3DS МАХ анимировать затруднительно (например, смещение вершины Affect Region в EditMesh или тангенциальные ручки вершин в EditPatch).

Каркасные модификаторы

Несколько модификаторов могут читать и продуцировать только каркасную информацию. Такие модификаторы требуют преобразования объекта в каркас. Поскольку каждый объект в 3DS МАХ способен преобразоваться в каркас, присвоение данных модификаторов лоскутным или сплайновьш моделям приводит к преобразованию их в каркасы в данной точке Modifier Sfack. Предупреждение, связанное с преобразованием не выдается. Вы всегда можете вернуться на ранний этап в истории редактирования и редактировать объект как сплайн или лоскут до его конвертирования в каркас.

Использование Optimize

Optimize (оптимизировать) является главным инструментом 3DS МАХ для сокращения количества граней. Это также метод для ускорения перерисовки при манипулировании большими моделями. В любом случае Optimize анализирует угол каждой грани с ее смежными гранями и сравнивает этот угол с пороговым значением. Как показывает рисунок 15.19, Optimize принято использовать после того, как другой модификатор сгенерировал или затребовал большое количество граней (например, MeshSmooth или Displace). Оптимизированный результат с оригиналом сравнивается легко за счет временного выключения пиктограммы лампочки модификатора Optimized.

СОВЕТ

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

Параметр Threshold является ключевым в Optimize, поскольку управляет тем, какие грани будут удалены. Грани внутри порога определяются таким же методом, что и описанный для функций AutoEdge, AutoSmooth и Explode модификатора EditMesh в главе 13, "Каркасное (mesh) моделирование".

Face Threshold оказывает влияние на грани, которые совместно используют три ребра с другими гранями. Значение Edge Threshold управляет оптимизацией только граней с открытыми, неразделенными ребрами. Значение для ребер не может быть выше, чем для граней. Более высокие значения просто игнорируются. Значение по умолчанию 1.0 для ребер оптимизирует коллинеарные ребра. Как показывает рисунок 15.20, различные значения для ребер и граней приводят к различным результатам. Если вы хотите сохранить профиль модели. Edge Threshold должен быть очень низок. При попытке добиться максимальной оптимизации оба порога должны быть одинаковыми.

СОВЕТ

Пороговые значения выше нуля (от 0.01 до 0.1) удаляют все копланарные грани и не затрагивают профиля модели. Для минимизации ошибок порог следует увеличить до 0.1 или 1.0.

Значение Bias управляет формой результирующих граней, со значением 1.0, практически устраняющим оптимизацию, и 0.0, не имеющим эффекта. Низкие значения (меньшие 0.1) устраняют трещины, тогда как высокие значения оставляют достаточное количество вершин для других деформаций. Значение Bias по умолчанию 1.0 устраняет длинные ленточные грани, но если требуется максимальная оптимизация, Bias следует установить в НУЛЬ.

Optimize уникален среди других модификаторов 3DS МАХ, поскольку предоставляет возможность иметь различные значения для интерактивной и окончательной визуализации. Это означает, что сложные модели можно оптимизировать для манипуляций отображения на самом высоком уровне детализации. На рисунке 15.22 показано, что одна и та же модель просматривается с низким количеством граней и визуализируется с исходным количеством. При переключении видовых окон между Level 1 и Level 2 параметры изменяются (они оба имеют одни и те же начальные значения по умолчанию). Это означает, что если для видовых окон используется Level I, необходимо временно переключать видовое окно на Level 2 для редактирования значений. Причина проста: при изменении значений требуется видеть результаты. Применение описанного метода может значительно ускорить работу с насыщенными моделями. Следует помнить, что пока в стеке модификаторов имеется Optimize, вся модель обсчитывается и сохраняется на диске.

СОВЕТ

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

Опции Preservation для Material Boundaries и Smooth Boundarues должны тщательно учитываться, если модель использует подобъектный материал или импортируемые установки групп сглаживания. При отмеченной Preservation Optimize обрабатывает каждый ID материала или группу сглаживания как независимую область. Удивительно, что ребра в тех местах, где сходятся различные области, все еще имеют совпадающие вершины. Как упоминалось, материалы и группы сглаживания обычно имеют важные причины для присвоения и часто определяют характерные области модели. Таким образом, если нужно, чтобы эти характерные области оставались после оптимизации, следует использовать Preservation. Рисунок 15.23 отражает влияние, которое оказывает на модель применение и неприменение этой опции для случая групп сглаживания.

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

Использование MeshSmooth

Модификатор MeshSmooth появился в Выпуске 1.1 и обеспечивал возможность округления углов в каркасных моделях. MeshSmooth улучшает геометрию, подбирая мозаичность ребер каркаса таким образом, который значительно более эффективен способа, поддерживаемого EditMesh. Добавление MeshSmooth к модели с небольшим количеством граней часто похоже на добавление шагов в лоскутных или сплайновых моделях (см. рис. 15.24).

Как показано на рисунке 15.25, MeshSmooth создает дополнительные грани, в основном "смещая" каждое ребро в обе стороны и "подгоняя" результат. В результате каждая исходная вершина является центром нового многоугольника, количество сторон которого совпадает с количеством ребер, изначально совместно использовавших вершину. Иногда ребра образуют очень красивые узоры.

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

СОВЕТ

MeshSmooth чувствителен к клавише Escape. Если вы случайно перейдете от одной к четырем итерациям (и модель вырастет более чем в 50 раз), можете прервать процесс, не дожидаясь результата.

Параметр Strength на самом деле является пропорциональным смещением от исходной вершины. Нулевое значение устраняет эффект MeshSmooth, размещая все вершины на их исходных позициях. Увеличение Strength до 1.0 перемещает все вершины до тех пор, пока они не сойдутся со своими противоположными парами в средних точках. Значения между 0.0 и 1.0 соответствующим образом определяют пропорцию расстояния. Рисунок 15.25 показывает, что если требуется создать упрощенные ребра, распространенные в промышленных изделиях, низкие значения Strength именно это и делают. Высокие значения Strength имеют тенденцию создавать более кристаллические формы, когда ребра сгибаются к средним точкам. Значение по умолчанию 0.5 создает округлую форму с несколькими итерациями. Кроме того, рисунок 15.25 показывает, что значение 0.54 создает из куба практически сферическую форму.

Опция Eliminate Hidden Edges (устранить скрытые ребра), которая по умолчанию включена, игнорирует скрытые ребра. Это единственная операция, где видимый статус ребер играет роль. Рисунок 15.24 показывает одну и ту же геометрическую форму с и без данной опции. Без нее размер модели растет гораздо быстрее и результирующая форма может оказаться неприемлемой.

Для функционирования MeshSmooth важно, чтобы каркас был создан правильно. Дело в том, что для определения мозаичности и направления MeshSmooth пересекает ребра. Если каркас сконструирован некорректно, то MeshSmooth выключает себя, гасит свою лампочку и изменяет имя в Command Panel на "MeshSmooth Error - See Help" (см. рис. 15.26) Когда такое случается, необходимо исследовать и изменить модель в соответствии со следующими правилами:

Использование модификатора Relax

Модификатор Relax (уменьшить напряжение) влияет на видимую "напряженность" поверхности каркаса, перемещая вершины ближе или дальше от вершин смежных граней. Рисунок 15.27 показывает то, как вершины мигрируют одна от другой для целей смягчения каркаса. Параметр Relax делает результирующую ослабленную поверхность вогнутой при значениях от 0 до 1.0 и выпуклой при значениях от -1.0 до 0. Параметр Iterations выполняет дополнительную итерацию Relax. Как показывает рисунок 15.28, несколько итераций создают эффекты "уплотнения".

По мере миграции вершин отдельные элементы внутри объекта оттягиваются от других. Как показывает рисунок 15.28, предотвратить подобное можно посредством опции Keep boundary points fixed (сохранить точки границы фиксированными). В отличие от MeshSmooth, итерации в Relax не дорогостоящи, потому что геометрия не усложняется, а только перемещаются существующие вершины. Накладные расходы при большом количестве итераций очень малы, если вообще возникают.

Модификаторы трансформаций

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

Выборка при помощи Volume Select

Volume Select разработан для проведения подобъектных выборок, основанных на определенной области/ объеме (см. рис. 15.29). Это полная альтернатива явному выделению вершин или граней в EditMesh. Все аспекты выделения Volume Select следует хорошо понимать, поскольку его применение существенно для успешного моделирования.

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

Напротив, EditMesh зависит от заданной топологии и не зависит от того, какое место выбирается. EditMesh все равно, где размещена выборка, его интересует только количество вершин и граней в объекте. Таким образом, если необходимо изменить общую плотность модели (сегментацию примитивов или лофт-объекта), то для определения выборки следует применить Volume Select, а не явную выборку. Это позволит выборкам объемов работать после модификаторов EditMesh, Optimize и MeshSmooth и быть независимыми от их изменений. Если вы намереваетесь изменять определенные измерения модели (например, параметрические измерения примитивов), то для определения точной выборки требуется применять EditMesh.

ПРИМЕЧАНИЕ

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

При первом присвоении Volume Select гизмо принимает размеры активного выборки стека на данном уровне. Часто данная выборка является объектным уровнем и гизмо принимает размеры объекта, вынуждая трансформировать гизмо на подобъектный уровень, если требуется определить подобъектную выборку. Если активная выборка представляет собой выборку вершин, граней или ребер, гизмо действует как большинство модификаторов и подстраивается на подобъектную выборку. В отличие от других модификаторов, гизмо Volume Select не изменяет формы или положения при изменении предыдущей выборки стека. В противном случае ваш тщательно размещенный объем оказался бы испорченным. Таким образом, установка размеров гизмо Volume Selection подобна первичному размещению центра гизмо стандартного модификатора. Первое присвоение определяет положение и последующие настройки выборки его не изменяют.

СОВЕТ

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

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

Stack Selection Level определяет, какой уровень геометрии выбирается (объекты, грани или вершины). По умолчанию принимается уровень Object и выбирается весь объект независимо от размеров элемента. Поскольку выбирается весь объект, остальные элементы управления Volume Select эффекта не оказывают - выбрано все. На уровне объекта вас мало интересует позиция элемента, его размер или форма, все равно всегда выбирается весь объект. Использование Volume Select с несколькими объектами производит выбор объема на уровне граней или вершин. Если оставить объектный уровень, выбираются все объекты независимо от других опций модификатора.

Selection Method определяет, как обрабатывается предыдущая выборка стека. По умолчанию опция установлена в Replace, что отменяет любую текущую выборку стека и делает текущим выбором объем элемента. Опции выборки вступают в силу со следующими опциями, поскольку Add и Replace взаимодействуют с текущей выборкой стека. Это означает, что можно использовать Volumes для булевых методов выборки (см. рис. 15.30). В приведенном примере первый модификатор заменен, второй вычтен и третий добавлен. Затем был добавлен XForm, переместивший и отмасштабировавший результирующую выборку. Volume Selects предоставляет возможность исходной коробке максимизироваться, не искажая формы выборки или конечной модификации.

ПРИМЕЧАНИЕ

Опция Invert модифицирует опцию, выбранную выше (заметьте, что форма - квадратная, а не круглая как переключатель). Если включена опция Invert, выборка объема оценивается и затем результирующая выборка инвертируется. (На практике вы будете маневрировать гизмо с отключенной опцией Invert и инвертировать в конце. В противном случае легко запутаться.) Таким образом Selection Level похож на уравнение: Предыдущая выборка плюс/минус Volume Selection да/нет Invert=Выборка

В отличие от уровня выборки Object, уровни граней и вершин работают с Selection Method и Volume Type. Уровень граней также учитывает выбор Window и Crossing опции Selection Method (уровень вершин считает Window и Crossing одним и тем же). Если в стеке существует несколько подобъектных выборок, влияние оказывается только на текущий Selection Level. Выборка объема не влияет на выборки стека различного типа (ребра или грани при выборе вершин например), поэтому с ними можно взаимодействовать будущих моди-фикаторах.

СОВЕТ

Выбор Selection Level изменяет текущее состояние выборки Modifier Stack. Если Volume Select был установлен на уровень вершин, то уровень выборки, установленный в грани предыдущим модификатором EditMesh, изменяется на вершины.

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

Опции Alignment быстро ориентируют гизмо объема подобно тому, как это делается модификатором UVW Mapping. Установите размеры гизмо в размеры объекта в соответствии с текущей ориентацией и масштабом объекта. Опция Reset переориентирует гизмо так, чтобы его ось Z совпадала с осью Z объекта, и устанавливает масштаб так, чтобы гизмо удовлетворял размерам объекта.

Трансформация при помощи модификаторов XForm и Linked XForm

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

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

ПРИМЕЧАНИЕ

Модификатор XForm - это не то же самое, что команда Reset-XForm в 3DS для DOS, которая устанавливает систему координат Local в World в соответствии с текущей ориентацией объекта. Модификатор XForm можно использовать для получения подобного результата, и 3DS МАХ выполняет данное действие автоматически при помощи, утилиты Reset Transform, показанной на рисунке 15.31 и поставляемой в Выпуске 1.1.

Центр гизмо XForm действует как точка вращения гизмо. При манипулировании гизмо у вас нет готового доступа к точке вращения объекта (если вы не установили систему координат в Pick, не выбрали объект и не использовали центр координат трансформации). Как и в случае большинства модификаторов, для воздействия на весь объект центр помещается в точку вращения. Если установлена подобъектная выборка, центр гизмо помещается в центр выборки.

Модификатор XForm исключительно эффективен в сочетании с модификаторами Volume Select. В таком случае Volume Select определяет выборку, а XForm воздействует на нее, предоставляя возможность моделировать и выполнять анимацию дискретных частей модели, в том числе и отдельных вершин. В случае использования лоскутной или сплайновой модели метод Volume Select не работает. В таких случаях для подобъектной выборки следует применить модификатор EditPatch или EditSpline. Помните, что данные модификатора! приводят к значительным затратам и в них необходимо выполнять абсолютный минимум редактирования. Используемые при определении выборок для модификаторов XForm, они в идеале должны определять только выборку и ничего более.

ПРИМЕЧАНИЕ

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

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

Анимацией подобъектных выборок можно управлять других объектов за счет применения модификатора Linked XForm. Linked XForm работает в точности как модификатор XForm, за исключением того, что "гизмо", который вы перемещаете, вращаете или масштабируете, является другим выбранным объектом. Linked XForm предоставляет возможность выполнения анимации объекта с базовой скелетной структурой (underlying bone structure). В главе 16, "Построение систем", показано, как Linked XForm используется именно для этих целей, применяясь к системам Bones.

Модификаторы поверхности

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

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

Модификатор Normal

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

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

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

Опция Flip Normals просто реверсирует нормали активной выборки и применяется более часто. В отличие от Unify, Flip полностью надежна для применения с выборками подобъектов.

Модификатор Smooth

Модификатор Smooth (см. рис. 15.33) обеспечивает возможность присвоения групп сглаживания модификатора EditMesh. В отличие от EditMesh, со Smooth можно выполнять анимацию, что является его главным достоинством. Посредством Smooth можно динамически настраивать сглаживание модели по мере того, как она изменяет форму. На практике последнее похоже на опцию "Morph Smoothing" в 3DS для DOS, за исключением того, что модификатор более универсален, может работать с выделениями и настраивать пороговый угол AutoSmooth. Модификатор Smooth идеально подходит для размещения в конце стека.

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

При установленной опции AutoSmooth активная выборка сглаживается в соответствии с сопутствующим пороговым значением, как описано в главе 12 в разделе "Угловой порог". Модификатор оценивает переданную ему поверхность и динамически настраивает назначения групп сглаживания так, как диктует порог. Это предоставляет возможность вернуться по стеку назад, изменить модель и увидеть результаты динамического применения AutoSmooth - то, что невозможно с модификатором EditMesh.

Когда AutoSmooth включена, сетка из 32 кнопок групп сглаживания заблокирована и не работает. Если AutoSmooth отключена, активной выборке можно присвоить конкретную группу. Назначение номера группы сглаживания является явным действием и выполнить его анимацию нельзя. Хотя с EditMesh принято делать несколько назначений групп сглаживания, но с модификатором Smooth очень редко присваивается более одной группы в одной и той же выборке. Присваивание одной группы заставляет выделение сглаживать себя, тогда как назначение других групп имеет эффект только если вы пытаетесь сравнить группы, назначенные смежным, склеенным граням.

Модификатор Material

Модификатор Material (см. рис. 15.34) обеспечивает возможность присвоения ID материала модификатора EditMesh. В отличие от явного назначения, производимого в EditMesh, с назначенным Material ID можно реально выполнить анимацию. Поскольку ID материала являются целыми числами, изменение материалов происходит неравномерно. При выполнении анимации назначений Material ID следует проанализировать их появления как кривой функции в Track View и настроить кривую так, чтобы материалы изменялись предсказуемым образом.

Модификатор UVW Map

Модификатор UVW Map присваивает координаты отображения активной выборки граней или лоскутов в стеке. Для всех объектов выборки вершин и ребер игнорируются и весь объект рассматривается как выборка граней или лоскутов. Данный модификатор предоставляет возможность комбинирования многочисленных координат отображения различных типов в разных положениях в истории редактирования объекта. Наиболее часто это делается тогда, когда объект изображает свою геометрию в ориентациях и конфигурациях, наиболее удобных для назначений отображения. Благодаря тесной связи с назначениями материала UVW Modifier детально описан в главе 21, "Материалы и текстуры".

СОВЕТ

Для постепенного перехода от материала к материалу вместо выполнения анимации Material ID используйте анимированный материал Blend или тип карты Mask или Mix.