Булевы фокусы

В 3ds Max существует множество способов моделирования трехмерных объектов, и один из них — при помощи булевых операций. Используя их, можно изменять один объект формой другого. Например, в результате операции булева вычитания из одного объекта вычитается геометрия другого. Операция булева сложения дает возможность, наоборот, добавить геометрию одного объекта к другому. А результатом операции булева пересечения является объект, который представляет собой трехмерную область, общую для объектов, участвующих в булевой операции. В 3ds Max 8 есть два способа работы с булевыми объектами: при помощи составного объекта Boolean или средств дополнения Pro Booleans. Этот модуль больше известен пользователям 3ds Max под названием Power Booleans. Он имеет некоторые преимущества перед обычным способом работы с булевыми операциями. Во-первых, он быстрее, во- вторых, создает более рациональную геометрию модели с меньшим количеством ребер и поверхностей. Модуль Pro Booleans устанавливается отдельно поверх 3ds Max 8. Он доступен только для пользователей 3ds Max, участвующих в программе подписки, поэтому свободно не распространяется.

Швейцарский сыр

Рассмотрим пример создания трехмерного объекта с использованием булевой операции вычитания и создадим кусок швейцарского сыра с отверстиями. Его форму легко воссоздать при помощи примитива Sphere. Создайте сферу в окне проекции. Перейдите на вкладку Modify командной панели и установите для объекта следующие значения параметров: Radius — 50, Segments — 70. Установите флажок Slice On и выберите значение параметра Slice From равным 90, чтобы получить полусферу. Поверните объект вокруг оси Y на 90 градусов. Получилась заготовка для создания куска сыра. Теперь нужно создать объекты, которые будут вычтены из полусферы, в результате чего получатся отверстия. Для этого подойдет источник частиц PСloud. Перейдите на вкладку Create командной панели, в категории Geometry выберите строку Particle Systems, нажмите кнопку PСloud и создайте объект. Чтобы облако частиц было плоским, в области Display Icon установите параметр Rad/Len равным нулю. Высота источника частиц (Height) должна быть равной радиусу сферы, то есть 50, а ширина (Width) — ее диаметру — 100. Выровняйте объекты, чтобы плоскость с частицами была возле поверхности сыра. Для этого выполните команду Tools > Align и щелкните на сфере. Установите флажок Y Position и установите переключатели Current Object и Target Object в положение Minimum. Нажмите кнопку Apply, после чего установите флажки Z Position и X Position и установите оба переключателя в положение Center. Нажмите кнопку OK. Чтобы частицы отображались в виде сфер, в настройках источника частиц установите переключатель Viewport Display в положение Mesh, а переключатель Standard Particles в свитке настроек Particle Type — в положение Sphere. В свитке Particle Generation увеличьте размер частиц, задав для параметра Size значение 12. Чтобы сферы отличались по размеру, увеличьте значение параметра Variation до 40. Если сферы расположены неудачно, можно подобрать другое положение частиц, нажав кнопку New в области Uniqueness (рис. 1). Источник частиц не может участвовать в булевых операциях, поэтому воспользуйтесь инструментом Snapshot, чтобы превратить частицы в единый объект. Выделите объект в окне проекции и выполните команду Tools > Snapshot. В открывшемся окне установите переключатель Clone Method в положение Mesh.
Спрячьте источник частиц — он вам больше не понадобится. Щелкните на названии окна проекции в левом верхнем углу правой кнопкой мыши. В появившемся контекстном меню выберите команду отображения ребер сетчатой поверхности объекта — Edged Faces. В этом режиме видно, что частицы имеют недостаточно сглаженную форму, поэтому примените к ним модификатор MeshSmooth. Установите в свитке настроек Subdivision Amount значение параметра Iterations равным 3. Выделите модель сыра и добавьте в сцену составной объект ProBoolean. Для этого перейдите на вкладку Create командной панели, выберите в категории Geometry строку Compound Objects и нажмите кнопку ProBoolean. Убедитесь, что в свитке Parameters переключатель булевой операции установлен в положение Substraction и нажмите кнопку Start Picking в свитке Pick Boolean. Выделите объект со сферами. После выполнения операции булева вычитания вы получите кусок сыра (рис. 2).

