Как использовать boolean в 3ds max

Обновлено: 04.07.2024

К логическим операциям относятся объединение, разница и пересечение. В операциях всегда используются только два объекта, их называют операндами (операнд А и операнд В).

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

Имеется несколько ограничений для применения Boolean.
1. Для этой операции подходят только объекты с замкнутой поверхностью (например, плоскость или чайник не подойдут).
2. Объекты должны пересекаться.

Режимы Boolean:
Union (Сложение);
Intersection (Пересечение);
Subtraction (A-B) (Вычитание из главного объекта ), по умолчанию;
Subtraction (B-A) (Вычитание наоборот).
Cut (Разрез), используется для работы с полигональной сеткой.

Последовательность применения

1. Создайте Box и Sphere произвольных размеров и расположите их так, чтобы сфера пересекалась с боксом. Выделите Вох.


2. На вкладке Create (Создание) откройте выпадающий список и выберите там Compound Object (Объекты компоновки).

4. В открывшемся свитке Pick Boolean щелкните по кнопке Pick Operand B (она станет желтой).

5. В окне перспективного вида щелкните по сфере, она исчезнет. Щелкните правой кнопкой мыши для завершения операции. Булевский объект готов.


6. По умолчанию включен режим вычитания операндов A-B. При необходимости можно выбрать другой режим. Для этого в свитке Parameters есть раздел Operation.
Попробуйте переключать режимы и следите за результатом.

Коротко можно записать алгоритм использования Boolean так:

1. Создать два объекта.
2. Выделить один из них (операнд А).
3. Вызывать команду Boolean.
4. Щелкнуть по кнопке Pick Operand B.
5. Щелкнуть по второму объекту в любом видовом окне.
6. Щелкнуть правой кнопкой мыши в активном видовом окне (это для того, чтобы завершить команду).

Пример использования Boolean

1. На виде Top создайте Chamfer Cylinder:
Radius = 30;
Height = 8;
Fillet = 1,5;
Sides = 50;

2. На виде Top создайте Cylinder:
Radius = 6;
Height = 20;
Height Segments = 1;
Sides = 30.

3. На виде Front расположите цилиндр так, чтобы он насквозь проникал в Chamfer Cylinder.

4. Клонируйте цилиндр как Copy (удерживая нажатой клавишу <Shift>, переместите цилиндр и в открывшемся меню выберите Copy).
В булевских операциях не могут участвовать Instance клоны.


6. Для придания пуговице более реалистичного вида сделаем выемку. Для этого создайте сферу:
Radius = 70;
Segments = 60.
Выровняйте центр сферы по центру пуговицы, используя инструмент Align (Выравнивание).
Приподнимите сферу на виде Front так, чтобы она лишь слегка пересекала пуговицу.

7. Выполните булевскую операцию вычитания сферы из пуговицы.
В результате получится пуговица как на рисунке.



Можно пофантазировать и придумать много других вариантов пуговицы. Например, такую:



тел. (812) 931-01-80
пр. Непокоренных, 49, офис 508
(деловой центр H-49)

До определенного времени в программе 3ds Max имелась только одна команда для выполнения булевых операций — это команда Boolean. Она в ней сохранилась и сейчас. Однако в последних версиях программы появились две более совершенные команды: ProBoolean и ProCutter. Первая из них целиком перекрывает возможности команды Boolean и добавляет к ней намного больше функциональности, поэтому на команде Boolean мы останавливаться не будем.

Для начала уточним сущность команды ProBoolean (Булева операция). Откройте файл Duck.max из архива Duck.rar и рядом с имеющимся там объектом постройте параллелепипед Box001. Каждому объекту в редакторе материалов назначьте свой цвет. Вдвиньте объект Duck наполовину в параллелепипед. Выделите объект Box001, перейдите на вкладку Create


и из списка типов объектов выберите Compound Objects (Составные объекты). Активизируйте команду ProBoolean.

В свитке Pick Boolean (Указать операнд) отметьте флажком вариант Move, и тогда после выполнения булевой операции вспомогательный параллелепипед исчезнет с экрана (во всех остальных случаях он по-прежнему останется на экране). Далее в свитке Parameters установите выполняемую булеву операцию (выберите вариант Subtraction), в области Apply Material (Применить материал) отметьте вариант Apply Operand Material (Применить материал операнда), щелкните на кнопке Start Picking (Начать выбор) и укажите на объект Duck. Результат выполнения булевой операции Subtraction приведен на рис. 1.


Рис. 1. Результат операции Subtraction: слева — исходные операнды; справа — результат вычитания

