Редактирование на уровне сплайнов позволяет объединять, замыкать, выполнять булевы и другие операции над ними. Для редактирования сплайнов в свитке Selection (Выделение) щелкните на кнопке Spline (Сплайн)
Выделенный сплайн станет красным в окнах проекций.
Что можно делать со сплайнами? Если нажать кнопку Outline (Контур), то будет построен контур любой ширины выделенного сплайна. Он представляет собой замкнутый сплайн. Над сплайнами также можно выполнять булевы операции. Для этого необходимы как минимум два сплайна, являющиеся составными частями одной двумерной формы.
Чтобы объединить оба сплайна, выполните следующие действия.
1. Нажмите кнопку Attach (Присоединить) в свитке Geometry (Геометрия).
2. Щелкните на присоединяемом сплайне.
3. Щелкните кнопкой мыши последовательно на кнопках Union (Объединение)
и Boolean (Булев).
4. Наведите указатель на второй сплайн и, когда он примет специальный вид, щелкните левой кнопкой мыши.
Две другие булевы операции – Subtraction (Исключение)
и Intersection (Пересечение)
– выполняются аналогично.
Для работы с командой Mirror (Зеркальное отображение) назначьте один из вариантов зеркального отображения и щелкните на кнопке Mirror (Зеркальное отображение). Выделенный сплайн зеркально отразится в соответствии со значком на кнопке группы вариантов. Установка флажка Copy (Независимая копия объекта) позволяет создать зеркальную копию выделенного сплайна. Нажатие кнопки Reverse (Обратить) ведет к обращению порядка следования вершин выделенного сплайна.
Мы рассмотрели основные команды для работы со сплайнами, а сейчас попробуем выполнить несколько несложных задач.
Создадим фрагмент стены с окнами и дверным проемом. Для построения этого объекта выполните следующие действия.
1. Постройте в окне проекции Front (Спереди) прямоугольник произвольной формы (например, 10 000 х 3000 мм). Для этого выполните команду Create ? Shapes ? Rectangle (Создание ? Формы ? Прямоугольник) и нарисуйте прямоугольник в окне проекции Front (Спереди).
2. Снимите флажок Start New Shape (Начать новую форму), чтобы вновь построенные примитивы принадлежали уже существующей форме.
3. Постройте еще два прямоугольника: для окна и для двери.
4. Щелкните на кнопке Spline (Сплайн)
вкладки Modify (Изменение) и выберите окно.
5. Сделайте копию всего окна, удерживая клавишу Shift и перетащив сплайн на новое место или используя кнопку Mirror (Зеркальное отображение) и установив флажок Copy (Независимая копия объекта).
После выполнения вышеописанных действий у вас должно получиться изображение, похожее на рис. 3.5.
Обратите внимание, что дверь должна подходить к нижней линии стены почти вплотную, но не пересекать ее.
После этого сделайте оконные рамы. Для этого выполните следующие действия.
1. Выделите один из оконных проемов и примените к нему команду Detach (Отделить) в свитке Geometry (Геометрия), установив флажок Copy (Независимая копия объекта).
2. В появившемся окне задайте объекту название Рама и щелкните на кнопке OK. В результате вы получите самостоятельную форму.
СОВЕТ
Давайте объектам сцены значимые имена – это позволит избежать путаницы с объектами и облегчит их поиск.
3. Щелкните на панели инструментов на кнопке Select by Name (Выделить по имени)
и выберите из списка раму.
4. Перейдите на вкладку Modify (Изменение) и нажмите кнопку Spline (Сплайн)
в свитке Selection (Выделение).
5. Задайте толщину оконной рамы, используя в свитке Geometry (Геометрия) кнопку Outline (Контур) с параметрами смещения, равными 60 (это значение задается в поле, расположенном рядом с кнопкой).
Чтобы окно было не совсем простым, создайте вертикальную и горизонтальную перемычки для створок окна и небольшую перемычку для форточки. Для этого повторите операции, аналогичные тем, с помощью которых вы добавляли проемы окон и дверей к стене. Только сейчас создайте прямоугольники как отдельные объекты, а потом при помощи команды Attach (Присоединить) присоедините их к раме. Изображение, которое получилось у меня, приведено на рис. 3.6.
Обратите внимание, что вновь созданные объекты пересекают друг друга. Это необходимо для проведения булевых операций. Добавьте вновь созданные объекты к раме при помощи команды Attach (Присоединить). Для этого выделите раму и перейдите в режим редактирования Spline (Сплайн) на вкладке Modify (Изменение) командной панели. Нажмите кнопку Attach (Присоединить) в свитке Geometry (Геометрия). Щелкните кнопкой мыши в окне проекции Front (Спереди) на всех новых объектах.
Следующим шагом будет проведение булевых операций над сплайнами, принадлежащими раме. В режиме Spline (Сплайн) выделите внутреннюю часть рамы. Активизируйте кнопку Subtraction (Исключение) и нажмите кнопку Boolean (Булев), после чего щелкните кнопкой мыши на горизонтальной перемычке. В результате появится разделение в верхней части рамы.
Выполните такие же булевы операции для нижней части рамы. После этого создайте форточку, используя кнопку Trim (Отсечь) (чтобы попробовать сделать то же, но другим способом). Для этого щелкните на кнопке Trim (Отсечь) и затем в окне проекции Front (Спереди) на всех пересекающихся сплайнах в районе крепления форточки. После этой операции в местах пересечения сегментов появятся разъединенные вершины – их нужно будет объединить. Для объединения вершин выделите их в окне проекции Front (Спереди) и щелкните на кнопке Weld (Объединить), находящейся в свитке Geometry (Геометрия), чтобы в дальнейшем можно было применить модификатор Extrude (Выдавливание) (рис. 3.7).
Для применения этого модификатора выделите в окне проекции сплайн стены. Выполните команду Modifiers ? Mesh Editing ? Extrude (Модификаторы ? Редактирование поверхности ? Выдавливание). Задайте параметру Amount (Величина) значение 300.
Повторите вышеописанные действия для окна, указав величину выдавливания, соответствующую размеру рамы.
Теперь осталось скопировать во второй проем раму, и все будет готово. Текстурировав и визуализировав сцену, можно получить изображение, представленное на рис. 3.8.Рис. 3.8. Окончательный вид стены, после применения модификатора Extrude (Выдавливание)
Двери можно сделать таким же способом, но если они должны быть филенчатыми и из дерева, проще использовать примитив Box (Параллелепипед) и операции редактирования с выдавливанием и фаской.
3.2. Основы полигонального моделирования
Построение большинства моделей в среде 3ds Max начинается с использования параметрических объектов. Напомню, что параметрический объект – это объект, который определяется совокупностью установок или параметров, а не явным описанием его формы. Геометрические примитивы 3ds Max – не что иное, как параметрические объекты, обладающие редактируемыми параметрами. Они обеспечивают строительные блоки, при помощи которых создается множество других форм. Примитивы применяют в качестве основы для создания каркаса и вершины.
Параметрический объект обеспечивает важные настройки моделирования и анимации. В общем случае необходимо как можно дольше сохранять параметрические свойства объекта. Некоторые операции 3ds Max преобразуют параметрические объекты в непараметрические. Примерами таких операций являются:
? присоединение объектов друг к другу с помощью одного из модификаторов, в состав названия которых входит слово Edit (Правка);
? разрушение стека модификаторов.
Выполняйте эти операции только в том случае, если вы уверены, что больше не придется регулировать параметры объектов.
Стек модификаторов имеет очень большое значение. Однако он расходует значительное количество оперативной памяти компьютера. Модификаторы, в состав которых входит слово Edit (Правка), содержат фактические копии модификаций объекта. Чем больше модификаторов в стеке, тем больший объем памяти требуется для их вычисления.
Объект будет занимать меньший объем памяти компьютера, если разрушить его стек, что вызывает вычисление конвейера геометрии и сводит объект к его самому верхнему классу. После разрушения стека эффект каждого модификатора будет обеспечиваться, однако эффект больше нельзя будет настроить. По этой причине не стоит очищать стек ради эксперимента, если нет копии объекта или файла сцены.
СОВЕТ
В качестве профилактической меры можно использовать для объектов команду Save Selected (Сохранить выбранные) меню File (Файл). При этом объекты копируются в форме, которую можно модифицировать. Разрушение стека всегда уничтожает базовые параметры примитивов, а часто оказывается необходимо вернуться к ним. Если имеются сохраненные оригиналы для замены, то при помощи команды Merge (Присоединить) меню File (Файл) можно восстановить объекты.
После создания параметрического объекта можно применить к нему любое количество модификаторов объекта, таких, как Bend (Изгиб), Taper (Заострение), Twist (Скручивание) и Extrude (Выдавливание). Модификаторы манипулируют подобъектами, например вершинами, по отношению к локальной системе координат объекта и началу координат. Другими словами, модификаторы изменяют структуру объекта в пространстве объекта.
Поскольку модификаторы работают с подобъектами в пространстве объекта, они обладают следующими характеристиками:
? не зависят от положения объекта и его ориентации в сцене;
? зависят от порядка применения модификаторов и структуры объекта в момент их применения;
? модификаторы можно применять ко всему объекту или к частичной выборке подобъектов.
Модификаторы можно назвать главным инструментом моделирования при работе с параметрическими объектами, поскольку вы управляете изменением формы объектов посредством модификаторов. Влияние модификатора на объект является постоянным независимо от расположения объекта в пространстве и во времени, если параметры модификатора не анимированы.
Для моделирования сложных объектов чаще всего недостаточно параметрических примитивов и применяемых к ним модификаторов. По этой причине моделирование приходится продолжать посредством редактирования сетчатых оболочек, которые для этих целей необходимо преобразовать в Editable Mesh (Редактируемая поверхность) или добавить модификатор, предоставляющий доступ к необходимому уровню подобъекта.
Влияние, оказываемое на что-то меньше, чем целый объект, называется в 3ds Max моделированием подобъекта. Существуют две основные формы моделирования подобъектов: манипуляция самими подобъектами (вершинами, гранями, полигонами и т. д.) и применение к выборкам подобъектов модификаторов.
На уровне подобъектов возможно много вариантов реалистического и эффективного моделирования. После создания объекта иногда нужно растягивать вершины, поворачивать, выравнивать и создавать грани. На уровне подобъектов лучше совершенствуются сглаживающие группы и анализируются нормали граней.
Внутри 3ds Max существует геометрическая иерархия. Рассмотрим ее в порядке от младшего к старшему.
? Vertex (Вершина) – может быть изолированной. Вершины определяют не геометрию, а расположение точек в трехмерном пространстве и являются самыми основными категориями (рис. 3.9). У них нет ни собственной поверхности, ни свойств. Вершины служат только для построения на их основе граней. Вершина, не соединенная с другими вершинами для образования каркаса, называется изолированной. 3ds Max сохраняет координаты отображения вместе с расположением вершин, поэтому при перемещении вершин связанное с ними отображение также перемещается.
? Face (Грань) – построена на трех вершинах (рис. 3.10). Грани являются треугольными поверхностями, образованными соединением трех вершин. Поскольку грань имеет только три точки, она задает геометрическую плоскость, которая по определению является плоской. Каждая грань определяет нормаль, перпендикулярную поверхности грани и указывающую от видимой стороны грани. Грани являются «оболочкой» модели, придают ей форму и разрешают иметь материалы и отражать свет. При сборке граней последние определяют поверхности и идентифицируемые формы.
? Edge (Ребро) – результат создания граней, соединяет две вершины. Ребра являются линиями, соединяющими две вершины и образующими грань (рис. 3.11). Следовательно, каждая грань имеет три ребра. О прилегающих гранях, которые совместно используют две вершины, также говорят, что они совместно применяют ребро. Ребра не создаются непосредственно, а представляют собой результат создания граней и используются для манипуляции ими или служат основой для создания новых граней. Грань всегда обладает тремя ребрами, которые могут быть видимыми или невидимыми. Видимость ребер влияет на скорость повторного рисования, четкость и границы выборок многоугольников. Видимые ребра в основном используются для четкости и влияют только на визуализацию каркаса при заданном материале проволочного каркаса.
? Polygon (Полигон) – содержит копланарные объединенные грани (рис. 3.12). Полигоны являются копланарными наборами объединенных граней, которые образуют фасеты, стороны и концы каркасов. В 3ds Max используется термин «многоугольник» для определения копланарных наборов граней внутри каркаса для целей выборки граней. Определение многоугольника останавливается на видимых ребрах или на планарном пороге. Многоугольники в 3ds Max представляют собой инструменты для выборки граней, а не являются сущностями со специальными возможностями манипуляции. При выборе и трансформации многоугольников фактически выбираются и трансформируются выборки граней.
? Element (Элемент) – содержит непрерывно объединенные грани (рис. 3.13). Слово «элементы» используется в 3ds Max для описания дискретного каркаса. Когда прилегающие грани построены на одинаковых вершинах, говорят, что они объединены вместе. О вершинах, применяющих несколько граней, говорят, что это совместно используемые, или объединенные, вершины. Элемент распространяется до тех пор, пока каркас имеет объединенные грани. Часто элементы внутри одного и того же объекта кажутся непрерывными, но на самом деле они применяют дублирующий набор вершин вдоль общих ребер. Такие вершины называются совпадающими, они используются, когда в каркасе необходим отчетливый разрыв, но каркас по-прежнему должен выглядеть непрерывным. Элемент может быть очень большим или, наоборот, очень маленьким, как одиночная изолированная грань. Один объект может содержать любое количество элементов. Несмотря на то что элементы являются отдельными каркасами, с ними нельзя выполнить анимацию без применения модификатора.? Object (Объект) – содержит элементы с непрерывными гранями и, возможно, изолированные вершины (рис. 3.14). Каркасные объекты содержат один или более элементов, и их можно считать организацией элементов. В отличие от элемента объект не должен быть непрерывным каркасом. Объект обычно состоит из далеко отстоящих элементов и может содержать изолированные вершины (которые, в свою очередь, являются отдельными элементами). Объекты обладают именами и цветом, и только они имеют трансформации, точки вращения, стеки истории данных и дорожки анимации.
После знакомства с основными терминами и понятиями полигонального моделирования можно переходить к практическим примерам.
Выполним простое моделирование автомобильного диска. Начнем с построения примитива Tube (Труба). Для этого сделайте следующее.1. Выполните команду Create ? Standard Primitives ? Tube (Создание ? Простые примитивы ? Труба).
2. Щелкните в окне проекции Top (Сверху), перетащите указатель в сторону для построения внешнего диаметра трубы и щелкните кнопкой мыши, чтобы зафиксировать размер. Затем перетащите указатель внутрь для создания внутреннего диаметра и вверх для построения высоты трубы.
3. В свитке Parameters (Параметры) введите в поля такие значения, как показаны на рис. 3.15.
4. После создания базовой геометрии с помощью примитива нужно привести его к типу Editable Mesh (Редактируемая поверхность). Для этого щелкните на нем правой кнопкой мыши и в появившемся контекстном меню выполните команду Convert To ? Convert to Editable Mesh (Преобразовать ? Преобразовать в редактируемую поверхность).
5. Перейдите на уровень редактирования вершин, для чего щелкните на кнопке Vertex (Вершина)
6. Выделите четыре внутренних ряда и щелкните на кнопке Select and Uniform Scale (Выделить и равномерно масштабировать)
В результате кнопка поменяет свой цвет. После этого щелкните на ней правой кнопкой мыши для вызова диалогового окна Scale Transform Type-In (Ввод данных масштабирования). В этом окне задайте параметру Offset: World (Приращения: глобальные) значение 80
7. Перейдите на уровень редактирования полигонов, щелкнув на кнопке Polygon (Полигон)
свитка Selection (Выделение). Затем в окне проекции Perspective (Перспектива) выберите три пары внутренних полигонов (рис. 3.18). Для удобства можете включить режимы отображения Wireframe (Каркас) или Edged Faces (Контуры ребер). Для этого щелкните правой кнопкой мыши на названии окна проекции и выберите нужный режим в появившемся контекстном меню.
8. Щелкните на кнопке Bevel (Выдавливание со скосом) в свитке Edit Geometry (Редактирование геометрии) и сделайте четыре последовательных выдавливания полигонов внутрь диска с уменьшением (рис. 3.19).
9. Не снимая выделения с внутренних полигонов, нажмите клавишу Delete для их удаления.10. Чтобы объединить вершины построенных спиц, перейдите на уровень редактирования вершин, щелкнув на кнопке Vertex (Вершина)
свитка Selection (Выделение), и выделите в окне проекции Top (Сверху) вершины в местах соединения геометрии. После этого в области Weld (Объединить) свитка Edit Geometry (Редактирование геометрии) введите величину допуска (в поле рядом с кнопкой Selected (Выделенные объекты)), равную 20, и щелкните на кнопке Selected (Выделенные объекты).
11. Чтобы закрыть оставшееся в середине диска отверстие, вернитесь на уровень редактирования Polygon (Полигон) и щелкните в свитке Edit Geometry (Редактирование геометрии) на кнопке Create (Создать). Затем последовательно щелкните на всех внутренних вершинах отверстия. У вас должен сформироваться полигон. Если после этой операции вы не видите его, то, возможно, причина в неправильной ориентации нормали. В этом случае щелкните на кнопке Flip (Обратить) в области Normals (Нормали) свитка Surface Properties (Свойства поверхности).
1 2. Не снимая выделения с полигона, произведите выдавливание центральной части диска (рис. 3.20).
Геометрия построена, осталось применить к объекту сглаживание. Для этого выполните команду Modifiers ? Subdivision Surfaces ? MeshSmooth (Модификаторы ? Поверхности с разбиением ? Сглаженная поверхность). В свитке Subdivision Amount (Величина поверхности с разбиением) задайте параметру Iterations (Количество итераций) значение 2.
В результате при визуализации должно получиться изображение, показанное на рис. 3.21.ПРИМЕЧАНИЕ
Если у вас в процессе работы возникли сложности с моделированием, обратитесь к файлу car_disk.max, расположенному на DVD в папке Examples\Глава 03\Car_disk, и проанализируйте его.
На примере данного задания мы рассмотрели общие подходы к моделированию при помощи полигонов.
3.3. Практическое задание. Какой же бар без стульев!
В данном упражнении рассмотрим, как создать модель стула для бара (рис. 3.22) несколькими простыми способом, из которых вы можете выбрать наиболее подходящий для вас.
Любой объект можно смоделировать разными способами – все зависит от того багажа знаний, который вы успели накопить в работе с программами трехмерной графики.
Что касается ножки стула, тут все просто – это могут быть либо цилиндры, либо сплайн, преобразованный при помощи модификатора Lathe (Вращение вокруг оси) в объемную форму. Металлическая обводка сиденья стула, которая одновременно является и подставкой для ног, также не представляет проблем при выборе решения. Для ее создания сразу напрашивается один простой способ: построить лофт-объект на основе двух сплайнов, один из которых будет путем, а другой – формой сечения. Могут быть и другие решения, но они не так просты, как это, поэтому не будем на них заострять внимание. Еще остается сиденье, при моделировании которого можно дать волю фантазии. Но сначала вернемся к ножке стула.
Возьмите за правило моделировать объекты в натуральную величину. Во-первых, вам будет легче вести построения. Во-вторых, труднее будет ошибиться в пропорциях. Относительно барного стула можно сказать следующее:
? высота от пола до сиденья будет около 700 мм (исходя из того, что у обычного стула 450-500 мм);
? диаметр основания – предположительно 400-450 мм;
? диаметр ножки – около 50-70 мм.
Начнем с основания. Для его создания я использовал объект Chamfer Cylinder (Цилиндр с фаской). Чтобы его построить сделайте следующее.
1. Выполните команду Create ? Extended Primitives ? Chamfer Cylinder (Создание ? Улучшенные примитивы ? Цилиндр с фаской).
2. Начните построение в окне проекции Top (Сверху), щелкнув на поле окна и перетащив в сторону указатель мыши, а потом вверх для придания цилиндру высоты и фаски.
3. В свитке Parameters (Параметры) укажите значения радиуса, высоты и фаски согласно показанным на рис. 3.23.
В качестве вертикальной стойки добавьте объект Cylinder (Цилиндр), для создания которого выполните команду Create ? Standard Primitives ? Cylinder (Создание ? Простые примитивы ? Цилиндр), со следующими параметрами: Radius (Радиус) – 30 и Height (Высота) – 550 мм. К построенному цилиндру присоедините еще один, поменьше – Radius (Радиус) – 20 мм и Height (Высота) – 100 мм. Завершает ножку цилиндр с параметрами Radius (Радиус) – 25 мм и Height (Высота) 70 мм, к которому применен модификатор Taper (Заострение). Для его построения выполните команду Modifiers ? Parametric Deformers ? Taper (Модификаторы ? Параметрические деформации ? Заострение) с величиной 0,6 по оси Z (рис. 3.24).Как видите, несколько примитивов, один модификатор – и ножка стула готова.
Теперь создадим сиденье. В данном случае не существует однозначного решения задачи, поэтому попробуем разобраться с несколькими вариантами построения этой части стула. Опыт работы в 3ds Max подсказывает следующие способы моделирования:
? два способа полигонального моделирования;
? моделирование при помощи модификаторов Extrude (Выдавливание) и Loft (Лофтинговые);
? моделирование сплайнами с последующим применением модификаторов Cross Section (Поперечное сечение) и Surface (Поверхность);
? NURBS-моделирование;
? моделирование при помощи булевых операций.
Могут быть и другие способы, но мы попробуем разобраться хотя бы в некоторых из вышеперечисленных. Начнем с полигонального моделирования.
Проще всего для начала работы использовать сплайн, очерчивающий форму сиденья в окне проекции Top (Сверху). Его нужно сделать немного длиннее реального сиденья с учетом загибов. Для построения прямоугольника сделайте следующее.
1. Выполните команду Create ? Shapes ? Rectangle (Создание ? Формы ? Прямоугольник).
2. Щелкните в окне проекции Top (Сверху) и перетащите в сторону указатель для построения прямоугольника.
3. На командной панели в свитке Parameters (Параметры) укажите параметру Length (Длина) значение, равное 700 мм, а Width (Ширина) – 350 мм.
Дальнейшие преобразования будут производиться на уровне подобъектов. Для этого выполните следующие действия.
1. Щелкните на прямоугольнике правой кнопкой мыши, в результате чего появится контекстное меню, в котором выполните команду Convert To ? Convert to Editable Spline (Преобразовать ? Преобразовать в редактируемый сплайн).
2. Щелкните на кнопке Vertex (Вершина) в свитке Selection (Выделение) настроек сплайна на командной панели, чтобы перейти на уровень подобъектов, и выберите в окне проекции Top (Сверху) две угловые вершины.
3. Примените к ним Fillet (Закругление), для чего в свитке Geometry (Геометрия) введите рядом с кнопкой Fillet (Закругление) значение 80 и нажмите клавишу Enter.
На данном этапе прямоугольник будет выглядеть, как показано на рис. 3.25.
После создания сплайна придайте ему толщину. Для этого воспользуйтесь модификатором Extrude (Выдавливание), выполнив команду Modifiers ? Mesh Editing ? Extrude (Модификаторы ? Редактирование поверхности ? Выдавливание). В свитке Parameters (Параметры) параметру Amount (Величина) задайте значение 30 (это будет толщиной сиденья).
После выполнения этих действий преобразуйте объект в редактируемую поверхность. Для этого щелкните на нем правой кнопкой мыши и в появившемся контекстном меню выполните команду Convert To ? Convert to Editable Mesh (Преобразовать ? Преобразовать в редактируемую поверхность). Сейчас можно было бы применить два модификатора Bend (Изгиб), и на этом создание сиденья закончилось бы, но модификаторы работают нормально, если объект содержит достаточное количество ребер в местах изгиба, а у нас их пока нет. Значит, их нужно сделать. Для этого выполните следующие действия.