Выпуклый текст

Рассмотрим еще один пример работы с модулем Pro Booleans и продемонстрируем использование операции булева пересечения для создания выпуклого текста. Создайте в окне проекции сплайновый текст. Введите надпись в окне Text свитка Parameters настроек объекта. Перейдите на вкладку Modify командной панели и примените к объекту модификатор Extrude. Увеличьте значение параметра Amount до 150, чтобы сделать текст объемным. Значение параметра Segments увеличьте до 8 (рис. 3). Создайте сферу в окне проекции. Она должна быть такого диаметра, чтобы текст полностью помещался внутри. Выровняйте положение сферы относительно текста так, чтобы буквы находились внутри. Выделите сферу, выполните команду Tools > Align и укажите текст.
В появившемся окне Align Selection установите флажки X Position, Y Position и Z Position. Установите переключатели Current Object и Target Object в положение Center. Масштабируйте сферу по оси Z, чтобы она была приплюснутой, и из нее сверху и снизу выступал текст. Выделите надпись и конвертируйте объект в Editable Mesh. Выберите составной объект ProBoolean. В свитке Parameters установите переключатель булевой операции в положение Intersection и нажмите кнопку Start Picking в свитке Pick Boolean. Выделите сферу. Результатом булевой операции пересечения станет та часть текста, которая находилась внутри сферы. Текст станет выгнутым по форме сферы (рис. 4).

Штопор

В этом уроке мы используем операции булева сложения и вычитания, а также продемонстрируем преимущество модуля Pro Booleans перед стандартным составным объектом Boolean. Модель штопора будет состоять из трех элементов: сверла, ручки и основания. Начнем со сверла. Создайте в окне проекции стандартный примитив Cylinder со следующими параметрами: Radius — 3, Height — 80. Чтобы выточить из цилиндра сверло, необходимо вычесть из объема этого примитива спираль. В 3ds Max имеется сплайновый объект Helix, с помощью которого можно создать эту спираль. Создайте его в окне проекции. Поскольку толщина сплайна, заданная по умолчанию, недостаточна, в свитке настроек Rendering увеличьте значение параметра Thickness до 9,3. Верхний и нижний радиусы спирали должны быть одинаковыми и одновременно с этим немного больше радиуса цилиндра. Перейдите к свитку Parameters и выберите для параметров Radius 1 и Radius 2 значение 4,2. При помощи параметра Turns определите количество витков 7. Высота спирали (Height) должна быть чуть меньше высоты цилиндра. Остановимся на значении 78. Выровняем положение спирали относительно цилиндра так, чтобы он располагался внутри спирали. Для этого в окне Align Selection yстановите флажки Y Position и X Position и установите оба переключателя в положение Center. Затем установите флажок Z Position и установите оба переключателя в положение Minimum. В окне проекции пока не отображается толщина сплайна, поэтому в свитке Rendering настроек объекта установите флажок Enable In Viewport (рис. 5). Для того чтобы мы смогли из цилиндра вычесть спираль, нужно, чтобы спираль была не сплайном, а редактируемой поверхностью. Поэтому конвертируем сплайн в Editable Mesh.
Выделите цилиндр и на командной панели выберите составной объект ProBoolean. Убедитесь, что в свитке Parameters переключатель булевой операции установлен в положение Substraction, и нажмите кнопку Start Picking в свитке Pick Boolean. Щелкните по спирали. Из цилиндра будет вычтена спираль, в результате чего мы получим сверло. Единственный недостаток полученной модели — это то, что внизу сверло не острое. Конвертируйте его в Editable Mesh, переключитесь в режим редактирования Рolygon, выделите лишние полигоны и удалите их. На их месте образовалась полость, которую закройте, выйдя из режима Рolygon и применив к модели модификатор CapHoles. Чтобы сверло сужалось к концу, примените к нему модификатор Taper, выбрав его из списка Modifier List. Значение параметра Amount установите равным 1 (рис. 6).