Обратите внимание, что в данном случае выдавленная часть поверхности приобрела цвет операнда Duck (см. файл Duck1.max в архиве Duck1.rar). Если в области Apply Material отметить вариант Retain Original Material (Cохранить исходный материал), то булев объект приобретет цвет первого операнда.

Команда ProBoolean

Команда ProBoolean поддерживает выполнение следующих булевых операций: Union (Объединение), Intersection (Пересечение), Subtraction (Вычитание), Merge (Слияние), Attach (Присоединение), Insert (Вставка), Imprint (Оттиск) и Cookie. При этом в одной команде ProBoolean могут выполняться разные булевы операции. Кроме того, ProBoolean может разбивать результат выполнения операции на четырехугольные грани, которые хорошо сглаживаются применением операций Meshsmooth и Turbosmooth.

  • Операция Union (рис. 2, а) объединяет обе модели в единую модель, а операция Intersection (рис. 2, б) сохраняет в новой модели только общую часть операндов.


  • Команда Merge объединяет сетки двух моделей без удаления исходных полигонов (многоугольников), создавая новые ребра там, где объекты пересекаются (рис. 3).


Рис. 3. Команда Merge после применения модификатора Editable Mesh: выделены созданные ребра

  • Операция Attach объединяет два или несколько объектов в один объект без изменения их топологии.
  • Операция Insert сначала вычитает границу первого операнда из второго, а затем замещает вырезанную часть первым операндом.
  • Операции Imprint и Cookie представляют собой варианты выполнения некоторых предыдущих операций:
  • Imprint вставляет ребра, возникающие при пересечении операндов, между операндом и исходной сеткой без удаления или добавления новых граней, создавая отпечаток операнда на исходной сетке (рис. 4, а).
  • Cookie выполняет специфическую булеву операцию и не добавляет грани из операндов в исходную сетку. Но эта операция может быть полезна, чтобы вырезать отверстие в сетке или получить часть сетки внутри другого объекта (рис. 4, б и в).


Рис. 4. Варианты булевых операций: а — Intersection+Imprint; б — Union+Cookie; в — Intersection+Cookie

Создание модели кружки с использованием булевых операций

Создайте сцену из четырех объектов: капсулы Capsule001 (Capsule), конуса Cone001 (Cone), бака OilTank001 (OilTank) и тора Torus001 (Torus) — и расположите их, как показано на рис. 5 (см. файл ProBoolean.max из архива ProBoolean.rar), — всем объектам программа случайным образом назначила определенный цвет. На рисунке показаны параметры конуса.


Рис. 5. Исходные операнды

Сперва выполним операцию Union с объектами Capsule001, Cone001 и Torus001. Для этого выделите базовый объект — пусть им будет капсула, и на командной панели в категории Create


| Geometry


раскройте список объектов типа Compound Objects. Активизируйте команду ProBoolean. В свитке Parameters выберите операцию Union. Кроме того, в свитке Pick Boolean установите один из вариантов выполнения булевой операции: Reference, Move, Copy или Instance. Остановимся на варианте Move (в этом случае операнд становится частью булевой операции и более недоступен как отдельный объект). В том же свитке нажмите кнопку Start Picking и укажите на конус — конус присоединится к капсуле (рис. 6, а). Команда Start Picking останется активной. Поэтому никаких дополнительных действий выполнять не нужно и можно просто указать на тор (рис. 6, б).


Рис. 6. Результат выполнения операции ProBoolean: Capsule+Cone (а); + Torus (б); – OilTank (в)

Теперь установите операцию Subtraction и укажите на бак — в результате получится единый объект, показанный на рис. 2.70, в (см. файл ProBoolean1.max из архива ProBoolean1.rar). Щелкните правой кнопкой мыши в любой свободной части видового окна, чтобы закончить выполнение операции ProBoolean.

Предварительно никакой материал операндам назначен не был. Поэтому результат выполнения операции ProBoolean будет иметь тот цвет, который был первоначально назначен программой базовому объекту — капсуле.

Редактирование булева объекта

Вся история применения операндов и операций, использованных при создании булева объекта, приводится на вкладке Modify в иерархическом списке в нижней части свитка Parameters (рис. 7). Эту историю, а также другие инструменты из области Sub-object Operations (Подобъекты, участвующие в операции), можно использовать, чтобы изменить результат выполнения операции ProBoolean.


Рис. 7. История создания булева объекта

