stat
 
 
 
 
 
 
 
  TBS - Журнал Цифровое Видео    
Скидки
Разделы форума
Системы нелинейного
монтажа
Общие вопросы
Видеооборудование
Аудиооборудование
Светофильтры
Осветительное
оборудование
Барахолка
Поиск по архиву

Режим: "и" "или"
Избранное
Архив журнала
Цифровое Видео
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3
#4 #5 #6
  #1 #2 #3

Новые возможности моделирования в  3D Studio MAX

Светлана Беляева

      3D Studio MAX R2.5 позволяет создавать объекты различными методами. Наряду с доработками и усовершенствованиями старых методов появились новые: расширенные примитивы, NURBS-модели, увеличен класс сложных (Compaund) объектов. В статье рассматриваются некоторые из указанных возможностей, а также новая технология построения довольно сложных объектов с малым количеством граней.

NURBS-моделирование

      NURBS, ставшие индустриальным стандартом для дизайна и моделирования поверхностей, широко используются для построения сложных криволинейных поверхностей.
      NURBS-кривые и поверхности не существуют в обычном чертежном мире, они предназначены специально для 3D-моделирования на компьютерах.
      Преимущества NURBS:
      - создание сложных криволинейных поверхностей с помощью NURBS менее трудоемко, чем с использованием полигонов;
      - поскольку Mesh-объекты - граненые, при просчете граненость появляется в очертаниях объектов. Для того чтобы получить сглаженные очертания объектов, необходимо создать большое количество мелких граней, что увеличивает время просчета. NURBS-поверхности генерируются аналитически, поэтому они более эффективны для просчета и появляются после него абсолютно гладкими и бесшовными;
      - в отличие от сплайнов и пэтчей анимировать трансформации подобъектов NURBS можно сразу.
       В одном известном голливудском фильме гигантская анаконда заглатывает человека. С появлением NURBS-моделирования в  3D Studio MAX легко получить такой эффект. Для этого можно сделать NURBS-модель змеи, которую затем анимировать смещениями ее кожи, пасти и мускулов во время поглощения змеей жертвы.
       Анимация NURBS очень проста - достаточно включить кнопку ANIMATE и трансформировать любые составляющие NURBS-объектов - точки, контрольные вершины, кривые, поверхности. Анимация выполняется немедленно, причем анимированная поверхность получается сглаженной.
       После создания NURBS-объектов на панели Modify c ними можно совершать следующие операции:
      - присваивать геометрические модификаторы (Bend, Taper, Twist и т. д.) на уровне целого объекта;
      - трансформировать подобъекты или присваивать выбранной части NURBS-объектов модификаторы;
      - строить новые подобъекты для исходной NURBS-модели без необходимости возврата на панель Create;
      - моделировать на поверхности кривые различных типов, которые используются как границы для обрезания исходной поверхности.
       Кроме того, анимация NURBS (а также других типов объектов) может создаваться на языке MAX Script или с помощью системы Motion Capture.
         Достроив на поверхности кривую, можно тем же способом получить на поверхности отверстие нужного очертания.
        Рассмотрим некоторые наиболее интересные типы NURBS-поверхностей.
       Multisided Blend - поверхность, которая "заполняет" очертания, определенные тремя или четырьмя другими кривыми или подобъектами - Surfaces. В отличие от регулярных двусторонних Blend-поверхностей ограничивающие кривые или поверхности должны образовывать замкнутую петлю, полностью закрывающую открытое пространство.
       В качестве примера нами представлена тентовая поверхность, построенная из нескольких кривых, ограничивающих тентовую поверхность в пространстве.
       Sweep (простирающиеся) поверхности, создаваемые из кривых, могут быть двух типов:
      - 1-Rail Sweep Surface использует минимум две кривые. Одна из них - Rail - определяет один край поверхности; другие кривые определяют поперечные сечения поверхности.
       Кривые - поперечные сечения -должны пересекать Rail-кривую. Кроме того, начальная точка Rail и начальная точка кривой - первого поперечного сечения - должны совпадать;
      - 2-Rail Sweep Surface также создаются из кривых, но при этом используют минимум три кривые. Две кривые - Rails - два края поверхности; другие кривые задают поперечные сечения поверхности.
       Поверхность 2-Rail Sweep подобна поверхности 1-Rail Sweep, но имеет больше управляющих.
       Кривые - поперечные сечения -должны пересекать Rail-кривые. Кроме того, начальные точки кривых - Rails и конечные точки кривой - первого поперечного сечения должны совпадать.
       Это дает возможность, например, отрисовать двумя кривыми очертания двух видов головы и  поперечное сечение, которые затем использовать для создания гладкой NURBS-поверхности.
       U Loft - создает поверхность, проходящую через множество подобъектов curves. Кривые должны принадлежать одному NURBS-объекту.
       Хороший пример такой поверхности - человеческий торс.
        UV Loft - образует поверхности, похожие на U Loft, но для их построения используются кривые как в направлении U, так и в направлении V. Это позволяет применять меньшее количество кривых для получения нужной формы. Если кривые U и V пересекаются, поверхность UV Loft интерполирует все кривые. Если они не пересекаются, лофтируемая поверхность находится где-то между кривыми U и V.
       Пример: создание уха человека из кривых - очертаний будущей UV Loft поверхности в двух направлениях.