Перейдем к созданию ручки. Создайте сплайн Ellipse. В свитке Rendering настроек объекта установите флажок Enable In Viewport, включив отображение толщины сплайна в окне проекции. Чтобы ручка была с прямоугольным сечением, установите переключатель в положение Rectangular и подберите такие настройки ручки, чтобы ее размер соответствовал размеру сверла: Length — 24, Width — 9. В свитке Parameters задайте для параметра Length значение 153, а Width — 53. Чтобы сгладить ручку, перейдите на вкладку Modify командной панели и примените к объекту модификатор MeshSmooth. В свитке Subdivision Amount установите значение параметра Iterations равным 2. Наконец, создадим третий элемент штопора — основание. Создайте в окне проекции стандартный примитив Cylinder со следующими значениями параметров: Radius — 7, Height — 65, Height Segments — 13. Осталось правильно разметить детали штопора. Поверните цилиндр на -90 градусов вокруг оси Y, чтобы он лежал в одной плоскости с ручкой, а затем выровняйте его. Для этого в окне Align Selection установите флажки X Position, Y Position и Z Position, а затем переключатели Current Object и Target Object в положение Center. Подкорректируйте положение основания-цилиндра вдоль оси X вручную. Цилиндр должен пересекать корпус ручки, но при этом не выходить с другой стороны. Повторите те же операции для сверла: сначала поверните его на -90 градусов вокруг оси Y, а затем выровняйте и подкорректируйте положение вдоль оси X. Сверло также должно заходить в основание штопора. Модель готова, однако есть одно упущение. На отлитом из металла штопоре не должно быть резких углов в местах соединения элементов. Если же мы визуализируем нашу модель, то увидим, что такие углы есть (рис. 7). Для того чтобы сгладить места объединения элементов штопора, используем модуль Pro Booleans. Благодаря опции Make Quadrilaterals топология сетки результирующей поверхности включает в себя четырехугольные грани.
Это дает возможность сгладить резкие углы на стыке булевых объектов при помощи модификаторов MeshSmooth или TurboSmooth. Объедините элементы штопора, используя составной объект ProBoolean. Выделите ручку, нажмите кнопку ProBoolean, после чего в свитке Parameters установите переключатель булевой операции в положение Union и в свитке Advanced Options установите флажок для квадратного разбиения поверхности Make Quadrilaterals. Нажмите кнопку Start Picking в свитке Pick Boolean и по очереди укажите элементы штопора. Конвертируйте полученный объект в Editable Mesh и примените модификатор MeshSmooth. В свитке Subdivision Amount настроек модификатора установите значение параметра Iterations равным 2. Теперь, если посмотреть на стык объектов, можно увидеть, что элементы штопора плавно переходят из одного в другой (рис. 8).

ProCutter: разрезаем объект на части