В указанном списке выделите название OilTank001 и задайте операцию Union. Затем в области Sub-object Operations щелкните на кнопкеChange Operation (Заменить операцию) — результат операции ProBoolean изменится. После этого в списке операндов выделите название конуса, задайте операцию Sudtraction и снова щелкните на кнопке Change Operation. Мы получим новую модель, показанную на рис. 8, а (см. файл ProBoolean2.max из архива ProBoolean2.rar), и ей будет соответствовать своя история (рис. 8, б).


Рис. 8. Применение истории построения булева объекта

Можно также менять порядок выполнения операций, который повлияет на конечный результат, — в истории построения булева объекта выделите название конуса и в поле напротив Reorder Ops (Переопределить порядок) задайте ему значение 3. Это будет означать, что конус станет вычитаться последним. Щелкните кнопкой Reorder Ops — название конуса переместится в нижнюю часть списка, и результат операции ProBoolean снова изменится (рис. 9). Этому состоянию соответствует файл ProBoolean3.max из архива ProBoolean3.rar.


Рис. 9. Конус вычитается последним

Редактирование параметров операндов

Откройте файл ProBoolean1.max и выделите полученный булев объект. Обратите внимание, что верхний край кружки имеет зазубрины (рис. 10), и их надо удалить.


Рис. 10. Зазубрины на краю кружки

Раскройте стек модификаторов. В нем будет только один объект ProBoolean (рис. 11, а). Раскройте его, щелкнув на значке


, — появится указание на операнды Operands (рис. 11, б).


Рис. 11. Стек модификаторов

Выделите это название. Затем в свитке Parameters укажите название операнда (можно одновременно указывать на несколько операндов), параметры которого предполагается корректировать, — в нашем примере им будет OilTank001 (рис. 12, а). В результате название типа этого объекта появится в стеке модификаторов (рис. 12, б).


Рис. 12. Выделение названия операнда для корректировки его параметров

Если теперь щелкнуть на этом названии, то на вкладке Modify появится свиток с его параметрами, дающий возможность прямого доступа к их редактированию (рис. 13).


Рис. 13. Получен доступ к редактированию параметров объекта типа OilTank

Задайте значение параметра Sides равным 36. Аналогичным образом установите такое же значение параметра Sides для капсулы. Теперь в стеке модификаторов щелкните на ProBoolean и получите объект с ровными краями.

При редактировании булева объекта его операнды можно перемещать, поворачивать и масштабировать. Переместим основание кружки (Cone001) немного вверх, чтобы сделать его меньшей высоты. Для этого в стеке модификаторов выделите строку Operands (рис. 14, а), а в истории построения кружки — строку 1:Union-Cone001 (рис. 14, б). Затем в области Display пометьте вариант отображения операнда Operands (рис. 14, в).


Рис. 14. Подготовка к трансформации операнда

Теперь активизируйте команду Select and Move и сместите конус вверх, но не выше основания капсулы, иначе она будет выступать ниже основания кружки. В области Display снова установите режим отображения Result (Результат). В стеке модификаторов щелкните на строке ProBoolean, чтобы завершить построения (см. файл ProBoolean4.max из архива ProBoolean4.rar).

Команда Extract Selected

Команда Extract Selected (Извлечь выделенное) применяется к операциям, которые выделены в иерархическом списке истории создания булева объекта. Существуют три режима извлечения: Remove, Copy и Inst:

  • в режиме Remove выделенный операнд (кроме базового) удаляется из булева объекта и становится самостоятельным объектом (рис. 15);
  • в режиме Copy выделенный операнд извлекается из булева объекта, но по-прежнему остается его частью;
  • в режиме Inst выделенный операнд также извлекается из булева объекта. Если после этой операции выполнить какие-либо изменения в выделенном объекте, то они отразятся на булевом объекте.


Рис. 15. Тор извлечен из булева объекта

Сглаживание вдоль линий сопряжения операндов

В местах сопряжения поверхностей операндов получились резкие переходы. Чтобы их сгладить, примените к модели модификатор Edit Poly, раскройте список подобъектов этого модификатора с помощью значка ► и перейдите на уровень выделения ребер (Edge). Скорее всего, все линии сопряжения поверхностей операндов выделятся автоматически и отобразятся в сцене красной линией. Если этого не произошло, то в свитке Selection нажмите кнопку Get Stack Selection (Выбрать выделение из стека) — все линии сопряжения операндов будут выделены. Затем в свитке Edit Edges справа от команды Chamfer (Фаска) нажмите кнопку Settings


и в открывшемся Caddy-интерфейсе установите значения соответствующих параметров (рис. 16).


Рис. 16. Параметры сглаживания сопряжения операндов

Итак, сгладим нижние ребра в основании кружки. Для этого перейдите в режим выделения Polygon и выделите основание кружки. Затем нажмите клавишу <Ctrl> и в свитке Selection щелкните по значку Edge