Новые типы составных (Compound) объектов

      Boolean-объекты

      Булевские объекты объединяют два других объекта выполнением Boolean-операций над ними.
       Что нового в алгоритме Boolean2?
       При выполнении булевской операции предъявляются определенные требования к исходным объектам.
       - Объекты, участвующие в булевской операции, должны иметь непрерывную замкнутую поверхность - без потерянных граней и несоединенных вершин. Новый алгоритм автоматически корректирует нарушения, не соответствующие данному критерию. Правда, иногда такое автоматическое исправление топологии приводит к нежелательным результатам. В этом случае надо вручную привести геометрию к нужному виду. Для обнаружения нежелательных отверстий можно воспользоваться модификатором STL Checker или использовать утилиту Measure. Избавиться от "дырок" поможет модификатор Cap Holes.
      - Объекты, участвующие в булевской операции, должны иметь правильное направление нормалей - "на нас". Однако часто нормали оказываются перевернутыми (особенно сцены, импортируемые из CAD-программ). Новый алгоритм автоматически фиксирует это обстоятельство, но перенастраивать нормали лучше вручную.
       Иногда в результате выполнения булевской операции из-за неправильного направления нормалей у исходных объектов результат получается как бы вывернутым "на изнанку". Можно предложить алгоритм, который позволяет исправить результат. Для этого следует создать большой бокс или другой примитив, центрируя его на вывернутом объекте так, чтобы он не касался его. Затем выполнить булевское вычитание булевского Mesh-объекта из бокса. Булевский объект вывернет свои нормали в правильную сторону.
       - Предыдущий алгоритм выполнения булевских операций требовал, чтобы два исходных объекта частично перекрывали друг друга. В противном случае булевская операция не выполнялась. Новый алгоритм Boolean2 разрешает исходным объектам быть не перекрывающимися. Это означает, что совмещение граней, ребер и вершин теперь не проблема. Кроме того, в булевских операциях можно использовать объекты, полностью находящиеся внутри другого объекта. Для того чтобы увидеть в боксе отверстие, созданное внутренней сферой при выполнении операции булевского вычитания, следует построить сечение Shape/Section.

      Scatter-объекты

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

      Conform - преобразование геометрии одного объекта в соответствии с геометрией другого

      Речь идет о сложных объектах, созданных проектированием вершин одного объекта (называемого Wrapper) на поверхность другого объекта (называемого Wrap-To). Имеется также версия Space-Warp этой функции.
       Использование команды Conform позволяет, например, "свернуть" сферу в бокс с тем же числом вершин. Затем с этими объектами можно выполнить морфинг, не заботясь о числе вершин в каждом из них.

      Connect - объединение двух объектов, имеющих отверстия, со сглаживанием создаваемой поверхности

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