Среди дополнительных функций, которые содержит модуль Pro Booleans — инструмент ProCutter. Он предназначен для разрезания трехмерного объекта на части. Рассмотрим его возможности, разрезав на части бутылку. Для начала создадим модель бутылки. Трехмерные объекты, форма которых представляет собой поверхности, образованные в результате вращения сплайнового профиля вокруг некоторой оси, в 3ds Max создаются с помощью модификатора Lathe. Применяя этот модификатор к созданному сплайновому профилю, можно создавать такие объекты, как бокалы, бутылки, вазы, тарелки и т.д. Создайте с помощью инструмента Line сплайновый профиль для бутылки. Нарисуйте сплайн с несколькими вершинами, создав приблизительный профиль бутылки (рис. 9). Перейдите на вкладку Modify командной панели, переключитесь в режим редактирования вершин (Vertex) и подкорректируйте положение каждой из вершин. Для изменения формы сплайна вы можете использовать операции перемещения, вращения и масштабирования. При необходимости измените тип излома в каждой точке кривой. Для этого выделите необходимые вершины, щелкните правой кнопкой мыши в окне проекции и выберите характер излома в контекстном меню: Linear (Прямой), Bezier (Безье), Smooth (Сглаженный) или Bezier Corner (Угол Безье). Когда вы будете удовлетворены полученным профилем бутылки, выйдите из режима редактирования Vertex, перейдите на вкладку Modify командной панели и назначьте сплайну модификатор Lathe. Определите положение для оси вращения. Для этого в области Align настроек модификатора нажмите кнопку Max. Установите флажок Weld Core, чтобы избавиться от проблемных участков в основании и верхней части модели. Если вы увидите, что форма бутылки требует дальнейшей доработки, переключитесь в стеке модификаторов в режим управления вершинами сплайна и подправьте их положение. Преобразуйте бутылку в Editable Mesh. Теперь модель готова, и мы можем применить к ней инструмент ProCutter. Он позволяет использовать для разрезания объекта любые геометрические поверхности.

Перейдите в окно проекции Front и нарисуйте несколько сплайнов Line — так, чтобы они пересекали бутылку. С помощью этих кривых мы создадим поверхности, которыми и разрежем модель бутылки. Выделите все созданные кривые и примените к ним модификатор Extrude. В настройках модификатора подберите такое значение параметра Amount, чтобы поверхности пересекали бутылку. Выровняйте положение созданных поверхностей так, чтобы бутылка располагалась в центре (рис. 10). Чтобы созданные поверхности было лучше видно в окне проекции, назначьте им двусторонний материал. Выделите все поверхности, откройте окно Material Editor и установите флажок 2-Sided. Перетащите материал на объекты и в появившемся окне Assign Material установите переключатель в положение Assign to Selection. Снимите выделение и выделите только одну поверхность, полученную из какого-нибудь сплайна. Перейдите на вкладку Create командной панели, выберите в категории Geometry строку Compound Objects и нажмите кнопку ProCutter. В настройках составного объекта нажмите кнопку Pick Cutter Objects и выберите в сцене все кривые, к которым был применен модификатор Extrude. Это удобно сделать, вызвав окно Select Objects со списком всех объектов сцены. Теперь кривые занесены в список объектов, по которым будет производиться разрезание исходной модели. Перед тем, как мы укажем, какой объект в сцене необходимо разрезать, установим флажки напротив опций Stock Outside Cutter и Stock Inside Cutter в свитке Cutter Parameters. Эти два флажка определяют область разрезаемого объекта, которая останется в сцене после применения инструмента ProCutter. Каждая из созданных поверхностей имеет внешнюю и внутреннюю стороны. Положение внешней и внутренней сторон поверхности определяется направлением создания сплайна, к которому был применен модификатор Extrude. Определить, какая сторона поверхности является внешней, а какая — внутренней, очень просто.
Если к объекту не применен двусторонний материал, то в окне проекции отображается только ее внешняя часть. Опция Stock Inside Cutter (Оставить внутреннюю часть) позволит оставить только ту часть разрезаемого объекта, которая расположена под внутренней стороной каждой из поверхностей. Stock Outside Cutter (Оставить внешнюю часть), наоборот, позволит оставить только ту часть, которая расположена над внешней стороной каждой из поверхностей. Если установить оба флажка, объект будет разрезан на части, каждая из которых будет отображаться в сцене. Для выполнения разрезания нажмите кнопку Pick Stock Objects. Конвертируйте полученный объект в Editable Mesh и разбейте его на отдельные части, нажав кнопку Explode. Теперь вы можете переместить полученные элементы, чтоб убедиться, что они независимы (рис. 11). Инструмент ProCutter удобно использовать в паре с модулем reactor, например, для просчета разбивающихся поверхностей.

Сергей и Марина Бондаренко, http://www.3domen.com


Компьютерная газета. Статья была опубликована в номере 21 за 2006 год в рубрике софт

©1997-2024 Компьютерная газета