Булевы операции

Булевы операции

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

Булевы операции всегда применяются к двум объектам. Первый объект (который выделен) называется операндом А. Второй объект (который следует указать) – операнд Б. Тип булевой операции и взаимное расположение объектов определяют конечный результат. Объекты, к которым планируется применить булевы операции, должны иметь общую область, то есть соприкасаться друг с другом.

Существует четыре основных типа булевых операций:

• Union (Сложение) – операция предназначена для объединения двух исходных объектов, при этом общая область двух объектов удаляется (рис. 4.16, а);

• Intersection (Пересечение) – булев объект состоит только из общей области исходных объектов (рис. 4.16, б);

Рис. 4.16. Булевы операции Union (Сложение) и Intersection (Пересечение) с участием двух объектов – бутылки и сферы

• Subtraction (А – В) (Вычитание (А –Б)) и Subtraction (В – А) (Вычитание (Б –А)) – один исходный объект вырезает отверстие из другого исходного объекта (рис. 4.17);

Рис. 4.17. Булева операция Subtraction (А – В) и Subtraction (В – А) (Вычитание) с участием двух объектов – бутылки и сферы

• Cut (Разрезание) – операция предназначена для разрезания одного объекта другим (рис. 4.18).

Рис. 4.18. Булева операция Cut (Разрезание) с участием двух объектов – бутылки и плоскости

Для применения булевых операций нужно сделать следующее.

1. Создать два исходных объекта и убедиться, что они пересекаются.

2. Выделить один из объектов (выделенный объект автоматически получает имя – объект А).

3. Создать составной объект Boolean (Булев) одним из следующих способов:

• выбрать команду меню Create ? Compound ? Boolean (Создать ? Составные ? Булев);

• на вкладке Create (Создание) командной панели активизировать категорию создания трехмерных объектов Geometry (Геометрия), раскрыть список подкатегорий (там, где написано Standard Primitives (Стандартные примитивы)), выбрать строку Compound Objects (Составные объекты) и в свитке Object Type (Тип объекта) нажать кнопку с названием операции – Boolean (Булев). В свитке Parameters (Параметры) в области Operands (Операнды) появится имя операнда А.

4. Установить переключатель Operation (Операция) в положение, соответствующее нужной операции.

5. В свитке Pick Boolean (Выбрать булев объект) нажать кнопку Pick Operand B (Выбрать операнд Б), после чего в любом окне проекции щелкнуть на втором исходном объекте.

Если после применения операции понадобится изменить параметры операндов (например, изменить радиус сферы), следует на командной панели переключиться на вкладку Modify (Редактирование), в стеке модификаторов щелкнуть на плюсике слева от названия объекта Boolean (Булев). В появившемся списке перейти на единственный уровень редактирования – Operands (Операнды), затем в свитке Parameters (Параметры) в списке Operands (Операнды) щелкнуть на соответствующей строке. В стеке модификаторов под строкой Boolean (Булевы) появится строка-идентификатор соответствующего операнда. Щелчок на этой строке отобразит параметры операнда (рис. 4.19).

Рис. 4.19. Управление параметрами операндов осуществляется в стеке модификаторов

По умолчанию при выполнении булевой операции исходный объект Б удаляется. Однако если вы хотите, чтобы он оставался в сцене в том виде, в котором он присутствовал до булевой операции, необходимо до ее выполнения изменить положение переключателя в свитке Pick Boolean (Выбрать булев объект). Этот переключатель имеет четыре положения:

• Move (Перемещение) – после выполнения булевой операции объект Б удаляется. По умолчанию используется именно это положение;

• Copy (Независимая копия объекта) – булева операция выполняется с копией объекта Б, а сам объект остается в сцене;

• Instance (Привязка) – булева операция производится с зависимой копией объекта Б. При этом исходный объект остается в сцене, а изменение параметров одного из объектов (исходного или булевого) влечет за собой изменение параметров другого;

• Reference (Подчинение) – создается копия объекта Б, которая частично зависит от исходного объекта.

Внимание!

Иногда булевы операции выполняются некорректно, поэтому, перед тем как их производить, будет нелишним создать временную копию сцены, используя команду Edit ? Hold (Правка ? Записать). В случае сбоя операции можно восстановить сцену из файла фиксации, используя команду Edit ? Fetch (Правка ? Восстановить).

Начиная с девятой версии программы в 3ds Max есть два набора инструментов для работы с булевыми операциями – составной объект Boolean (Булев) и модуль ProBoolean (Пробулевы объекты).

При работе с последним операции объединения, пересечения и вычитания добавляют сетку и позволяют создавать сложные комплексные объекты. Использование объекта ProBoolean (Пробулевы объекты) позволяет исправлять топологию модели и удалять неправильные треугольники. Тем самым создаются качественные полигональные модели с минимальным количеством коротких ребер и мелких треугольников.

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

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