Работа с Mesh-объектами

      В версии 3DS MAX 2.5 c объектами типа Editable Mesh можно выполнять операции Cut и Slice. Кроме того, можно использовать режим Drag & Drop для назначения материалов выбранным группам граней.
      Новый модификатор Slice создает разрезающую плоскость для Mesh-объекта, добавляя новые вершины и ребра на основе гизмо-модификатора (Slice plane gizmo). По линии разрезающей плоскости можно удалить часть Mesh-объекта выше или ниже плоскости Slice. Разрезающая плоскость может быть анимирована - перемещена или повернута во времени.
       Представляется интересной технология моделирования Mesh-геометрии с низким числом граней - Low Poly Modeling, предложенная Брюсом Робертсоном, проводящим регулярное обучение пользователей 3D Studio MAX в Европе от группы Kinetix.
       Технология моделирования объектов с малым числом граней, или "poly" count-технология, чаще всего используется для трехмерных видеоигр и для VRML. Такие модели, хотя и имеют экономное число граней, выглядят довольно привлекательно, поскольку строятся  прогрессивными методами с помощью специальных картовых материалов, создающих иллюзию геометрии в высоком разрешении.
       В качестве базовых моделей можно использовать примитивы, Loft- или NURBS-объекты.
       Примитивы можно применять для начала моделирования достаточно сложных моделей.
       Из Loft- или NURBS-объектов во многих случаях базовая форма органических объектов получается наиболее эффективно.
       После того как базовая форма объекта создана, можно приступить к деталям. Если вы планируете редактировать непосредственно Mesh-геометрию, лучше всего конвертировать объект в Editable Mesh. Причина этого проста: многие модификаторы, такие, как Taper или Bend, - параметрические, а это значит, что, перенастраивая их параметры, можно получить нужную форму объекта в целом. Модификатор Edit Mesh работает по-другому. Пользователь сам определяет, где расположена геометрия, какие грани должны быть выдавлены, какие ребра должны быть повернуты и т. д. Однако если после присвоения модификатора Edit Mesh выйти на уровень параметров создания и перенастроить их, то можно разрушить модель, которая была создана на уровне этого модификатора.
       Основные модификаторы, используемые в Low Poly-моделировании:
      - Edit Mesh,
      - Mesh Select,
      - Face Extrude,
      - FFD's,
      - Mesh Smooth,
      - Material (в основном для назначения разных материалов разным граням),
      - Normals,
      - Delete mesh,
      - Cap Holes,
      - UVW,
      - Unwrap (для масштабирования карт на геометрии).
      В качестве примера рассмотрим технологию преобразования бокса в акулу.
      Моделирование тела и плавников
      1. Создать бокс на перспективном экране. Задать следующие установки:
      Length=200; Width=40; Height=12; Length segments=1; Width Segments=1.
      2. Включить режим Edged Faces на виде Perspective.
      3. Перейти на панель Modify и конвертировать модель в Editable Mesh через Edit stack.
      4. Выйти на подобъектный уровень Sub-Object=Face.
      Создать по обе стороны из выбранных граней "плавники" акулы:
      а) выбрать и зафиксировать выбор торцевых граней по обе стороны бокса; задать в области Extrusion параметр Amount=10 и нажать на Extrude;
      б) включить трансформатор Scale в строке инструментов.
      Снизить масштаб выбранных граней до 40%;
      в) задать в области Extrusion параметр Amount=50 и нажать на Extrude;
      г) отменить фиксацию выбора. Дальше будем модифицировать торцевые грани независимо.
      Выбрать торцевую грань справа;
      д) перейти на Тор-экран и включить инструмент Rotate.
      Повернуть грань на -30°;
      е) повторить то же самое с другой стороны (поворот, но угол +30°).
      5. Выбрать верхнюю грань, чтобы создать верхний плавник акулы.
      Зафиксировать выбор.
      6. Задать в области Extrusion параметр Amount=10 и нажать на Extrude.
      7. Смасштабировать грань до 35%. Использовать Transform Type-In режим - Offset World=35%.
      8. Задать в области Extrusion параметр Amount=50 и нажать на Extrude.
      9. Перейти на Left-экран, включить Rotate-инструмент и повернуть грань на 40°.
      Моделирование носа акулы
      1. Выбрать грань носовой части.
      2. Задать в области Extrusion параметр Amount=20 и нажать на Extrude.
      3. Смасштабировать  нос до 65%.
      Моделирование хвоста акулы
      1. Отменить фиксацию выбора.
      2. Повернуть изображение на экране Perspective с помощью инструмента Arc Rotate, чтобы увидеть заднюю грань.
      3. Выбрать нужную грань.
      4. Задать в области Extrusion параметр Amount=15 и нажать на Extrude.
      5. Смасштабировать грань на 50%.
      6. Задать в области Extrusion параметр Amount=60 и нажать на Extrude.
      7. Выбрать  инструмент неунифицированного масштабирования с ограничением по оси Z. Смаштабировать грань до 1200%.
      8. Переместить выбранную грань на перспективе вверх  так, чтобы ее основание лежало вровень с основанием тела акулы.
      Сглаживание формы
      1. Отключить режим работы на подобъектном уровне Sub-Object.
      2. В списке модификаторов выбрать Mesh Smooth. Установить параметр Iteration=2.
       Для "оживления" акулы можно создать криволинейный сплайн произвольного очертания и присвоить акуле модификатор PathDeform из модификаторов World Space. Выбрав опцию Pick Path, указать на созданный сплайн. Выбрав подходящую ось для опции Move to Path, включить анимацию и к последнему кадру активного сегмента изменить параметр Percent так, чтобы акула "проплыла" вдоль всего сплайна. При следовании по пути акула будет одновременно деформироваться в соответствии с кривизной сплайна.


      В данной статье рассмотрены некоторые вопросы моделирования в 3D Studio MAX. Подробно ознакомиться со всеми возможностями пакета можно  в Internet по адресу:
      www.sgg.ru/~training  
      www.sgg.com/~training.

      Светлана Беляева
      Профессиональный преподаватель с более чем 30-летним стажем.
      С 1992 г. читала лекции  в учебном центре Steepler Graphics Group, а с 1997 г. руководила этим центром.
      В настоящее время - директор Системного и учебного центра Steepler Graphics Center.