— выделятся все ребра основания. После этого снова примените команду Chamfer с соответствующими параметрами, чтобы скруглить край основания. Построение модели кружки закончено (рис. 17). Этому состоянию соответствует файл ProBoolean5.max из архива ProBoolean5.rar.


Рис. 17. Модель кружки

Операция Insert

Проиллюстрируем эту специфическую булеву операцию на примере. Откройте файл Insert.max из архива Insert.rar. В рассматриваемой сцене создана модель ведерка с водой. Модель воды представляет собой простой цилиндр, на который наложен полупрозрачный материал. На кружку, опущенную в воду, наложена текстурная карта. Кружка наклонена таким образом, чтобы в нее попала вода (рис. 18).


Рис. 18. Кружка опущена в воду

Выделите объект Water, активизируйте команду ProBoolean и в свитке Parameters выберите команду Insert. В области Apply Material выберите опцию Apply Operand Material, нажмите кнопку Start Picking и укажите на кружку. Щелкните правой кнопкой мыши в любом свободном месте, чтобы отменить действие команды ProBoolean. В результате создается впечатление, что вода заполнила кружку (рис. 19).


Рис. 19. Результат операции Insert: а — булев объект в режиме Default Shading; б — он же в режиме Wireframe

Отмените предыдущие действия и поверните кружку так, чтобы вода не могла в нее попасть. Снова выполните команду Insert. Обратите внимание, что теперь воды в кружке нет (рис. 20). Этому состоянию соответствует файл Insert1.max из архива Insert1.rar.


Рис. 20. Кружка повернута

Создайте цилиндр небольшого диаметра и с помощью команды ProBoolean и варианта построения булевого объекта Subtraction сделайте отверстие сбоку кружки. Поместите кружку так, чтобы отверстие находилось ниже уровня воды, а края кружки находились над водой. Снова выполните команду Insert. Теперь вода снова появилась в кружке, как будто бы она попала туда через отверстие в ней (см. файл Insert2.max из архива Insert2.rar).

Команда Insert не моделирует поведение жидкости, и все размеры первого операнда сохраняются без изменений.

Дополнительные опции ProBoolean

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

Откройте файл ProBoolean4.max из архива ProBoolean4.rar, выделите кружку и перейдите на вкладку Modify . Нажмите клавишу <7>, чтобы в видовом окне отобразить число полигонов и вершин объекта. Раскройте свиток Advanced Options (Дополнительные опции) (рис. 21).


Рис. 21. Дополнительные опции команды ProBoolean

В поле Decimation введите число 30 и нажмите клавишу <Enter>. Обратите внимание, что число полигонов и вершин сократилось. Введите в это поле число 60. Число полигонов снова сократится, и сетка станет треугольной (рис. 22).


Рис. 22. Число полигонов и вершин сократилось

В области Quadrilateral Tessellation (Квадратичное разбиение) можно включить опцию Make Quadrilaterals (Создать квадратичное разбиение). Тогда полигонов вновь станет значительно больше, и они превратятся в квадратные. Благодаря этому сетка модели станет более пригодной для сглаживания поверхности и для преобразования в формат Edit Poly. Параметр Quad Size (Размер квадратичных полигонов) определяет размер квадратичных полигонов в процентах от длины булева объекта.

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

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



Довольно часто при создании модели в 3D Max появляется необходимость вырезать один объект из другого. Допустим мы хотим сделать окно в стене или какой-нибудь люк. Для осуществления этой задачи нам поможет модификатор Boolean . Рассмотрим все это на примере создания круглого отверстия в прямоугольном объекте.

Итак, у нас есть прямоугольник из которого мы хотим вырезать цилиндр.

1) Берем цилиндр и перетаскиваем его на прямоугольник так, чтобы он его как бы пронзал.


2) В правой части экрана кликаем по надписи Standard Primitives. И в открывшемся меню выбираем Conpound Objects.




3) Теперь нам надо выделить один из наших объектов. В данном случае не имеет особой важности какой из них это будет. Кликните на любой из них. Далее, в правом меню следует нажать на кнопку Boolean и ниже кликнуть по кнопке Pick Operand B. После чего кликаем по второму объекту.


4) Опускаем ползунок правого подменю немного ниже. Находим раздел Operation. В нем нам надо выбрать один из вариантов. Нам необходим Subtraction (A-B) или Subtraction (B-A).

Кстати, операция Union (она в разделе Operation стоит первой) объединяет объекты в один. Тоже полезная функция.