Одним из преимуществ модуля ProBoolean (Пробулевы объекты) является то, что сетка поверхности, полученной с его помощью, может включать в себя четырехугольные грани. Это дает возможность сгладить резкие углы на стыке булевых объектов. Для использования этой возможности нужно до выполнения операции установить флажок Make Quadrilaterals (Создание четырехугольников) в свитке настроек Advanced Options (Дополнительные настройки) параметров составного объекта ProBoolean (Пробулевы объекты). Модуль ProBoolean (Пробулевы объекты) позволяет создавать топологию таким образом, чтобы после применения к результирующей поверхности сглаживающих модификаторов MeshSmooth (Сглаживание сетки) или TurboSmooth (Турбосглаживание) на месте соединения формировались скругленные участки.

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

Для практического закрепления теоретического материала выполните упражнение «Упражнение 4. Оконные и дверные проемы» из раздела «Практика» данной главы.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Булевы выражения

Из книги Давайте создадим компилятор! автора Креншоу Джек

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


Операции

Из книги Модель зрелости процессов разработки программного обеспечения автора Паулк Марк

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


R.5.6 Мультипликативные операции

Из книги Справочное руководство по C++ автора Страустрап Бьярн

R.5.6 Мультипликативные операции Мультипликативные операции *, /, и % выполняются слева направо.Мультипликативное-выражение: выражение-pm мультипликативное-выражение * выражение-pm мультипликативное-выражение / выражение-pm мультипликативное-выражение %


Операции += и -=

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Операции += и -= Если вы изучаете C#, уже имея опыт использования C++, то можете обратить внимание на отсутствие возможности перегрузки операторных сокращений, включающих операцию присваивания (+=, -= и т.д.). Не волнуйтесь, в C# операторные сокращения с присваиванием


Булевы операторы

Из книги Delphi. Учимся на примерах автора Парижский Сергей Михайлович

Булевы операторы Булевы операторы возвращают значения типа Boolean:• not — отрицание;• and — логическое "И";• or — логическое "ИЛИ";• xor — логическое исключающее


Код операции MI

Из книги Основы AS/400 автора Солтис Фрэнк

Код операции MI В таблице 4.14 показано назначение битов кода операции MI. Бит 3 задает вычислительный или невычислительный формат команды. Во втором случае функция, которая должна быть выполнена, закодирована в битах 5-15 кода операции. Функция, выполняемая вычислительной


Нестрогие булевы операторы

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Нестрогие булевы операторы Операторы and then и or else (названия заимствованы из языка Ada), а также implies не коммутативны и называются нестрогими (non-strict) булевыми операторами. Их семантика следующая:Нестрогие булевы операторы[x]. a and then b ложно, если a ложно, иначе имеет значение b.[x].


16.1. Операции tty

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

16.1. Операции tty Устройства tty предоставляют огромное количество опций обработки данных; они относятся к наиболее сложным устройствам ядра. Настраивать можно опции обработки входных и выходных данных, а также потока данных. Также можно контролировать ограниченное


Операции

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.


Операции

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Операции Операции в языке Си имеют либо один операнд (унарные операции), либо два операнда (бинарные операции), либо три (тернарная операция). Операция присваивания может быть как унарной, так и бинарной (см. раздел 4.4).Существенным свойством любой операции является ее


Булевы типы данных

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Булевы типы данных Firebird 1.5 и выше не поддерживает булевы (логические) типы данных. Обычной практикой является объявление односимвольного или SMALLINT домена для общего использования, где требуются булевы типы данных.Советы по определению булевых доменов см. в главе


Операции

Из книги Справка по SQL автора

Операции В языке Си предусматриваются поразрядные логические операции и операции сдвига. Далее мы будем записывать значения в двоичном коде, чтобы вы могли видеть, как выполняются операции. В реальных программах используются целые переменные или константы, записанные в


Операции

Из книги C++ для начинающих автора Липпман Стенли

Операции Теперь рассмотрим, что можно и нельзя делать с величинами типа enum. Вы можете присвоить константу типа enum переменной того же типа enum feline pet;pet = tiger;Нельзя использовать другие операции присваивания: pet += cat; /* недопустимо */Можно провести сравнение с целью выявления


4.3. Операции сравнения и логические операции

Из книги автора

4.3. Операции сравнения и логические операции Символ операции Значение Использование ! Логическое НЕ !expr меньше exprexpr = Меньше либо равно expr=expr больше exprexpr = больше либо равно expr=expr == равно expr==expr != не равно expr!=expr логическое


Операции is и as

Из книги автора

Операции is и as Операция is предназначена для проверки того, имеет ли классовая переменная указанный динамический тип. Операция as позволяет безопасно преобразовать переменную одного классового типа к другому классовому типу (в отличие от явного приведения классового