Моделирование с использованием булевых операций
В 3ds Max есть два независимых друг от друга набора инструментов для работы с булевыми операциями - составной объект Boolean (Булева операция) и модуль Pro Booleans. В большинстве случаев имеет смысл использовать именно модуль Pro Booleans, поскольку результаты его работы более корректны.
Порядок создания булевых объектов
При использовании составного объекта Boolean (Булева операция) необходимо выполнить следующие действия.
- Выделить первый объект ( объект A ), который будет участвовать в образовании модели, созданной после выполнения булевой операции.
- Перейти на вкладку Create (Создание) командной панели , выбрать в категории Geometry (Геометрия) строку Compound Objects (Составные объекты) и нажать кнопку Boolean (Булева операция).
- Установить параметры булевой операции.
- Нажать кнопку Pick Operand B (Выбрать операнд) в свитке Pick Boolean (Выбрать булев объект) и щелкнуть на втором объекте ( объект B ), который будет участвовать в операции.
При использовании модуля Pro Booleans порядок действий остается тем же, однако вместо составного объекта Boolean (Булева операция) используется составной объект ProBoolean (Пробулевы объекты). Параметры булевой операции указываются в настройках этого объекта, а для начала выполнения выбранной операции нужно нажать кнопку Start Picking (Начать выбор).
Существует четыре типа булевых операций. Опишем каждый их них.
Union (Сложение)
Булево сложение объектов подразумевает построение модели на основе поверхностей двух и более объектов. При использовании булева сложения объекты, которые принимают участие в операции, становятся одним целым, то есть на их основе формируется единый объект.
Внешне поверхность, полученная в результате булева сложения, и поверхность сгруппированных объектов, кажутся одинаковыми, однако между ними есть существенные различия. Во-первых, при выполнении булева сложения отсекаются невидимые участки объектов. Во-вторых, топология ребер и вершин полученной поверхности отличается от полигональной структуры исходных объектов.
Если объекты отображаются в режиме Smooth + Highlights (Сглаживание и блики) и при этом вспомогательный режим Edged Faces (Контуры ребер) отключен, то определить, что операция булева сложения прошла, вы сможете по смене цветов. В этом случае все объекты, которые принимали участие в операции, изменят свой цвет на цвет первого объекта. Это будет указывать на то, что на их основе образована единая поверхность.
Наблюдать действие операции Union (Сложение) удобнее всего в режиме отображения Wireframe (Каркас), в котором видна сетчатая оболочка объекта. Посмотрите, например, на два пересекающихся цилиндра до ( рис. 7.1) и после ( рис. 7.2) выполнения операции булева сложения.
увеличить изображение
Рис. 7.1. В режиме отображения Wireframe (Каркас) видно, что один цилиндр заходит в другой
увеличить изображение
Рис. 7.2. После булева сложения на основе поверхностей примитивов был образован единый объект
Intersection (Пересечение)
Булево пересечение подразумевает отсечение всех непересекающихся частей объектов, которые принимают участие в операции. Иными словами, образованный в результате выполнения этой операции объект будет иметь форму, общую для пересекающихся поверхностей.
Поскольку область пересечения цилиндров невелика, результатом выполнения операции пересечения будет небольшой объект ( рис. 7.3).
Subtraction (Вычитание)
Булево вычитание - это операция, противоположная булевому пересечению. В результате ее применения будет образована модель, которая включает в себя ту часть первого объекта, принимающего участие в операции, которая не пересекается со вторым объектом. При выполнении этой операции составным объектом Boolean (Булева операция) можно указать, какой объект из какого вычитается: первый из второго ( Subtraction (B-A) ) или второй из первого ( Subtraction (A-B) ).
В случае с цилиндрами мы сможем получить два разных результата. На рис. 7.4 показано вычитание из цилиндра, который установлен вертикально, а на рис. 7.5 - вычитание из цилиндра, установленного горизонтально.
При работе с составным объектом ProBoolean (Пробулевы объекты) нельзя указать порядок выполнения операции. Из того объекта, который был выделен первым, будет выполнено вычитание второго объекта.