На самом деле, данная операция не такая муторная, как может показаться на первый взгляд. После того, как повторите ее пару раз, начнете делать ее на автопилоте.

Теперь вы знаете как в 3D Max вырезать один объект из другого с помощью модификатора Boolean. Если что-то все-равно осталось непонятным, то рекомендую посмотреть видео ниже.

''), array("string" => ''), ); if (!isset($_COOKIE['rek'])) < print($banners[$GLOBALS["banner_num"]]["string"]); >elseif ($_COOKIE['rek'] == "rek1") < print($banners[0]["string"]); >elseif ($_COOKIE['rek'] == "rek2") < print($banners[1]["string"]); >?>

Не используйте операции Boolean или ProBoolean

Наверное, каждый пятый вопрос на 3d-форумах связан с операциями Boolean. Вернее с ошибками при работе с этим . язык не поворачивается сказать. логическим оператором.

Отвечу на все из них. сразу.

Для начала примите к сведению, что в развитых странах Boolean вообще запрещен. Поэтому, чтобы самим не мучиться, других не мучить и не тратить время на дальнейшее чтение этой статьи, с целью выяснения причин "почему же оно не вырезается?" - прекратите использовать Boolean!

Вы спросите "Почему запрещен?". Отвечу. После этих операций меш (сетка) превращается в уродство. Так что время, которое Вы потратите на ее вычищение, эквивалентно (но часто больше) времени потраченному на НЕиспользование Boolean.

Если же Вы все обдумали и поняли, что другим методом Вы дырочку точно не вырежите, то читаем дальше. Правда, я тут хотел написать совсем другое : "Если же Вы из тех людей, которые готовы потратить 2 часа на то, что другим методом сделали бы за 7 минут - тогда читаем дальше. " Но почему-то не написал.

Логика нижеследующих советов применима к любому 3d-редактору, НО техническая сторона рассмотрена для 3ds Max (и кое где для Maya).

Значит, во-первых: продумайте ВСЕ операции Boolean, которые Вам нужны и сделайте их за одно вычитание.

Что это значит? Это значит, что если Вам нужно сделать 13 дырочек, то не стоит их делать одна за другой. Нужно эти 13 объектов (которыми Вы собрались вырезать 13 дырочек) объединить в один (Attach). А потом уже проделать операцию “Ы”.

Во-вторых: если у Вас возникли проблемы с Boolean, то возможно их избежать, используя ProBoolean (и наоборот).

В-третьих: эта операция очень чувствительна к сетке. Желательно, чтобы та область, которую Вы будете вырезать, была четко окружена ребрами:

Подготовка меша для операции Boolean

Подготовка меша для операции Boolean

4. (надоело писать в-четвертых) Оператор А и оператор B должны быть редактируемым мешем Editable Poly/Mesh без кучи модификаторов в стеке (и прибитой историей если это Maya).

5. Если Вы уже успели наделать кучу (большую или маленькую) вычитаний Boolean, а после этого решили сделать еще одну операцию, но она никак не получается, то в 99% случаев нужно почистить меш.

Что это значит? Это значит, что нужно посклеивать вершины (weld), которые находятся в одном месте - сидят одна на другой, а на вид, как будто это одна вершинка. Поприбивать вершины, которые имеют только 2 ребра и т.д.

Никогда не сдавайтесь!

P.S. Генри Форду два года твердили все его инженеры, что V-образный двигатель сделать невозможно. А он, несмотря на бесконечные неудачные попытки, достиг своей цели.

Похожие статьи:

    Обновление 3: записал продолжение - кисти на основе кривых в ZBrush 4R2. Обновление 2: в целях эксперимента выложил этот видео… Читать желательно ВСЕМ (неважно, профессионал вы или новичок – полезное для себя найдут многие), кто хоть как-то связан с компьютерной… Все используют SubTools, но не все знают, как на всю мощь использовать вот эти значки (перекрывающиеся круги, кисточка, глаз) рядом… Новые вкусности по 3D со всего интернета. Вот предыдущий выпуск №5, а другие выпуски читайте там - Обзор 3D полезностей.… В предыдущей статье я рассказал о секретных методах выделения объектов, а в этой расскажу об оригинальных и зачастую редко используемых… Вывод: вы только приобщаетесь к миру создания компьютерной графики с помощью 3ds Max. Это хорошо, что вы прошли этот тест.… Скоро выйдет новая версия пакета для скульптинга, который стал промышленным стандартом в CG индустрии - ZBrush 4R8. Но уже известно,…


Вам понравилась статья ? Хотите отблагодарить автора? Расскажите о ней друзьям.
Или подпишитесь на обновление блога по E-Mail.

Читайте также: